This repository has been archived by the owner on Jul 20, 2022. It is now read-only.
/
character.go
54 lines (46 loc) · 2.2 KB
/
character.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package skillz
import (
"context"
"time"
"github.com/volatiletech/null"
)
type CharacterRepository interface {
characterRepository
characterHistoryRepository
}
type characterRepository interface {
Character(ctx context.Context, id uint64) (*Character, error)
// Characters(ctx context.Context, operators ...*Operator) ([]*Character, error)
CreateCharacter(ctx context.Context, character *Character) error
UpdateCharacter(ctx context.Context, character *Character) error
}
type characterHistoryRepository interface {
CharacterCorporationHistory(ctx context.Context, characterID uint64) ([]*CharacterCorporationHistory, error)
CreateCharacterCorporationHistory(ctx context.Context, records []*CharacterCorporationHistory) ([]*CharacterCorporationHistory, error)
}
type Character struct {
ID uint64 `db:"id" json:"id"`
Name string `db:"name" json:"name"`
CorporationID uint `db:"corporation_id" json:"corporation_id"`
AllianceID null.Uint `db:"alliance_id,omitempty" json:"alliance_id,omitempty"`
FactionID null.Uint `db:"faction_id,omitempty" json:"faction_id,omitempty"`
SecurityStatus null.Float64 `db:"security_status,omitempty" json:"security_status,omitempty"`
Gender string `db:"gender" json:"gender"`
Birthday time.Time `db:"birthday" json:"birthday"`
Title null.String `db:"title,omitempty" json:"title,omitempty"`
BloodlineID uint `db:"bloodline_id" json:"bloodline_id"`
RaceID uint `db:"race_id" json:"race_id"`
CreatedAt time.Time `db:"created_at" json:"-"`
UpdatedAt time.Time `db:"updated_at" json:"-"`
Corporation *Corporation `json:"corporation,omitempty"`
Alliance *Alliance `json:"alliance,omitempty"`
}
type CharacterCorporationHistory struct {
CharacterID uint64 `db:"character_id" json:"character_id"`
RecordID uint64 `db:"record_id" json:"record_id"`
CorporationID uint `db:"corporation_id" json:"corporation_id"`
IsDeleted bool `db:"is_deleted" json:"is_deleted"`
StartDate time.Time `db:"start_date" json:"start_date"`
CreatedAt time.Time `db:"created_at" json:"-"`
UpdatedAt time.Time `db:"updated_at" json:"-"`
}