// Code generated by BobGen psql v0.42.5. DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models import ( "context" "encoding/json" "fmt" "io" "time" "github.com/Gleipnir-Technology/bob" "github.com/Gleipnir-Technology/bob/dialect/psql" "github.com/Gleipnir-Technology/bob/dialect/psql/dialect" "github.com/Gleipnir-Technology/bob/dialect/psql/dm" "github.com/Gleipnir-Technology/bob/dialect/psql/sm" "github.com/Gleipnir-Technology/bob/dialect/psql/um" "github.com/Gleipnir-Technology/bob/expr" "github.com/Gleipnir-Technology/bob/mods" "github.com/Gleipnir-Technology/bob/orm" "github.com/Gleipnir-Technology/bob/types" "github.com/Gleipnir-Technology/bob/types/pgtypes" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" "github.com/aarondl/opt/omitnull" "github.com/google/uuid" ) // FieldseekerSamplelocation is an object representing the database table. type FieldseekerSamplelocation struct { Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE Zone null.Val[string] `db:"zone" ` // Original attribute from ArcGIS API is HABITAT Habitat null.Val[string] `db:"habitat" ` // Original attribute from ArcGIS API is PRIORITY Priority null.Val[string] `db:"priority" ` // Original attribute from ArcGIS API is USETYPE Usetype null.Val[string] `db:"usetype" ` // Original attribute from ArcGIS API is ACTIVE Active null.Val[int16] `db:"active" ` // Original attribute from ArcGIS API is DESCRIPTION Description null.Val[string] `db:"description" ` // Original attribute from ArcGIS API is ACCESSDESC Accessdesc null.Val[string] `db:"accessdesc" ` // Original attribute from ArcGIS API is COMMENTS Comments null.Val[string] `db:"comments" ` // Original attribute from ArcGIS API is EXTERNALID Externalid null.Val[string] `db:"externalid" ` // Original attribute from ArcGIS API is NEXTACTIONDATESCHEDULED Nextactiondatescheduled null.Val[time.Time] `db:"nextactiondatescheduled" ` // Original attribute from ArcGIS API is ZONE2 Zone2 null.Val[string] `db:"zone2" ` // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date CreatedDate null.Val[time.Time] `db:"created_date" ` // Original attribute from ArcGIS API is last_edited_user LastEditedUser null.Val[string] `db:"last_edited_user" ` // Original attribute from ArcGIS API is last_edited_date LastEditedDate null.Val[time.Time] `db:"last_edited_date" ` // Original attribute from ArcGIS API is GATEWAYSYNC Gatewaysync null.Val[int16] `db:"gatewaysync" ` // Original attribute from ArcGIS API is CreationDate Creationdate null.Val[time.Time] `db:"creationdate" ` // Original attribute from ArcGIS API is Creator Creator null.Val[string] `db:"creator" ` // Original attribute from ArcGIS API is EditDate Editdate null.Val[time.Time] `db:"editdate" ` // Original attribute from ArcGIS API is Editor Editor null.Val[string] `db:"editor" ` Geometry types.JSON[json.RawMessage] `db:"geometry" ` Geospatial null.Val[string] `db:"geospatial" ` Version int32 `db:"version,pk" ` OrganizationID int32 `db:"organization_id" ` R fieldseekerSamplelocationR `db:"-" ` } // FieldseekerSamplelocationSlice is an alias for a slice of pointers to FieldseekerSamplelocation. // This should almost always be used instead of []*FieldseekerSamplelocation. type FieldseekerSamplelocationSlice []*FieldseekerSamplelocation // FieldseekerSamplelocations contains methods to work with the samplelocation table var FieldseekerSamplelocations = psql.NewTablex[*FieldseekerSamplelocation, FieldseekerSamplelocationSlice, *FieldseekerSamplelocationSetter]("fieldseeker", "samplelocation", buildFieldseekerSamplelocationColumns("fieldseeker.samplelocation")) // FieldseekerSamplelocationsQuery is a query on the samplelocation table type FieldseekerSamplelocationsQuery = *psql.ViewQuery[*FieldseekerSamplelocation, FieldseekerSamplelocationSlice] // fieldseekerSamplelocationR is where relationships are stored. type fieldseekerSamplelocationR struct { Organization *Organization // fieldseeker.samplelocation.samplelocation_organization_id_fkey } func buildFieldseekerSamplelocationColumns(alias string) fieldseekerSamplelocationColumns { return fieldseekerSamplelocationColumns{ ColumnsExpr: expr.NewColumnsExpr( "objectid", "name", "zone", "habitat", "priority", "usetype", "active", "description", "accessdesc", "comments", "externalid", "nextactiondatescheduled", "zone2", "locationnumber", "globalid", "created_user", "created_date", "last_edited_user", "last_edited_date", "gatewaysync", "creationdate", "creator", "editdate", "editor", "geometry", "geospatial", "version", "organization_id", ).WithParent("fieldseeker.samplelocation"), tableAlias: alias, Objectid: psql.Quote(alias, "objectid"), Name: psql.Quote(alias, "name"), Zone: psql.Quote(alias, "zone"), Habitat: psql.Quote(alias, "habitat"), Priority: psql.Quote(alias, "priority"), Usetype: psql.Quote(alias, "usetype"), Active: psql.Quote(alias, "active"), Description: psql.Quote(alias, "description"), Accessdesc: psql.Quote(alias, "accessdesc"), Comments: psql.Quote(alias, "comments"), Externalid: psql.Quote(alias, "externalid"), Nextactiondatescheduled: psql.Quote(alias, "nextactiondatescheduled"), Zone2: psql.Quote(alias, "zone2"), Locationnumber: psql.Quote(alias, "locationnumber"), Globalid: psql.Quote(alias, "globalid"), CreatedUser: psql.Quote(alias, "created_user"), CreatedDate: psql.Quote(alias, "created_date"), LastEditedUser: psql.Quote(alias, "last_edited_user"), LastEditedDate: psql.Quote(alias, "last_edited_date"), Gatewaysync: psql.Quote(alias, "gatewaysync"), Creationdate: psql.Quote(alias, "creationdate"), Creator: psql.Quote(alias, "creator"), Editdate: psql.Quote(alias, "editdate"), Editor: psql.Quote(alias, "editor"), Geometry: psql.Quote(alias, "geometry"), Geospatial: psql.Quote(alias, "geospatial"), Version: psql.Quote(alias, "version"), OrganizationID: psql.Quote(alias, "organization_id"), } } type fieldseekerSamplelocationColumns struct { expr.ColumnsExpr tableAlias string Objectid psql.Expression Name psql.Expression Zone psql.Expression Habitat psql.Expression Priority psql.Expression Usetype psql.Expression Active psql.Expression Description psql.Expression Accessdesc psql.Expression Comments psql.Expression Externalid psql.Expression Nextactiondatescheduled psql.Expression Zone2 psql.Expression Locationnumber psql.Expression Globalid psql.Expression CreatedUser psql.Expression CreatedDate psql.Expression LastEditedUser psql.Expression LastEditedDate psql.Expression Gatewaysync psql.Expression Creationdate psql.Expression Creator psql.Expression Editdate psql.Expression Editor psql.Expression Geometry psql.Expression Geospatial psql.Expression Version psql.Expression OrganizationID psql.Expression } func (c fieldseekerSamplelocationColumns) Alias() string { return c.tableAlias } func (fieldseekerSamplelocationColumns) AliasedAs(alias string) fieldseekerSamplelocationColumns { return buildFieldseekerSamplelocationColumns(alias) } // FieldseekerSamplelocationSetter is used for insert/upsert/update operations // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerSamplelocationSetter struct { Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` Priority omitnull.Val[string] `db:"priority" ` Usetype omitnull.Val[string] `db:"usetype" ` Active omitnull.Val[int16] `db:"active" ` Description omitnull.Val[string] `db:"description" ` Accessdesc omitnull.Val[string] `db:"accessdesc" ` Comments omitnull.Val[string] `db:"comments" ` Externalid omitnull.Val[string] `db:"externalid" ` Nextactiondatescheduled omitnull.Val[time.Time] `db:"nextactiondatescheduled" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` LastEditedDate omitnull.Val[time.Time] `db:"last_edited_date" ` Gatewaysync omitnull.Val[int16] `db:"gatewaysync" ` Creationdate omitnull.Val[time.Time] `db:"creationdate" ` Creator omitnull.Val[string] `db:"creator" ` Editdate omitnull.Val[time.Time] `db:"editdate" ` Editor omitnull.Val[string] `db:"editor" ` Geometry omit.Val[types.JSON[json.RawMessage]] `db:"geometry" ` Geospatial omitnull.Val[string] `db:"geospatial" ` Version omit.Val[int32] `db:"version,pk" ` OrganizationID omit.Val[int32] `db:"organization_id" ` } func (s FieldseekerSamplelocationSetter) SetColumns() []string { vals := make([]string, 0, 28) if s.Objectid.IsValue() { vals = append(vals, "objectid") } if !s.Name.IsUnset() { vals = append(vals, "name") } if !s.Zone.IsUnset() { vals = append(vals, "zone") } if !s.Habitat.IsUnset() { vals = append(vals, "habitat") } if !s.Priority.IsUnset() { vals = append(vals, "priority") } if !s.Usetype.IsUnset() { vals = append(vals, "usetype") } if !s.Active.IsUnset() { vals = append(vals, "active") } if !s.Description.IsUnset() { vals = append(vals, "description") } if !s.Accessdesc.IsUnset() { vals = append(vals, "accessdesc") } if !s.Comments.IsUnset() { vals = append(vals, "comments") } if !s.Externalid.IsUnset() { vals = append(vals, "externalid") } if !s.Nextactiondatescheduled.IsUnset() { vals = append(vals, "nextactiondatescheduled") } if !s.Zone2.IsUnset() { vals = append(vals, "zone2") } if !s.Locationnumber.IsUnset() { vals = append(vals, "locationnumber") } if s.Globalid.IsValue() { vals = append(vals, "globalid") } if !s.CreatedUser.IsUnset() { vals = append(vals, "created_user") } if !s.CreatedDate.IsUnset() { vals = append(vals, "created_date") } if !s.LastEditedUser.IsUnset() { vals = append(vals, "last_edited_user") } if !s.LastEditedDate.IsUnset() { vals = append(vals, "last_edited_date") } if !s.Gatewaysync.IsUnset() { vals = append(vals, "gatewaysync") } if !s.Creationdate.IsUnset() { vals = append(vals, "creationdate") } if !s.Creator.IsUnset() { vals = append(vals, "creator") } if !s.Editdate.IsUnset() { vals = append(vals, "editdate") } if !s.Editor.IsUnset() { vals = append(vals, "editor") } if s.Geometry.IsValue() { vals = append(vals, "geometry") } if !s.Geospatial.IsUnset() { vals = append(vals, "geospatial") } if s.Version.IsValue() { vals = append(vals, "version") } if s.OrganizationID.IsValue() { vals = append(vals, "organization_id") } return vals } func (s FieldseekerSamplelocationSetter) Overwrite(t *FieldseekerSamplelocation) { if s.Objectid.IsValue() { t.Objectid = s.Objectid.MustGet() } if !s.Name.IsUnset() { t.Name = s.Name.MustGetNull() } if !s.Zone.IsUnset() { t.Zone = s.Zone.MustGetNull() } if !s.Habitat.IsUnset() { t.Habitat = s.Habitat.MustGetNull() } if !s.Priority.IsUnset() { t.Priority = s.Priority.MustGetNull() } if !s.Usetype.IsUnset() { t.Usetype = s.Usetype.MustGetNull() } if !s.Active.IsUnset() { t.Active = s.Active.MustGetNull() } if !s.Description.IsUnset() { t.Description = s.Description.MustGetNull() } if !s.Accessdesc.IsUnset() { t.Accessdesc = s.Accessdesc.MustGetNull() } if !s.Comments.IsUnset() { t.Comments = s.Comments.MustGetNull() } if !s.Externalid.IsUnset() { t.Externalid = s.Externalid.MustGetNull() } if !s.Nextactiondatescheduled.IsUnset() { t.Nextactiondatescheduled = s.Nextactiondatescheduled.MustGetNull() } if !s.Zone2.IsUnset() { t.Zone2 = s.Zone2.MustGetNull() } if !s.Locationnumber.IsUnset() { t.Locationnumber = s.Locationnumber.MustGetNull() } if s.Globalid.IsValue() { t.Globalid = s.Globalid.MustGet() } if !s.CreatedUser.IsUnset() { t.CreatedUser = s.CreatedUser.MustGetNull() } if !s.CreatedDate.IsUnset() { t.CreatedDate = s.CreatedDate.MustGetNull() } if !s.LastEditedUser.IsUnset() { t.LastEditedUser = s.LastEditedUser.MustGetNull() } if !s.LastEditedDate.IsUnset() { t.LastEditedDate = s.LastEditedDate.MustGetNull() } if !s.Gatewaysync.IsUnset() { t.Gatewaysync = s.Gatewaysync.MustGetNull() } if !s.Creationdate.IsUnset() { t.Creationdate = s.Creationdate.MustGetNull() } if !s.Creator.IsUnset() { t.Creator = s.Creator.MustGetNull() } if !s.Editdate.IsUnset() { t.Editdate = s.Editdate.MustGetNull() } if !s.Editor.IsUnset() { t.Editor = s.Editor.MustGetNull() } if s.Geometry.IsValue() { t.Geometry = s.Geometry.MustGet() } if !s.Geospatial.IsUnset() { t.Geospatial = s.Geospatial.MustGetNull() } if s.Version.IsValue() { t.Version = s.Version.MustGet() } if s.OrganizationID.IsValue() { t.OrganizationID = s.OrganizationID.MustGet() } } func (s *FieldseekerSamplelocationSetter) Apply(q *dialect.InsertQuery) { q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { return FieldseekerSamplelocations.BeforeInsertHooks.RunHooks(ctx, exec, s) }) q.AppendValues(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { vals := make([]bob.Expression, 28) if s.Objectid.IsValue() { vals[0] = psql.Arg(s.Objectid.MustGet()) } else { vals[0] = psql.Raw("DEFAULT") } if !s.Name.IsUnset() { vals[1] = psql.Arg(s.Name.MustGetNull()) } else { vals[1] = psql.Raw("DEFAULT") } if !s.Zone.IsUnset() { vals[2] = psql.Arg(s.Zone.MustGetNull()) } else { vals[2] = psql.Raw("DEFAULT") } if !s.Habitat.IsUnset() { vals[3] = psql.Arg(s.Habitat.MustGetNull()) } else { vals[3] = psql.Raw("DEFAULT") } if !s.Priority.IsUnset() { vals[4] = psql.Arg(s.Priority.MustGetNull()) } else { vals[4] = psql.Raw("DEFAULT") } if !s.Usetype.IsUnset() { vals[5] = psql.Arg(s.Usetype.MustGetNull()) } else { vals[5] = psql.Raw("DEFAULT") } if !s.Active.IsUnset() { vals[6] = psql.Arg(s.Active.MustGetNull()) } else { vals[6] = psql.Raw("DEFAULT") } if !s.Description.IsUnset() { vals[7] = psql.Arg(s.Description.MustGetNull()) } else { vals[7] = psql.Raw("DEFAULT") } if !s.Accessdesc.IsUnset() { vals[8] = psql.Arg(s.Accessdesc.MustGetNull()) } else { vals[8] = psql.Raw("DEFAULT") } if !s.Comments.IsUnset() { vals[9] = psql.Arg(s.Comments.MustGetNull()) } else { vals[9] = psql.Raw("DEFAULT") } if !s.Externalid.IsUnset() { vals[10] = psql.Arg(s.Externalid.MustGetNull()) } else { vals[10] = psql.Raw("DEFAULT") } if !s.Nextactiondatescheduled.IsUnset() { vals[11] = psql.Arg(s.Nextactiondatescheduled.MustGetNull()) } else { vals[11] = psql.Raw("DEFAULT") } if !s.Zone2.IsUnset() { vals[12] = psql.Arg(s.Zone2.MustGetNull()) } else { vals[12] = psql.Raw("DEFAULT") } if !s.Locationnumber.IsUnset() { vals[13] = psql.Arg(s.Locationnumber.MustGetNull()) } else { vals[13] = psql.Raw("DEFAULT") } if s.Globalid.IsValue() { vals[14] = psql.Arg(s.Globalid.MustGet()) } else { vals[14] = psql.Raw("DEFAULT") } if !s.CreatedUser.IsUnset() { vals[15] = psql.Arg(s.CreatedUser.MustGetNull()) } else { vals[15] = psql.Raw("DEFAULT") } if !s.CreatedDate.IsUnset() { vals[16] = psql.Arg(s.CreatedDate.MustGetNull()) } else { vals[16] = psql.Raw("DEFAULT") } if !s.LastEditedUser.IsUnset() { vals[17] = psql.Arg(s.LastEditedUser.MustGetNull()) } else { vals[17] = psql.Raw("DEFAULT") } if !s.LastEditedDate.IsUnset() { vals[18] = psql.Arg(s.LastEditedDate.MustGetNull()) } else { vals[18] = psql.Raw("DEFAULT") } if !s.Gatewaysync.IsUnset() { vals[19] = psql.Arg(s.Gatewaysync.MustGetNull()) } else { vals[19] = psql.Raw("DEFAULT") } if !s.Creationdate.IsUnset() { vals[20] = psql.Arg(s.Creationdate.MustGetNull()) } else { vals[20] = psql.Raw("DEFAULT") } if !s.Creator.IsUnset() { vals[21] = psql.Arg(s.Creator.MustGetNull()) } else { vals[21] = psql.Raw("DEFAULT") } if !s.Editdate.IsUnset() { vals[22] = psql.Arg(s.Editdate.MustGetNull()) } else { vals[22] = psql.Raw("DEFAULT") } if !s.Editor.IsUnset() { vals[23] = psql.Arg(s.Editor.MustGetNull()) } else { vals[23] = psql.Raw("DEFAULT") } if s.Geometry.IsValue() { vals[24] = psql.Arg(s.Geometry.MustGet()) } else { vals[24] = psql.Raw("DEFAULT") } if !s.Geospatial.IsUnset() { vals[25] = psql.Arg(s.Geospatial.MustGetNull()) } else { vals[25] = psql.Raw("DEFAULT") } if s.Version.IsValue() { vals[26] = psql.Arg(s.Version.MustGet()) } else { vals[26] = psql.Raw("DEFAULT") } if s.OrganizationID.IsValue() { vals[27] = psql.Arg(s.OrganizationID.MustGet()) } else { vals[27] = psql.Raw("DEFAULT") } return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } func (s FieldseekerSamplelocationSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { return um.Set(s.Expressions()...) } func (s FieldseekerSamplelocationSetter) Expressions(prefix ...string) []bob.Expression { exprs := make([]bob.Expression, 0, 28) if s.Objectid.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "objectid")...), psql.Arg(s.Objectid), }}) } if !s.Name.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "name")...), psql.Arg(s.Name), }}) } if !s.Zone.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "zone")...), psql.Arg(s.Zone), }}) } if !s.Habitat.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "habitat")...), psql.Arg(s.Habitat), }}) } if !s.Priority.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "priority")...), psql.Arg(s.Priority), }}) } if !s.Usetype.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "usetype")...), psql.Arg(s.Usetype), }}) } if !s.Active.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "active")...), psql.Arg(s.Active), }}) } if !s.Description.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "description")...), psql.Arg(s.Description), }}) } if !s.Accessdesc.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "accessdesc")...), psql.Arg(s.Accessdesc), }}) } if !s.Comments.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "comments")...), psql.Arg(s.Comments), }}) } if !s.Externalid.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "externalid")...), psql.Arg(s.Externalid), }}) } if !s.Nextactiondatescheduled.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "nextactiondatescheduled")...), psql.Arg(s.Nextactiondatescheduled), }}) } if !s.Zone2.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "zone2")...), psql.Arg(s.Zone2), }}) } if !s.Locationnumber.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "locationnumber")...), psql.Arg(s.Locationnumber), }}) } if s.Globalid.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "globalid")...), psql.Arg(s.Globalid), }}) } if !s.CreatedUser.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "created_user")...), psql.Arg(s.CreatedUser), }}) } if !s.CreatedDate.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "created_date")...), psql.Arg(s.CreatedDate), }}) } if !s.LastEditedUser.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "last_edited_user")...), psql.Arg(s.LastEditedUser), }}) } if !s.LastEditedDate.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "last_edited_date")...), psql.Arg(s.LastEditedDate), }}) } if !s.Gatewaysync.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "gatewaysync")...), psql.Arg(s.Gatewaysync), }}) } if !s.Creationdate.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "creationdate")...), psql.Arg(s.Creationdate), }}) } if !s.Creator.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "creator")...), psql.Arg(s.Creator), }}) } if !s.Editdate.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "editdate")...), psql.Arg(s.Editdate), }}) } if !s.Editor.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "editor")...), psql.Arg(s.Editor), }}) } if s.Geometry.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "geometry")...), psql.Arg(s.Geometry), }}) } if !s.Geospatial.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "geospatial")...), psql.Arg(s.Geospatial), }}) } if s.Version.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "version")...), psql.Arg(s.Version), }}) } if s.OrganizationID.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "organization_id")...), psql.Arg(s.OrganizationID), }}) } return exprs } // FindFieldseekerSamplelocation retrieves a single record by primary key // If cols is empty Find will return all columns. func FindFieldseekerSamplelocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerSamplelocation, error) { if len(cols) == 0 { return FieldseekerSamplelocations.Query( sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerSamplelocations.Query( sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerSamplelocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerSamplelocationExists checks the presence of a single record by primary key func FieldseekerSamplelocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerSamplelocations.Query( sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } // AfterQueryHook is called after FieldseekerSamplelocation is retrieved from the database func (o *FieldseekerSamplelocation) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerSamplelocations.AfterSelectHooks.RunHooks(ctx, exec, FieldseekerSamplelocationSlice{o}) case bob.QueryTypeInsert: ctx, err = FieldseekerSamplelocations.AfterInsertHooks.RunHooks(ctx, exec, FieldseekerSamplelocationSlice{o}) case bob.QueryTypeUpdate: ctx, err = FieldseekerSamplelocations.AfterUpdateHooks.RunHooks(ctx, exec, FieldseekerSamplelocationSlice{o}) case bob.QueryTypeDelete: ctx, err = FieldseekerSamplelocations.AfterDeleteHooks.RunHooks(ctx, exec, FieldseekerSamplelocationSlice{o}) } return err } // primaryKeyVals returns the primary key values of the FieldseekerSamplelocation func (o *FieldseekerSamplelocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( o.Globalid, o.Version, ) } func (o *FieldseekerSamplelocation) pkEQ() dialect.Expression { return psql.Group(psql.Quote("fieldseeker.samplelocation", "globalid"), psql.Quote("fieldseeker.samplelocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } // Update uses an executor to update the FieldseekerSamplelocation func (o *FieldseekerSamplelocation) Update(ctx context.Context, exec bob.Executor, s *FieldseekerSamplelocationSetter) error { v, err := FieldseekerSamplelocations.Update(s.UpdateMod(), um.Where(o.pkEQ())).One(ctx, exec) if err != nil { return err } o.R = v.R *o = *v return nil } // Delete deletes a single FieldseekerSamplelocation record with an executor func (o *FieldseekerSamplelocation) Delete(ctx context.Context, exec bob.Executor) error { _, err := FieldseekerSamplelocations.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec) return err } // Reload refreshes the FieldseekerSamplelocation using the executor func (o *FieldseekerSamplelocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerSamplelocations.Query( sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { return err } o2.R = o.R *o = *o2 return nil } // AfterQueryHook is called after FieldseekerSamplelocationSlice is retrieved from the database func (o FieldseekerSamplelocationSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerSamplelocations.AfterSelectHooks.RunHooks(ctx, exec, o) case bob.QueryTypeInsert: ctx, err = FieldseekerSamplelocations.AfterInsertHooks.RunHooks(ctx, exec, o) case bob.QueryTypeUpdate: ctx, err = FieldseekerSamplelocations.AfterUpdateHooks.RunHooks(ctx, exec, o) case bob.QueryTypeDelete: ctx, err = FieldseekerSamplelocations.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err } func (o FieldseekerSamplelocationSlice) pkIN() dialect.Expression { if len(o) == 0 { return psql.Raw("NULL") } return psql.Group(psql.Quote("fieldseeker.samplelocation", "globalid"), psql.Quote("fieldseeker.samplelocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() } return bob.ExpressSlice(ctx, w, d, start, pkPairs, "", ", ", "") })) } // copyMatchingRows finds models in the given slice that have the same primary key // then it first copies the existing relationships from the old model to the new model // and then replaces the old model in the slice with the new model func (o FieldseekerSamplelocationSlice) copyMatchingRows(from ...*FieldseekerSamplelocation) { for i, old := range o { for _, new := range from { if new.Globalid != old.Globalid { continue } if new.Version != old.Version { continue } new.R = old.R o[i] = new break } } } // UpdateMod modifies an update query with "WHERE primary_key IN (o...)" func (o FieldseekerSamplelocationSlice) UpdateMod() bob.Mod[*dialect.UpdateQuery] { return bob.ModFunc[*dialect.UpdateQuery](func(q *dialect.UpdateQuery) { q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { return FieldseekerSamplelocations.BeforeUpdateHooks.RunHooks(ctx, exec, o) }) q.AppendLoader(bob.LoaderFunc(func(ctx context.Context, exec bob.Executor, retrieved any) error { var err error switch retrieved := retrieved.(type) { case *FieldseekerSamplelocation: o.copyMatchingRows(retrieved) case []*FieldseekerSamplelocation: o.copyMatchingRows(retrieved...) case FieldseekerSamplelocationSlice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerSamplelocation or a slice of FieldseekerSamplelocation // then run the AfterUpdateHooks on the slice _, err = FieldseekerSamplelocations.AfterUpdateHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } // DeleteMod modifies an delete query with "WHERE primary_key IN (o...)" func (o FieldseekerSamplelocationSlice) DeleteMod() bob.Mod[*dialect.DeleteQuery] { return bob.ModFunc[*dialect.DeleteQuery](func(q *dialect.DeleteQuery) { q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { return FieldseekerSamplelocations.BeforeDeleteHooks.RunHooks(ctx, exec, o) }) q.AppendLoader(bob.LoaderFunc(func(ctx context.Context, exec bob.Executor, retrieved any) error { var err error switch retrieved := retrieved.(type) { case *FieldseekerSamplelocation: o.copyMatchingRows(retrieved) case []*FieldseekerSamplelocation: o.copyMatchingRows(retrieved...) case FieldseekerSamplelocationSlice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerSamplelocation or a slice of FieldseekerSamplelocation // then run the AfterDeleteHooks on the slice _, err = FieldseekerSamplelocations.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } func (o FieldseekerSamplelocationSlice) UpdateAll(ctx context.Context, exec bob.Executor, vals FieldseekerSamplelocationSetter) error { if len(o) == 0 { return nil } _, err := FieldseekerSamplelocations.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec) return err } func (o FieldseekerSamplelocationSlice) DeleteAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } _, err := FieldseekerSamplelocations.Delete(o.DeleteMod()).Exec(ctx, exec) return err } func (o FieldseekerSamplelocationSlice) ReloadAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } o2, err := FieldseekerSamplelocations.Query(sm.Where(o.pkIN())).All(ctx, exec) if err != nil { return err } o.copyMatchingRows(o2...) return nil } // Organization starts a query for related objects on organization func (o *FieldseekerSamplelocation) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery { return Organizations.Query(append(mods, sm.Where(Organizations.Columns.ID.EQ(psql.Arg(o.OrganizationID))), )...) } func (os FieldseekerSamplelocationSlice) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery { pkOrganizationID := make(pgtypes.Array[int32], 0, len(os)) for _, o := range os { if o == nil { continue } pkOrganizationID = append(pkOrganizationID, o.OrganizationID) } PKArgExpr := psql.Select(sm.Columns( psql.F("unnest", psql.Cast(psql.Arg(pkOrganizationID), "integer[]")), )) return Organizations.Query(append(mods, sm.Where(psql.Group(Organizations.Columns.ID).OP("IN", PKArgExpr)), )...) } func attachFieldseekerSamplelocationOrganization0(ctx context.Context, exec bob.Executor, count int, fieldseekerSamplelocation0 *FieldseekerSamplelocation, organization1 *Organization) (*FieldseekerSamplelocation, error) { setter := &FieldseekerSamplelocationSetter{ OrganizationID: omit.From(organization1.ID), } err := fieldseekerSamplelocation0.Update(ctx, exec, setter) if err != nil { return nil, fmt.Errorf("attachFieldseekerSamplelocationOrganization0: %w", err) } return fieldseekerSamplelocation0, nil } func (fieldseekerSamplelocation0 *FieldseekerSamplelocation) InsertOrganization(ctx context.Context, exec bob.Executor, related *OrganizationSetter) error { var err error organization1, err := Organizations.Insert(related).One(ctx, exec) if err != nil { return fmt.Errorf("inserting related objects: %w", err) } _, err = attachFieldseekerSamplelocationOrganization0(ctx, exec, 1, fieldseekerSamplelocation0, organization1) if err != nil { return err } fieldseekerSamplelocation0.R.Organization = organization1 organization1.R.Samplelocations = append(organization1.R.Samplelocations, fieldseekerSamplelocation0) return nil } func (fieldseekerSamplelocation0 *FieldseekerSamplelocation) AttachOrganization(ctx context.Context, exec bob.Executor, organization1 *Organization) error { var err error _, err = attachFieldseekerSamplelocationOrganization0(ctx, exec, 1, fieldseekerSamplelocation0, organization1) if err != nil { return err } fieldseekerSamplelocation0.R.Organization = organization1 organization1.R.Samplelocations = append(organization1.R.Samplelocations, fieldseekerSamplelocation0) return nil } type fieldseekerSamplelocationWhere[Q psql.Filterable] struct { Objectid psql.WhereMod[Q, int64] Name psql.WhereNullMod[Q, string] Zone psql.WhereNullMod[Q, string] Habitat psql.WhereNullMod[Q, string] Priority psql.WhereNullMod[Q, string] Usetype psql.WhereNullMod[Q, string] Active psql.WhereNullMod[Q, int16] Description psql.WhereNullMod[Q, string] Accessdesc psql.WhereNullMod[Q, string] Comments psql.WhereNullMod[Q, string] Externalid psql.WhereNullMod[Q, string] Nextactiondatescheduled psql.WhereNullMod[Q, time.Time] Zone2 psql.WhereNullMod[Q, string] Locationnumber psql.WhereNullMod[Q, int32] Globalid psql.WhereMod[Q, uuid.UUID] CreatedUser psql.WhereNullMod[Q, string] CreatedDate psql.WhereNullMod[Q, time.Time] LastEditedUser psql.WhereNullMod[Q, string] LastEditedDate psql.WhereNullMod[Q, time.Time] Gatewaysync psql.WhereNullMod[Q, int16] Creationdate psql.WhereNullMod[Q, time.Time] Creator psql.WhereNullMod[Q, string] Editdate psql.WhereNullMod[Q, time.Time] Editor psql.WhereNullMod[Q, string] Geometry psql.WhereMod[Q, types.JSON[json.RawMessage]] Geospatial psql.WhereNullMod[Q, string] Version psql.WhereMod[Q, int32] OrganizationID psql.WhereMod[Q, int32] } func (fieldseekerSamplelocationWhere[Q]) AliasedAs(alias string) fieldseekerSamplelocationWhere[Q] { return buildFieldseekerSamplelocationWhere[Q](buildFieldseekerSamplelocationColumns(alias)) } func buildFieldseekerSamplelocationWhere[Q psql.Filterable](cols fieldseekerSamplelocationColumns) fieldseekerSamplelocationWhere[Q] { return fieldseekerSamplelocationWhere[Q]{ Objectid: psql.Where[Q, int64](cols.Objectid), Name: psql.WhereNull[Q, string](cols.Name), Zone: psql.WhereNull[Q, string](cols.Zone), Habitat: psql.WhereNull[Q, string](cols.Habitat), Priority: psql.WhereNull[Q, string](cols.Priority), Usetype: psql.WhereNull[Q, string](cols.Usetype), Active: psql.WhereNull[Q, int16](cols.Active), Description: psql.WhereNull[Q, string](cols.Description), Accessdesc: psql.WhereNull[Q, string](cols.Accessdesc), Comments: psql.WhereNull[Q, string](cols.Comments), Externalid: psql.WhereNull[Q, string](cols.Externalid), Nextactiondatescheduled: psql.WhereNull[Q, time.Time](cols.Nextactiondatescheduled), Zone2: psql.WhereNull[Q, string](cols.Zone2), Locationnumber: psql.WhereNull[Q, int32](cols.Locationnumber), Globalid: psql.Where[Q, uuid.UUID](cols.Globalid), CreatedUser: psql.WhereNull[Q, string](cols.CreatedUser), CreatedDate: psql.WhereNull[Q, time.Time](cols.CreatedDate), LastEditedUser: psql.WhereNull[Q, string](cols.LastEditedUser), LastEditedDate: psql.WhereNull[Q, time.Time](cols.LastEditedDate), Gatewaysync: psql.WhereNull[Q, int16](cols.Gatewaysync), Creationdate: psql.WhereNull[Q, time.Time](cols.Creationdate), Creator: psql.WhereNull[Q, string](cols.Creator), Editdate: psql.WhereNull[Q, time.Time](cols.Editdate), Editor: psql.WhereNull[Q, string](cols.Editor), Geometry: psql.Where[Q, types.JSON[json.RawMessage]](cols.Geometry), Geospatial: psql.WhereNull[Q, string](cols.Geospatial), Version: psql.Where[Q, int32](cols.Version), OrganizationID: psql.Where[Q, int32](cols.OrganizationID), } } func (o *FieldseekerSamplelocation) Preload(name string, retrieved any) error { if o == nil { return nil } switch name { case "Organization": rel, ok := retrieved.(*Organization) if !ok { return fmt.Errorf("fieldseekerSamplelocation cannot load %T as %q", retrieved, name) } o.R.Organization = rel if rel != nil { rel.R.Samplelocations = FieldseekerSamplelocationSlice{o} } return nil default: return fmt.Errorf("fieldseekerSamplelocation has no relationship %q", name) } } type fieldseekerSamplelocationPreloader struct { Organization func(...psql.PreloadOption) psql.Preloader } func buildFieldseekerSamplelocationPreloader() fieldseekerSamplelocationPreloader { return fieldseekerSamplelocationPreloader{ Organization: func(opts ...psql.PreloadOption) psql.Preloader { return psql.Preload[*Organization, OrganizationSlice](psql.PreloadRel{ Name: "Organization", Sides: []psql.PreloadSide{ { From: FieldseekerSamplelocations, To: Organizations, FromColumns: []string{"organization_id"}, ToColumns: []string{"id"}, }, }, }, Organizations.Columns.Names(), opts...) }, } } type fieldseekerSamplelocationThenLoader[Q orm.Loadable] struct { Organization func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q] } func buildFieldseekerSamplelocationThenLoader[Q orm.Loadable]() fieldseekerSamplelocationThenLoader[Q] { type OrganizationLoadInterface interface { LoadOrganization(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error } return fieldseekerSamplelocationThenLoader[Q]{ Organization: thenLoadBuilder[Q]( "Organization", func(ctx context.Context, exec bob.Executor, retrieved OrganizationLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error { return retrieved.LoadOrganization(ctx, exec, mods...) }, ), } } // LoadOrganization loads the fieldseekerSamplelocation's Organization into the .R struct func (o *FieldseekerSamplelocation) LoadOrganization(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error { if o == nil { return nil } // Reset the relationship o.R.Organization = nil related, err := o.Organization(mods...).One(ctx, exec) if err != nil { return err } related.R.Samplelocations = FieldseekerSamplelocationSlice{o} o.R.Organization = related return nil } // LoadOrganization loads the fieldseekerSamplelocation's Organization into the .R struct func (os FieldseekerSamplelocationSlice) LoadOrganization(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error { if len(os) == 0 { return nil } organizations, err := os.Organization(mods...).All(ctx, exec) if err != nil { return err } for _, o := range os { if o == nil { continue } for _, rel := range organizations { if !(o.OrganizationID == rel.ID) { continue } rel.R.Samplelocations = append(rel.R.Samplelocations, o) o.R.Organization = rel break } } return nil } type fieldseekerSamplelocationJoins[Q dialect.Joinable] struct { typ string Organization modAs[Q, organizationColumns] } func (j fieldseekerSamplelocationJoins[Q]) aliasedAs(alias string) fieldseekerSamplelocationJoins[Q] { return buildFieldseekerSamplelocationJoins[Q](buildFieldseekerSamplelocationColumns(alias), j.typ) } func buildFieldseekerSamplelocationJoins[Q dialect.Joinable](cols fieldseekerSamplelocationColumns, typ string) fieldseekerSamplelocationJoins[Q] { return fieldseekerSamplelocationJoins[Q]{ typ: typ, Organization: modAs[Q, organizationColumns]{ c: Organizations.Columns, f: func(to organizationColumns) bob.Mod[Q] { mods := make(mods.QueryMods[Q], 0, 1) { mods = append(mods, dialect.Join[Q](typ, Organizations.Name().As(to.Alias())).On( to.ID.EQ(cols.OrganizationID), )) } return mods }, }, } }