add Ennoblement, PlayerHistory, ServerStats, Stats, TribeChange and TribeHistory models | rename current Ennoblement model to LiveEnnoblement

This commit is contained in:
Dawid Wysokiński 2020-06-20 16:17:29 +02:00
parent 9ae1e58e71
commit df8e201d51
9 changed files with 229 additions and 9 deletions

View File

@ -3,11 +3,44 @@ package models
import "time"
type Ennoblement struct {
VillageID int `gqlgen:"-" json:"villageID"`
Village *Village `gqlgen:"-" json:"village,omitempty"`
NewOwnerID int `gqlgen:"-" json:"newOwnerID"`
NewOwner *Player `gqlgen:"-" json:"newOwner,omitempty"`
OldOwnerID int `gqlgen:"-" json:"oldOwnerID"`
OldOwner *Player `gqlgen:"-" json:"oldOwner,omitempty"`
EnnobledAt time.Time `json:"ennobledAt" gqlgen:"ennobledAt"`
tableName struct{} `pg:"?SERVER.ennoblements,alias:ennoblement"`
VillageID int `gqlgen:"-" json:"villageID" xml:"villageID"`
Village *Village `gqlgen:"-" json:"village,omitempty" xml:"village"`
NewOwnerID int `gqlgen:"-" json:"newOwnerID" xml:"newOwnerID"`
NewOwner *Player `gqlgen:"-" json:"newOwner,omitempty" xml:"newOwner"`
NewOwnerTribeID int `json:"newOwnerTribeID" gqlgen:"newOwnerTribeID" xml:"newOwnerTribeID"`
NewOwnerTribe *Tribe `json:"newOwnerTribe,omitempty" gqlgen:"-" xml:"newOwnerTribe"`
OldOwnerID int `gqlgen:"-" json:"oldOwnerID" xml:"oldOwnerID"`
OldOwner *Player `gqlgen:"-" json:"oldOwner,omitempty" xml:"oldOwner"`
OldOwnerTribeID int `json:"oldOwnerTribeID" gqlgen:"oldOwnerTribeID" xml:"oldOwnerTribeID"`
OldOwnerTribe *Tribe `json:"oldOwnerTribe,omitempty" gqlgen:"-" xml:"oldOwnerTribe"`
EnnobledAt time.Time `pg:"default:now(),use_zero" json:"ennobledAt" gqlgen:"ennobledAt" xml:"ennobledAt"`
}
type EnnoblementFilter struct {
tableName struct{} `urlstruct:"ennoblement"`
VillageID []int `json:"villageID" gqlgen:"villageID" xml:"villageID"`
VillageIdNEQ []int `json:"villageIDNEQ" gqlgen:"villageIDNEQ" xml:"villageIDNEQ"`
NewOwnerID []int `json:"newOwnerID" gqlgen:"newOwnerID" xml:"newOwnerID"`
NewOwnerIdNEQ []int `json:"newOwnerIdNEQ" gqlgen:"newOwnerIdNEQ" xml:"newOwnerIdNEQ"`
NewOwnerTribeID []int `json:"newOwnerTribeID" gqlgen:"newOwnerTribeID" xml:"newOwnerTribeID"`
NewOwnerTribeIdNEQ []int `json:"newOwnerTribeIDNEQ" gqlgen:"newOwnerTribeIDNEQ" xml:"newOwnerTribeIDNEQ"`
OldOwnerID []int `json:"oldOwnerID" gqlgen:"oldOwnerID" xml:"oldOwnerID"`
OldOwnerIdNEQ []int `json:"oldOwnerIdNEQ" gqlgen:"oldOwnerIdNEQ" xml:"oldOwnerIdNEQ"`
OldOwnerTribeID []int `json:"oldOwnerTribeID" gqlgen:"oldOwnerTribeID" xml:"oldOwnerTribeID"`
OldOwnerTribeIdNEQ []int `json:"oldOwnerTribeIDNEQ" gqlgen:"oldOwnerTribeIDNEQ" xml:"oldOwnerTribeIDNEQ"`
EnnobledAt time.Time `json:"ennobledAt" gqlgen:"ennobledAt" xml:"ennobledAt"`
EnnobledAtGT time.Time `json:"ennobledAtGT" gqlgen:"ennobledAtGT" xml:"ennobledAtGT"`
EnnobledAtGTE time.Time `json:"ennobledAtGTE" gqlgen:"ennobledAtGTE" xml:"ennobledAtGTE"`
EnnobledAtLT time.Time `json:"ennobledAtLT" gqlgen:"ennobledAtLT" xml:"ennobledAtLT"`
EnnobledAtLTE time.Time `json:"ennobledAtLTE" gqlgen:"ennobledAtLTE" xml:"ennobledAtLTE"`
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset" xml:"offset"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit" xml:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort" xml:"sort"`
}

