package model import ( "github.com/Kichiyaki/gopgutil/v10" "github.com/go-pg/pg/v10" "github.com/go-pg/pg/v10/orm" ) type Server struct { tableName struct{} `pg:",alias:server"` ID string `pg:",pk" json:"id" gqlgen:"id"` Lang string `pg:",use_zero"` CoordsTranslation string `pg:",use_zero"` Groups []*Group `pg:"rel:has-many"` } type ServerFilter struct { ID []string DefaultFilter } func (f *ServerFilter) ApplyWithAlias(q *orm.Query, alias string) (*orm.Query, error) { if len(f.ID) > 0 { q = q.Where(gopgutil.BuildConditionArray("?"), gopgutil.AddAliasToColumnName("id", alias), pg.Array(f.ID)) } return f.DefaultFilter.Apply(q) } func (f *ServerFilter) Apply(q *orm.Query) (*orm.Query, error) { return f.ApplyWithAlias(q, "server") }