add new model SpecialServer, add two new fields to Player model: JoinedAt and DailyGrowth, add one new field to Tribe model: CreatedAt

This commit is contained in:
Dawid Wysokiński 2020-06-22 09:56:46 +02:00
parent 5ae0d5ec33
commit 33cddd7219
4 changed files with 74 additions and 22 deletions

View File

@ -49,10 +49,11 @@ func (lt LanguageTag) MarshalGQL(w io.Writer) {
type LangVersion struct {
tableName struct{} `pg:"alias:lang_version"`
Tag LanguageTag `pg:",pk" json:"tag" gqlgen:"tag"`
Name string `json:"name" gqlgen:"name" pg:",unique"`
Host string `json:"host" gqlgen:"host"`
Timezone string `json:"timezone" gqlgen:"timezone"`
Tag LanguageTag `pg:",pk" json:"tag" gqlgen:"tag"`
Name string `json:"name" gqlgen:"name" pg:",unique"`
Host string `json:"host" gqlgen:"host"`
Timezone string `json:"timezone" gqlgen:"timezone"`
SpecialServers SpecialServers `json:"specialServers" gqlgen:"specialServers"`
}
type LangVersionFilter struct {

View File

@ -1,16 +1,20 @@
package models
import "time"
type Player struct {
tableName struct{} `pg:"?SERVER.players,alias:player"`
ID int `json:"id" pg:",pk" gqlgen:"id"`
Name string `json:"name" gqlgen:"name"`
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"`
TribeID int `json:"-" pg:",use_zero" gqlgen:"tribeID"`
Tribe *Tribe `json:"tribe,omitempty" gqlgen:"-"`
ID int `json:"id" pg:",pk" gqlgen:"id"`
Name string `json:"name" gqlgen:"name"`
Exist *bool `json:"exist" pg:",use_zero" gqlgen:"exist"`
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"`
TribeID int `json:"-" pg:",use_zero" gqlgen:"tribeID"`
Tribe *Tribe `json:"tribe,omitempty" gqlgen:"-"`
DailyGrowth int `json:"dailyGrowth" pg:",use_zero" gqlgen:"dailyGrowth"`
JoinedAt time.Time `json:"joinedAt" pg:"default:now(),use_zero" gqlgen:"joinedAt"`
OpponentsDefeated
}
@ -46,6 +50,18 @@ type PlayerFilter struct {
RankLT int `json:"rankLT" gqlgen:"rankLT" xml:"rankLT"`
RankLTE int `json:"rankLTE" gqlgen:"rankLTE" xml:"rankLTE"`
DailyGrowth int `json:"dailyGrowth" gqlgen:"dailyGrowth" xml:"dailyGrowth"`
DailyGrowthGT int `json:"dailyGrowthGT" gqlgen:"dailyGrowthGT" xml:"dailyGrowthGT"`
DailyGrowthGTE int `json:"dailyGrowthGTE" gqlgen:"dailyGrowthGTE" xml:"dailyGrowthGTE"`
DailyGrowthLT int `json:"dailyGrowthLT" gqlgen:"dailyGrowthLT" xml:"dailyGrowthLT"`
DailyGrowthLTE int `json:"dailyGrowthLTE" gqlgen:"dailyGrowthLTE" xml:"dailyGrowthLTE"`
JoinedAt time.Time `json:"joinedAt" gqlgen:"joinedAt" xml:"joinedAt"`
JoinedAtGT time.Time `json:"joinedAtGT" gqlgen:"joinedAtGT" xml:"joinedAtGT"`
JoinedAtGTE time.Time `json:"joinedAtGTE" gqlgen:"joinedAtGTE" xml:"joinedAtGTE"`
JoinedAtLT time.Time `json:"joinedAtLT" gqlgen:"joinedAtLT" xml:"joinedAtLT"`
JoinedAtLTE time.Time `json:"joinedAtLTE" gqlgen:"joinedAtLTE" xml:"joinedAtLTE"`
TribeID []int `json:"tribeID" gqlgen:"tribeID" xml:"tribeID"`
TribeFilter *TribeFilter `urlstruct:",nowhere" json:"tribeFilter" gqlgen:"tribeFilter" xml:"tribeFilter"`

20
models/special_server.go Normal file
View File

@ -0,0 +1,20 @@
package models
type SpecialServer struct {
tableName struct{} `pg:"special_servers,alias:special_server"`
Tag LanguageTag `json:"tag" gqlgen:"tag" xml:"tag"`
LangVersion *LangVersion `json:"omitempty,langVersion" gqlgen:"-" xml:"langVersion"`
Key string `json:"key" gqlgen:"key" xml:"key"`
}
type SpecialServers []*SpecialServer
func (servers SpecialServers) Contains(key string) bool {
for _, s := range servers {
if s.Key == key {
return true
}
}
return false
}

View File

@ -1,18 +1,21 @@
package models
import "time"
type Tribe struct {
tableName struct{} `pg:"?SERVER.tribes,alias:tribe"`
ID int `json:"id" gqlgen:"id"`
Name string `json:"name" gqlgen:"name"`
Tag string `json:"tag" gqlgen:"tag"`
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"`
Dominance float64 `json:"dominance" gqlgen:"dominance" pg:",use_zero"`
Exist *bool `json:"exist" gqlgen:"exist" pg:",use_zero"`
ID int `json:"id" gqlgen:"id"`
Name string `json:"name" gqlgen:"name"`
Tag string `json:"tag" gqlgen:"tag"`
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"`
Dominance float64 `json:"dominance" gqlgen:"dominance" pg:",use_zero"`
Exist *bool `json:"exist" gqlgen:"exist" pg:",use_zero"`
CreatedAt time.Time `json:"createdAt" pg:"default:now(),use_zero" gqlgen:"createdAt"`
OpponentsDefeated
}
@ -65,6 +68,18 @@ type TribeFilter struct {
RankLT int `json:"rankLT" gqlgen:"rankLT"`
RankLTE int `json:"rankLTE" gqlgen:"rankLTE"`
Dominance int `json:"dominance" gqlgen:"dominance"`
DominanceGT int `json:"dominanceGT" gqlgen:"dominanceGT"`
DominanceGTE int `json:"dominanceGTE" gqlgen:"dominanceGTE"`
DominanceLT int `json:"dominanceLT" gqlgen:"dominanceLT"`
DominanceLTE int `json:"dominanceLTE" gqlgen:"dominanceLTE"`
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"`
Limit int `urlstruct:",nowhere" json:"limit" gqlgen:"limit"`
Sort string `urlstruct:",nowhere" json:"sort" gqlgen:"sort"`