View File

@ -0,0 +1,13 @@
package models
import "time"
type LiveEnnoblement struct {
VillageID int `gqlgen:"-" json:"villageID"`
Village *Village `gqlgen:"-" json:"village,omitempty"`
NewOwnerID int `gqlgen:"-" json:"newOwnerID"`
NewOwner *Player `gqlgen:"-" json:"newOwner,omitempty"`
OldOwnerID int `gqlgen:"-" json:"oldOwnerID"`
OldOwner *Player `gqlgen:"-" json:"oldOwner,omitempty"`
EnnobledAt time.Time `pg:"default:now(),use_zero" json:"ennobledAt" gqlgen:"ennobledAt"`
}

View File

@ -5,7 +5,7 @@ type Player struct {
ID int `json:"id" pg:",pk" gqlgen:"id"`
Name string `json:"name" gqlgen:"name"`
TotalVillages int `json:"total_villages" pg:",use_zero" gqlgen:"totalVillages"`
TotalVillages int `json:"totalVillages" pg:",use_zero" gqlgen:"totalVillages"`
Points int `json:"points" pg:",use_zero" gqlgen:"points"`
Rank int `json:"rank" pg:",use_zero" gqlgen:"rank"`
Exist *bool `json:"exist" pg:",use_zero" gqlgen:"exist"`

35
models/player_history.go Normal file
View File

@ -0,0 +1,35 @@
package models
import "time"
type PlayerHistory struct {
tableName struct{} `pg:"?SERVER.player_history,alias:player_history"`
OpponentsDefeated
PlayerID int `json:"playerID" gqlgen:"playerID" xml:"playerID"`
Player *Player `json:"player" gqlgen:"-" xml:"player"`
TotalVillages int `json:"totalVillages" pg:",use_zero" gqlgen:"totalVillages" xml:"totalVillages"`
Points int `json:"points" pg:",use_zero" gqlgen:"points" xml:"points"`
Rank int `json:"rank" pg:",use_zero" gqlgen:"rank" xml:"rank"`
TribeID int `json:"-" pg:",use_zero" gqlgen:"tribeID" xml:"tribeID"`
Tribe *Tribe `json:"tribe,omitempty" gqlgen:"-" xml:"tribe"`
CreatedAt time.Time `pg:"default:now(),use_zero" json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
}
type PlayerHistoryFilter struct {
tableName struct{} `urlstruct:"player_history"`
PlayerID []int `json:"playerID" gqlgen:"playerID" xml:"playerID"`
PlayerIdNEQ []int `json:"playerIDNEQ" gqlgen:"playerIDNEQ" xml:"playerIDNEQ"`
CreatedAt time.Time `json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
CreatedAtGT time.Time `json:"createdAtGT" gqlgen:"createdAtGT" xml:"createdAtGT"`
CreatedAtGTE time.Time `json:"createdAtGTE" gqlgen:"createdAtGTE" xml:"createdAtGTE"`
CreatedAtLT time.Time `json:"createdAtLT" gqlgen:"createdAtLT" xml:"createdAtLT"`
CreatedAtLTE time.Time `json:"createdAtLTE" gqlgen:"createdAtLTE" xml:"createdAtLTE"`
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset" xml:"offset"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit" xml:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort" xml:"sort"`
}

View File

@ -59,7 +59,9 @@ type Server struct {
LangVersionTag LanguageTag `json:"langVersionTag" gqlgen:"langVersionTag" xml:"langVersionTag"`
LangVersion *LangVersion `json:"langVersion,omitempty" gqlgen:"-" xml:"langVersion"`
DataUpdatedAt time.Time `pg:"default:now(),use_zero" json:"dataUpdatedAt" gqlgen:"dataUpdatedAt" xml:"dataUpdatedAt"`
DataUpdatedAt time.Time `pg:"default:now(),use_zero" json:"dataUpdatedAt" gqlgen:"dataUpdatedAt" xml:"dataUpdatedAt"`
HistoryUpdatedAt time.Time `pg:"default:now(),use_zero" json:"historyUpdatedAt" gqlgen:"historyUpdatedAt" xml:"historyUpdatedAt"`
StatsUpdatedAt time.Time `pg:"default:now(),use_zero" json:"statsUpdatedAt" gqlgen:"statsUpdatedAt" xml:"statsUpdatedAt"`
}
type ServerFilter struct {

30
models/server_stats.go Normal file
View File

@ -0,0 +1,30 @@
package models
import (
"context"
"time"
)
type ServerStats struct {
tableName struct{} `pg:"?SERVER.stats,alias:stats"`
ActivePlayers int `json:"activePlayers" gqlgen:"activePlayers" xml:"activePlayers"`
InactivePlayers int `json:"inactivePlayers" gqlgen:"inactivePlayers" xml:"inactivePlayers"`
Players int `json:"players" gqlgen:"players" xml:"players"`
ActiveTribes int `json:"activeTribes" gqlgen:"activeTribes" xml:"activeTribes"`
InactiveTribes int `json:"inactiveTribes" gqlgen:"inactiveTribes" xml:"inactiveTribes"`
Tribes int `json:"tribes" gqlgen:"tribes" xml:"tribes"`
Villages int `json:"villages" gqlgen:"villages" xml:"villages"`
BonusVillages int `json:"bonusVillages" gqlgen:"bonusVillages" xml:"bonusVillages"`
BarbarianVillages int `json:"barbarianVillages" gqlgen:"barbarianVillages" xml:"barbarianVillages"`
PlayerVillages int `json:"playerVillages" gqlgen:"playerVillages" xml:"playerVillages"`
CreatedAt time.Time `pg:"default:now(),use_zero" json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
}
func (s *ServerStats) BeforeInsert(ctx context.Context) (context.Context, error) {
if s.CreatedAt.IsZero() {
s.CreatedAt = time.Now()
}
return ctx, nil
}

37
models/stats.go Normal file
View File

@ -0,0 +1,37 @@
package models
import (
"context"
"time"
)
type Stats struct {
tableName struct{} `pg:"stats,alias:stats" json:"tableName" gqlgen:"tableName" xml:"tableName"`
ActiveServers int `json:"activeServers" gqlgen:"activeServers" xml:"activeServers"`
InactiveServers int `json:"inactiveServers" gqlgen:"inactiveServers" xml:"inactiveServers"`
Servers int `json:"servers" gqlgen:"servers" xml:"servers"`
ServerStats
}
func (s *Stats) BeforeInsert(ctx context.Context) (context.Context, error) {
if s.CreatedAt.IsZero() {
s.CreatedAt = time.Now()
}
return ctx, nil
}
type StatsFilter struct {
tableName struct{} `urlstruct:"stats"`
CreatedAt time.Time `json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
CreatedAtGT time.Time `json:"createdAtGT" gqlgen:"createdAtGT" xml:"createdAtGT"`
CreatedAtGTE time.Time `json:"createdAtGTE" gqlgen:"createdAtGTE" xml:"createdAtGTE"`
CreatedAtLT time.Time `json:"createdAtLT" gqlgen:"createdAtLT" xml:"createdAtLT"`
CreatedAtLTE time.Time `json:"createdAtLTE" gqlgen:"createdAtLTE" xml:"createdAtLTE"`
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset" xml:"offset"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit" xml:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort" xml:"sort"`
}

35
models/tribe_change.go Normal file
View File

@ -0,0 +1,35 @@
package models
import "time"
type TribeChange struct {
ID int `json:"id" gqlgen:"id" xml:"id"`
PlayerID int `json:"playerID" gqlgen:"playerID" xml:"playerID"`
Player *Player `json:"player,omitempty" gqlgen:"-" xml:"player"`
OldTribeID int `json:"oldTribeID" gqlgen:"oldTribeID" xml:"oldTribeID"`
OldTribe *Tribe `json:"oldTribe,omitempty" gqlgen:"-" xml:"oldTribe"`
NewTribeID int `json:"newTribeID" gqlgen:"newTribeID" xml:"newTribeID"`
NewTribe *Tribe `json:"newTribe,omitempty" gqlgen:"-" xml:"newTribe"`
CreatedAt time.Time `pg:"default:now(),use_zero" json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
}
type TribeChangeFilter struct {
ID []int `json:"id" gqlgen:"id" xml:"id"`
IdNEQ []int `json:"idNEQ" gqlgen:"idNEQ" xml:"idNEQ"`
OldTribeID []int `json:"oldTribeID" gqlgen:"oldTribeID" xml:"oldTribeID"`
OldTribeIdNEQ []int `json:"oldTribeIDNEQ" gqlgen:"oldTribeIDNEQ" xml:"oldTribeIDNEQ"`
NewTribeID []int `json:"newTribeID" gqlgen:"newTribeID" xml:"newTribeID"`
NewTribeIdNEQ []int `json:"newTribeIDNEQ" gqlgen:"newTribeIDNEQ" xml:"newTribeIDNEQ"`
CreatedAt time.Time `json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
CreatedAtGT time.Time `json:"createdAtGT" gqlgen:"createdAtGT" xml:"createdAtGT"`
CreatedAtGTE time.Time `json:"createdAtGTE" gqlgen:"createdAtGTE" xml:"createdAtGTE"`
CreatedAtLT time.Time `json:"createdAtLT" gqlgen:"createdAtLT" xml:"createdAtLT"`
CreatedAtLTE time.Time `json:"createdAtLTE" gqlgen:"createdAtLTE" xml:"createdAtLTE"`
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset" xml:"offset"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit" xml:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort" xml:"sort"`
}

35
models/tribe_history.go Normal file
View File

@ -0,0 +1,35 @@
package models
import "time"
type TribeHistory struct {
tableName struct{} `pg:"?SERVER.tribe_history,alias:tribe_history"`
OpponentsDefeated
TribeID int `json:"-" pg:",use_zero" gqlgen:"tribeID" xml:"tribeID"`
Tribe *Tribe `json:"tribe,omitempty" gqlgen:"-" xml:"tribe"`
TotalMembers int `json:"totalMembers" gqlgen:"totalMembers" pg:",use_zero"`
TotalVillages int `json:"totalVillages" gqlgen:"totalVillages" pg:",use_zero"`
Points int `json:"points" gqlgen:"points" pg:",use_zero"`
AllPoints int `json:"allPoints" gqlgen:"allPoints" pg:",use_zero"`
Rank int `json:"rank" gqlgen:"rank" pg:",use_zero"`
CreatedAt time.Time `pg:"default:now(),use_zero" json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
}
type TribeHistoryFilter struct {
tableName struct{} `urlstruct:"tribe_history"`
TribeID []int `json:"tribeID" gqlgen:"tribeID" xml:"tribeID"`
TribeIdNEQ []int `json:"tribeIDNEQ" gqlgen:"tribeIDNEQ" xml:"tribeIDNEQ"`
CreatedAt time.Time `json:"createdAt" gqlgen:"createdAt" xml:"createdAt"`
CreatedAtGT time.Time `json:"createdAtGT" gqlgen:"createdAtGT" xml:"createdAtGT"`
CreatedAtGTE time.Time `json:"createdAtGTE" gqlgen:"createdAtGTE" xml:"createdAtGTE"`
CreatedAtLT time.Time `json:"createdAtLT" gqlgen:"createdAtLT" xml:"createdAtLT"`
CreatedAtLTE time.Time `json:"createdAtLTE" gqlgen:"createdAtLTE" xml:"createdAtLTE"`
Offset int `urlstruct:",nowhere" json:"offset" gqlgen:"offset" xml:"offset"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit" xml:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort" xml:"sort"`
}