// 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/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" ) // FieldseekerRodentlocation is an object representing the database table. type FieldseekerRodentlocation struct { Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is LOCATIONNAME Locationname null.Val[string] `db:"locationname" ` // Original attribute from ArcGIS API is ZONE Zone null.Val[string] `db:"zone" ` // Original attribute from ArcGIS API is ZONE2 Zone2 null.Val[string] `db:"zone2" ` // 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 SYMBOLOGY Symbology null.Val[string] `db:"symbology" ` // 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 LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is LASTINSPECTDATE Lastinspectdate null.Val[time.Time] `db:"lastinspectdate" ` // Original attribute from ArcGIS API is LASTINSPECTSPECIES Lastinspectspecies null.Val[string] `db:"lastinspectspecies" ` // Original attribute from ArcGIS API is LASTINSPECTACTION Lastinspectaction null.Val[string] `db:"lastinspectaction" ` // Original attribute from ArcGIS API is LASTINSPECTCONDITIONS Lastinspectconditions null.Val[string] `db:"lastinspectconditions" ` // Original attribute from ArcGIS API is LASTINSPECTRODENTEVIDENCE Lastinspectrodentevidence null.Val[string] `db:"lastinspectrodentevidence" ` // 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 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" ` // Original attribute from ArcGIS API is JURISDICTION Jurisdiction null.Val[string] `db:"jurisdiction" ` Geometry types.JSON[json.RawMessage] `db:"geometry" ` Geospatial null.Val[string] `db:"geospatial" ` Version int32 `db:"version,pk" ` OrganizationID int32 `db:"organization_id" ` R fieldseekerRodentlocationR `db:"-" ` } // FieldseekerRodentlocationSlice is an alias for a slice of pointers to FieldseekerRodentlocation. // This should almost always be used instead of []*FieldseekerRodentlocation. type FieldseekerRodentlocationSlice []*FieldseekerRodentlocation // FieldseekerRodentlocations contains methods to work with the rodentlocation table var FieldseekerRodentlocations = psql.NewTablex[*FieldseekerRodentlocation, FieldseekerRodentlocationSlice, *FieldseekerRodentlocationSetter]("fieldseeker", "rodentlocation", buildFieldseekerRodentlocationColumns("fieldseeker.rodentlocation")) // FieldseekerRodentlocationsQuery is a query on the rodentlocation table type FieldseekerRodentlocationsQuery = *psql.ViewQuery[*FieldseekerRodentlocation, FieldseekerRodentlocationSlice] // fieldseekerRodentlocationR is where relationships are stored. type fieldseekerRodentlocationR struct { Organization *Organization // fieldseeker.rodentlocation.rodentlocation_organization_id_fkey } func buildFieldseekerRodentlocationColumns(alias string) fieldseekerRodentlocationColumns { return fieldseekerRodentlocationColumns{ ColumnsExpr: expr.NewColumnsExpr( "objectid", "locationname", "zone", "zone2", "habitat", "priority", "usetype", "active", "description", "accessdesc", "comments", "symbology", "externalid", "nextactiondatescheduled", "locationnumber", "lastinspectdate", "lastinspectspecies", "lastinspectaction", "lastinspectconditions", "lastinspectrodentevidence", "globalid", "created_user", "created_date", "last_edited_user", "last_edited_date", "creationdate", "creator", "editdate", "editor", "jurisdiction", "geometry", "geospatial", "version", "organization_id", ).WithParent("fieldseeker.rodentlocation"), tableAlias: alias, Objectid: psql.Quote(alias, "objectid"), Locationname: psql.Quote(alias, "locationname"), Zone: psql.Quote(alias, "zone"), Zone2: psql.Quote(alias, "zone2"), 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"), Symbology: psql.Quote(alias, "symbology"), Externalid: psql.Quote(alias, "externalid"), Nextactiondatescheduled: psql.Quote(alias, "nextactiondatescheduled"), Locationnumber: psql.Quote(alias, "locationnumber"), Lastinspectdate: psql.Quote(alias, "lastinspectdate"), Lastinspectspecies: psql.Quote(alias, "lastinspectspecies"), Lastinspectaction: psql.Quote(alias, "lastinspectaction"), Lastinspectconditions: psql.Quote(alias, "lastinspectconditions"), Lastinspectrodentevidence: psql.Quote(alias, "lastinspectrodentevidence"), 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"), Creationdate: psql.Quote(alias, "creationdate"), Creator: psql.Quote(alias, "creator"), Editdate: psql.Quote(alias, "editdate"), Editor: psql.Quote(alias, "editor"), Jurisdiction: psql.Quote(alias, "jurisdiction"), Geometry: psql.Quote(alias, "geometry"), Geospatial: psql.Quote(alias, "geospatial"), Version: psql.Quote(alias, "version"), OrganizationID: psql.Quote(alias, "organization_id"), } } type fieldseekerRodentlocationColumns struct { expr.ColumnsExpr tableAlias string Objectid psql.Expression Locationname psql.Expression Zone psql.Expression Zone2 psql.Expression Habitat psql.Expression Priority psql.Expression Usetype psql.Expression Active psql.Expression Description psql.Expression Accessdesc psql.Expression Comments psql.Expression Symbology psql.Expression Externalid psql.Expression Nextactiondatescheduled psql.Expression Locationnumber psql.Expression Lastinspectdate psql.Expression Lastinspectspecies psql.Expression Lastinspectaction psql.Expression Lastinspectconditions psql.Expression Lastinspectrodentevidence psql.Expression Globalid psql.Expression CreatedUser psql.Expression CreatedDate psql.Expression LastEditedUser psql.Expression LastEditedDate psql.Expression Creationdate psql.Expression Creator psql.Expression Editdate psql.Expression Editor psql.Expression Jurisdiction psql.Expression Geometry psql.Expression Geospatial psql.Expression Version psql.Expression OrganizationID psql.Expression } func (c fieldseekerRodentlocationColumns) Alias() string { return c.tableAlias } func (fieldseekerRodentlocationColumns) AliasedAs(alias string) fieldseekerRodentlocationColumns { return buildFieldseekerRodentlocationColumns(alias) } // FieldseekerRodentlocationSetter is used for insert/upsert/update operations // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerRodentlocationSetter struct { Objectid omit.Val[int64] `db:"objectid" ` Locationname omitnull.Val[string] `db:"locationname" ` Zone omitnull.Val[string] `db:"zone" ` Zone2 omitnull.Val[string] `db:"zone2" ` 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" ` Symbology omitnull.Val[string] `db:"symbology" ` Externalid omitnull.Val[string] `db:"externalid" ` Nextactiondatescheduled omitnull.Val[time.Time] `db:"nextactiondatescheduled" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` Lastinspectdate omitnull.Val[time.Time] `db:"lastinspectdate" ` Lastinspectspecies omitnull.Val[string] `db:"lastinspectspecies" ` Lastinspectaction omitnull.Val[string] `db:"lastinspectaction" ` Lastinspectconditions omitnull.Val[string] `db:"lastinspectconditions" ` Lastinspectrodentevidence omitnull.Val[string] `db:"lastinspectrodentevidence" ` 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" ` 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" ` Jurisdiction omitnull.Val[string] `db:"jurisdiction" ` 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 FieldseekerRodentlocationSetter) SetColumns() []string { vals := make([]string, 0, 34) if s.Objectid.IsValue() { vals = append(vals, "objectid") } if !s.Locationname.IsUnset() { vals = append(vals, "locationname") } if !s.Zone.IsUnset() { vals = append(vals, "zone") } if !s.Zone2.IsUnset() { vals = append(vals, "zone2") } 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.Symbology.IsUnset() { vals = append(vals, "symbology") } if !s.Externalid.IsUnset() { vals = append(vals, "externalid") } if !s.Nextactiondatescheduled.IsUnset() { vals = append(vals, "nextactiondatescheduled") } if !s.Locationnumber.IsUnset() { vals = append(vals, "locationnumber") } if !s.Lastinspectdate.IsUnset() { vals = append(vals, "lastinspectdate") } if !s.Lastinspectspecies.IsUnset() { vals = append(vals, "lastinspectspecies") } if !s.Lastinspectaction.IsUnset() { vals = append(vals, "lastinspectaction") } if !s.Lastinspectconditions.IsUnset() { vals = append(vals, "lastinspectconditions") } if !s.Lastinspectrodentevidence.IsUnset() { vals = append(vals, "lastinspectrodentevidence") } 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.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.Jurisdiction.IsUnset() { vals = append(vals, "jurisdiction") } 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 FieldseekerRodentlocationSetter) Overwrite(t *FieldseekerRodentlocation) { if s.Objectid.IsValue() { t.Objectid = s.Objectid.MustGet() } if !s.Locationname.IsUnset() { t.Locationname = s.Locationname.MustGetNull() } if !s.Zone.IsUnset() { t.Zone = s.Zone.MustGetNull() } if !s.Zone2.IsUnset() { t.Zone2 = s.Zone2.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.Symbology.IsUnset() { t.Symbology = s.Symbology.MustGetNull() } if !s.Externalid.IsUnset() { t.Externalid = s.Externalid.MustGetNull() } if !s.Nextactiondatescheduled.IsUnset() { t.Nextactiondatescheduled = s.Nextactiondatescheduled.MustGetNull() } if !s.Locationnumber.IsUnset() { t.Locationnumber = s.Locationnumber.MustGetNull() } if !s.Lastinspectdate.IsUnset() { t.Lastinspectdate = s.Lastinspectdate.MustGetNull() } if !s.Lastinspectspecies.IsUnset() { t.Lastinspectspecies = s.Lastinspectspecies.MustGetNull() } if !s.Lastinspectaction.IsUnset() { t.Lastinspectaction = s.Lastinspectaction.MustGetNull() } if !s.Lastinspectconditions.IsUnset() { t.Lastinspectconditions = s.Lastinspectconditions.MustGetNull() } if !s.Lastinspectrodentevidence.IsUnset() { t.Lastinspectrodentevidence = s.Lastinspectrodentevidence.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.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.Jurisdiction.IsUnset() { t.Jurisdiction = s.Jurisdiction.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 *FieldseekerRodentlocationSetter) Apply(q *dialect.InsertQuery) { q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { return FieldseekerRodentlocations.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, 34) if s.Objectid.IsValue() { vals[0] = psql.Arg(s.Objectid.MustGet()) } else { vals[0] = psql.Raw("DEFAULT") } if !s.Locationname.IsUnset() { vals[1] = psql.Arg(s.Locationname.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.Zone2.IsUnset() { vals[3] = psql.Arg(s.Zone2.MustGetNull()) } else { vals[3] = psql.Raw("DEFAULT") } if !s.Habitat.IsUnset() { vals[4] = psql.Arg(s.Habitat.MustGetNull()) } else { vals[4] = psql.Raw("DEFAULT") } if !s.Priority.IsUnset() { vals[5] = psql.Arg(s.Priority.MustGetNull()) } else { vals[5] = psql.Raw("DEFAULT") } if !s.Usetype.IsUnset() { vals[6] = psql.Arg(s.Usetype.MustGetNull()) } else { vals[6] = psql.Raw("DEFAULT") } if !s.Active.IsUnset() { vals[7] = psql.Arg(s.Active.MustGetNull()) } else { vals[7] = psql.Raw("DEFAULT") } if !s.Description.IsUnset() { vals[8] = psql.Arg(s.Description.MustGetNull()) } else { vals[8] = psql.Raw("DEFAULT") } if !s.Accessdesc.IsUnset() { vals[9] = psql.Arg(s.Accessdesc.MustGetNull()) } else { vals[9] = psql.Raw("DEFAULT") } if !s.Comments.IsUnset() { vals[10] = psql.Arg(s.Comments.MustGetNull()) } else { vals[10] = psql.Raw("DEFAULT") } if !s.Symbology.IsUnset() { vals[11] = psql.Arg(s.Symbology.MustGetNull()) } else { vals[11] = psql.Raw("DEFAULT") } if !s.Externalid.IsUnset() { vals[12] = psql.Arg(s.Externalid.MustGetNull()) } else { vals[12] = psql.Raw("DEFAULT") } if !s.Nextactiondatescheduled.IsUnset() { vals[13] = psql.Arg(s.Nextactiondatescheduled.MustGetNull()) } else { vals[13] = psql.Raw("DEFAULT") } if !s.Locationnumber.IsUnset() { vals[14] = psql.Arg(s.Locationnumber.MustGetNull()) } else { vals[14] = psql.Raw("DEFAULT") } if !s.Lastinspectdate.IsUnset() { vals[15] = psql.Arg(s.Lastinspectdate.MustGetNull()) } else { vals[15] = psql.Raw("DEFAULT") } if !s.Lastinspectspecies.IsUnset() { vals[16] = psql.Arg(s.Lastinspectspecies.MustGetNull()) } else { vals[16] = psql.Raw("DEFAULT") } if !s.Lastinspectaction.IsUnset() { vals[17] = psql.Arg(s.Lastinspectaction.MustGetNull()) } else { vals[17] = psql.Raw("DEFAULT") } if !s.Lastinspectconditions.IsUnset() { vals[18] = psql.Arg(s.Lastinspectconditions.MustGetNull()) } else { vals[18] = psql.Raw("DEFAULT") } if !s.Lastinspectrodentevidence.IsUnset() { vals[19] = psql.Arg(s.Lastinspectrodentevidence.MustGetNull()) } else { vals[19] = psql.Raw("DEFAULT") } if s.Globalid.IsValue() { vals[20] = psql.Arg(s.Globalid.MustGet()) } else { vals[20] = psql.Raw("DEFAULT") } if !s.CreatedUser.IsUnset() { vals[21] = psql.Arg(s.CreatedUser.MustGetNull()) } else { vals[21] = psql.Raw("DEFAULT") } if !s.CreatedDate.IsUnset() { vals[22] = psql.Arg(s.CreatedDate.MustGetNull()) } else { vals[22] = psql.Raw("DEFAULT") } if !s.LastEditedUser.IsUnset() { vals[23] = psql.Arg(s.LastEditedUser.MustGetNull()) } else { vals[23] = psql.Raw("DEFAULT") } if !s.LastEditedDate.IsUnset() { vals[24] = psql.Arg(s.LastEditedDate.MustGetNull()) } else { vals[24] = psql.Raw("DEFAULT") } if !s.Creationdate.IsUnset() { vals[25] = psql.Arg(s.Creationdate.MustGetNull()) } else { vals[25] = psql.Raw("DEFAULT") } if !s.Creator.IsUnset() { vals[26] = psql.Arg(s.Creator.MustGetNull()) } else { vals[26] = psql.Raw("DEFAULT") } if !s.Editdate.IsUnset() { vals[27] = psql.Arg(s.Editdate.MustGetNull()) } else { vals[27] = psql.Raw("DEFAULT") } if !s.Editor.IsUnset() { vals[28] = psql.Arg(s.Editor.MustGetNull()) } else { vals[28] = psql.Raw("DEFAULT") } if !s.Jurisdiction.IsUnset() { vals[29] = psql.Arg(s.Jurisdiction.MustGetNull()) } else { vals[29] = psql.Raw("DEFAULT") } if s.Geometry.IsValue() { vals[30] = psql.Arg(s.Geometry.MustGet()) } else { vals[30] = psql.Raw("DEFAULT") } if !s.Geospatial.IsUnset() { vals[31] = psql.Arg(s.Geospatial.MustGetNull()) } else { vals[31] = psql.Raw("DEFAULT") } if s.Version.IsValue() { vals[32] = psql.Arg(s.Version.MustGet()) } else { vals[32] = psql.Raw("DEFAULT") } if s.OrganizationID.IsValue() { vals[33] = psql.Arg(s.OrganizationID.MustGet()) } else { vals[33] = psql.Raw("DEFAULT") } return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } func (s FieldseekerRodentlocationSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { return um.Set(s.Expressions()...) } func (s FieldseekerRodentlocationSetter) Expressions(prefix ...string) []bob.Expression { exprs := make([]bob.Expression, 0, 34) if s.Objectid.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "objectid")...), psql.Arg(s.Objectid), }}) } if !s.Locationname.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "locationname")...), psql.Arg(s.Locationname), }}) } if !s.Zone.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "zone")...), psql.Arg(s.Zone), }}) } if !s.Zone2.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "zone2")...), psql.Arg(s.Zone2), }}) } 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.Symbology.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "symbology")...), psql.Arg(s.Symbology), }}) } 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.Locationnumber.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "locationnumber")...), psql.Arg(s.Locationnumber), }}) } if !s.Lastinspectdate.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "lastinspectdate")...), psql.Arg(s.Lastinspectdate), }}) } if !s.Lastinspectspecies.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "lastinspectspecies")...), psql.Arg(s.Lastinspectspecies), }}) } if !s.Lastinspectaction.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "lastinspectaction")...), psql.Arg(s.Lastinspectaction), }}) } if !s.Lastinspectconditions.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "lastinspectconditions")...), psql.Arg(s.Lastinspectconditions), }}) } if !s.Lastinspectrodentevidence.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "lastinspectrodentevidence")...), psql.Arg(s.Lastinspectrodentevidence), }}) } 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.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.Jurisdiction.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "jurisdiction")...), psql.Arg(s.Jurisdiction), }}) } 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 } // FindFieldseekerRodentlocation retrieves a single record by primary key // If cols is empty Find will return all columns. func FindFieldseekerRodentlocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerRodentlocation, error) { if len(cols) == 0 { return FieldseekerRodentlocations.Query( sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerRodentlocations.Query( sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerRodentlocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerRodentlocationExists checks the presence of a single record by primary key func FieldseekerRodentlocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerRodentlocations.Query( sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } // AfterQueryHook is called after FieldseekerRodentlocation is retrieved from the database func (o *FieldseekerRodentlocation) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerRodentlocations.AfterSelectHooks.RunHooks(ctx, exec, FieldseekerRodentlocationSlice{o}) case bob.QueryTypeInsert: ctx, err = FieldseekerRodentlocations.AfterInsertHooks.RunHooks(ctx, exec, FieldseekerRodentlocationSlice{o}) case bob.QueryTypeUpdate: ctx, err = FieldseekerRodentlocations.AfterUpdateHooks.RunHooks(ctx, exec, FieldseekerRodentlocationSlice{o}) case bob.QueryTypeDelete: ctx, err = FieldseekerRodentlocations.AfterDeleteHooks.RunHooks(ctx, exec, FieldseekerRodentlocationSlice{o}) } return err } // primaryKeyVals returns the primary key values of the FieldseekerRodentlocation func (o *FieldseekerRodentlocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( o.Globalid, o.Version, ) } func (o *FieldseekerRodentlocation) pkEQ() dialect.Expression { return psql.Group(psql.Quote("fieldseeker.rodentlocation", "globalid"), psql.Quote("fieldseeker.rodentlocation", "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 FieldseekerRodentlocation func (o *FieldseekerRodentlocation) Update(ctx context.Context, exec bob.Executor, s *FieldseekerRodentlocationSetter) error { v, err := FieldseekerRodentlocations.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 FieldseekerRodentlocation record with an executor func (o *FieldseekerRodentlocation) Delete(ctx context.Context, exec bob.Executor) error { _, err := FieldseekerRodentlocations.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec) return err } // Reload refreshes the FieldseekerRodentlocation using the executor func (o *FieldseekerRodentlocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerRodentlocations.Query( sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerRodentlocations.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 FieldseekerRodentlocationSlice is retrieved from the database func (o FieldseekerRodentlocationSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerRodentlocations.AfterSelectHooks.RunHooks(ctx, exec, o) case bob.QueryTypeInsert: ctx, err = FieldseekerRodentlocations.AfterInsertHooks.RunHooks(ctx, exec, o) case bob.QueryTypeUpdate: ctx, err = FieldseekerRodentlocations.AfterUpdateHooks.RunHooks(ctx, exec, o) case bob.QueryTypeDelete: ctx, err = FieldseekerRodentlocations.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err } func (o FieldseekerRodentlocationSlice) pkIN() dialect.Expression { if len(o) == 0 { return psql.Raw("NULL") } return psql.Group(psql.Quote("fieldseeker.rodentlocation", "globalid"), psql.Quote("fieldseeker.rodentlocation", "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 FieldseekerRodentlocationSlice) copyMatchingRows(from ...*FieldseekerRodentlocation) { 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 FieldseekerRodentlocationSlice) 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 FieldseekerRodentlocations.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 *FieldseekerRodentlocation: o.copyMatchingRows(retrieved) case []*FieldseekerRodentlocation: o.copyMatchingRows(retrieved...) case FieldseekerRodentlocationSlice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerRodentlocation or a slice of FieldseekerRodentlocation // then run the AfterUpdateHooks on the slice _, err = FieldseekerRodentlocations.AfterUpdateHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } // DeleteMod modifies an delete query with "WHERE primary_key IN (o...)" func (o FieldseekerRodentlocationSlice) 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 FieldseekerRodentlocations.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 *FieldseekerRodentlocation: o.copyMatchingRows(retrieved) case []*FieldseekerRodentlocation: o.copyMatchingRows(retrieved...) case FieldseekerRodentlocationSlice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerRodentlocation or a slice of FieldseekerRodentlocation // then run the AfterDeleteHooks on the slice _, err = FieldseekerRodentlocations.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } func (o FieldseekerRodentlocationSlice) UpdateAll(ctx context.Context, exec bob.Executor, vals FieldseekerRodentlocationSetter) error { if len(o) == 0 { return nil } _, err := FieldseekerRodentlocations.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec) return err } func (o FieldseekerRodentlocationSlice) DeleteAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } _, err := FieldseekerRodentlocations.Delete(o.DeleteMod()).Exec(ctx, exec) return err } func (o FieldseekerRodentlocationSlice) ReloadAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } o2, err := FieldseekerRodentlocations.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 *FieldseekerRodentlocation) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery { return Organizations.Query(append(mods, sm.Where(Organizations.Columns.ID.EQ(psql.Arg(o.OrganizationID))), )...) } func (os FieldseekerRodentlocationSlice) 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 attachFieldseekerRodentlocationOrganization0(ctx context.Context, exec bob.Executor, count int, fieldseekerRodentlocation0 *FieldseekerRodentlocation, organization1 *Organization) (*FieldseekerRodentlocation, error) { setter := &FieldseekerRodentlocationSetter{ OrganizationID: omit.From(organization1.ID), } err := fieldseekerRodentlocation0.Update(ctx, exec, setter) if err != nil { return nil, fmt.Errorf("attachFieldseekerRodentlocationOrganization0: %w", err) } return fieldseekerRodentlocation0, nil } func (fieldseekerRodentlocation0 *FieldseekerRodentlocation) 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 = attachFieldseekerRodentlocationOrganization0(ctx, exec, 1, fieldseekerRodentlocation0, organization1) if err != nil { return err } fieldseekerRodentlocation0.R.Organization = organization1 organization1.R.Rodentlocations = append(organization1.R.Rodentlocations, fieldseekerRodentlocation0) return nil } func (fieldseekerRodentlocation0 *FieldseekerRodentlocation) AttachOrganization(ctx context.Context, exec bob.Executor, organization1 *Organization) error { var err error _, err = attachFieldseekerRodentlocationOrganization0(ctx, exec, 1, fieldseekerRodentlocation0, organization1) if err != nil { return err } fieldseekerRodentlocation0.R.Organization = organization1 organization1.R.Rodentlocations = append(organization1.R.Rodentlocations, fieldseekerRodentlocation0) return nil } type fieldseekerRodentlocationWhere[Q psql.Filterable] struct { Objectid psql.WhereMod[Q, int64] Locationname psql.WhereNullMod[Q, string] Zone psql.WhereNullMod[Q, string] Zone2 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] Symbology psql.WhereNullMod[Q, string] Externalid psql.WhereNullMod[Q, string] Nextactiondatescheduled psql.WhereNullMod[Q, time.Time] Locationnumber psql.WhereNullMod[Q, int32] Lastinspectdate psql.WhereNullMod[Q, time.Time] Lastinspectspecies psql.WhereNullMod[Q, string] Lastinspectaction psql.WhereNullMod[Q, string] Lastinspectconditions psql.WhereNullMod[Q, string] Lastinspectrodentevidence psql.WhereNullMod[Q, string] 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] Creationdate psql.WhereNullMod[Q, time.Time] Creator psql.WhereNullMod[Q, string] Editdate psql.WhereNullMod[Q, time.Time] Editor psql.WhereNullMod[Q, string] Jurisdiction 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 (fieldseekerRodentlocationWhere[Q]) AliasedAs(alias string) fieldseekerRodentlocationWhere[Q] { return buildFieldseekerRodentlocationWhere[Q](buildFieldseekerRodentlocationColumns(alias)) } func buildFieldseekerRodentlocationWhere[Q psql.Filterable](cols fieldseekerRodentlocationColumns) fieldseekerRodentlocationWhere[Q] { return fieldseekerRodentlocationWhere[Q]{ Objectid: psql.Where[Q, int64](cols.Objectid), Locationname: psql.WhereNull[Q, string](cols.Locationname), Zone: psql.WhereNull[Q, string](cols.Zone), Zone2: psql.WhereNull[Q, string](cols.Zone2), 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), Symbology: psql.WhereNull[Q, string](cols.Symbology), Externalid: psql.WhereNull[Q, string](cols.Externalid), Nextactiondatescheduled: psql.WhereNull[Q, time.Time](cols.Nextactiondatescheduled), Locationnumber: psql.WhereNull[Q, int32](cols.Locationnumber), Lastinspectdate: psql.WhereNull[Q, time.Time](cols.Lastinspectdate), Lastinspectspecies: psql.WhereNull[Q, string](cols.Lastinspectspecies), Lastinspectaction: psql.WhereNull[Q, string](cols.Lastinspectaction), Lastinspectconditions: psql.WhereNull[Q, string](cols.Lastinspectconditions), Lastinspectrodentevidence: psql.WhereNull[Q, string](cols.Lastinspectrodentevidence), 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), 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), Jurisdiction: psql.WhereNull[Q, string](cols.Jurisdiction), 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 *FieldseekerRodentlocation) Preload(name string, retrieved any) error { if o == nil { return nil } switch name { case "Organization": rel, ok := retrieved.(*Organization) if !ok { return fmt.Errorf("fieldseekerRodentlocation cannot load %T as %q", retrieved, name) } o.R.Organization = rel if rel != nil { rel.R.Rodentlocations = FieldseekerRodentlocationSlice{o} } return nil default: return fmt.Errorf("fieldseekerRodentlocation has no relationship %q", name) } } type fieldseekerRodentlocationPreloader struct { Organization func(...psql.PreloadOption) psql.Preloader } func buildFieldseekerRodentlocationPreloader() fieldseekerRodentlocationPreloader { return fieldseekerRodentlocationPreloader{ Organization: func(opts ...psql.PreloadOption) psql.Preloader { return psql.Preload[*Organization, OrganizationSlice](psql.PreloadRel{ Name: "Organization", Sides: []psql.PreloadSide{ { From: FieldseekerRodentlocations, To: Organizations, FromColumns: []string{"organization_id"}, ToColumns: []string{"id"}, }, }, }, Organizations.Columns.Names(), opts...) }, } } type fieldseekerRodentlocationThenLoader[Q orm.Loadable] struct { Organization func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q] } func buildFieldseekerRodentlocationThenLoader[Q orm.Loadable]() fieldseekerRodentlocationThenLoader[Q] { type OrganizationLoadInterface interface { LoadOrganization(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error } return fieldseekerRodentlocationThenLoader[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 fieldseekerRodentlocation's Organization into the .R struct func (o *FieldseekerRodentlocation) 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.Rodentlocations = FieldseekerRodentlocationSlice{o} o.R.Organization = related return nil } // LoadOrganization loads the fieldseekerRodentlocation's Organization into the .R struct func (os FieldseekerRodentlocationSlice) 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.Rodentlocations = append(rel.R.Rodentlocations, o) o.R.Organization = rel break } } return nil }