2023-10-31 22:40:14 +00:00
|
|
|
package storage
|
|
|
|
|
|
|
|
import "github.com/lib/pq"
|
|
|
|
|
|
|
|
type Tabler interface {
|
|
|
|
TableName() string
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_Person struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string
|
2023-10-31 22:40:14 +00:00
|
|
|
DisplayName string
|
2023-12-14 19:47:54 +00:00
|
|
|
Permissions pq.StringArray `gorm:"type:text[]"`
|
|
|
|
IsBanned bool
|
2023-11-05 01:58:00 +00:00
|
|
|
Profiles []DB_Profile `gorm:"foreignkey:PersonID"`
|
2023-12-10 23:54:31 +00:00
|
|
|
Stats []DB_SeasonStat `gorm:"foreignkey:PersonID"`
|
2024-01-03 23:25:17 +00:00
|
|
|
Friends pq.StringArray `gorm:"type:text[]"`
|
2023-12-10 00:52:59 +00:00
|
|
|
Discord DB_DiscordPerson `gorm:"foreignkey:PersonID"`
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Person) TableName() string {
|
|
|
|
return "Persons"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_Profile struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
PersonID string
|
|
|
|
Items []DB_Item `gorm:"foreignkey:ProfileID"`
|
|
|
|
Gifts []DB_Gift `gorm:"foreignkey:ProfileID"`
|
|
|
|
Quests []DB_Quest `gorm:"foreignkey:ProfileID"`
|
2023-10-31 22:40:14 +00:00
|
|
|
Attributes []DB_PAttribute `gorm:"foreignkey:ProfileID"`
|
2023-11-20 21:20:26 +00:00
|
|
|
Loadouts []DB_Loadout `gorm:"foreignkey:ProfileID"`
|
2023-11-05 01:58:00 +00:00
|
|
|
Type string
|
2023-12-10 00:52:59 +00:00
|
|
|
Revision int
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Profile) TableName() string {
|
|
|
|
return "Profiles"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_PAttribute struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
2023-10-31 22:40:14 +00:00
|
|
|
ProfileID string
|
2023-11-05 01:58:00 +00:00
|
|
|
Key string
|
2023-11-01 00:05:17 +00:00
|
|
|
ValueJSON string
|
2023-11-05 01:58:00 +00:00
|
|
|
Type string
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_PAttribute) TableName() string {
|
|
|
|
return "Attributes"
|
|
|
|
}
|
|
|
|
|
2023-11-20 21:20:26 +00:00
|
|
|
type DB_Loadout struct {
|
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
ProfileID string
|
|
|
|
TemplateID string
|
|
|
|
LockerName string
|
|
|
|
BannerID string
|
|
|
|
BannerColorID string
|
|
|
|
CharacterID string
|
|
|
|
PickaxeID string
|
|
|
|
BackpackID string
|
|
|
|
GliderID string
|
|
|
|
DanceID pq.StringArray `gorm:"type:text[]"`
|
|
|
|
ItemWrapID pq.StringArray `gorm:"type:text[]"`
|
|
|
|
ContrailID string
|
|
|
|
LoadingScreenID string
|
|
|
|
MusicPackID string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Loadout) TableName() string {
|
|
|
|
return "Loadouts"
|
|
|
|
}
|
|
|
|
|
2023-10-31 22:40:14 +00:00
|
|
|
type DB_Item struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
ProfileID string
|
2023-10-31 22:40:14 +00:00
|
|
|
TemplateID string
|
2023-11-05 01:58:00 +00:00
|
|
|
Quantity int
|
|
|
|
Favorite bool
|
|
|
|
HasSeen bool
|
|
|
|
Variants []DB_VariantChannel `gorm:"foreignkey:ItemID"`
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Item) TableName() string {
|
|
|
|
return "Items"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_VariantChannel struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
ItemID string
|
2023-11-01 21:33:25 +00:00
|
|
|
Channel string
|
2023-11-05 01:58:00 +00:00
|
|
|
Owned pq.StringArray `gorm:"type:text[]"`
|
|
|
|
Active string
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_VariantChannel) TableName() string {
|
|
|
|
return "Variants"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_Quest struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
ProfileID string
|
2023-10-31 22:40:14 +00:00
|
|
|
TemplateID string
|
2023-11-05 01:58:00 +00:00
|
|
|
State string
|
2023-10-31 22:40:14 +00:00
|
|
|
Objectives pq.StringArray `gorm:"type:text[]"`
|
|
|
|
ObjectiveCounts pq.Int64Array `gorm:"type:bigint[]"`
|
2023-11-05 01:58:00 +00:00
|
|
|
BundleID string
|
2023-10-31 22:40:14 +00:00
|
|
|
ScheduleID string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Quest) TableName() string {
|
|
|
|
return "Quests"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_Gift struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
ProfileID string
|
2023-10-31 22:40:14 +00:00
|
|
|
TemplateID string
|
2023-11-05 01:58:00 +00:00
|
|
|
Quantity int
|
|
|
|
FromID string
|
|
|
|
GiftedAt int64
|
|
|
|
Message string
|
|
|
|
Loot []DB_Loot `gorm:"foreignkey:GiftID"`
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Gift) TableName() string {
|
|
|
|
return "Gifts"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_Loot struct {
|
2023-11-05 01:58:00 +00:00
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
GiftID string
|
2023-10-31 22:40:14 +00:00
|
|
|
TemplateID string
|
2023-11-05 01:58:00 +00:00
|
|
|
Quantity int
|
|
|
|
ProfileType string
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_Loot) TableName() string {
|
|
|
|
return "Loot"
|
2023-12-10 00:52:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type DB_DiscordPerson struct {
|
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
PersonID string
|
|
|
|
Username string
|
2023-12-16 22:08:37 +00:00
|
|
|
Avatar string
|
|
|
|
Banner string
|
2023-12-10 00:52:59 +00:00
|
|
|
AccessToken string
|
|
|
|
RefreshToken string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_DiscordPerson) TableName() string {
|
2023-12-10 23:54:31 +00:00
|
|
|
return "Discords"
|
|
|
|
}
|
|
|
|
|
|
|
|
type DB_SeasonStat struct {
|
|
|
|
ID string `gorm:"primary_key"`
|
|
|
|
PersonID string
|
|
|
|
Build string
|
|
|
|
XP int
|
2023-12-26 03:18:12 +00:00
|
|
|
Level int
|
2023-12-17 00:43:17 +00:00
|
|
|
LevelClaimed int
|
2023-12-26 03:18:12 +00:00
|
|
|
Stars int
|
|
|
|
Tier int
|
2023-12-10 23:54:31 +00:00
|
|
|
TierClaimed int
|
|
|
|
}
|
|
|
|
|
|
|
|
func (DB_SeasonStat) TableName() string {
|
|
|
|
return "Stats"
|
2023-10-31 22:40:14 +00:00
|
|
|
}
|