// Code generated by BobGen psql v0.42.0. DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models import ( "context" "io" "time" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" "github.com/aarondl/opt/omitnull" "github.com/gofrs/uuid/v5" "github.com/stephenafamo/bob" "github.com/stephenafamo/bob/dialect/psql" "github.com/stephenafamo/bob/dialect/psql/dialect" "github.com/stephenafamo/bob/dialect/psql/dm" "github.com/stephenafamo/bob/dialect/psql/sm" "github.com/stephenafamo/bob/dialect/psql/um" "github.com/stephenafamo/bob/expr" ) // FieldseekerZones2 is an object representing the database table. type FieldseekerZones2 struct { Objectid int64 `db:"objectid,pk" ` // Name Name null.Val[string] `db:"name" ` Globalid null.Val[uuid.UUID] `db:"globalid" ` CreatedUser null.Val[string] `db:"created_user" ` CreatedDate null.Val[time.Time] `db:"created_date" ` LastEditedUser null.Val[string] `db:"last_edited_user" ` LastEditedDate null.Val[time.Time] `db:"last_edited_date" ` Creationdate null.Val[time.Time] `db:"creationdate" ` Creator null.Val[string] `db:"creator" ` Editdate null.Val[time.Time] `db:"editdate" ` Editor null.Val[string] `db:"editor" ` ShapeArea null.Val[float64] `db:"shape__area" ` ShapeLength null.Val[float64] `db:"shape__length" ` } // FieldseekerZones2Slice is an alias for a slice of pointers to FieldseekerZones2. // This should almost always be used instead of []*FieldseekerZones2. type FieldseekerZones2Slice []*FieldseekerZones2 // FieldseekerZones2s contains methods to work with the zones2 table var FieldseekerZones2s = psql.NewTablex[*FieldseekerZones2, FieldseekerZones2Slice, *FieldseekerZones2Setter]("fieldseeker", "zones2", buildFieldseekerZones2Columns("fieldseeker.zones2")) // FieldseekerZones2sQuery is a query on the zones2 table type FieldseekerZones2sQuery = *psql.ViewQuery[*FieldseekerZones2, FieldseekerZones2Slice] func buildFieldseekerZones2Columns(alias string) fieldseekerZones2Columns { return fieldseekerZones2Columns{ ColumnsExpr: expr.NewColumnsExpr( "objectid", "name", "globalid", "created_user", "created_date", "last_edited_user", "last_edited_date", "creationdate", "creator", "editdate", "editor", "shape__area", "shape__length", ).WithParent("fieldseeker.zones2"), tableAlias: alias, Objectid: psql.Quote(alias, "objectid"), Name: psql.Quote(alias, "name"), 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"), ShapeArea: psql.Quote(alias, "shape__area"), ShapeLength: psql.Quote(alias, "shape__length"), } } type fieldseekerZones2Columns struct { expr.ColumnsExpr tableAlias string Objectid psql.Expression Name 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 ShapeArea psql.Expression ShapeLength psql.Expression } func (c fieldseekerZones2Columns) Alias() string { return c.tableAlias } func (fieldseekerZones2Columns) AliasedAs(alias string) fieldseekerZones2Columns { return buildFieldseekerZones2Columns(alias) } // FieldseekerZones2Setter is used for insert/upsert/update operations // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerZones2Setter struct { Objectid omit.Val[int64] `db:"objectid,pk" ` Name omitnull.Val[string] `db:"name" ` Globalid omitnull.Val[uuid.UUID] `db:"globalid" ` 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" ` ShapeArea omitnull.Val[float64] `db:"shape__area" ` ShapeLength omitnull.Val[float64] `db:"shape__length" ` } func (s FieldseekerZones2Setter) SetColumns() []string { vals := make([]string, 0, 13) if s.Objectid.IsValue() { vals = append(vals, "objectid") } if !s.Name.IsUnset() { vals = append(vals, "name") } if !s.Globalid.IsUnset() { 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.ShapeArea.IsUnset() { vals = append(vals, "shape__area") } if !s.ShapeLength.IsUnset() { vals = append(vals, "shape__length") } return vals } func (s FieldseekerZones2Setter) Overwrite(t *FieldseekerZones2) { if s.Objectid.IsValue() { t.Objectid = s.Objectid.MustGet() } if !s.Name.IsUnset() { t.Name = s.Name.MustGetNull() } if !s.Globalid.IsUnset() { t.Globalid = s.Globalid.MustGetNull() } 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.ShapeArea.IsUnset() { t.ShapeArea = s.ShapeArea.MustGetNull() } if !s.ShapeLength.IsUnset() { t.ShapeLength = s.ShapeLength.MustGetNull() } } func (s *FieldseekerZones2Setter) Apply(q *dialect.InsertQuery) { q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { return FieldseekerZones2s.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, 13) 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.Globalid.IsUnset() { vals[2] = psql.Arg(s.Globalid.MustGetNull()) } else { vals[2] = psql.Raw("DEFAULT") } if !s.CreatedUser.IsUnset() { vals[3] = psql.Arg(s.CreatedUser.MustGetNull()) } else { vals[3] = psql.Raw("DEFAULT") } if !s.CreatedDate.IsUnset() { vals[4] = psql.Arg(s.CreatedDate.MustGetNull()) } else { vals[4] = psql.Raw("DEFAULT") } if !s.LastEditedUser.IsUnset() { vals[5] = psql.Arg(s.LastEditedUser.MustGetNull()) } else { vals[5] = psql.Raw("DEFAULT") } if !s.LastEditedDate.IsUnset() { vals[6] = psql.Arg(s.LastEditedDate.MustGetNull()) } else { vals[6] = psql.Raw("DEFAULT") } if !s.Creationdate.IsUnset() { vals[7] = psql.Arg(s.Creationdate.MustGetNull()) } else { vals[7] = psql.Raw("DEFAULT") } if !s.Creator.IsUnset() { vals[8] = psql.Arg(s.Creator.MustGetNull()) } else { vals[8] = psql.Raw("DEFAULT") } if !s.Editdate.IsUnset() { vals[9] = psql.Arg(s.Editdate.MustGetNull()) } else { vals[9] = psql.Raw("DEFAULT") } if !s.Editor.IsUnset() { vals[10] = psql.Arg(s.Editor.MustGetNull()) } else { vals[10] = psql.Raw("DEFAULT") } if !s.ShapeArea.IsUnset() { vals[11] = psql.Arg(s.ShapeArea.MustGetNull()) } else { vals[11] = psql.Raw("DEFAULT") } if !s.ShapeLength.IsUnset() { vals[12] = psql.Arg(s.ShapeLength.MustGetNull()) } else { vals[12] = psql.Raw("DEFAULT") } return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } func (s FieldseekerZones2Setter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { return um.Set(s.Expressions()...) } func (s FieldseekerZones2Setter) Expressions(prefix ...string) []bob.Expression { exprs := make([]bob.Expression, 0, 13) 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.Globalid.IsUnset() { 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.ShapeArea.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "shape__area")...), psql.Arg(s.ShapeArea), }}) } if !s.ShapeLength.IsUnset() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ psql.Quote(append(prefix, "shape__length")...), psql.Arg(s.ShapeLength), }}) } return exprs } // FindFieldseekerZones2 retrieves a single record by primary key // If cols is empty Find will return all columns. func FindFieldseekerZones2(ctx context.Context, exec bob.Executor, ObjectidPK int64, cols ...string) (*FieldseekerZones2, error) { if len(cols) == 0 { return FieldseekerZones2s.Query( sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), ).One(ctx, exec) } return FieldseekerZones2s.Query( sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), sm.Columns(FieldseekerZones2s.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerZones2Exists checks the presence of a single record by primary key func FieldseekerZones2Exists(ctx context.Context, exec bob.Executor, ObjectidPK int64) (bool, error) { return FieldseekerZones2s.Query( sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), ).Exists(ctx, exec) } // AfterQueryHook is called after FieldseekerZones2 is retrieved from the database func (o *FieldseekerZones2) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerZones2s.AfterSelectHooks.RunHooks(ctx, exec, FieldseekerZones2Slice{o}) case bob.QueryTypeInsert: ctx, err = FieldseekerZones2s.AfterInsertHooks.RunHooks(ctx, exec, FieldseekerZones2Slice{o}) case bob.QueryTypeUpdate: ctx, err = FieldseekerZones2s.AfterUpdateHooks.RunHooks(ctx, exec, FieldseekerZones2Slice{o}) case bob.QueryTypeDelete: ctx, err = FieldseekerZones2s.AfterDeleteHooks.RunHooks(ctx, exec, FieldseekerZones2Slice{o}) } return err } // primaryKeyVals returns the primary key values of the FieldseekerZones2 func (o *FieldseekerZones2) primaryKeyVals() bob.Expression { return psql.Arg(o.Objectid) } func (o *FieldseekerZones2) pkEQ() dialect.Expression { return psql.Quote("fieldseeker.zones2", "objectid").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 FieldseekerZones2 func (o *FieldseekerZones2) Update(ctx context.Context, exec bob.Executor, s *FieldseekerZones2Setter) error { v, err := FieldseekerZones2s.Update(s.UpdateMod(), um.Where(o.pkEQ())).One(ctx, exec) if err != nil { return err } *o = *v return nil } // Delete deletes a single FieldseekerZones2 record with an executor func (o *FieldseekerZones2) Delete(ctx context.Context, exec bob.Executor) error { _, err := FieldseekerZones2s.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec) return err } // Reload refreshes the FieldseekerZones2 using the executor func (o *FieldseekerZones2) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerZones2s.Query( sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(o.Objectid))), ).One(ctx, exec) if err != nil { return err } *o = *o2 return nil } // AfterQueryHook is called after FieldseekerZones2Slice is retrieved from the database func (o FieldseekerZones2Slice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { var err error switch queryType { case bob.QueryTypeSelect: ctx, err = FieldseekerZones2s.AfterSelectHooks.RunHooks(ctx, exec, o) case bob.QueryTypeInsert: ctx, err = FieldseekerZones2s.AfterInsertHooks.RunHooks(ctx, exec, o) case bob.QueryTypeUpdate: ctx, err = FieldseekerZones2s.AfterUpdateHooks.RunHooks(ctx, exec, o) case bob.QueryTypeDelete: ctx, err = FieldseekerZones2s.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err } func (o FieldseekerZones2Slice) pkIN() dialect.Expression { if len(o) == 0 { return psql.Raw("NULL") } return psql.Quote("fieldseeker.zones2", "objectid").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 FieldseekerZones2Slice) copyMatchingRows(from ...*FieldseekerZones2) { for i, old := range o { for _, new := range from { if new.Objectid != old.Objectid { continue } o[i] = new break } } } // UpdateMod modifies an update query with "WHERE primary_key IN (o...)" func (o FieldseekerZones2Slice) 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 FieldseekerZones2s.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 *FieldseekerZones2: o.copyMatchingRows(retrieved) case []*FieldseekerZones2: o.copyMatchingRows(retrieved...) case FieldseekerZones2Slice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerZones2 or a slice of FieldseekerZones2 // then run the AfterUpdateHooks on the slice _, err = FieldseekerZones2s.AfterUpdateHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } // DeleteMod modifies an delete query with "WHERE primary_key IN (o...)" func (o FieldseekerZones2Slice) 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 FieldseekerZones2s.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 *FieldseekerZones2: o.copyMatchingRows(retrieved) case []*FieldseekerZones2: o.copyMatchingRows(retrieved...) case FieldseekerZones2Slice: o.copyMatchingRows(retrieved...) default: // If the retrieved value is not a FieldseekerZones2 or a slice of FieldseekerZones2 // then run the AfterDeleteHooks on the slice _, err = FieldseekerZones2s.AfterDeleteHooks.RunHooks(ctx, exec, o) } return err })) q.AppendWhere(o.pkIN()) }) } func (o FieldseekerZones2Slice) UpdateAll(ctx context.Context, exec bob.Executor, vals FieldseekerZones2Setter) error { if len(o) == 0 { return nil } _, err := FieldseekerZones2s.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec) return err } func (o FieldseekerZones2Slice) DeleteAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } _, err := FieldseekerZones2s.Delete(o.DeleteMod()).Exec(ctx, exec) return err } func (o FieldseekerZones2Slice) ReloadAll(ctx context.Context, exec bob.Executor) error { if len(o) == 0 { return nil } o2, err := FieldseekerZones2s.Query(sm.Where(o.pkIN())).All(ctx, exec) if err != nil { return err } o.copyMatchingRows(o2...) return nil } type fieldseekerZones2Where[Q psql.Filterable] struct { Objectid psql.WhereMod[Q, int64] Name psql.WhereNullMod[Q, string] Globalid psql.WhereNullMod[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] ShapeArea psql.WhereNullMod[Q, float64] ShapeLength psql.WhereNullMod[Q, float64] } func (fieldseekerZones2Where[Q]) AliasedAs(alias string) fieldseekerZones2Where[Q] { return buildFieldseekerZones2Where[Q](buildFieldseekerZones2Columns(alias)) } func buildFieldseekerZones2Where[Q psql.Filterable](cols fieldseekerZones2Columns) fieldseekerZones2Where[Q] { return fieldseekerZones2Where[Q]{ Objectid: psql.Where[Q, int64](cols.Objectid), Name: psql.WhereNull[Q, string](cols.Name), Globalid: psql.WhereNull[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), ShapeArea: psql.WhereNull[Q, float64](cols.ShapeArea), ShapeLength: psql.WhereNull[Q, float64](cols.ShapeLength), } }