snow/storage/tables.go

277 lines
5.4 KiB
Go
Raw Permalink Normal View History

2023-10-31 22:40:14 +00:00
package storage
2024-02-10 01:55:56 +00:00
import (
"time"
"github.com/lib/pq"
)
2023-10-31 22:40:14 +00:00
type Tabler interface {
TableName() string
}
type DB_Person struct {
ID string
2023-10-31 22:40:14 +00:00
DisplayName string
2024-02-04 15:21:16 +00:00
RefundTickets int
2024-02-09 21:51:26 +00:00
Permissions int64
Receipts []DB_Receipt `gorm:"foreignkey:PersonID"`
Profiles []DB_Profile `gorm:"foreignkey:PersonID"`
2023-12-10 23:54:31 +00:00
Stats []DB_SeasonStat `gorm:"foreignkey:PersonID"`
Discord DB_DiscordPerson `gorm:"foreignkey:PersonID"`
2024-02-04 15:21:16 +00:00
BanHistory []DB_BanStatus `gorm:"foreignkey:PersonID"`
2023-10-31 22:40:14 +00:00
}
func (DB_Person) TableName() string {
return "Persons"
}
2024-01-29 23:46:22 +00:00
type DB_Relationship struct {
2024-01-30 16:34:17 +00:00
FromPersonID string `gorm:"primary_key"`
TowardsPersonID string `gorm:"primary_key"`
2024-01-29 23:46:22 +00:00
Status string
}
func (DB_Relationship) TableName() string {
return "Relationships"
}
type DB_Receipt struct {
ID string `gorm:"primary_key"`
PersonID string `gorm:"index"`
OfferID string
PurchaseDate int64
TotalPaid int
State string
Loot []DB_ReceiptLoot `gorm:"foreignkey:ReceiptID"`
}
func (DB_Receipt) TableName() string {
return "Receipts"
}
type DB_ReceiptLoot struct {
ID string `gorm:"primary_key"`
ReceiptID string `gorm:"index"`
TemplateID string
Quantity int
ProfileType string
}
func (DB_ReceiptLoot) TableName() string {
return "ReceiptLoot"
}
2023-10-31 22:40:14 +00:00
type DB_Profile struct {
ID string `gorm:"primary_key"`
2024-01-31 16:21:04 +00:00
PersonID string `gorm:"index"`
Items []DB_Item `gorm:"foreignkey:ProfileID"`
Gifts []DB_Gift `gorm:"foreignkey:ProfileID"`
Quests []DB_Quest `gorm:"foreignkey:ProfileID"`
2024-02-04 02:05:31 +00:00
Attributes []DB_Attribute `gorm:"foreignkey:ProfileID"`
Loadouts []DB_Loadout `gorm:"foreignkey:ProfileID"`
2024-02-04 15:21:16 +00:00
Purchases []DB_Purchase `gorm:"foreignkey:ProfileID"`
VariantTokens []DB_VariantToken `gorm:"foreignkey:ProfileID"`
Type string
Revision int
2023-10-31 22:40:14 +00:00
}
func (DB_Profile) TableName() string {
return "Profiles"
}
2024-02-04 02:05:31 +00:00
type DB_Attribute struct {
ID string `gorm:"primary_key"`
2023-10-31 22:40:14 +00:00
ProfileID string
Key string
2023-11-01 00:05:17 +00:00
ValueJSON string
Type string
2023-10-31 22:40:14 +00:00
}
2024-02-04 02:05:31 +00:00
func (DB_Attribute) TableName() string {
2023-10-31 22:40:14 +00:00
return "Attributes"
}
type DB_Loadout struct {
ID string `gorm:"primary_key"`
2024-01-31 16:21:04 +00:00
ProfileID string `gorm:"index"`
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 {
ID string `gorm:"primary_key"`
2024-01-31 16:20:13 +00:00
ProfileID string `gorm:"index"`
2023-10-31 22:40:14 +00:00
TemplateID string
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"
}
2024-02-04 15:21:16 +00:00
type DB_VariantChannel struct {
ID string `gorm:"primary_key"`
ItemID string `gorm:"index"`
Channel string
Owned pq.StringArray `gorm:"type:text[]"`
Active string
}
func (DB_VariantChannel) TableName() string {
return "Variants"
}
2024-02-04 02:05:31 +00:00
type DB_Purchase struct {
ID string `gorm:"primary_key"`
ProfileID string `gorm:"index"`
OfferID string
PurchaseDate int64
FreeRefundExpiry int64
RefundExpiry int64
RefundedAt int64
TotalPaid int
2024-02-04 15:21:16 +00:00
Loot []DB_PurchaseLoot `gorm:"foreignkey:PurchaseID"`
2024-02-04 02:05:31 +00:00
}
func (DB_Purchase) TableName() string {
return "Purchases"
}
type DB_PurchaseLoot struct {
ID string `gorm:"primary_key"`
PurchaseID string `gorm:"index"`
TemplateID string
Quantity int
ProfileType string
}
func (DB_PurchaseLoot) TableName() string {
return "PurchaseLoot"
}
2023-10-31 22:40:14 +00:00
type DB_Quest struct {
ID string `gorm:"primary_key"`
2024-01-31 16:21:04 +00:00
ProfileID string `gorm:"index"`
2023-10-31 22:40:14 +00:00
TemplateID string
State string
2023-10-31 22:40:14 +00:00
Objectives pq.StringArray `gorm:"type:text[]"`
ObjectiveCounts pq.Int64Array `gorm:"type:bigint[]"`
BundleID string
2023-10-31 22:40:14 +00:00
ScheduleID string
}
func (DB_Quest) TableName() string {
return "Quests"
}
type DB_Gift struct {
ID string `gorm:"primary_key"`
2024-01-31 16:21:04 +00:00
ProfileID string `gorm:"index"`
2023-10-31 22:40:14 +00:00
TemplateID string
Quantity int
FromID string
GiftedAt int64
Message string
2024-02-04 02:05:31 +00:00
Loot []DB_GiftLoot `gorm:"foreignkey:GiftID"`
2023-10-31 22:40:14 +00:00
}
func (DB_Gift) TableName() string {
return "Gifts"
}
2024-02-04 02:05:31 +00:00
type DB_GiftLoot struct {
ID string `gorm:"primary_key"`
2024-01-31 16:21:04 +00:00
GiftID string `gorm:"index"`
2023-10-31 22:40:14 +00:00
TemplateID string
Quantity int
ProfileType string
2023-10-31 22:40:14 +00:00
}
2024-02-04 02:05:31 +00:00
func (DB_GiftLoot) TableName() string {
return "GiftLoot"
}
type DB_VariantToken struct {
ID string `gorm:"primary_key"`
ProfileID string `gorm:"index"`
TemplateID string
Name string
AutoEquipOnGrant bool
CreateGiftboxOnGrant bool
MarkItemUnseenOnGrant bool
VariantGrants []DB_VariantTokenGrant `gorm:"foreignkey:VariantTokenID"`
}
func (DB_VariantToken) TableName() string {
return "VariantTokens"
}
type DB_VariantTokenGrant struct {
ID string `gorm:"primary_key"`
VariantTokenID string `gorm:"index"`
Channel string
Value string
}
func (DB_VariantTokenGrant) TableName() string {
return "VariantTokenGrants"
}
type DB_DiscordPerson struct {
ID string `gorm:"primary_key"`
PersonID string
Username string
Avatar string
Banner string
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
Season int
2024-02-04 02:05:31 +00:00
SeasonXP int
BookXP int
BookPurchased bool
Hype int
2023-12-10 23:54:31 +00:00
}
func (DB_SeasonStat) TableName() string {
return "Stats"
2024-02-04 02:05:31 +00:00
}
type DB_BanStatus struct {
ID string `gorm:"primary_key"`
PersonID string `gorm:"index"`
IssuedBy string
2024-02-10 01:55:56 +00:00
Expiry time.Time
Reason string
}
func (DB_BanStatus) TableName() string {
return "Bans"
}