[WIP] update EnnoblementFilter, add EnnoblementRelationshipAndSortAppender
This commit is contained in:
parent
fe0c688b47
commit
a8cdb0425a
|
@ -16,8 +16,6 @@ type DailyPlayerStats struct {
|
|||
}
|
||||
|
||||
type DailyPlayerStatsFilter struct {
|
||||
tableName struct{} `urlstruct:"daily_player_stats"`
|
||||
|
||||
PlayerID []int `json:"playerID" gqlgen:"playerID" xml:"playerID"`
|
||||
PlayerIdNEQ []int `json:"playerIDNEQ" gqlgen:"playerIDNEQ" xml:"playerIDNEQ"`
|
||||
PlayerFilter *PlayerFilter `urlstruct:",nowhere" json:"playerFilter" gqlgen:"playerFilter" xml:"playerFilter"`
|
||||
|
@ -27,8 +25,4 @@ type DailyPlayerStatsFilter struct {
|
|||
CreateDateGTE time.Time `json:"createDateGTE" gqlgen:"createDateGTE" xml:"createDateGTE"`
|
||||
CreateDateLT time.Time `json:"createDateLT" gqlgen:"createDateLT" xml:"createDateLT"`
|
||||
CreateDateLTE time.Time `json:"createDateLTE" gqlgen:"createDateLTE" xml:"createDateLTE"`
|
||||
|
||||
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"`
|
||||
}
|
||||
|
|
|
@ -21,8 +21,6 @@ type DailyTribeStats struct {
|
|||
}
|
||||
|
||||
type DailyTribeStatsFilter struct {
|
||||
tableName struct{} `urlstruct:"daily_tribe_stats"`
|
||||
|
||||
TribeID []int `json:"tribeID" gqlgen:"tribeID" xml:"tribeID"`
|
||||
TribeIdNEQ []int `json:"tribeIDNEQ" gqlgen:"tribeIDNEQ" xml:"tribeIDNEQ"`
|
||||
TribeFilter *TribeFilter `urlstruct:",nowhere" json:"tribeFilter" gqlgen:"tribeFilter" xml:"tribeFilter"`
|
||||
|
@ -32,8 +30,4 @@ type DailyTribeStatsFilter struct {
|
|||
CreateDateGTE time.Time `json:"createDateGTE" gqlgen:"createDateGTE" xml:"createDateGTE"`
|
||||
CreateDateLT time.Time `json:"createDateLT" gqlgen:"createDateLT" xml:"createDateLT"`
|
||||
CreateDateLTE time.Time `json:"createDateLTE" gqlgen:"createDateLTE" xml:"createDateLTE"`
|
||||
|
||||
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"`
|
||||
}
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
package models
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/go-pg/pg/v10"
|
||||
"github.com/go-pg/pg/v10/orm"
|
||||
)
|
||||
|
||||
type Ennoblement struct {
|
||||
tableName struct{} `pg:"?SERVER.ennoblements,alias:ennoblement"`
|
||||
|
@ -25,21 +30,43 @@ type EnnoblementFilterOr struct {
|
|||
OldOwnerTribeID []int `json:"oldOwnerTribeID" gqlgen:"oldOwnerTribeID" xml:"oldOwnerTribeID"`
|
||||
}
|
||||
|
||||
func (f *EnnoblementFilterOr) WhereWithAlias(q *orm.Query, alias string) *orm.Query {
|
||||
q = q.WhereGroup(func(q *orm.Query) (*orm.Query, error) {
|
||||
if !isZero(f.NewOwnerID) {
|
||||
q = q.WhereOr(buildConditionArray(addAliasToColumnName("new_owner_id", alias)), pg.Array(f.NewOwnerID))
|
||||
}
|
||||
if !isZero(f.NewOwnerTribeID) {
|
||||
q = q.WhereOr(buildConditionArray(addAliasToColumnName("new_owner_tribe_id", alias)), pg.Array(f.NewOwnerTribeID))
|
||||
}
|
||||
if !isZero(f.OldOwnerID) {
|
||||
q = q.WhereOr(buildConditionArray(addAliasToColumnName("old_owner_id", alias)), pg.Array(f.OldOwnerID))
|
||||
}
|
||||
if !isZero(f.OldOwnerTribeID) {
|
||||
q = q.WhereOr(buildConditionArray(addAliasToColumnName("old_owner_tribe_id", alias)), pg.Array(f.OldOwnerTribeID))
|
||||
}
|
||||
return q, nil
|
||||
})
|
||||
return q
|
||||
}
|
||||
|
||||
type EnnoblementFilter struct {
|
||||
tableName struct{} `urlstruct:"ennoblement"`
|
||||
VillageID []int `json:"villageID" gqlgen:"villageID" xml:"villageID"`
|
||||
VillageIDNEQ []int `json:"villageIDNEQ" gqlgen:"villageIDNEQ" xml:"villageIDNEQ"`
|
||||
VillageFilter *VillageFilter `json:"villageFilter" xml:"villageFilter" gqlgen:"villageFilter"`
|
||||
|
||||
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"`
|
||||
NewOwnerFilter *PlayerFilter `json:"newOwnerFilter" xml:"newOwnerFilter" gqlgen:"newOwnerFilter"`
|
||||
NewOwnerTribeID []int `json:"newOwnerTribeID" gqlgen:"newOwnerTribeID" xml:"newOwnerTribeID"`
|
||||
NewOwnerTribeIDNEQ []int `json:"newOwnerTribeIDNEQ" gqlgen:"newOwnerTribeIDNEQ" xml:"newOwnerTribeIDNEQ"`
|
||||
NewOwnerTribeFilter *TribeFilter `json:"newOwnerTribeFilter" xml:"newOwnerTribeFilter" gqlgen:"newOwnerTribeFilter"`
|
||||
|
||||
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"`
|
||||
OldOwnerID []int `json:"oldOwnerID" gqlgen:"oldOwnerID" xml:"oldOwnerID"`
|
||||
OldOwnerIDNEQ []int `json:"oldOwnerIDNEQ" gqlgen:"oldOwnerIDNEQ" xml:"oldOwnerIDNEQ"`
|
||||
OldOwnerFilter *PlayerFilter `json:"oldOwnerFilter" xml:"oldOwnerFilter" gqlgen:"oldOwnerFilter"`
|
||||
OldOwnerTribeID []int `json:"oldOwnerTribeID" gqlgen:"oldOwnerTribeID" xml:"oldOwnerTribeID"`
|
||||
OldOwnerTribeIDNEQ []int `json:"oldOwnerTribeIDNEQ" gqlgen:"oldOwnerTribeIDNEQ" xml:"oldOwnerTribeIDNEQ"`
|
||||
OldOwnerTribeFilter *TribeFilter `json:"oldOwnerTribeFilter" xml:"oldOwnerTribeFilter" gqlgen:"oldOwnerTribeFilter"`
|
||||
|
||||
EnnobledAt time.Time `json:"ennobledAt" gqlgen:"ennobledAt" xml:"ennobledAt"`
|
||||
EnnobledAtGT time.Time `json:"ennobledAtGT" gqlgen:"ennobledAtGT" xml:"ennobledAtGT"`
|
||||
|
@ -47,9 +74,139 @@ type EnnoblementFilter struct {
|
|||
EnnobledAtLT time.Time `json:"ennobledAtLT" gqlgen:"ennobledAtLT" xml:"ennobledAtLT"`
|
||||
EnnobledAtLTE time.Time `json:"ennobledAtLTE" gqlgen:"ennobledAtLTE" xml:"ennobledAtLTE"`
|
||||
|
||||
Or *EnnoblementFilterOr `urlstruct:",nowhere" json:"or" gqlgen:"or" xml:"or"`
|
||||
|
||||
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"`
|
||||
Or *EnnoblementFilterOr `json:"or" gqlgen:"or" xml:"or"`
|
||||
}
|
||||
|
||||
func (f *EnnoblementFilter) WhereWithAlias(q *orm.Query, alias string) (*orm.Query, error) {
|
||||
if !isZero(f.EnnobledAt) {
|
||||
q = q.Where(buildConditionEquals(addAliasToColumnName("ennobled_at", alias)), f.EnnobledAt)
|
||||
}
|
||||
if !isZero(f.EnnobledAtGT) {
|
||||
q = q.Where(buildConditionGT(addAliasToColumnName("ennobled_at", alias)), f.EnnobledAtGT)
|
||||
}
|
||||
if !isZero(f.EnnobledAtGTE) {
|
||||
q = q.Where(buildConditionGTE(addAliasToColumnName("ennobled_at", alias)), f.EnnobledAtGTE)
|
||||
}
|
||||
if !isZero(f.EnnobledAtLT) {
|
||||
q = q.Where(buildConditionLT(addAliasToColumnName("ennobled_at", alias)), f.EnnobledAtLT)
|
||||
}
|
||||
if !isZero(f.EnnobledAtLTE) {
|
||||
q = q.Where(buildConditionLTE(addAliasToColumnName("ennobled_at", alias)), f.EnnobledAtLTE)
|
||||
}
|
||||
|
||||
if !isZero(f.VillageID) {
|
||||
q = q.Where(buildConditionArray(addAliasToColumnName("village_id", alias)), pg.Array(f.VillageID))
|
||||
}
|
||||
if !isZero(f.VillageIDNEQ) {
|
||||
q = q.Where(buildConditionNotInArray(addAliasToColumnName("village_id", alias)), pg.Array(f.VillageIDNEQ))
|
||||
}
|
||||
|
||||
if !isZero(f.NewOwnerID) {
|
||||
q = q.Where(buildConditionArray(addAliasToColumnName("new_owner_id", alias)), pg.Array(f.NewOwnerID))
|
||||
}
|
||||
if !isZero(f.NewOwnerIDNEQ) {
|
||||
q = q.Where(buildConditionNotInArray(addAliasToColumnName("new_owner_id", alias)), pg.Array(f.NewOwnerIDNEQ))
|
||||
}
|
||||
if !isZero(f.NewOwnerTribeID) {
|
||||
q = q.Where(buildConditionArray(addAliasToColumnName("new_owner_tribe_id", alias)), pg.Array(f.NewOwnerTribeID))
|
||||
}
|
||||
if !isZero(f.NewOwnerTribeIDNEQ) {
|
||||
q = q.Where(buildConditionNotInArray(addAliasToColumnName("new_owner_tribe_id", alias)), pg.Array(f.NewOwnerTribeIDNEQ))
|
||||
}
|
||||
|
||||
if !isZero(f.OldOwnerID) {
|
||||
q = q.Where(buildConditionArray(addAliasToColumnName("old_owner_id", alias)), pg.Array(f.OldOwnerID))
|
||||
}
|
||||
if !isZero(f.OldOwnerIDNEQ) {
|
||||
q = q.Where(buildConditionNotInArray(addAliasToColumnName("old_owner_id", alias)), pg.Array(f.OldOwnerIDNEQ))
|
||||
}
|
||||
if !isZero(f.OldOwnerTribeID) {
|
||||
q = q.Where(buildConditionArray(addAliasToColumnName("old_owner_tribe_id", alias)), pg.Array(f.OldOwnerTribeID))
|
||||
}
|
||||
if !isZero(f.OldOwnerTribeIDNEQ) {
|
||||
q = q.Where(buildConditionNotInArray(addAliasToColumnName("old_owner_tribe_id", alias)), pg.Array(f.OldOwnerTribeIDNEQ))
|
||||
}
|
||||
|
||||
if f.Or != nil {
|
||||
q = f.Or.WhereWithAlias(q, alias)
|
||||
}
|
||||
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (f *EnnoblementFilter) Where(q *orm.Query) (*orm.Query, error) {
|
||||
return f.WhereWithAlias(q, "ennoblement")
|
||||
}
|
||||
|
||||
type EnnoblementRelationshipAndSortAppender struct {
|
||||
Filter *EnnoblementFilter
|
||||
Sort []string
|
||||
}
|
||||
|
||||
func (a *EnnoblementRelationshipAndSortAppender) Append(q *orm.Query) (*orm.Query, error) {
|
||||
var err error
|
||||
villageRequired := findStringWithPrefix(a.Sort, "village.") != ""
|
||||
if a.Filter.VillageFilter != nil {
|
||||
q, err = a.Filter.VillageFilter.WhereWithAlias(q, "village")
|
||||
if err != nil {
|
||||
return q, err
|
||||
}
|
||||
villageRequired = true
|
||||
}
|
||||
|
||||
oldOwnerRequired := findStringWithPrefix(a.Sort, "old_owner.") != ""
|
||||
if a.Filter.OldOwnerFilter != nil {
|
||||
q, err = a.Filter.OldOwnerFilter.WhereWithAlias(q, "old_owner")
|
||||
if err != nil {
|
||||
return q, err
|
||||
}
|
||||
oldOwnerRequired = true
|
||||
}
|
||||
oldOwnerTribeRequired := findStringWithPrefix(a.Sort, "old_owner_tribe.") != ""
|
||||
if a.Filter.OldOwnerTribeFilter != nil {
|
||||
q, err = a.Filter.OldOwnerTribeFilter.WhereWithAlias(q, "old_owner_tribe")
|
||||
if err != nil {
|
||||
return q, err
|
||||
}
|
||||
oldOwnerTribeRequired = true
|
||||
}
|
||||
|
||||
newOwnerRequired := findStringWithPrefix(a.Sort, "new_owner.") != ""
|
||||
if a.Filter.NewOwnerFilter != nil {
|
||||
q, err = a.Filter.NewOwnerFilter.WhereWithAlias(q, "new_owner")
|
||||
if err != nil {
|
||||
return q, err
|
||||
}
|
||||
newOwnerRequired = true
|
||||
}
|
||||
newOwnerTribeRequired := findStringWithPrefix(a.Sort, "new_owner_tribe.") != ""
|
||||
if a.Filter.NewOwnerTribeFilter != nil {
|
||||
q, err = a.Filter.NewOwnerTribeFilter.WhereWithAlias(q, "new_owner_tribe")
|
||||
if err != nil {
|
||||
return q, err
|
||||
}
|
||||
newOwnerTribeRequired = true
|
||||
}
|
||||
|
||||
if !isZero(a.Sort) {
|
||||
q = q.Order(a.Sort...)
|
||||
}
|
||||
|
||||
if villageRequired {
|
||||
q = q.Relation("Village._")
|
||||
}
|
||||
if oldOwnerRequired {
|
||||
q = q.Relation("OldOwner._")
|
||||
}
|
||||
if oldOwnerTribeRequired {
|
||||
q = q.Relation("OldOwnerTribe._")
|
||||
}
|
||||
if newOwnerRequired {
|
||||
q = q.Relation("NewOwner._")
|
||||
}
|
||||
if newOwnerTribeRequired {
|
||||
q = q.Relation("NewOwnerTribe._")
|
||||
}
|
||||
|
||||
return q, nil
|
||||
}
|
||||
|
|
Reference in New Issue