From 00fd676adc610b1f5b4d683c25ff7382c06b04d4 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Tue, 13 Jan 2026 19:47:19 +0000 Subject: [PATCH] Add district table for california districts. --- README.md | 8 + db/dberrors/district.bob.go | 17 + db/dbinfo/district.bob.go | 320 ++++ db/dbinfo/publicreport.nuisance.bob.go | 38 +- db/dbinfo/publicreport.pool.bob.go | 12 +- db/dbinfo/publicreport.quick.bob.go | 22 +- db/dbinfo/publicreport.report_location.bob.go | 122 ++ db/enums/enums.bob.go | 79 + db/factory/bobfactory_context.bob.go | 6 + db/factory/bobfactory_main.bob.go | 102 +- db/factory/bobfactory_random.bob.go | 42 + db/factory/district.bob.go | 1556 +++++++++++++++++ db/factory/publicreport.nuisance.bob.go | 186 +- db/factory/publicreport.pool.bob.go | 45 + db/factory/publicreport.quick.bob.go | 89 + .../publicreport.report_location.bob.go | 502 ++++++ db/models/bob_where.bob.go | 6 + db/models/district.bob.go | 876 ++++++++++ db/models/publicreport.nuisance.bob.go | 115 +- db/models/publicreport.pool.bob.go | 150 +- db/models/publicreport.quick.bob.go | 91 +- db/models/publicreport.report_location.bob.go | 122 ++ go.mod | 1 + go.sum | 2 + 24 files changed, 4384 insertions(+), 125 deletions(-) create mode 100644 db/dberrors/district.bob.go create mode 100644 db/dbinfo/district.bob.go create mode 100644 db/dbinfo/publicreport.report_location.bob.go create mode 100644 db/factory/district.bob.go create mode 100644 db/factory/publicreport.report_location.bob.go create mode 100644 db/models/district.bob.go create mode 100644 db/models/publicreport.report_location.bob.go diff --git a/README.md b/README.md index 15d4bd1e..06c3f16a 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,14 @@ You'll need a number of environment variables for configuring things; > BASE_URL=https://sync.nidus.cloud ARCGIS_CLIENT_ID=foo ARCGIS_CLIENT_SECRET=bar POSTGRES_DSN='postgresql://?host=/var/run/postgresql&dbname=nidus-sync' ./nidus-sync ``` +### Districts + +There's a table containing district information in the database, `public.district`. It was created with: + +``` +shp2pgsql -s 4326 -c -D -I CA_districts.shp public.district | psql -d nidus-sync +``` + ## Hacking ### air diff --git a/db/dberrors/district.bob.go b/db/dberrors/district.bob.go new file mode 100644 index 00000000..06f8adee --- /dev/null +++ b/db/dberrors/district.bob.go @@ -0,0 +1,17 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package dberrors + +var DistrictErrors = &districtErrors{ + ErrUniqueDistrictPkey: &UniqueConstraintError{ + schema: "", + table: "district", + columns: []string{"gid"}, + s: "district_pkey", + }, +} + +type districtErrors struct { + ErrUniqueDistrictPkey *UniqueConstraintError +} diff --git a/db/dbinfo/district.bob.go b/db/dbinfo/district.bob.go new file mode 100644 index 00000000..bedd3bf0 --- /dev/null +++ b/db/dbinfo/district.bob.go @@ -0,0 +1,320 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package dbinfo + +import "github.com/aarondl/opt/null" + +var Districts = Table[ + districtColumns, + districtIndexes, + districtForeignKeys, + districtUniques, + districtChecks, +]{ + Schema: "", + Name: "district", + Columns: districtColumns{ + Gid: column{ + Name: "gid", + DBType: "integer", + Default: "nextval('district_gid_seq'::regclass)", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, + ID: column{ + Name: "id", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Website: column{ + Name: "website", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Contact: column{ + Name: "contact", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Address: column{ + Name: "address", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Regionid: column{ + Name: "regionid", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + PostalCod: column{ + Name: "postal_cod", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Phone1: column{ + Name: "phone1", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Fax1: column{ + Name: "fax1", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Agency: column{ + Name: "agency", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Code1: column{ + Name: "code1", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + City1: column{ + Name: "city1", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + ShapeLeng: column{ + Name: "shape_leng", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Address2: column{ + Name: "address2", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + GeneralMG: column{ + Name: "general_mg", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + City2: column{ + Name: "city2", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + PostalC1: column{ + Name: "postal_c_1", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Fax2: column{ + Name: "fax2", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Phone2: column{ + Name: "phone2", + DBType: "character varying", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + ShapeLe1: column{ + Name: "shape_le_1", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + ShapeArea: column{ + Name: "shape_area", + DBType: "numeric", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Geom: column{ + Name: "geom", + DBType: "geometry", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + }, + Indexes: districtIndexes{ + DistrictPkey: index{ + Type: "btree", + Name: "district_pkey", + Columns: []indexColumn{ + { + Name: "gid", + Desc: null.FromCond(false, true), + IsExpression: false, + }, + }, + Unique: true, + Comment: "", + NullsFirst: []bool{false}, + NullsDistinct: false, + Where: "", + Include: []string{}, + }, + DistrictGeomIdx: index{ + Type: "gist", + Name: "district_geom_idx", + Columns: []indexColumn{ + { + Name: "geom", + Desc: null.FromCond(false, true), + IsExpression: false, + }, + }, + Unique: false, + Comment: "", + NullsFirst: []bool{false}, + NullsDistinct: false, + Where: "", + Include: []string{}, + }, + }, + PrimaryKey: &constraint{ + Name: "district_pkey", + Columns: []string{"gid"}, + Comment: "", + }, + + Comment: "", +} + +type districtColumns struct { + Gid column + ID column + Website column + Contact column + Address column + Regionid column + PostalCod column + Phone1 column + Fax1 column + Agency column + Code1 column + City1 column + ShapeLeng column + Address2 column + GeneralMG column + City2 column + PostalC1 column + Fax2 column + Phone2 column + ShapeLe1 column + ShapeArea column + Geom column +} + +func (c districtColumns) AsSlice() []column { + return []column{ + c.Gid, c.ID, c.Website, c.Contact, c.Address, c.Regionid, c.PostalCod, c.Phone1, c.Fax1, c.Agency, c.Code1, c.City1, c.ShapeLeng, c.Address2, c.GeneralMG, c.City2, c.PostalC1, c.Fax2, c.Phone2, c.ShapeLe1, c.ShapeArea, c.Geom, + } +} + +type districtIndexes struct { + DistrictPkey index + DistrictGeomIdx index +} + +func (i districtIndexes) AsSlice() []index { + return []index{ + i.DistrictPkey, i.DistrictGeomIdx, + } +} + +type districtForeignKeys struct{} + +func (f districtForeignKeys) AsSlice() []foreignKey { + return []foreignKey{} +} + +type districtUniques struct{} + +func (u districtUniques) AsSlice() []constraint { + return []constraint{} +} + +type districtChecks struct{} + +func (c districtChecks) AsSlice() []check { + return []check{} +} diff --git a/db/dbinfo/publicreport.nuisance.bob.go b/db/dbinfo/publicreport.nuisance.bob.go index 75737643..4eef190c 100644 --- a/db/dbinfo/publicreport.nuisance.bob.go +++ b/db/dbinfo/publicreport.nuisance.bob.go @@ -69,8 +69,8 @@ var PublicreportNuisances = Table[ Generated: false, AutoIncr: false, }, - Location: column{ - Name: "location", + SourceLocation: column{ + Name: "source_location", DBType: "publicreport.nuisancelocationtype", Default: "", Comment: "", @@ -231,6 +231,33 @@ var PublicreportNuisances = Table[ Generated: false, AutoIncr: false, }, + Address: column{ + Name: "address", + DBType: "text", + Default: "", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, + Location: column{ + Name: "location", + DBType: "geography", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Status: column{ + Name: "status", + DBType: "publicreport.reportstatustype", + Default: "", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, }, Indexes: publicreportNuisanceIndexes{ NuisancePkey: index{ @@ -292,7 +319,7 @@ type publicreportNuisanceColumns struct { Duration column Email column InspectionType column - Location column + SourceLocation column PreferredDateRange column PreferredTime column RequestCall column @@ -310,11 +337,14 @@ type publicreportNuisanceColumns struct { ReporterEmail column ReporterName column ReporterPhone column + Address column + Location column + Status column } func (c publicreportNuisanceColumns) AsSlice() []column { return []column{ - c.ID, c.AdditionalInfo, c.Created, c.Duration, c.Email, c.InspectionType, c.Location, c.PreferredDateRange, c.PreferredTime, c.RequestCall, c.Severity, c.SourceContainer, c.SourceDescription, c.SourceRoof, c.SourceStagnant, c.TimeOfDayDay, c.TimeOfDayEarly, c.TimeOfDayEvening, c.TimeOfDayNight, c.PublicID, c.ReporterAddress, c.ReporterEmail, c.ReporterName, c.ReporterPhone, + c.ID, c.AdditionalInfo, c.Created, c.Duration, c.Email, c.InspectionType, c.SourceLocation, c.PreferredDateRange, c.PreferredTime, c.RequestCall, c.Severity, c.SourceContainer, c.SourceDescription, c.SourceRoof, c.SourceStagnant, c.TimeOfDayDay, c.TimeOfDayEarly, c.TimeOfDayEvening, c.TimeOfDayNight, c.PublicID, c.ReporterAddress, c.ReporterEmail, c.ReporterName, c.ReporterPhone, c.Address, c.Location, c.Status, } } diff --git a/db/dbinfo/publicreport.pool.bob.go b/db/dbinfo/publicreport.pool.bob.go index a344e623..482e9357 100644 --- a/db/dbinfo/publicreport.pool.bob.go +++ b/db/dbinfo/publicreport.pool.bob.go @@ -276,6 +276,15 @@ var PublicreportPools = Table[ Generated: false, AutoIncr: false, }, + Status: column{ + Name: "status", + DBType: "publicreport.reportstatustype", + Default: "", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, }, Indexes: publicreportPoolIndexes{ PoolPkey: index{ @@ -360,11 +369,12 @@ type publicreportPoolColumns struct { ReporterName column ReporterPhone column Subscribe column + Status column } func (c publicreportPoolColumns) AsSlice() []column { return []column{ - c.ID, c.AccessComments, c.AccessGate, c.AccessFence, c.AccessLocked, c.AccessDog, c.AccessOther, c.Address, c.AddressCountry, c.AddressPostCode, c.AddressPlace, c.AddressStreet, c.AddressRegion, c.Comments, c.Created, c.H3cell, c.HasAdult, c.HasLarvae, c.HasPupae, c.Location, c.MapZoom, c.OwnerEmail, c.OwnerName, c.OwnerPhone, c.PublicID, c.ReporterEmail, c.ReporterName, c.ReporterPhone, c.Subscribe, + c.ID, c.AccessComments, c.AccessGate, c.AccessFence, c.AccessLocked, c.AccessDog, c.AccessOther, c.Address, c.AddressCountry, c.AddressPostCode, c.AddressPlace, c.AddressStreet, c.AddressRegion, c.Comments, c.Created, c.H3cell, c.HasAdult, c.HasLarvae, c.HasPupae, c.Location, c.MapZoom, c.OwnerEmail, c.OwnerName, c.OwnerPhone, c.PublicID, c.ReporterEmail, c.ReporterName, c.ReporterPhone, c.Subscribe, c.Status, } } diff --git a/db/dbinfo/publicreport.quick.bob.go b/db/dbinfo/publicreport.quick.bob.go index e9f862e1..eacf3433 100644 --- a/db/dbinfo/publicreport.quick.bob.go +++ b/db/dbinfo/publicreport.quick.bob.go @@ -87,6 +87,24 @@ var PublicreportQuicks = Table[ Generated: false, AutoIncr: false, }, + Address: column{ + Name: "address", + DBType: "text", + Default: "", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, + Status: column{ + Name: "status", + DBType: "publicreport.reportstatustype", + Default: "", + Comment: "", + Nullable: false, + Generated: false, + AutoIncr: false, + }, }, Indexes: publicreportQuickIndexes{ QuickPkey: index{ @@ -150,11 +168,13 @@ type publicreportQuickColumns struct { PublicID column ReporterEmail column ReporterPhone column + Address column + Status column } func (c publicreportQuickColumns) AsSlice() []column { return []column{ - c.ID, c.Created, c.Comments, c.Location, c.H3cell, c.PublicID, c.ReporterEmail, c.ReporterPhone, + c.ID, c.Created, c.Comments, c.Location, c.H3cell, c.PublicID, c.ReporterEmail, c.ReporterPhone, c.Address, c.Status, } } diff --git a/db/dbinfo/publicreport.report_location.bob.go b/db/dbinfo/publicreport.report_location.bob.go new file mode 100644 index 00000000..f59c9427 --- /dev/null +++ b/db/dbinfo/publicreport.report_location.bob.go @@ -0,0 +1,122 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package dbinfo + +var PublicreportReportLocations = Table[ + publicreportReportLocationColumns, + publicreportReportLocationIndexes, + publicreportReportLocationForeignKeys, + publicreportReportLocationUniques, + publicreportReportLocationChecks, +]{ + Schema: "publicreport", + Name: "report_location", + Columns: publicreportReportLocationColumns{ + ID: column{ + Name: "id", + DBType: "bigint", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + TableName: column{ + Name: "table_name", + DBType: "text", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Address: column{ + Name: "address", + DBType: "text", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Created: column{ + Name: "created", + DBType: "timestamp without time zone", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Location: column{ + Name: "location", + DBType: "geography", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + PublicID: column{ + Name: "public_id", + DBType: "text", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + Status: column{ + Name: "status", + DBType: "publicreport.reportstatustype", + Default: "NULL", + Comment: "", + Nullable: true, + Generated: false, + AutoIncr: false, + }, + }, + + Comment: "", +} + +type publicreportReportLocationColumns struct { + ID column + TableName column + Address column + Created column + Location column + PublicID column + Status column +} + +func (c publicreportReportLocationColumns) AsSlice() []column { + return []column{ + c.ID, c.TableName, c.Address, c.Created, c.Location, c.PublicID, c.Status, + } +} + +type publicreportReportLocationIndexes struct{} + +func (i publicreportReportLocationIndexes) AsSlice() []index { + return []index{} +} + +type publicreportReportLocationForeignKeys struct{} + +func (f publicreportReportLocationForeignKeys) AsSlice() []foreignKey { + return []foreignKey{} +} + +type publicreportReportLocationUniques struct{} + +func (u publicreportReportLocationUniques) AsSlice() []constraint { + return []constraint{} +} + +type publicreportReportLocationChecks struct{} + +func (c publicreportReportLocationChecks) AsSlice() []check { + return []check{} +} diff --git a/db/enums/enums.bob.go b/db/enums/enums.bob.go index 80797315..ff1c3c5b 100644 --- a/db/enums/enums.bob.go +++ b/db/enums/enums.bob.go @@ -975,3 +975,82 @@ func (e *PublicreportPoolsourceduration) Scan(value any) error { return nil } + +// Enum values for PublicreportReportstatustype +const ( + PublicreportReportstatustypeReported PublicreportReportstatustype = "reported" + PublicreportReportstatustypeReviewed PublicreportReportstatustype = "reviewed" + PublicreportReportstatustypeScheduled PublicreportReportstatustype = "scheduled" + PublicreportReportstatustypeTreated PublicreportReportstatustype = "treated" +) + +func AllPublicreportReportstatustype() []PublicreportReportstatustype { + return []PublicreportReportstatustype{ + PublicreportReportstatustypeReported, + PublicreportReportstatustypeReviewed, + PublicreportReportstatustypeScheduled, + PublicreportReportstatustypeTreated, + } +} + +type PublicreportReportstatustype string + +func (e PublicreportReportstatustype) String() string { + return string(e) +} + +func (e PublicreportReportstatustype) Valid() bool { + switch e { + case PublicreportReportstatustypeReported, + PublicreportReportstatustypeReviewed, + PublicreportReportstatustypeScheduled, + PublicreportReportstatustypeTreated: + return true + default: + return false + } +} + +// useful when testing in other packages +func (e PublicreportReportstatustype) All() []PublicreportReportstatustype { + return AllPublicreportReportstatustype() +} + +func (e PublicreportReportstatustype) MarshalText() ([]byte, error) { + return []byte(e), nil +} + +func (e *PublicreportReportstatustype) UnmarshalText(text []byte) error { + return e.Scan(text) +} + +func (e PublicreportReportstatustype) MarshalBinary() ([]byte, error) { + return []byte(e), nil +} + +func (e *PublicreportReportstatustype) UnmarshalBinary(data []byte) error { + return e.Scan(data) +} + +func (e PublicreportReportstatustype) Value() (driver.Value, error) { + return string(e), nil +} + +func (e *PublicreportReportstatustype) Scan(value any) error { + switch x := value.(type) { + case string: + *e = PublicreportReportstatustype(x) + case []byte: + *e = PublicreportReportstatustype(x) + case nil: + return fmt.Errorf("cannot nil into PublicreportReportstatustype") + default: + return fmt.Errorf("cannot scan type %T: %v", value, value) + } + + if !e.Valid() { + return fmt.Errorf("invalid PublicreportReportstatustype value: %s", *e) + } + + return nil +} diff --git a/db/factory/bobfactory_context.bob.go b/db/factory/bobfactory_context.bob.go index 69699a39..0f3fa16f 100644 --- a/db/factory/bobfactory_context.bob.go +++ b/db/factory/bobfactory_context.bob.go @@ -8,6 +8,9 @@ import "context" type contextKey string var ( + // Relationship Contexts for district + districtWithParentsCascadingCtx = newContextual[bool]("districtWithParentsCascading") + // Relationship Contexts for fieldseeker.containerrelate fieldseekerContainerrelateWithParentsCascadingCtx = newContextual[bool]("fieldseekerContainerrelateWithParentsCascading") fieldseekerContainerrelateRelOrganizationCtx = newContextual[bool]("fieldseeker.containerrelate.organization.fieldseeker.containerrelate.containerrelate_organization_id_fkey") @@ -227,6 +230,9 @@ var ( publicreportQuickPhotoWithParentsCascadingCtx = newContextual[bool]("publicreportQuickPhotoWithParentsCascading") publicreportQuickPhotoRelQuickCtx = newContextual[bool]("publicreport.quick.publicreport.quick_photo.publicreport.quick_photo.quick_photo_quick_id_fkey") + // Relationship Contexts for publicreport.report_location + publicreportReportLocationWithParentsCascadingCtx = newContextual[bool]("publicreportReportLocationWithParentsCascading") + // Relationship Contexts for raster_columns rasterColumnWithParentsCascadingCtx = newContextual[bool]("rasterColumnWithParentsCascading") diff --git a/db/factory/bobfactory_main.bob.go b/db/factory/bobfactory_main.bob.go index d1b4d000..02a1eb5f 100644 --- a/db/factory/bobfactory_main.bob.go +++ b/db/factory/bobfactory_main.bob.go @@ -13,10 +13,12 @@ import ( "github.com/aarondl/opt/null" "github.com/google/uuid" "github.com/lib/pq" + "github.com/shopspring/decimal" "github.com/stephenafamo/bob/types" ) type Factory struct { + baseDistrictMods DistrictModSlice baseFieldseekerContainerrelateMods FieldseekerContainerrelateModSlice baseFieldseekerFieldscoutinglogMods FieldseekerFieldscoutinglogModSlice baseFieldseekerHabitatrelateMods FieldseekerHabitatrelateModSlice @@ -63,6 +65,7 @@ type Factory struct { basePublicreportPoolPhotoMods PublicreportPoolPhotoModSlice basePublicreportQuickMods PublicreportQuickModSlice basePublicreportQuickPhotoMods PublicreportQuickPhotoModSlice + basePublicreportReportLocationMods PublicreportReportLocationModSlice baseRasterColumnMods RasterColumnModSlice baseRasterOverviewMods RasterOverviewModSlice baseSessionMods SessionModSlice @@ -74,6 +77,51 @@ func New() *Factory { return &Factory{} } +func (f *Factory) NewDistrict(mods ...DistrictMod) *DistrictTemplate { + return f.NewDistrictWithContext(context.Background(), mods...) +} + +func (f *Factory) NewDistrictWithContext(ctx context.Context, mods ...DistrictMod) *DistrictTemplate { + o := &DistrictTemplate{f: f} + + if f != nil { + f.baseDistrictMods.Apply(ctx, o) + } + + DistrictModSlice(mods).Apply(ctx, o) + + return o +} + +func (f *Factory) FromExistingDistrict(m *models.District) *DistrictTemplate { + o := &DistrictTemplate{f: f, alreadyPersisted: true} + + o.Gid = func() int32 { return m.Gid } + o.ID = func() null.Val[decimal.Decimal] { return m.ID } + o.Website = func() null.Val[string] { return m.Website } + o.Contact = func() null.Val[string] { return m.Contact } + o.Address = func() null.Val[string] { return m.Address } + o.Regionid = func() null.Val[decimal.Decimal] { return m.Regionid } + o.PostalCod = func() null.Val[decimal.Decimal] { return m.PostalCod } + o.Phone1 = func() null.Val[string] { return m.Phone1 } + o.Fax1 = func() null.Val[string] { return m.Fax1 } + o.Agency = func() null.Val[string] { return m.Agency } + o.Code1 = func() null.Val[string] { return m.Code1 } + o.City1 = func() null.Val[string] { return m.City1 } + o.ShapeLeng = func() null.Val[decimal.Decimal] { return m.ShapeLeng } + o.Address2 = func() null.Val[string] { return m.Address2 } + o.GeneralMG = func() null.Val[string] { return m.GeneralMG } + o.City2 = func() null.Val[string] { return m.City2 } + o.PostalC1 = func() null.Val[decimal.Decimal] { return m.PostalC1 } + o.Fax2 = func() null.Val[string] { return m.Fax2 } + o.Phone2 = func() null.Val[string] { return m.Phone2 } + o.ShapeLe1 = func() null.Val[decimal.Decimal] { return m.ShapeLe1 } + o.ShapeArea = func() null.Val[decimal.Decimal] { return m.ShapeArea } + o.Geom = func() null.Val[string] { return m.Geom } + + return o +} + func (f *Factory) NewFieldseekerContainerrelate(mods ...FieldseekerContainerrelateMod) *FieldseekerContainerrelateTemplate { return f.NewFieldseekerContainerrelateWithContext(context.Background(), mods...) } @@ -2400,7 +2448,7 @@ func (f *Factory) FromExistingPublicreportNuisance(m *models.PublicreportNuisanc o.Duration = func() enums.PublicreportNuisancedurationtype { return m.Duration } o.Email = func() string { return m.Email } o.InspectionType = func() enums.PublicreportNuisanceinspectiontype { return m.InspectionType } - o.Location = func() enums.PublicreportNuisancelocationtype { return m.Location } + o.SourceLocation = func() enums.PublicreportNuisancelocationtype { return m.SourceLocation } o.PreferredDateRange = func() enums.PublicreportNuisancepreferreddaterangetype { return m.PreferredDateRange } o.PreferredTime = func() enums.PublicreportNuisancepreferredtimetype { return m.PreferredTime } o.RequestCall = func() bool { return m.RequestCall } @@ -2418,6 +2466,9 @@ func (f *Factory) FromExistingPublicreportNuisance(m *models.PublicreportNuisanc o.ReporterEmail = func() string { return m.ReporterEmail } o.ReporterName = func() string { return m.ReporterName } o.ReporterPhone = func() string { return m.ReporterPhone } + o.Address = func() string { return m.Address } + o.Location = func() null.Val[string] { return m.Location } + o.Status = func() enums.PublicreportReportstatustype { return m.Status } return o } @@ -2470,6 +2521,7 @@ func (f *Factory) FromExistingPublicreportPool(m *models.PublicreportPool) *Publ o.ReporterName = func() string { return m.ReporterName } o.ReporterPhone = func() string { return m.ReporterPhone } o.Subscribe = func() bool { return m.Subscribe } + o.Status = func() enums.PublicreportReportstatustype { return m.Status } ctx := context.Background() if len(m.R.PoolPhotos) > 0 { @@ -2539,6 +2591,8 @@ func (f *Factory) FromExistingPublicreportQuick(m *models.PublicreportQuick) *Pu o.PublicID = func() string { return m.PublicID } o.ReporterEmail = func() string { return m.ReporterEmail } o.ReporterPhone = func() string { return m.ReporterPhone } + o.Address = func() string { return m.Address } + o.Status = func() enums.PublicreportReportstatustype { return m.Status } ctx := context.Background() if len(m.R.QuickPhotos) > 0 { @@ -2581,6 +2635,36 @@ func (f *Factory) FromExistingPublicreportQuickPhoto(m *models.PublicreportQuick return o } +func (f *Factory) NewPublicreportReportLocation(mods ...PublicreportReportLocationMod) *PublicreportReportLocationTemplate { + return f.NewPublicreportReportLocationWithContext(context.Background(), mods...) +} + +func (f *Factory) NewPublicreportReportLocationWithContext(ctx context.Context, mods ...PublicreportReportLocationMod) *PublicreportReportLocationTemplate { + o := &PublicreportReportLocationTemplate{f: f} + + if f != nil { + f.basePublicreportReportLocationMods.Apply(ctx, o) + } + + PublicreportReportLocationModSlice(mods).Apply(ctx, o) + + return o +} + +func (f *Factory) FromExistingPublicreportReportLocation(m *models.PublicreportReportLocation) *PublicreportReportLocationTemplate { + o := &PublicreportReportLocationTemplate{f: f, alreadyPersisted: true} + + o.ID = func() null.Val[int64] { return m.ID } + o.TableName = func() null.Val[string] { return m.TableName } + o.Address = func() null.Val[string] { return m.Address } + o.Created = func() null.Val[time.Time] { return m.Created } + o.Location = func() null.Val[string] { return m.Location } + o.PublicID = func() null.Val[string] { return m.PublicID } + o.Status = func() null.Val[enums.PublicreportReportstatustype] { return m.Status } + + return o +} + func (f *Factory) NewRasterColumn(mods ...RasterColumnMod) *RasterColumnTemplate { return f.NewRasterColumnWithContext(context.Background(), mods...) } @@ -2765,6 +2849,14 @@ func (f *Factory) FromExistingUser(m *models.User) *UserTemplate { return o } +func (f *Factory) ClearBaseDistrictMods() { + f.baseDistrictMods = nil +} + +func (f *Factory) AddBaseDistrictMod(mods ...DistrictMod) { + f.baseDistrictMods = append(f.baseDistrictMods, mods...) +} + func (f *Factory) ClearBaseFieldseekerContainerrelateMods() { f.baseFieldseekerContainerrelateMods = nil } @@ -3133,6 +3225,14 @@ func (f *Factory) AddBasePublicreportQuickPhotoMod(mods ...PublicreportQuickPhot f.basePublicreportQuickPhotoMods = append(f.basePublicreportQuickPhotoMods, mods...) } +func (f *Factory) ClearBasePublicreportReportLocationMods() { + f.basePublicreportReportLocationMods = nil +} + +func (f *Factory) AddBasePublicreportReportLocationMod(mods ...PublicreportReportLocationMod) { + f.basePublicreportReportLocationMods = append(f.basePublicreportReportLocationMods, mods...) +} + func (f *Factory) ClearBaseRasterColumnMods() { f.baseRasterColumnMods = nil } diff --git a/db/factory/bobfactory_random.bob.go b/db/factory/bobfactory_random.bob.go index 12a17554..abb5ef00 100644 --- a/db/factory/bobfactory_random.bob.go +++ b/db/factory/bobfactory_random.bob.go @@ -16,6 +16,7 @@ import ( "github.com/google/uuid" "github.com/jaswdr/faker/v2" "github.com/lib/pq" + "github.com/shopspring/decimal" "github.com/stephenafamo/bob/types" ) @@ -37,6 +38,37 @@ func random_bool(f *faker.Faker, limits ...string) bool { return f.Bool() } +func random_decimal_Decimal(f *faker.Faker, limits ...string) decimal.Decimal { + if f == nil { + f = &defaultFaker + } + + var precision int64 = 7 + var scale int64 = 3 + + if len(limits) > 0 { + precision, _ = strconv.ParseInt(limits[0], 10, 32) + } + + if len(limits) > 1 { + scale, _ = strconv.ParseInt(limits[1], 10, 32) + } + + baseVal := f.Float32(10, -1, 1) + for baseVal == -1 || baseVal == 0 || baseVal == 1 { + baseVal = f.Float32(10, -1, 1) + } + + precisionDecimal, _ := decimal.NewFromInt(10).PowInt32(int32(precision)) + val := decimal. + NewFromFloat32(baseVal). + Mul(precisionDecimal). + Shift(int32(-1 * scale)). + RoundDown(int32(scale)) + + return val +} + func random_enums_Arcgislicensetype(f *faker.Faker, limits ...string) enums.Arcgislicensetype { if f == nil { f = &defaultFaker @@ -137,6 +169,16 @@ func random_enums_PublicreportNuisancepreferredtimetype(f *faker.Faker, limits . return all[f.IntBetween(0, len(all)-1)] } +func random_enums_PublicreportReportstatustype(f *faker.Faker, limits ...string) enums.PublicreportReportstatustype { + if f == nil { + f = &defaultFaker + } + + var e enums.PublicreportReportstatustype + all := e.All() + return all[f.IntBetween(0, len(all)-1)] +} + func random_float32(f *faker.Faker, limits ...string) float32 { if f == nil { f = &defaultFaker diff --git a/db/factory/district.bob.go b/db/factory/district.bob.go new file mode 100644 index 00000000..5f8f5c01 --- /dev/null +++ b/db/factory/district.bob.go @@ -0,0 +1,1556 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package factory + +import ( + "context" + "testing" + + models "github.com/Gleipnir-Technology/nidus-sync/db/models" + "github.com/aarondl/opt/null" + "github.com/aarondl/opt/omit" + "github.com/aarondl/opt/omitnull" + "github.com/jaswdr/faker/v2" + "github.com/shopspring/decimal" + "github.com/stephenafamo/bob" +) + +type DistrictMod interface { + Apply(context.Context, *DistrictTemplate) +} + +type DistrictModFunc func(context.Context, *DistrictTemplate) + +func (f DistrictModFunc) Apply(ctx context.Context, n *DistrictTemplate) { + f(ctx, n) +} + +type DistrictModSlice []DistrictMod + +func (mods DistrictModSlice) Apply(ctx context.Context, n *DistrictTemplate) { + for _, f := range mods { + f.Apply(ctx, n) + } +} + +// DistrictTemplate is an object representing the database table. +// all columns are optional and should be set by mods +type DistrictTemplate struct { + Gid func() int32 + ID func() null.Val[decimal.Decimal] + Website func() null.Val[string] + Contact func() null.Val[string] + Address func() null.Val[string] + Regionid func() null.Val[decimal.Decimal] + PostalCod func() null.Val[decimal.Decimal] + Phone1 func() null.Val[string] + Fax1 func() null.Val[string] + Agency func() null.Val[string] + Code1 func() null.Val[string] + City1 func() null.Val[string] + ShapeLeng func() null.Val[decimal.Decimal] + Address2 func() null.Val[string] + GeneralMG func() null.Val[string] + City2 func() null.Val[string] + PostalC1 func() null.Val[decimal.Decimal] + Fax2 func() null.Val[string] + Phone2 func() null.Val[string] + ShapeLe1 func() null.Val[decimal.Decimal] + ShapeArea func() null.Val[decimal.Decimal] + Geom func() null.Val[string] + + f *Factory + + alreadyPersisted bool +} + +// Apply mods to the DistrictTemplate +func (o *DistrictTemplate) Apply(ctx context.Context, mods ...DistrictMod) { + for _, mod := range mods { + mod.Apply(ctx, o) + } +} + +// setModelRels creates and sets the relationships on *models.District +// according to the relationships in the template. Nothing is inserted into the db +func (t DistrictTemplate) setModelRels(o *models.District) {} + +// BuildSetter returns an *models.DistrictSetter +// this does nothing with the relationship templates +func (o DistrictTemplate) BuildSetter() *models.DistrictSetter { + m := &models.DistrictSetter{} + + if o.Gid != nil { + val := o.Gid() + m.Gid = omit.From(val) + } + if o.ID != nil { + val := o.ID() + m.ID = omitnull.FromNull(val) + } + if o.Website != nil { + val := o.Website() + m.Website = omitnull.FromNull(val) + } + if o.Contact != nil { + val := o.Contact() + m.Contact = omitnull.FromNull(val) + } + if o.Address != nil { + val := o.Address() + m.Address = omitnull.FromNull(val) + } + if o.Regionid != nil { + val := o.Regionid() + m.Regionid = omitnull.FromNull(val) + } + if o.PostalCod != nil { + val := o.PostalCod() + m.PostalCod = omitnull.FromNull(val) + } + if o.Phone1 != nil { + val := o.Phone1() + m.Phone1 = omitnull.FromNull(val) + } + if o.Fax1 != nil { + val := o.Fax1() + m.Fax1 = omitnull.FromNull(val) + } + if o.Agency != nil { + val := o.Agency() + m.Agency = omitnull.FromNull(val) + } + if o.Code1 != nil { + val := o.Code1() + m.Code1 = omitnull.FromNull(val) + } + if o.City1 != nil { + val := o.City1() + m.City1 = omitnull.FromNull(val) + } + if o.ShapeLeng != nil { + val := o.ShapeLeng() + m.ShapeLeng = omitnull.FromNull(val) + } + if o.Address2 != nil { + val := o.Address2() + m.Address2 = omitnull.FromNull(val) + } + if o.GeneralMG != nil { + val := o.GeneralMG() + m.GeneralMG = omitnull.FromNull(val) + } + if o.City2 != nil { + val := o.City2() + m.City2 = omitnull.FromNull(val) + } + if o.PostalC1 != nil { + val := o.PostalC1() + m.PostalC1 = omitnull.FromNull(val) + } + if o.Fax2 != nil { + val := o.Fax2() + m.Fax2 = omitnull.FromNull(val) + } + if o.Phone2 != nil { + val := o.Phone2() + m.Phone2 = omitnull.FromNull(val) + } + if o.ShapeLe1 != nil { + val := o.ShapeLe1() + m.ShapeLe1 = omitnull.FromNull(val) + } + if o.ShapeArea != nil { + val := o.ShapeArea() + m.ShapeArea = omitnull.FromNull(val) + } + if o.Geom != nil { + val := o.Geom() + m.Geom = omitnull.FromNull(val) + } + + return m +} + +// BuildManySetter returns an []*models.DistrictSetter +// this does nothing with the relationship templates +func (o DistrictTemplate) BuildManySetter(number int) []*models.DistrictSetter { + m := make([]*models.DistrictSetter, number) + + for i := range m { + m[i] = o.BuildSetter() + } + + return m +} + +// Build returns an *models.District +// Related objects are also created and placed in the .R field +// NOTE: Objects are not inserted into the database. Use DistrictTemplate.Create +func (o DistrictTemplate) Build() *models.District { + m := &models.District{} + + if o.Gid != nil { + m.Gid = o.Gid() + } + if o.ID != nil { + m.ID = o.ID() + } + if o.Website != nil { + m.Website = o.Website() + } + if o.Contact != nil { + m.Contact = o.Contact() + } + if o.Address != nil { + m.Address = o.Address() + } + if o.Regionid != nil { + m.Regionid = o.Regionid() + } + if o.PostalCod != nil { + m.PostalCod = o.PostalCod() + } + if o.Phone1 != nil { + m.Phone1 = o.Phone1() + } + if o.Fax1 != nil { + m.Fax1 = o.Fax1() + } + if o.Agency != nil { + m.Agency = o.Agency() + } + if o.Code1 != nil { + m.Code1 = o.Code1() + } + if o.City1 != nil { + m.City1 = o.City1() + } + if o.ShapeLeng != nil { + m.ShapeLeng = o.ShapeLeng() + } + if o.Address2 != nil { + m.Address2 = o.Address2() + } + if o.GeneralMG != nil { + m.GeneralMG = o.GeneralMG() + } + if o.City2 != nil { + m.City2 = o.City2() + } + if o.PostalC1 != nil { + m.PostalC1 = o.PostalC1() + } + if o.Fax2 != nil { + m.Fax2 = o.Fax2() + } + if o.Phone2 != nil { + m.Phone2 = o.Phone2() + } + if o.ShapeLe1 != nil { + m.ShapeLe1 = o.ShapeLe1() + } + if o.ShapeArea != nil { + m.ShapeArea = o.ShapeArea() + } + if o.Geom != nil { + m.Geom = o.Geom() + } + + o.setModelRels(m) + + return m +} + +// BuildMany returns an models.DistrictSlice +// Related objects are also created and placed in the .R field +// NOTE: Objects are not inserted into the database. Use DistrictTemplate.CreateMany +func (o DistrictTemplate) BuildMany(number int) models.DistrictSlice { + m := make(models.DistrictSlice, number) + + for i := range m { + m[i] = o.Build() + } + + return m +} + +func ensureCreatableDistrict(m *models.DistrictSetter) { +} + +// insertOptRels creates and inserts any optional the relationships on *models.District +// according to the relationships in the template. +// any required relationship should have already exist on the model +func (o *DistrictTemplate) insertOptRels(ctx context.Context, exec bob.Executor, m *models.District) error { + var err error + + return err +} + +// Create builds a district and inserts it into the database +// Relations objects are also inserted and placed in the .R field +func (o *DistrictTemplate) Create(ctx context.Context, exec bob.Executor) (*models.District, error) { + var err error + opt := o.BuildSetter() + ensureCreatableDistrict(opt) + + m, err := models.Districts.Insert(opt).One(ctx, exec) + if err != nil { + return nil, err + } + + if err := o.insertOptRels(ctx, exec, m); err != nil { + return nil, err + } + return m, err +} + +// MustCreate builds a district and inserts it into the database +// Relations objects are also inserted and placed in the .R field +// panics if an error occurs +func (o *DistrictTemplate) MustCreate(ctx context.Context, exec bob.Executor) *models.District { + m, err := o.Create(ctx, exec) + if err != nil { + panic(err) + } + return m +} + +// CreateOrFail builds a district and inserts it into the database +// Relations objects are also inserted and placed in the .R field +// It calls `tb.Fatal(err)` on the test/benchmark if an error occurs +func (o *DistrictTemplate) CreateOrFail(ctx context.Context, tb testing.TB, exec bob.Executor) *models.District { + tb.Helper() + m, err := o.Create(ctx, exec) + if err != nil { + tb.Fatal(err) + return nil + } + return m +} + +// CreateMany builds multiple districts and inserts them into the database +// Relations objects are also inserted and placed in the .R field +func (o DistrictTemplate) CreateMany(ctx context.Context, exec bob.Executor, number int) (models.DistrictSlice, error) { + var err error + m := make(models.DistrictSlice, number) + + for i := range m { + m[i], err = o.Create(ctx, exec) + if err != nil { + return nil, err + } + } + + return m, nil +} + +// MustCreateMany builds multiple districts and inserts them into the database +// Relations objects are also inserted and placed in the .R field +// panics if an error occurs +func (o DistrictTemplate) MustCreateMany(ctx context.Context, exec bob.Executor, number int) models.DistrictSlice { + m, err := o.CreateMany(ctx, exec, number) + if err != nil { + panic(err) + } + return m +} + +// CreateManyOrFail builds multiple districts and inserts them into the database +// Relations objects are also inserted and placed in the .R field +// It calls `tb.Fatal(err)` on the test/benchmark if an error occurs +func (o DistrictTemplate) CreateManyOrFail(ctx context.Context, tb testing.TB, exec bob.Executor, number int) models.DistrictSlice { + tb.Helper() + m, err := o.CreateMany(ctx, exec, number) + if err != nil { + tb.Fatal(err) + return nil + } + return m +} + +// District has methods that act as mods for the DistrictTemplate +var DistrictMods districtMods + +type districtMods struct{} + +func (m districtMods) RandomizeAllColumns(f *faker.Faker) DistrictMod { + return DistrictModSlice{ + DistrictMods.RandomGid(f), + DistrictMods.RandomID(f), + DistrictMods.RandomWebsite(f), + DistrictMods.RandomContact(f), + DistrictMods.RandomAddress(f), + DistrictMods.RandomRegionid(f), + DistrictMods.RandomPostalCod(f), + DistrictMods.RandomPhone1(f), + DistrictMods.RandomFax1(f), + DistrictMods.RandomAgency(f), + DistrictMods.RandomCode1(f), + DistrictMods.RandomCity1(f), + DistrictMods.RandomShapeLeng(f), + DistrictMods.RandomAddress2(f), + DistrictMods.RandomGeneralMG(f), + DistrictMods.RandomCity2(f), + DistrictMods.RandomPostalC1(f), + DistrictMods.RandomFax2(f), + DistrictMods.RandomPhone2(f), + DistrictMods.RandomShapeLe1(f), + DistrictMods.RandomShapeArea(f), + DistrictMods.RandomGeom(f), + } +} + +// Set the model columns to this value +func (m districtMods) Gid(val int32) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Gid = func() int32 { return val } + }) +} + +// Set the Column from the function +func (m districtMods) GidFunc(f func() int32) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Gid = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetGid() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Gid = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m districtMods) RandomGid(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Gid = func() int32 { + return random_int32(f) + } + }) +} + +// Set the model columns to this value +func (m districtMods) ID(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ID = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) IDFunc(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ID = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetID() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ID = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomID(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ID = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomIDNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ID = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Website(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Website = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) WebsiteFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Website = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetWebsite() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Website = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomWebsite(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Website = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomWebsiteNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Website = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Contact(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Contact = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) ContactFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Contact = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetContact() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Contact = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomContact(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Contact = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomContactNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Contact = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Address(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) AddressFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetAddress() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomAddress(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomAddressNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Regionid(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Regionid = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) RegionidFunc(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Regionid = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetRegionid() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Regionid = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomRegionid(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Regionid = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomRegionidNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Regionid = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) PostalCod(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalCod = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) PostalCodFunc(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalCod = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetPostalCod() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalCod = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomPostalCod(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalCod = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomPostalCodNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalCod = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Phone1(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone1 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Phone1Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetPhone1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomPhone1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomPhone1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Fax1(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax1 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Fax1Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetFax1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomFax1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomFax1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Agency(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Agency = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) AgencyFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Agency = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetAgency() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Agency = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomAgency(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Agency = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomAgencyNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Agency = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Code1(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Code1 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Code1Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Code1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetCode1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Code1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomCode1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Code1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomCode1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Code1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) City1(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City1 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) City1Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetCity1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomCity1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomCity1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City1 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) ShapeLeng(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLeng = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) ShapeLengFunc(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLeng = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetShapeLeng() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLeng = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomShapeLeng(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLeng = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomShapeLengNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLeng = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Address2(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address2 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Address2Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address2 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetAddress2() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address2 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomAddress2(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomAddress2NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Address2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) GeneralMG(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.GeneralMG = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) GeneralMGFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.GeneralMG = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetGeneralMG() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.GeneralMG = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomGeneralMG(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.GeneralMG = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomGeneralMGNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.GeneralMG = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) City2(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City2 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) City2Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City2 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetCity2() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City2 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomCity2(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomCity2NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.City2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) PostalC1(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalC1 = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) PostalC1Func(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalC1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetPostalC1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalC1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomPostalC1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalC1 = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomPostalC1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.PostalC1 = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Fax2(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax2 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Fax2Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax2 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetFax2() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax2 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomFax2(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomFax2NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Fax2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Phone2(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone2 = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) Phone2Func(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone2 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetPhone2() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone2 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomPhone2(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomPhone2NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Phone2 = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f, "254") + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) ShapeLe1(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLe1 = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) ShapeLe1Func(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLe1 = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetShapeLe1() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLe1 = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomShapeLe1(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLe1 = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomShapeLe1NotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeLe1 = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) ShapeArea(val null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeArea = func() null.Val[decimal.Decimal] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) ShapeAreaFunc(f func() null.Val[decimal.Decimal]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeArea = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetShapeArea() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeArea = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomShapeArea(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeArea = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomShapeAreaNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.ShapeArea = func() null.Val[decimal.Decimal] { + if f == nil { + f = &defaultFaker + } + + val := random_decimal_Decimal(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m districtMods) Geom(val null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Geom = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m districtMods) GeomFunc(f func() null.Val[string]) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Geom = f + }) +} + +// Clear any values for the column +func (m districtMods) UnsetGeom() DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Geom = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m districtMods) RandomGeom(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Geom = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m districtMods) RandomGeomNotNull(f *faker.Faker) DistrictMod { + return DistrictModFunc(func(_ context.Context, o *DistrictTemplate) { + o.Geom = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +func (m districtMods) WithParentsCascading() DistrictMod { + return DistrictModFunc(func(ctx context.Context, o *DistrictTemplate) { + if isDone, _ := districtWithParentsCascadingCtx.Value(ctx); isDone { + return + } + ctx = districtWithParentsCascadingCtx.WithValue(ctx, true) + }) +} diff --git a/db/factory/publicreport.nuisance.bob.go b/db/factory/publicreport.nuisance.bob.go index 56a77224..022ef0ea 100644 --- a/db/factory/publicreport.nuisance.bob.go +++ b/db/factory/publicreport.nuisance.bob.go @@ -10,7 +10,9 @@ import ( enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" models "github.com/Gleipnir-Technology/nidus-sync/db/models" + "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" + "github.com/aarondl/opt/omitnull" "github.com/jaswdr/faker/v2" "github.com/stephenafamo/bob" ) @@ -42,7 +44,7 @@ type PublicreportNuisanceTemplate struct { Duration func() enums.PublicreportNuisancedurationtype Email func() string InspectionType func() enums.PublicreportNuisanceinspectiontype - Location func() enums.PublicreportNuisancelocationtype + SourceLocation func() enums.PublicreportNuisancelocationtype PreferredDateRange func() enums.PublicreportNuisancepreferreddaterangetype PreferredTime func() enums.PublicreportNuisancepreferredtimetype RequestCall func() bool @@ -60,6 +62,9 @@ type PublicreportNuisanceTemplate struct { ReporterEmail func() string ReporterName func() string ReporterPhone func() string + Address func() string + Location func() null.Val[string] + Status func() enums.PublicreportReportstatustype f *Factory @@ -106,9 +111,9 @@ func (o PublicreportNuisanceTemplate) BuildSetter() *models.PublicreportNuisance val := o.InspectionType() m.InspectionType = omit.From(val) } - if o.Location != nil { - val := o.Location() - m.Location = omit.From(val) + if o.SourceLocation != nil { + val := o.SourceLocation() + m.SourceLocation = omit.From(val) } if o.PreferredDateRange != nil { val := o.PreferredDateRange() @@ -178,6 +183,18 @@ func (o PublicreportNuisanceTemplate) BuildSetter() *models.PublicreportNuisance val := o.ReporterPhone() m.ReporterPhone = omit.From(val) } + if o.Address != nil { + val := o.Address() + m.Address = omit.From(val) + } + if o.Location != nil { + val := o.Location() + m.Location = omitnull.FromNull(val) + } + if o.Status != nil { + val := o.Status() + m.Status = omit.From(val) + } return m } @@ -218,8 +235,8 @@ func (o PublicreportNuisanceTemplate) Build() *models.PublicreportNuisance { if o.InspectionType != nil { m.InspectionType = o.InspectionType() } - if o.Location != nil { - m.Location = o.Location() + if o.SourceLocation != nil { + m.SourceLocation = o.SourceLocation() } if o.PreferredDateRange != nil { m.PreferredDateRange = o.PreferredDateRange() @@ -272,6 +289,15 @@ func (o PublicreportNuisanceTemplate) Build() *models.PublicreportNuisance { if o.ReporterPhone != nil { m.ReporterPhone = o.ReporterPhone() } + if o.Address != nil { + m.Address = o.Address() + } + if o.Location != nil { + m.Location = o.Location() + } + if o.Status != nil { + m.Status = o.Status() + } o.setModelRels(m) @@ -312,9 +338,9 @@ func ensureCreatablePublicreportNuisance(m *models.PublicreportNuisanceSetter) { val := random_enums_PublicreportNuisanceinspectiontype(nil) m.InspectionType = omit.From(val) } - if !(m.Location.IsValue()) { + if !(m.SourceLocation.IsValue()) { val := random_enums_PublicreportNuisancelocationtype(nil) - m.Location = omit.From(val) + m.SourceLocation = omit.From(val) } if !(m.PreferredDateRange.IsValue()) { val := random_enums_PublicreportNuisancepreferreddaterangetype(nil) @@ -384,6 +410,14 @@ func ensureCreatablePublicreportNuisance(m *models.PublicreportNuisanceSetter) { val := random_string(nil) m.ReporterPhone = omit.From(val) } + if !(m.Address.IsValue()) { + val := random_string(nil) + m.Address = omit.From(val) + } + if !(m.Status.IsValue()) { + val := random_enums_PublicreportReportstatustype(nil) + m.Status = omit.From(val) + } } // insertOptRels creates and inserts any optional the relationships on *models.PublicreportNuisance @@ -490,7 +524,7 @@ func (m publicreportNuisanceMods) RandomizeAllColumns(f *faker.Faker) Publicrepo PublicreportNuisanceMods.RandomDuration(f), PublicreportNuisanceMods.RandomEmail(f), PublicreportNuisanceMods.RandomInspectionType(f), - PublicreportNuisanceMods.RandomLocation(f), + PublicreportNuisanceMods.RandomSourceLocation(f), PublicreportNuisanceMods.RandomPreferredDateRange(f), PublicreportNuisanceMods.RandomPreferredTime(f), PublicreportNuisanceMods.RandomRequestCall(f), @@ -508,6 +542,9 @@ func (m publicreportNuisanceMods) RandomizeAllColumns(f *faker.Faker) Publicrepo PublicreportNuisanceMods.RandomReporterEmail(f), PublicreportNuisanceMods.RandomReporterName(f), PublicreportNuisanceMods.RandomReporterPhone(f), + PublicreportNuisanceMods.RandomAddress(f), + PublicreportNuisanceMods.RandomLocation(f), + PublicreportNuisanceMods.RandomStatus(f), } } @@ -698,31 +735,31 @@ func (m publicreportNuisanceMods) RandomInspectionType(f *faker.Faker) Publicrep } // Set the model columns to this value -func (m publicreportNuisanceMods) Location(val enums.PublicreportNuisancelocationtype) PublicreportNuisanceMod { +func (m publicreportNuisanceMods) SourceLocation(val enums.PublicreportNuisancelocationtype) PublicreportNuisanceMod { return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { - o.Location = func() enums.PublicreportNuisancelocationtype { return val } + o.SourceLocation = func() enums.PublicreportNuisancelocationtype { return val } }) } // Set the Column from the function -func (m publicreportNuisanceMods) LocationFunc(f func() enums.PublicreportNuisancelocationtype) PublicreportNuisanceMod { +func (m publicreportNuisanceMods) SourceLocationFunc(f func() enums.PublicreportNuisancelocationtype) PublicreportNuisanceMod { return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { - o.Location = f + o.SourceLocation = f }) } // Clear any values for the column -func (m publicreportNuisanceMods) UnsetLocation() PublicreportNuisanceMod { +func (m publicreportNuisanceMods) UnsetSourceLocation() PublicreportNuisanceMod { return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { - o.Location = nil + o.SourceLocation = nil }) } // Generates a random value for the column using the given faker // if faker is nil, a default faker is used -func (m publicreportNuisanceMods) RandomLocation(f *faker.Faker) PublicreportNuisanceMod { +func (m publicreportNuisanceMods) RandomSourceLocation(f *faker.Faker) PublicreportNuisanceMod { return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { - o.Location = func() enums.PublicreportNuisancelocationtype { + o.SourceLocation = func() enums.PublicreportNuisancelocationtype { return random_enums_PublicreportNuisancelocationtype(f) } }) @@ -1255,6 +1292,121 @@ func (m publicreportNuisanceMods) RandomReporterPhone(f *faker.Faker) Publicrepo }) } +// Set the model columns to this value +func (m publicreportNuisanceMods) Address(val string) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Address = func() string { return val } + }) +} + +// Set the Column from the function +func (m publicreportNuisanceMods) AddressFunc(f func() string) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Address = f + }) +} + +// Clear any values for the column +func (m publicreportNuisanceMods) UnsetAddress() PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Address = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m publicreportNuisanceMods) RandomAddress(f *faker.Faker) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Address = func() string { + return random_string(f) + } + }) +} + +// Set the model columns to this value +func (m publicreportNuisanceMods) Location(val null.Val[string]) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Location = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m publicreportNuisanceMods) LocationFunc(f func() null.Val[string]) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Location = f + }) +} + +// Clear any values for the column +func (m publicreportNuisanceMods) UnsetLocation() PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Location = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportNuisanceMods) RandomLocation(f *faker.Faker) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Location = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportNuisanceMods) RandomLocationNotNull(f *faker.Faker) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Location = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportNuisanceMods) Status(val enums.PublicreportReportstatustype) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Status = func() enums.PublicreportReportstatustype { return val } + }) +} + +// Set the Column from the function +func (m publicreportNuisanceMods) StatusFunc(f func() enums.PublicreportReportstatustype) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Status = f + }) +} + +// Clear any values for the column +func (m publicreportNuisanceMods) UnsetStatus() PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Status = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m publicreportNuisanceMods) RandomStatus(f *faker.Faker) PublicreportNuisanceMod { + return PublicreportNuisanceModFunc(func(_ context.Context, o *PublicreportNuisanceTemplate) { + o.Status = func() enums.PublicreportReportstatustype { + return random_enums_PublicreportReportstatustype(f) + } + }) +} + func (m publicreportNuisanceMods) WithParentsCascading() PublicreportNuisanceMod { return PublicreportNuisanceModFunc(func(ctx context.Context, o *PublicreportNuisanceTemplate) { if isDone, _ := publicreportNuisanceWithParentsCascadingCtx.Value(ctx); isDone { diff --git a/db/factory/publicreport.pool.bob.go b/db/factory/publicreport.pool.bob.go index 17934a34..f5184a82 100644 --- a/db/factory/publicreport.pool.bob.go +++ b/db/factory/publicreport.pool.bob.go @@ -8,6 +8,7 @@ import ( "testing" "time" + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" models "github.com/Gleipnir-Technology/nidus-sync/db/models" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" @@ -66,6 +67,7 @@ type PublicreportPoolTemplate struct { ReporterName func() string ReporterPhone func() string Subscribe func() bool + Status func() enums.PublicreportReportstatustype r publicreportPoolR f *Factory @@ -227,6 +229,10 @@ func (o PublicreportPoolTemplate) BuildSetter() *models.PublicreportPoolSetter { val := o.Subscribe() m.Subscribe = omit.From(val) } + if o.Status != nil { + val := o.Status() + m.Status = omit.From(val) + } return m } @@ -336,6 +342,9 @@ func (o PublicreportPoolTemplate) Build() *models.PublicreportPool { if o.Subscribe != nil { m.Subscribe = o.Subscribe() } + if o.Status != nil { + m.Status = o.Status() + } o.setModelRels(m) @@ -460,6 +469,10 @@ func ensureCreatablePublicreportPool(m *models.PublicreportPoolSetter) { val := random_bool(nil) m.Subscribe = omit.From(val) } + if !(m.Status.IsValue()) { + val := random_enums_PublicreportReportstatustype(nil) + m.Status = omit.From(val) + } } // insertOptRels creates and inserts any optional the relationships on *models.PublicreportPool @@ -609,6 +622,7 @@ func (m publicreportPoolMods) RandomizeAllColumns(f *faker.Faker) PublicreportPo PublicreportPoolMods.RandomReporterName(f), PublicreportPoolMods.RandomReporterPhone(f), PublicreportPoolMods.RandomSubscribe(f), + PublicreportPoolMods.RandomStatus(f), } } @@ -1555,6 +1569,37 @@ func (m publicreportPoolMods) RandomSubscribe(f *faker.Faker) PublicreportPoolMo }) } +// Set the model columns to this value +func (m publicreportPoolMods) Status(val enums.PublicreportReportstatustype) PublicreportPoolMod { + return PublicreportPoolModFunc(func(_ context.Context, o *PublicreportPoolTemplate) { + o.Status = func() enums.PublicreportReportstatustype { return val } + }) +} + +// Set the Column from the function +func (m publicreportPoolMods) StatusFunc(f func() enums.PublicreportReportstatustype) PublicreportPoolMod { + return PublicreportPoolModFunc(func(_ context.Context, o *PublicreportPoolTemplate) { + o.Status = f + }) +} + +// Clear any values for the column +func (m publicreportPoolMods) UnsetStatus() PublicreportPoolMod { + return PublicreportPoolModFunc(func(_ context.Context, o *PublicreportPoolTemplate) { + o.Status = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m publicreportPoolMods) RandomStatus(f *faker.Faker) PublicreportPoolMod { + return PublicreportPoolModFunc(func(_ context.Context, o *PublicreportPoolTemplate) { + o.Status = func() enums.PublicreportReportstatustype { + return random_enums_PublicreportReportstatustype(f) + } + }) +} + func (m publicreportPoolMods) WithParentsCascading() PublicreportPoolMod { return PublicreportPoolModFunc(func(ctx context.Context, o *PublicreportPoolTemplate) { if isDone, _ := publicreportPoolWithParentsCascadingCtx.Value(ctx); isDone { diff --git a/db/factory/publicreport.quick.bob.go b/db/factory/publicreport.quick.bob.go index 7ea2462b..85b456d4 100644 --- a/db/factory/publicreport.quick.bob.go +++ b/db/factory/publicreport.quick.bob.go @@ -8,6 +8,7 @@ import ( "testing" "time" + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" models "github.com/Gleipnir-Technology/nidus-sync/db/models" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" @@ -45,6 +46,8 @@ type PublicreportQuickTemplate struct { PublicID func() string ReporterEmail func() string ReporterPhone func() string + Address func() string + Status func() enums.PublicreportReportstatustype r publicreportQuickR f *Factory @@ -122,6 +125,14 @@ func (o PublicreportQuickTemplate) BuildSetter() *models.PublicreportQuickSetter val := o.ReporterPhone() m.ReporterPhone = omit.From(val) } + if o.Address != nil { + val := o.Address() + m.Address = omit.From(val) + } + if o.Status != nil { + val := o.Status() + m.Status = omit.From(val) + } return m } @@ -168,6 +179,12 @@ func (o PublicreportQuickTemplate) Build() *models.PublicreportQuick { if o.ReporterPhone != nil { m.ReporterPhone = o.ReporterPhone() } + if o.Address != nil { + m.Address = o.Address() + } + if o.Status != nil { + m.Status = o.Status() + } o.setModelRels(m) @@ -208,6 +225,14 @@ func ensureCreatablePublicreportQuick(m *models.PublicreportQuickSetter) { val := random_string(nil) m.ReporterPhone = omit.From(val) } + if !(m.Address.IsValue()) { + val := random_string(nil) + m.Address = omit.From(val) + } + if !(m.Status.IsValue()) { + val := random_enums_PublicreportReportstatustype(nil) + m.Status = omit.From(val) + } } // insertOptRels creates and inserts any optional the relationships on *models.PublicreportQuick @@ -336,6 +361,8 @@ func (m publicreportQuickMods) RandomizeAllColumns(f *faker.Faker) PublicreportQ PublicreportQuickMods.RandomPublicID(f), PublicreportQuickMods.RandomReporterEmail(f), PublicreportQuickMods.RandomReporterPhone(f), + PublicreportQuickMods.RandomAddress(f), + PublicreportQuickMods.RandomStatus(f), } } @@ -631,6 +658,68 @@ func (m publicreportQuickMods) RandomReporterPhone(f *faker.Faker) PublicreportQ }) } +// Set the model columns to this value +func (m publicreportQuickMods) Address(val string) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Address = func() string { return val } + }) +} + +// Set the Column from the function +func (m publicreportQuickMods) AddressFunc(f func() string) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Address = f + }) +} + +// Clear any values for the column +func (m publicreportQuickMods) UnsetAddress() PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Address = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m publicreportQuickMods) RandomAddress(f *faker.Faker) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Address = func() string { + return random_string(f) + } + }) +} + +// Set the model columns to this value +func (m publicreportQuickMods) Status(val enums.PublicreportReportstatustype) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Status = func() enums.PublicreportReportstatustype { return val } + }) +} + +// Set the Column from the function +func (m publicreportQuickMods) StatusFunc(f func() enums.PublicreportReportstatustype) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Status = f + }) +} + +// Clear any values for the column +func (m publicreportQuickMods) UnsetStatus() PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Status = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +func (m publicreportQuickMods) RandomStatus(f *faker.Faker) PublicreportQuickMod { + return PublicreportQuickModFunc(func(_ context.Context, o *PublicreportQuickTemplate) { + o.Status = func() enums.PublicreportReportstatustype { + return random_enums_PublicreportReportstatustype(f) + } + }) +} + func (m publicreportQuickMods) WithParentsCascading() PublicreportQuickMod { return PublicreportQuickModFunc(func(ctx context.Context, o *PublicreportQuickTemplate) { if isDone, _ := publicreportQuickWithParentsCascadingCtx.Value(ctx); isDone { diff --git a/db/factory/publicreport.report_location.bob.go b/db/factory/publicreport.report_location.bob.go new file mode 100644 index 00000000..a7ff64c2 --- /dev/null +++ b/db/factory/publicreport.report_location.bob.go @@ -0,0 +1,502 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package factory + +import ( + "context" + "time" + + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" + models "github.com/Gleipnir-Technology/nidus-sync/db/models" + "github.com/aarondl/opt/null" + "github.com/jaswdr/faker/v2" +) + +type PublicreportReportLocationMod interface { + Apply(context.Context, *PublicreportReportLocationTemplate) +} + +type PublicreportReportLocationModFunc func(context.Context, *PublicreportReportLocationTemplate) + +func (f PublicreportReportLocationModFunc) Apply(ctx context.Context, n *PublicreportReportLocationTemplate) { + f(ctx, n) +} + +type PublicreportReportLocationModSlice []PublicreportReportLocationMod + +func (mods PublicreportReportLocationModSlice) Apply(ctx context.Context, n *PublicreportReportLocationTemplate) { + for _, f := range mods { + f.Apply(ctx, n) + } +} + +// PublicreportReportLocationTemplate is an object representing the database table. +// all columns are optional and should be set by mods +type PublicreportReportLocationTemplate struct { + ID func() null.Val[int64] + TableName func() null.Val[string] + Address func() null.Val[string] + Created func() null.Val[time.Time] + Location func() null.Val[string] + PublicID func() null.Val[string] + Status func() null.Val[enums.PublicreportReportstatustype] + + f *Factory + + alreadyPersisted bool +} + +// Apply mods to the PublicreportReportLocationTemplate +func (o *PublicreportReportLocationTemplate) Apply(ctx context.Context, mods ...PublicreportReportLocationMod) { + for _, mod := range mods { + mod.Apply(ctx, o) + } +} + +// setModelRels creates and sets the relationships on *models.PublicreportReportLocation +// according to the relationships in the template. Nothing is inserted into the db +func (t PublicreportReportLocationTemplate) setModelRels(o *models.PublicreportReportLocation) {} + +// Build returns an *models.PublicreportReportLocation +// Related objects are also created and placed in the .R field +// NOTE: Objects are not inserted into the database. Use PublicreportReportLocationTemplate.Create +func (o PublicreportReportLocationTemplate) Build() *models.PublicreportReportLocation { + m := &models.PublicreportReportLocation{} + + if o.ID != nil { + m.ID = o.ID() + } + if o.TableName != nil { + m.TableName = o.TableName() + } + if o.Address != nil { + m.Address = o.Address() + } + if o.Created != nil { + m.Created = o.Created() + } + if o.Location != nil { + m.Location = o.Location() + } + if o.PublicID != nil { + m.PublicID = o.PublicID() + } + if o.Status != nil { + m.Status = o.Status() + } + + o.setModelRels(m) + + return m +} + +// BuildMany returns an models.PublicreportReportLocationSlice +// Related objects are also created and placed in the .R field +// NOTE: Objects are not inserted into the database. Use PublicreportReportLocationTemplate.CreateMany +func (o PublicreportReportLocationTemplate) BuildMany(number int) models.PublicreportReportLocationSlice { + m := make(models.PublicreportReportLocationSlice, number) + + for i := range m { + m[i] = o.Build() + } + + return m +} + +// PublicreportReportLocation has methods that act as mods for the PublicreportReportLocationTemplate +var PublicreportReportLocationMods publicreportReportLocationMods + +type publicreportReportLocationMods struct{} + +func (m publicreportReportLocationMods) RandomizeAllColumns(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModSlice{ + PublicreportReportLocationMods.RandomID(f), + PublicreportReportLocationMods.RandomTableName(f), + PublicreportReportLocationMods.RandomAddress(f), + PublicreportReportLocationMods.RandomCreated(f), + PublicreportReportLocationMods.RandomLocation(f), + PublicreportReportLocationMods.RandomPublicID(f), + PublicreportReportLocationMods.RandomStatus(f), + } +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) ID(val null.Val[int64]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.ID = func() null.Val[int64] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) IDFunc(f func() null.Val[int64]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.ID = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetID() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.ID = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomID(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.ID = func() null.Val[int64] { + if f == nil { + f = &defaultFaker + } + + val := random_int64(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomIDNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.ID = func() null.Val[int64] { + if f == nil { + f = &defaultFaker + } + + val := random_int64(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) TableName(val null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.TableName = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) TableNameFunc(f func() null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.TableName = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetTableName() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.TableName = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomTableName(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.TableName = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomTableNameNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.TableName = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) Address(val null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Address = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) AddressFunc(f func() null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Address = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetAddress() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Address = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomAddress(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Address = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomAddressNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Address = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) Created(val null.Val[time.Time]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Created = func() null.Val[time.Time] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) CreatedFunc(f func() null.Val[time.Time]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Created = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetCreated() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Created = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomCreated(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Created = func() null.Val[time.Time] { + if f == nil { + f = &defaultFaker + } + + val := random_time_Time(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomCreatedNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Created = func() null.Val[time.Time] { + if f == nil { + f = &defaultFaker + } + + val := random_time_Time(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) Location(val null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Location = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) LocationFunc(f func() null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Location = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetLocation() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Location = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomLocation(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Location = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomLocationNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Location = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) PublicID(val null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.PublicID = func() null.Val[string] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) PublicIDFunc(f func() null.Val[string]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.PublicID = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetPublicID() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.PublicID = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomPublicID(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.PublicID = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomPublicIDNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.PublicID = func() null.Val[string] { + if f == nil { + f = &defaultFaker + } + + val := random_string(f) + return null.From(val) + } + }) +} + +// Set the model columns to this value +func (m publicreportReportLocationMods) Status(val null.Val[enums.PublicreportReportstatustype]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Status = func() null.Val[enums.PublicreportReportstatustype] { return val } + }) +} + +// Set the Column from the function +func (m publicreportReportLocationMods) StatusFunc(f func() null.Val[enums.PublicreportReportstatustype]) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Status = f + }) +} + +// Clear any values for the column +func (m publicreportReportLocationMods) UnsetStatus() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Status = nil + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is sometimes null +func (m publicreportReportLocationMods) RandomStatus(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Status = func() null.Val[enums.PublicreportReportstatustype] { + if f == nil { + f = &defaultFaker + } + + val := random_enums_PublicreportReportstatustype(f) + return null.From(val) + } + }) +} + +// Generates a random value for the column using the given faker +// if faker is nil, a default faker is used +// The generated value is never null +func (m publicreportReportLocationMods) RandomStatusNotNull(f *faker.Faker) PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(_ context.Context, o *PublicreportReportLocationTemplate) { + o.Status = func() null.Val[enums.PublicreportReportstatustype] { + if f == nil { + f = &defaultFaker + } + + val := random_enums_PublicreportReportstatustype(f) + return null.From(val) + } + }) +} + +func (m publicreportReportLocationMods) WithParentsCascading() PublicreportReportLocationMod { + return PublicreportReportLocationModFunc(func(ctx context.Context, o *PublicreportReportLocationTemplate) { + if isDone, _ := publicreportReportLocationWithParentsCascadingCtx.Value(ctx); isDone { + return + } + ctx = publicreportReportLocationWithParentsCascadingCtx.WithValue(ctx, true) + }) +} diff --git a/db/models/bob_where.bob.go b/db/models/bob_where.bob.go index cfb5ef12..6af44c49 100644 --- a/db/models/bob_where.bob.go +++ b/db/models/bob_where.bob.go @@ -17,6 +17,7 @@ var ( ) func Where[Q psql.Filterable]() struct { + Districts districtWhere[Q] FieldseekerContainerrelates fieldseekerContainerrelateWhere[Q] FieldseekerFieldscoutinglogs fieldseekerFieldscoutinglogWhere[Q] FieldseekerHabitatrelates fieldseekerHabitatrelateWhere[Q] @@ -63,6 +64,7 @@ func Where[Q psql.Filterable]() struct { PublicreportPoolPhotos publicreportPoolPhotoWhere[Q] PublicreportQuicks publicreportQuickWhere[Q] PublicreportQuickPhotos publicreportQuickPhotoWhere[Q] + PublicreportReportLocations publicreportReportLocationWhere[Q] RasterColumns rasterColumnWhere[Q] RasterOverviews rasterOverviewWhere[Q] Sessions sessionWhere[Q] @@ -70,6 +72,7 @@ func Where[Q psql.Filterable]() struct { Users userWhere[Q] } { return struct { + Districts districtWhere[Q] FieldseekerContainerrelates fieldseekerContainerrelateWhere[Q] FieldseekerFieldscoutinglogs fieldseekerFieldscoutinglogWhere[Q] FieldseekerHabitatrelates fieldseekerHabitatrelateWhere[Q] @@ -116,12 +119,14 @@ func Where[Q psql.Filterable]() struct { PublicreportPoolPhotos publicreportPoolPhotoWhere[Q] PublicreportQuicks publicreportQuickWhere[Q] PublicreportQuickPhotos publicreportQuickPhotoWhere[Q] + PublicreportReportLocations publicreportReportLocationWhere[Q] RasterColumns rasterColumnWhere[Q] RasterOverviews rasterOverviewWhere[Q] Sessions sessionWhere[Q] SpatialRefSys spatialRefSyWhere[Q] Users userWhere[Q] }{ + Districts: buildDistrictWhere[Q](Districts.Columns), FieldseekerContainerrelates: buildFieldseekerContainerrelateWhere[Q](FieldseekerContainerrelates.Columns), FieldseekerFieldscoutinglogs: buildFieldseekerFieldscoutinglogWhere[Q](FieldseekerFieldscoutinglogs.Columns), FieldseekerHabitatrelates: buildFieldseekerHabitatrelateWhere[Q](FieldseekerHabitatrelates.Columns), @@ -168,6 +173,7 @@ func Where[Q psql.Filterable]() struct { PublicreportPoolPhotos: buildPublicreportPoolPhotoWhere[Q](PublicreportPoolPhotos.Columns), PublicreportQuicks: buildPublicreportQuickWhere[Q](PublicreportQuicks.Columns), PublicreportQuickPhotos: buildPublicreportQuickPhotoWhere[Q](PublicreportQuickPhotos.Columns), + PublicreportReportLocations: buildPublicreportReportLocationWhere[Q](PublicreportReportLocations.Columns), RasterColumns: buildRasterColumnWhere[Q](RasterColumns.Columns), RasterOverviews: buildRasterOverviewWhere[Q](RasterOverviews.Columns), Sessions: buildSessionWhere[Q](Sessions.Columns), diff --git a/db/models/district.bob.go b/db/models/district.bob.go new file mode 100644 index 00000000..851dfcd2 --- /dev/null +++ b/db/models/district.bob.go @@ -0,0 +1,876 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package models + +import ( + "context" + "io" + + "github.com/aarondl/opt/null" + "github.com/aarondl/opt/omit" + "github.com/aarondl/opt/omitnull" + "github.com/shopspring/decimal" + "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" +) + +// District is an object representing the database table. +type District struct { + Gid int32 `db:"gid,pk" ` + ID null.Val[decimal.Decimal] `db:"id" ` + Website null.Val[string] `db:"website" ` + Contact null.Val[string] `db:"contact" ` + Address null.Val[string] `db:"address" ` + Regionid null.Val[decimal.Decimal] `db:"regionid" ` + PostalCod null.Val[decimal.Decimal] `db:"postal_cod" ` + Phone1 null.Val[string] `db:"phone1" ` + Fax1 null.Val[string] `db:"fax1" ` + Agency null.Val[string] `db:"agency" ` + Code1 null.Val[string] `db:"code1" ` + City1 null.Val[string] `db:"city1" ` + ShapeLeng null.Val[decimal.Decimal] `db:"shape_leng" ` + Address2 null.Val[string] `db:"address2" ` + GeneralMG null.Val[string] `db:"general_mg" ` + City2 null.Val[string] `db:"city2" ` + PostalC1 null.Val[decimal.Decimal] `db:"postal_c_1" ` + Fax2 null.Val[string] `db:"fax2" ` + Phone2 null.Val[string] `db:"phone2" ` + ShapeLe1 null.Val[decimal.Decimal] `db:"shape_le_1" ` + ShapeArea null.Val[decimal.Decimal] `db:"shape_area" ` + Geom null.Val[string] `db:"geom" ` +} + +// DistrictSlice is an alias for a slice of pointers to District. +// This should almost always be used instead of []*District. +type DistrictSlice []*District + +// Districts contains methods to work with the district table +var Districts = psql.NewTablex[*District, DistrictSlice, *DistrictSetter]("", "district", buildDistrictColumns("district")) + +// DistrictsQuery is a query on the district table +type DistrictsQuery = *psql.ViewQuery[*District, DistrictSlice] + +func buildDistrictColumns(alias string) districtColumns { + return districtColumns{ + ColumnsExpr: expr.NewColumnsExpr( + "gid", "id", "website", "contact", "address", "regionid", "postal_cod", "phone1", "fax1", "agency", "code1", "city1", "shape_leng", "address2", "general_mg", "city2", "postal_c_1", "fax2", "phone2", "shape_le_1", "shape_area", "geom", + ).WithParent("district"), + tableAlias: alias, + Gid: psql.Quote(alias, "gid"), + ID: psql.Quote(alias, "id"), + Website: psql.Quote(alias, "website"), + Contact: psql.Quote(alias, "contact"), + Address: psql.Quote(alias, "address"), + Regionid: psql.Quote(alias, "regionid"), + PostalCod: psql.Quote(alias, "postal_cod"), + Phone1: psql.Quote(alias, "phone1"), + Fax1: psql.Quote(alias, "fax1"), + Agency: psql.Quote(alias, "agency"), + Code1: psql.Quote(alias, "code1"), + City1: psql.Quote(alias, "city1"), + ShapeLeng: psql.Quote(alias, "shape_leng"), + Address2: psql.Quote(alias, "address2"), + GeneralMG: psql.Quote(alias, "general_mg"), + City2: psql.Quote(alias, "city2"), + PostalC1: psql.Quote(alias, "postal_c_1"), + Fax2: psql.Quote(alias, "fax2"), + Phone2: psql.Quote(alias, "phone2"), + ShapeLe1: psql.Quote(alias, "shape_le_1"), + ShapeArea: psql.Quote(alias, "shape_area"), + Geom: psql.Quote(alias, "geom"), + } +} + +type districtColumns struct { + expr.ColumnsExpr + tableAlias string + Gid psql.Expression + ID psql.Expression + Website psql.Expression + Contact psql.Expression + Address psql.Expression + Regionid psql.Expression + PostalCod psql.Expression + Phone1 psql.Expression + Fax1 psql.Expression + Agency psql.Expression + Code1 psql.Expression + City1 psql.Expression + ShapeLeng psql.Expression + Address2 psql.Expression + GeneralMG psql.Expression + City2 psql.Expression + PostalC1 psql.Expression + Fax2 psql.Expression + Phone2 psql.Expression + ShapeLe1 psql.Expression + ShapeArea psql.Expression + Geom psql.Expression +} + +func (c districtColumns) Alias() string { + return c.tableAlias +} + +func (districtColumns) AliasedAs(alias string) districtColumns { + return buildDistrictColumns(alias) +} + +// DistrictSetter is used for insert/upsert/update operations +// All values are optional, and do not have to be set +// Generated columns are not included +type DistrictSetter struct { + Gid omit.Val[int32] `db:"gid,pk" ` + ID omitnull.Val[decimal.Decimal] `db:"id" ` + Website omitnull.Val[string] `db:"website" ` + Contact omitnull.Val[string] `db:"contact" ` + Address omitnull.Val[string] `db:"address" ` + Regionid omitnull.Val[decimal.Decimal] `db:"regionid" ` + PostalCod omitnull.Val[decimal.Decimal] `db:"postal_cod" ` + Phone1 omitnull.Val[string] `db:"phone1" ` + Fax1 omitnull.Val[string] `db:"fax1" ` + Agency omitnull.Val[string] `db:"agency" ` + Code1 omitnull.Val[string] `db:"code1" ` + City1 omitnull.Val[string] `db:"city1" ` + ShapeLeng omitnull.Val[decimal.Decimal] `db:"shape_leng" ` + Address2 omitnull.Val[string] `db:"address2" ` + GeneralMG omitnull.Val[string] `db:"general_mg" ` + City2 omitnull.Val[string] `db:"city2" ` + PostalC1 omitnull.Val[decimal.Decimal] `db:"postal_c_1" ` + Fax2 omitnull.Val[string] `db:"fax2" ` + Phone2 omitnull.Val[string] `db:"phone2" ` + ShapeLe1 omitnull.Val[decimal.Decimal] `db:"shape_le_1" ` + ShapeArea omitnull.Val[decimal.Decimal] `db:"shape_area" ` + Geom omitnull.Val[string] `db:"geom" ` +} + +func (s DistrictSetter) SetColumns() []string { + vals := make([]string, 0, 22) + if s.Gid.IsValue() { + vals = append(vals, "gid") + } + if !s.ID.IsUnset() { + vals = append(vals, "id") + } + if !s.Website.IsUnset() { + vals = append(vals, "website") + } + if !s.Contact.IsUnset() { + vals = append(vals, "contact") + } + if !s.Address.IsUnset() { + vals = append(vals, "address") + } + if !s.Regionid.IsUnset() { + vals = append(vals, "regionid") + } + if !s.PostalCod.IsUnset() { + vals = append(vals, "postal_cod") + } + if !s.Phone1.IsUnset() { + vals = append(vals, "phone1") + } + if !s.Fax1.IsUnset() { + vals = append(vals, "fax1") + } + if !s.Agency.IsUnset() { + vals = append(vals, "agency") + } + if !s.Code1.IsUnset() { + vals = append(vals, "code1") + } + if !s.City1.IsUnset() { + vals = append(vals, "city1") + } + if !s.ShapeLeng.IsUnset() { + vals = append(vals, "shape_leng") + } + if !s.Address2.IsUnset() { + vals = append(vals, "address2") + } + if !s.GeneralMG.IsUnset() { + vals = append(vals, "general_mg") + } + if !s.City2.IsUnset() { + vals = append(vals, "city2") + } + if !s.PostalC1.IsUnset() { + vals = append(vals, "postal_c_1") + } + if !s.Fax2.IsUnset() { + vals = append(vals, "fax2") + } + if !s.Phone2.IsUnset() { + vals = append(vals, "phone2") + } + if !s.ShapeLe1.IsUnset() { + vals = append(vals, "shape_le_1") + } + if !s.ShapeArea.IsUnset() { + vals = append(vals, "shape_area") + } + if !s.Geom.IsUnset() { + vals = append(vals, "geom") + } + return vals +} + +func (s DistrictSetter) Overwrite(t *District) { + if s.Gid.IsValue() { + t.Gid = s.Gid.MustGet() + } + if !s.ID.IsUnset() { + t.ID = s.ID.MustGetNull() + } + if !s.Website.IsUnset() { + t.Website = s.Website.MustGetNull() + } + if !s.Contact.IsUnset() { + t.Contact = s.Contact.MustGetNull() + } + if !s.Address.IsUnset() { + t.Address = s.Address.MustGetNull() + } + if !s.Regionid.IsUnset() { + t.Regionid = s.Regionid.MustGetNull() + } + if !s.PostalCod.IsUnset() { + t.PostalCod = s.PostalCod.MustGetNull() + } + if !s.Phone1.IsUnset() { + t.Phone1 = s.Phone1.MustGetNull() + } + if !s.Fax1.IsUnset() { + t.Fax1 = s.Fax1.MustGetNull() + } + if !s.Agency.IsUnset() { + t.Agency = s.Agency.MustGetNull() + } + if !s.Code1.IsUnset() { + t.Code1 = s.Code1.MustGetNull() + } + if !s.City1.IsUnset() { + t.City1 = s.City1.MustGetNull() + } + if !s.ShapeLeng.IsUnset() { + t.ShapeLeng = s.ShapeLeng.MustGetNull() + } + if !s.Address2.IsUnset() { + t.Address2 = s.Address2.MustGetNull() + } + if !s.GeneralMG.IsUnset() { + t.GeneralMG = s.GeneralMG.MustGetNull() + } + if !s.City2.IsUnset() { + t.City2 = s.City2.MustGetNull() + } + if !s.PostalC1.IsUnset() { + t.PostalC1 = s.PostalC1.MustGetNull() + } + if !s.Fax2.IsUnset() { + t.Fax2 = s.Fax2.MustGetNull() + } + if !s.Phone2.IsUnset() { + t.Phone2 = s.Phone2.MustGetNull() + } + if !s.ShapeLe1.IsUnset() { + t.ShapeLe1 = s.ShapeLe1.MustGetNull() + } + if !s.ShapeArea.IsUnset() { + t.ShapeArea = s.ShapeArea.MustGetNull() + } + if !s.Geom.IsUnset() { + t.Geom = s.Geom.MustGetNull() + } +} + +func (s *DistrictSetter) Apply(q *dialect.InsertQuery) { + q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) { + return Districts.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, 22) + if s.Gid.IsValue() { + vals[0] = psql.Arg(s.Gid.MustGet()) + } else { + vals[0] = psql.Raw("DEFAULT") + } + + if !s.ID.IsUnset() { + vals[1] = psql.Arg(s.ID.MustGetNull()) + } else { + vals[1] = psql.Raw("DEFAULT") + } + + if !s.Website.IsUnset() { + vals[2] = psql.Arg(s.Website.MustGetNull()) + } else { + vals[2] = psql.Raw("DEFAULT") + } + + if !s.Contact.IsUnset() { + vals[3] = psql.Arg(s.Contact.MustGetNull()) + } else { + vals[3] = psql.Raw("DEFAULT") + } + + if !s.Address.IsUnset() { + vals[4] = psql.Arg(s.Address.MustGetNull()) + } else { + vals[4] = psql.Raw("DEFAULT") + } + + if !s.Regionid.IsUnset() { + vals[5] = psql.Arg(s.Regionid.MustGetNull()) + } else { + vals[5] = psql.Raw("DEFAULT") + } + + if !s.PostalCod.IsUnset() { + vals[6] = psql.Arg(s.PostalCod.MustGetNull()) + } else { + vals[6] = psql.Raw("DEFAULT") + } + + if !s.Phone1.IsUnset() { + vals[7] = psql.Arg(s.Phone1.MustGetNull()) + } else { + vals[7] = psql.Raw("DEFAULT") + } + + if !s.Fax1.IsUnset() { + vals[8] = psql.Arg(s.Fax1.MustGetNull()) + } else { + vals[8] = psql.Raw("DEFAULT") + } + + if !s.Agency.IsUnset() { + vals[9] = psql.Arg(s.Agency.MustGetNull()) + } else { + vals[9] = psql.Raw("DEFAULT") + } + + if !s.Code1.IsUnset() { + vals[10] = psql.Arg(s.Code1.MustGetNull()) + } else { + vals[10] = psql.Raw("DEFAULT") + } + + if !s.City1.IsUnset() { + vals[11] = psql.Arg(s.City1.MustGetNull()) + } else { + vals[11] = psql.Raw("DEFAULT") + } + + if !s.ShapeLeng.IsUnset() { + vals[12] = psql.Arg(s.ShapeLeng.MustGetNull()) + } else { + vals[12] = psql.Raw("DEFAULT") + } + + if !s.Address2.IsUnset() { + vals[13] = psql.Arg(s.Address2.MustGetNull()) + } else { + vals[13] = psql.Raw("DEFAULT") + } + + if !s.GeneralMG.IsUnset() { + vals[14] = psql.Arg(s.GeneralMG.MustGetNull()) + } else { + vals[14] = psql.Raw("DEFAULT") + } + + if !s.City2.IsUnset() { + vals[15] = psql.Arg(s.City2.MustGetNull()) + } else { + vals[15] = psql.Raw("DEFAULT") + } + + if !s.PostalC1.IsUnset() { + vals[16] = psql.Arg(s.PostalC1.MustGetNull()) + } else { + vals[16] = psql.Raw("DEFAULT") + } + + if !s.Fax2.IsUnset() { + vals[17] = psql.Arg(s.Fax2.MustGetNull()) + } else { + vals[17] = psql.Raw("DEFAULT") + } + + if !s.Phone2.IsUnset() { + vals[18] = psql.Arg(s.Phone2.MustGetNull()) + } else { + vals[18] = psql.Raw("DEFAULT") + } + + if !s.ShapeLe1.IsUnset() { + vals[19] = psql.Arg(s.ShapeLe1.MustGetNull()) + } else { + vals[19] = psql.Raw("DEFAULT") + } + + if !s.ShapeArea.IsUnset() { + vals[20] = psql.Arg(s.ShapeArea.MustGetNull()) + } else { + vals[20] = psql.Raw("DEFAULT") + } + + if !s.Geom.IsUnset() { + vals[21] = psql.Arg(s.Geom.MustGetNull()) + } else { + vals[21] = psql.Raw("DEFAULT") + } + + return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") + })) +} + +func (s DistrictSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { + return um.Set(s.Expressions()...) +} + +func (s DistrictSetter) Expressions(prefix ...string) []bob.Expression { + exprs := make([]bob.Expression, 0, 22) + + if s.Gid.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "gid")...), + psql.Arg(s.Gid), + }}) + } + + if !s.ID.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "id")...), + psql.Arg(s.ID), + }}) + } + + if !s.Website.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "website")...), + psql.Arg(s.Website), + }}) + } + + if !s.Contact.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "contact")...), + psql.Arg(s.Contact), + }}) + } + + if !s.Address.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "address")...), + psql.Arg(s.Address), + }}) + } + + if !s.Regionid.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "regionid")...), + psql.Arg(s.Regionid), + }}) + } + + if !s.PostalCod.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "postal_cod")...), + psql.Arg(s.PostalCod), + }}) + } + + if !s.Phone1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "phone1")...), + psql.Arg(s.Phone1), + }}) + } + + if !s.Fax1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "fax1")...), + psql.Arg(s.Fax1), + }}) + } + + if !s.Agency.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "agency")...), + psql.Arg(s.Agency), + }}) + } + + if !s.Code1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "code1")...), + psql.Arg(s.Code1), + }}) + } + + if !s.City1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "city1")...), + psql.Arg(s.City1), + }}) + } + + if !s.ShapeLeng.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "shape_leng")...), + psql.Arg(s.ShapeLeng), + }}) + } + + if !s.Address2.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "address2")...), + psql.Arg(s.Address2), + }}) + } + + if !s.GeneralMG.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "general_mg")...), + psql.Arg(s.GeneralMG), + }}) + } + + if !s.City2.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "city2")...), + psql.Arg(s.City2), + }}) + } + + if !s.PostalC1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "postal_c_1")...), + psql.Arg(s.PostalC1), + }}) + } + + if !s.Fax2.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "fax2")...), + psql.Arg(s.Fax2), + }}) + } + + if !s.Phone2.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "phone2")...), + psql.Arg(s.Phone2), + }}) + } + + if !s.ShapeLe1.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "shape_le_1")...), + psql.Arg(s.ShapeLe1), + }}) + } + + 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.Geom.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "geom")...), + psql.Arg(s.Geom), + }}) + } + + return exprs +} + +// FindDistrict retrieves a single record by primary key +// If cols is empty Find will return all columns. +func FindDistrict(ctx context.Context, exec bob.Executor, GidPK int32, cols ...string) (*District, error) { + if len(cols) == 0 { + return Districts.Query( + sm.Where(Districts.Columns.Gid.EQ(psql.Arg(GidPK))), + ).One(ctx, exec) + } + + return Districts.Query( + sm.Where(Districts.Columns.Gid.EQ(psql.Arg(GidPK))), + sm.Columns(Districts.Columns.Only(cols...)), + ).One(ctx, exec) +} + +// DistrictExists checks the presence of a single record by primary key +func DistrictExists(ctx context.Context, exec bob.Executor, GidPK int32) (bool, error) { + return Districts.Query( + sm.Where(Districts.Columns.Gid.EQ(psql.Arg(GidPK))), + ).Exists(ctx, exec) +} + +// AfterQueryHook is called after District is retrieved from the database +func (o *District) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { + var err error + + switch queryType { + case bob.QueryTypeSelect: + ctx, err = Districts.AfterSelectHooks.RunHooks(ctx, exec, DistrictSlice{o}) + case bob.QueryTypeInsert: + ctx, err = Districts.AfterInsertHooks.RunHooks(ctx, exec, DistrictSlice{o}) + case bob.QueryTypeUpdate: + ctx, err = Districts.AfterUpdateHooks.RunHooks(ctx, exec, DistrictSlice{o}) + case bob.QueryTypeDelete: + ctx, err = Districts.AfterDeleteHooks.RunHooks(ctx, exec, DistrictSlice{o}) + } + + return err +} + +// primaryKeyVals returns the primary key values of the District +func (o *District) primaryKeyVals() bob.Expression { + return psql.Arg(o.Gid) +} + +func (o *District) pkEQ() dialect.Expression { + return psql.Quote("district", "gid").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 District +func (o *District) Update(ctx context.Context, exec bob.Executor, s *DistrictSetter) error { + v, err := Districts.Update(s.UpdateMod(), um.Where(o.pkEQ())).One(ctx, exec) + if err != nil { + return err + } + + *o = *v + + return nil +} + +// Delete deletes a single District record with an executor +func (o *District) Delete(ctx context.Context, exec bob.Executor) error { + _, err := Districts.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec) + return err +} + +// Reload refreshes the District using the executor +func (o *District) Reload(ctx context.Context, exec bob.Executor) error { + o2, err := Districts.Query( + sm.Where(Districts.Columns.Gid.EQ(psql.Arg(o.Gid))), + ).One(ctx, exec) + if err != nil { + return err + } + + *o = *o2 + + return nil +} + +// AfterQueryHook is called after DistrictSlice is retrieved from the database +func (o DistrictSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { + var err error + + switch queryType { + case bob.QueryTypeSelect: + ctx, err = Districts.AfterSelectHooks.RunHooks(ctx, exec, o) + case bob.QueryTypeInsert: + ctx, err = Districts.AfterInsertHooks.RunHooks(ctx, exec, o) + case bob.QueryTypeUpdate: + ctx, err = Districts.AfterUpdateHooks.RunHooks(ctx, exec, o) + case bob.QueryTypeDelete: + ctx, err = Districts.AfterDeleteHooks.RunHooks(ctx, exec, o) + } + + return err +} + +func (o DistrictSlice) pkIN() dialect.Expression { + if len(o) == 0 { + return psql.Raw("NULL") + } + + return psql.Quote("district", "gid").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 DistrictSlice) copyMatchingRows(from ...*District) { + for i, old := range o { + for _, new := range from { + if new.Gid != old.Gid { + continue + } + + o[i] = new + break + } + } +} + +// UpdateMod modifies an update query with "WHERE primary_key IN (o...)" +func (o DistrictSlice) 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 Districts.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 *District: + o.copyMatchingRows(retrieved) + case []*District: + o.copyMatchingRows(retrieved...) + case DistrictSlice: + o.copyMatchingRows(retrieved...) + default: + // If the retrieved value is not a District or a slice of District + // then run the AfterUpdateHooks on the slice + _, err = Districts.AfterUpdateHooks.RunHooks(ctx, exec, o) + } + + return err + })) + + q.AppendWhere(o.pkIN()) + }) +} + +// DeleteMod modifies an delete query with "WHERE primary_key IN (o...)" +func (o DistrictSlice) 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 Districts.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 *District: + o.copyMatchingRows(retrieved) + case []*District: + o.copyMatchingRows(retrieved...) + case DistrictSlice: + o.copyMatchingRows(retrieved...) + default: + // If the retrieved value is not a District or a slice of District + // then run the AfterDeleteHooks on the slice + _, err = Districts.AfterDeleteHooks.RunHooks(ctx, exec, o) + } + + return err + })) + + q.AppendWhere(o.pkIN()) + }) +} + +func (o DistrictSlice) UpdateAll(ctx context.Context, exec bob.Executor, vals DistrictSetter) error { + if len(o) == 0 { + return nil + } + + _, err := Districts.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec) + return err +} + +func (o DistrictSlice) DeleteAll(ctx context.Context, exec bob.Executor) error { + if len(o) == 0 { + return nil + } + + _, err := Districts.Delete(o.DeleteMod()).Exec(ctx, exec) + return err +} + +func (o DistrictSlice) ReloadAll(ctx context.Context, exec bob.Executor) error { + if len(o) == 0 { + return nil + } + + o2, err := Districts.Query(sm.Where(o.pkIN())).All(ctx, exec) + if err != nil { + return err + } + + o.copyMatchingRows(o2...) + + return nil +} + +type districtWhere[Q psql.Filterable] struct { + Gid psql.WhereMod[Q, int32] + ID psql.WhereNullMod[Q, decimal.Decimal] + Website psql.WhereNullMod[Q, string] + Contact psql.WhereNullMod[Q, string] + Address psql.WhereNullMod[Q, string] + Regionid psql.WhereNullMod[Q, decimal.Decimal] + PostalCod psql.WhereNullMod[Q, decimal.Decimal] + Phone1 psql.WhereNullMod[Q, string] + Fax1 psql.WhereNullMod[Q, string] + Agency psql.WhereNullMod[Q, string] + Code1 psql.WhereNullMod[Q, string] + City1 psql.WhereNullMod[Q, string] + ShapeLeng psql.WhereNullMod[Q, decimal.Decimal] + Address2 psql.WhereNullMod[Q, string] + GeneralMG psql.WhereNullMod[Q, string] + City2 psql.WhereNullMod[Q, string] + PostalC1 psql.WhereNullMod[Q, decimal.Decimal] + Fax2 psql.WhereNullMod[Q, string] + Phone2 psql.WhereNullMod[Q, string] + ShapeLe1 psql.WhereNullMod[Q, decimal.Decimal] + ShapeArea psql.WhereNullMod[Q, decimal.Decimal] + Geom psql.WhereNullMod[Q, string] +} + +func (districtWhere[Q]) AliasedAs(alias string) districtWhere[Q] { + return buildDistrictWhere[Q](buildDistrictColumns(alias)) +} + +func buildDistrictWhere[Q psql.Filterable](cols districtColumns) districtWhere[Q] { + return districtWhere[Q]{ + Gid: psql.Where[Q, int32](cols.Gid), + ID: psql.WhereNull[Q, decimal.Decimal](cols.ID), + Website: psql.WhereNull[Q, string](cols.Website), + Contact: psql.WhereNull[Q, string](cols.Contact), + Address: psql.WhereNull[Q, string](cols.Address), + Regionid: psql.WhereNull[Q, decimal.Decimal](cols.Regionid), + PostalCod: psql.WhereNull[Q, decimal.Decimal](cols.PostalCod), + Phone1: psql.WhereNull[Q, string](cols.Phone1), + Fax1: psql.WhereNull[Q, string](cols.Fax1), + Agency: psql.WhereNull[Q, string](cols.Agency), + Code1: psql.WhereNull[Q, string](cols.Code1), + City1: psql.WhereNull[Q, string](cols.City1), + ShapeLeng: psql.WhereNull[Q, decimal.Decimal](cols.ShapeLeng), + Address2: psql.WhereNull[Q, string](cols.Address2), + GeneralMG: psql.WhereNull[Q, string](cols.GeneralMG), + City2: psql.WhereNull[Q, string](cols.City2), + PostalC1: psql.WhereNull[Q, decimal.Decimal](cols.PostalC1), + Fax2: psql.WhereNull[Q, string](cols.Fax2), + Phone2: psql.WhereNull[Q, string](cols.Phone2), + ShapeLe1: psql.WhereNull[Q, decimal.Decimal](cols.ShapeLe1), + ShapeArea: psql.WhereNull[Q, decimal.Decimal](cols.ShapeArea), + Geom: psql.WhereNull[Q, string](cols.Geom), + } +} diff --git a/db/models/publicreport.nuisance.bob.go b/db/models/publicreport.nuisance.bob.go index 8a815325..78ce3f54 100644 --- a/db/models/publicreport.nuisance.bob.go +++ b/db/models/publicreport.nuisance.bob.go @@ -9,7 +9,9 @@ import ( "time" enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" + "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" + "github.com/aarondl/opt/omitnull" "github.com/stephenafamo/bob" "github.com/stephenafamo/bob/dialect/psql" "github.com/stephenafamo/bob/dialect/psql/dialect" @@ -27,7 +29,7 @@ type PublicreportNuisance struct { Duration enums.PublicreportNuisancedurationtype `db:"duration" ` Email string `db:"email" ` InspectionType enums.PublicreportNuisanceinspectiontype `db:"inspection_type" ` - Location enums.PublicreportNuisancelocationtype `db:"location" ` + SourceLocation enums.PublicreportNuisancelocationtype `db:"source_location" ` PreferredDateRange enums.PublicreportNuisancepreferreddaterangetype `db:"preferred_date_range" ` PreferredTime enums.PublicreportNuisancepreferredtimetype `db:"preferred_time" ` RequestCall bool `db:"request_call" ` @@ -45,6 +47,9 @@ type PublicreportNuisance struct { ReporterEmail string `db:"reporter_email" ` ReporterName string `db:"reporter_name" ` ReporterPhone string `db:"reporter_phone" ` + Address string `db:"address" ` + Location null.Val[string] `db:"location" ` + Status enums.PublicreportReportstatustype `db:"status" ` } // PublicreportNuisanceSlice is an alias for a slice of pointers to PublicreportNuisance. @@ -60,7 +65,7 @@ type PublicreportNuisancesQuery = *psql.ViewQuery[*PublicreportNuisance, Publicr func buildPublicreportNuisanceColumns(alias string) publicreportNuisanceColumns { return publicreportNuisanceColumns{ ColumnsExpr: expr.NewColumnsExpr( - "id", "additional_info", "created", "duration", "email", "inspection_type", "location", "preferred_date_range", "preferred_time", "request_call", "severity", "source_container", "source_description", "source_roof", "source_stagnant", "time_of_day_day", "time_of_day_early", "time_of_day_evening", "time_of_day_night", "public_id", "reporter_address", "reporter_email", "reporter_name", "reporter_phone", + "id", "additional_info", "created", "duration", "email", "inspection_type", "source_location", "preferred_date_range", "preferred_time", "request_call", "severity", "source_container", "source_description", "source_roof", "source_stagnant", "time_of_day_day", "time_of_day_early", "time_of_day_evening", "time_of_day_night", "public_id", "reporter_address", "reporter_email", "reporter_name", "reporter_phone", "address", "location", "status", ).WithParent("publicreport.nuisance"), tableAlias: alias, ID: psql.Quote(alias, "id"), @@ -69,7 +74,7 @@ func buildPublicreportNuisanceColumns(alias string) publicreportNuisanceColumns Duration: psql.Quote(alias, "duration"), Email: psql.Quote(alias, "email"), InspectionType: psql.Quote(alias, "inspection_type"), - Location: psql.Quote(alias, "location"), + SourceLocation: psql.Quote(alias, "source_location"), PreferredDateRange: psql.Quote(alias, "preferred_date_range"), PreferredTime: psql.Quote(alias, "preferred_time"), RequestCall: psql.Quote(alias, "request_call"), @@ -87,6 +92,9 @@ func buildPublicreportNuisanceColumns(alias string) publicreportNuisanceColumns ReporterEmail: psql.Quote(alias, "reporter_email"), ReporterName: psql.Quote(alias, "reporter_name"), ReporterPhone: psql.Quote(alias, "reporter_phone"), + Address: psql.Quote(alias, "address"), + Location: psql.Quote(alias, "location"), + Status: psql.Quote(alias, "status"), } } @@ -99,7 +107,7 @@ type publicreportNuisanceColumns struct { Duration psql.Expression Email psql.Expression InspectionType psql.Expression - Location psql.Expression + SourceLocation psql.Expression PreferredDateRange psql.Expression PreferredTime psql.Expression RequestCall psql.Expression @@ -117,6 +125,9 @@ type publicreportNuisanceColumns struct { ReporterEmail psql.Expression ReporterName psql.Expression ReporterPhone psql.Expression + Address psql.Expression + Location psql.Expression + Status psql.Expression } func (c publicreportNuisanceColumns) Alias() string { @@ -137,7 +148,7 @@ type PublicreportNuisanceSetter struct { Duration omit.Val[enums.PublicreportNuisancedurationtype] `db:"duration" ` Email omit.Val[string] `db:"email" ` InspectionType omit.Val[enums.PublicreportNuisanceinspectiontype] `db:"inspection_type" ` - Location omit.Val[enums.PublicreportNuisancelocationtype] `db:"location" ` + SourceLocation omit.Val[enums.PublicreportNuisancelocationtype] `db:"source_location" ` PreferredDateRange omit.Val[enums.PublicreportNuisancepreferreddaterangetype] `db:"preferred_date_range" ` PreferredTime omit.Val[enums.PublicreportNuisancepreferredtimetype] `db:"preferred_time" ` RequestCall omit.Val[bool] `db:"request_call" ` @@ -155,10 +166,13 @@ type PublicreportNuisanceSetter struct { ReporterEmail omit.Val[string] `db:"reporter_email" ` ReporterName omit.Val[string] `db:"reporter_name" ` ReporterPhone omit.Val[string] `db:"reporter_phone" ` + Address omit.Val[string] `db:"address" ` + Location omitnull.Val[string] `db:"location" ` + Status omit.Val[enums.PublicreportReportstatustype] `db:"status" ` } func (s PublicreportNuisanceSetter) SetColumns() []string { - vals := make([]string, 0, 24) + vals := make([]string, 0, 27) if s.ID.IsValue() { vals = append(vals, "id") } @@ -177,8 +191,8 @@ func (s PublicreportNuisanceSetter) SetColumns() []string { if s.InspectionType.IsValue() { vals = append(vals, "inspection_type") } - if s.Location.IsValue() { - vals = append(vals, "location") + if s.SourceLocation.IsValue() { + vals = append(vals, "source_location") } if s.PreferredDateRange.IsValue() { vals = append(vals, "preferred_date_range") @@ -231,6 +245,15 @@ func (s PublicreportNuisanceSetter) SetColumns() []string { if s.ReporterPhone.IsValue() { vals = append(vals, "reporter_phone") } + if s.Address.IsValue() { + vals = append(vals, "address") + } + if !s.Location.IsUnset() { + vals = append(vals, "location") + } + if s.Status.IsValue() { + vals = append(vals, "status") + } return vals } @@ -253,8 +276,8 @@ func (s PublicreportNuisanceSetter) Overwrite(t *PublicreportNuisance) { if s.InspectionType.IsValue() { t.InspectionType = s.InspectionType.MustGet() } - if s.Location.IsValue() { - t.Location = s.Location.MustGet() + if s.SourceLocation.IsValue() { + t.SourceLocation = s.SourceLocation.MustGet() } if s.PreferredDateRange.IsValue() { t.PreferredDateRange = s.PreferredDateRange.MustGet() @@ -307,6 +330,15 @@ func (s PublicreportNuisanceSetter) Overwrite(t *PublicreportNuisance) { if s.ReporterPhone.IsValue() { t.ReporterPhone = s.ReporterPhone.MustGet() } + if s.Address.IsValue() { + t.Address = s.Address.MustGet() + } + if !s.Location.IsUnset() { + t.Location = s.Location.MustGetNull() + } + if s.Status.IsValue() { + t.Status = s.Status.MustGet() + } } func (s *PublicreportNuisanceSetter) Apply(q *dialect.InsertQuery) { @@ -315,7 +347,7 @@ func (s *PublicreportNuisanceSetter) Apply(q *dialect.InsertQuery) { }) q.AppendValues(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { - vals := make([]bob.Expression, 24) + vals := make([]bob.Expression, 27) if s.ID.IsValue() { vals[0] = psql.Arg(s.ID.MustGet()) } else { @@ -352,8 +384,8 @@ func (s *PublicreportNuisanceSetter) Apply(q *dialect.InsertQuery) { vals[5] = psql.Raw("DEFAULT") } - if s.Location.IsValue() { - vals[6] = psql.Arg(s.Location.MustGet()) + if s.SourceLocation.IsValue() { + vals[6] = psql.Arg(s.SourceLocation.MustGet()) } else { vals[6] = psql.Raw("DEFAULT") } @@ -460,6 +492,24 @@ func (s *PublicreportNuisanceSetter) Apply(q *dialect.InsertQuery) { vals[23] = psql.Raw("DEFAULT") } + if s.Address.IsValue() { + vals[24] = psql.Arg(s.Address.MustGet()) + } else { + vals[24] = psql.Raw("DEFAULT") + } + + if !s.Location.IsUnset() { + vals[25] = psql.Arg(s.Location.MustGetNull()) + } else { + vals[25] = psql.Raw("DEFAULT") + } + + if s.Status.IsValue() { + vals[26] = psql.Arg(s.Status.MustGet()) + } else { + vals[26] = psql.Raw("DEFAULT") + } + return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } @@ -469,7 +519,7 @@ func (s PublicreportNuisanceSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { } func (s PublicreportNuisanceSetter) Expressions(prefix ...string) []bob.Expression { - exprs := make([]bob.Expression, 0, 24) + exprs := make([]bob.Expression, 0, 27) if s.ID.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ @@ -513,10 +563,10 @@ func (s PublicreportNuisanceSetter) Expressions(prefix ...string) []bob.Expressi }}) } - if s.Location.IsValue() { + if s.SourceLocation.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ - psql.Quote(append(prefix, "location")...), - psql.Arg(s.Location), + psql.Quote(append(prefix, "source_location")...), + psql.Arg(s.SourceLocation), }}) } @@ -639,6 +689,27 @@ func (s PublicreportNuisanceSetter) Expressions(prefix ...string) []bob.Expressi }}) } + if s.Address.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "address")...), + psql.Arg(s.Address), + }}) + } + + if !s.Location.IsUnset() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "location")...), + psql.Arg(s.Location), + }}) + } + + if s.Status.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "status")...), + psql.Arg(s.Status), + }}) + } + return exprs } @@ -871,7 +942,7 @@ type publicreportNuisanceWhere[Q psql.Filterable] struct { Duration psql.WhereMod[Q, enums.PublicreportNuisancedurationtype] Email psql.WhereMod[Q, string] InspectionType psql.WhereMod[Q, enums.PublicreportNuisanceinspectiontype] - Location psql.WhereMod[Q, enums.PublicreportNuisancelocationtype] + SourceLocation psql.WhereMod[Q, enums.PublicreportNuisancelocationtype] PreferredDateRange psql.WhereMod[Q, enums.PublicreportNuisancepreferreddaterangetype] PreferredTime psql.WhereMod[Q, enums.PublicreportNuisancepreferredtimetype] RequestCall psql.WhereMod[Q, bool] @@ -889,6 +960,9 @@ type publicreportNuisanceWhere[Q psql.Filterable] struct { ReporterEmail psql.WhereMod[Q, string] ReporterName psql.WhereMod[Q, string] ReporterPhone psql.WhereMod[Q, string] + Address psql.WhereMod[Q, string] + Location psql.WhereNullMod[Q, string] + Status psql.WhereMod[Q, enums.PublicreportReportstatustype] } func (publicreportNuisanceWhere[Q]) AliasedAs(alias string) publicreportNuisanceWhere[Q] { @@ -903,7 +977,7 @@ func buildPublicreportNuisanceWhere[Q psql.Filterable](cols publicreportNuisance Duration: psql.Where[Q, enums.PublicreportNuisancedurationtype](cols.Duration), Email: psql.Where[Q, string](cols.Email), InspectionType: psql.Where[Q, enums.PublicreportNuisanceinspectiontype](cols.InspectionType), - Location: psql.Where[Q, enums.PublicreportNuisancelocationtype](cols.Location), + SourceLocation: psql.Where[Q, enums.PublicreportNuisancelocationtype](cols.SourceLocation), PreferredDateRange: psql.Where[Q, enums.PublicreportNuisancepreferreddaterangetype](cols.PreferredDateRange), PreferredTime: psql.Where[Q, enums.PublicreportNuisancepreferredtimetype](cols.PreferredTime), RequestCall: psql.Where[Q, bool](cols.RequestCall), @@ -921,5 +995,8 @@ func buildPublicreportNuisanceWhere[Q psql.Filterable](cols publicreportNuisance ReporterEmail: psql.Where[Q, string](cols.ReporterEmail), ReporterName: psql.Where[Q, string](cols.ReporterName), ReporterPhone: psql.Where[Q, string](cols.ReporterPhone), + Address: psql.Where[Q, string](cols.Address), + Location: psql.WhereNull[Q, string](cols.Location), + Status: psql.Where[Q, enums.PublicreportReportstatustype](cols.Status), } } diff --git a/db/models/publicreport.pool.bob.go b/db/models/publicreport.pool.bob.go index 2569a101..805c0576 100644 --- a/db/models/publicreport.pool.bob.go +++ b/db/models/publicreport.pool.bob.go @@ -9,6 +9,7 @@ import ( "io" "time" + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" "github.com/aarondl/opt/omitnull" @@ -26,35 +27,36 @@ import ( // PublicreportPool is an object representing the database table. type PublicreportPool struct { - ID int32 `db:"id,pk" ` - AccessComments string `db:"access_comments" ` - AccessGate bool `db:"access_gate" ` - AccessFence bool `db:"access_fence" ` - AccessLocked bool `db:"access_locked" ` - AccessDog bool `db:"access_dog" ` - AccessOther bool `db:"access_other" ` - Address string `db:"address" ` - AddressCountry string `db:"address_country" ` - AddressPostCode string `db:"address_post_code" ` - AddressPlace string `db:"address_place" ` - AddressStreet string `db:"address_street" ` - AddressRegion string `db:"address_region" ` - Comments string `db:"comments" ` - Created time.Time `db:"created" ` - H3cell null.Val[string] `db:"h3cell" ` - HasAdult bool `db:"has_adult" ` - HasLarvae bool `db:"has_larvae" ` - HasPupae bool `db:"has_pupae" ` - Location null.Val[string] `db:"location" ` - MapZoom float64 `db:"map_zoom" ` - OwnerEmail string `db:"owner_email" ` - OwnerName string `db:"owner_name" ` - OwnerPhone string `db:"owner_phone" ` - PublicID string `db:"public_id" ` - ReporterEmail string `db:"reporter_email" ` - ReporterName string `db:"reporter_name" ` - ReporterPhone string `db:"reporter_phone" ` - Subscribe bool `db:"subscribe" ` + ID int32 `db:"id,pk" ` + AccessComments string `db:"access_comments" ` + AccessGate bool `db:"access_gate" ` + AccessFence bool `db:"access_fence" ` + AccessLocked bool `db:"access_locked" ` + AccessDog bool `db:"access_dog" ` + AccessOther bool `db:"access_other" ` + Address string `db:"address" ` + AddressCountry string `db:"address_country" ` + AddressPostCode string `db:"address_post_code" ` + AddressPlace string `db:"address_place" ` + AddressStreet string `db:"address_street" ` + AddressRegion string `db:"address_region" ` + Comments string `db:"comments" ` + Created time.Time `db:"created" ` + H3cell null.Val[string] `db:"h3cell" ` + HasAdult bool `db:"has_adult" ` + HasLarvae bool `db:"has_larvae" ` + HasPupae bool `db:"has_pupae" ` + Location null.Val[string] `db:"location" ` + MapZoom float64 `db:"map_zoom" ` + OwnerEmail string `db:"owner_email" ` + OwnerName string `db:"owner_name" ` + OwnerPhone string `db:"owner_phone" ` + PublicID string `db:"public_id" ` + ReporterEmail string `db:"reporter_email" ` + ReporterName string `db:"reporter_name" ` + ReporterPhone string `db:"reporter_phone" ` + Subscribe bool `db:"subscribe" ` + Status enums.PublicreportReportstatustype `db:"status" ` R publicreportPoolR `db:"-" ` } @@ -77,7 +79,7 @@ type publicreportPoolR struct { func buildPublicreportPoolColumns(alias string) publicreportPoolColumns { return publicreportPoolColumns{ ColumnsExpr: expr.NewColumnsExpr( - "id", "access_comments", "access_gate", "access_fence", "access_locked", "access_dog", "access_other", "address", "address_country", "address_post_code", "address_place", "address_street", "address_region", "comments", "created", "h3cell", "has_adult", "has_larvae", "has_pupae", "location", "map_zoom", "owner_email", "owner_name", "owner_phone", "public_id", "reporter_email", "reporter_name", "reporter_phone", "subscribe", + "id", "access_comments", "access_gate", "access_fence", "access_locked", "access_dog", "access_other", "address", "address_country", "address_post_code", "address_place", "address_street", "address_region", "comments", "created", "h3cell", "has_adult", "has_larvae", "has_pupae", "location", "map_zoom", "owner_email", "owner_name", "owner_phone", "public_id", "reporter_email", "reporter_name", "reporter_phone", "subscribe", "status", ).WithParent("publicreport.pool"), tableAlias: alias, ID: psql.Quote(alias, "id"), @@ -109,6 +111,7 @@ func buildPublicreportPoolColumns(alias string) publicreportPoolColumns { ReporterName: psql.Quote(alias, "reporter_name"), ReporterPhone: psql.Quote(alias, "reporter_phone"), Subscribe: psql.Quote(alias, "subscribe"), + Status: psql.Quote(alias, "status"), } } @@ -144,6 +147,7 @@ type publicreportPoolColumns struct { ReporterName psql.Expression ReporterPhone psql.Expression Subscribe psql.Expression + Status psql.Expression } func (c publicreportPoolColumns) Alias() string { @@ -158,39 +162,40 @@ func (publicreportPoolColumns) AliasedAs(alias string) publicreportPoolColumns { // All values are optional, and do not have to be set // Generated columns are not included type PublicreportPoolSetter struct { - ID omit.Val[int32] `db:"id,pk" ` - AccessComments omit.Val[string] `db:"access_comments" ` - AccessGate omit.Val[bool] `db:"access_gate" ` - AccessFence omit.Val[bool] `db:"access_fence" ` - AccessLocked omit.Val[bool] `db:"access_locked" ` - AccessDog omit.Val[bool] `db:"access_dog" ` - AccessOther omit.Val[bool] `db:"access_other" ` - Address omit.Val[string] `db:"address" ` - AddressCountry omit.Val[string] `db:"address_country" ` - AddressPostCode omit.Val[string] `db:"address_post_code" ` - AddressPlace omit.Val[string] `db:"address_place" ` - AddressStreet omit.Val[string] `db:"address_street" ` - AddressRegion omit.Val[string] `db:"address_region" ` - Comments omit.Val[string] `db:"comments" ` - Created omit.Val[time.Time] `db:"created" ` - H3cell omitnull.Val[string] `db:"h3cell" ` - HasAdult omit.Val[bool] `db:"has_adult" ` - HasLarvae omit.Val[bool] `db:"has_larvae" ` - HasPupae omit.Val[bool] `db:"has_pupae" ` - Location omitnull.Val[string] `db:"location" ` - MapZoom omit.Val[float64] `db:"map_zoom" ` - OwnerEmail omit.Val[string] `db:"owner_email" ` - OwnerName omit.Val[string] `db:"owner_name" ` - OwnerPhone omit.Val[string] `db:"owner_phone" ` - PublicID omit.Val[string] `db:"public_id" ` - ReporterEmail omit.Val[string] `db:"reporter_email" ` - ReporterName omit.Val[string] `db:"reporter_name" ` - ReporterPhone omit.Val[string] `db:"reporter_phone" ` - Subscribe omit.Val[bool] `db:"subscribe" ` + ID omit.Val[int32] `db:"id,pk" ` + AccessComments omit.Val[string] `db:"access_comments" ` + AccessGate omit.Val[bool] `db:"access_gate" ` + AccessFence omit.Val[bool] `db:"access_fence" ` + AccessLocked omit.Val[bool] `db:"access_locked" ` + AccessDog omit.Val[bool] `db:"access_dog" ` + AccessOther omit.Val[bool] `db:"access_other" ` + Address omit.Val[string] `db:"address" ` + AddressCountry omit.Val[string] `db:"address_country" ` + AddressPostCode omit.Val[string] `db:"address_post_code" ` + AddressPlace omit.Val[string] `db:"address_place" ` + AddressStreet omit.Val[string] `db:"address_street" ` + AddressRegion omit.Val[string] `db:"address_region" ` + Comments omit.Val[string] `db:"comments" ` + Created omit.Val[time.Time] `db:"created" ` + H3cell omitnull.Val[string] `db:"h3cell" ` + HasAdult omit.Val[bool] `db:"has_adult" ` + HasLarvae omit.Val[bool] `db:"has_larvae" ` + HasPupae omit.Val[bool] `db:"has_pupae" ` + Location omitnull.Val[string] `db:"location" ` + MapZoom omit.Val[float64] `db:"map_zoom" ` + OwnerEmail omit.Val[string] `db:"owner_email" ` + OwnerName omit.Val[string] `db:"owner_name" ` + OwnerPhone omit.Val[string] `db:"owner_phone" ` + PublicID omit.Val[string] `db:"public_id" ` + ReporterEmail omit.Val[string] `db:"reporter_email" ` + ReporterName omit.Val[string] `db:"reporter_name" ` + ReporterPhone omit.Val[string] `db:"reporter_phone" ` + Subscribe omit.Val[bool] `db:"subscribe" ` + Status omit.Val[enums.PublicreportReportstatustype] `db:"status" ` } func (s PublicreportPoolSetter) SetColumns() []string { - vals := make([]string, 0, 29) + vals := make([]string, 0, 30) if s.ID.IsValue() { vals = append(vals, "id") } @@ -278,6 +283,9 @@ func (s PublicreportPoolSetter) SetColumns() []string { if s.Subscribe.IsValue() { vals = append(vals, "subscribe") } + if s.Status.IsValue() { + vals = append(vals, "status") + } return vals } @@ -369,6 +377,9 @@ func (s PublicreportPoolSetter) Overwrite(t *PublicreportPool) { if s.Subscribe.IsValue() { t.Subscribe = s.Subscribe.MustGet() } + if s.Status.IsValue() { + t.Status = s.Status.MustGet() + } } func (s *PublicreportPoolSetter) Apply(q *dialect.InsertQuery) { @@ -377,7 +388,7 @@ func (s *PublicreportPoolSetter) Apply(q *dialect.InsertQuery) { }) q.AppendValues(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { - vals := make([]bob.Expression, 29) + vals := make([]bob.Expression, 30) if s.ID.IsValue() { vals[0] = psql.Arg(s.ID.MustGet()) } else { @@ -552,6 +563,12 @@ func (s *PublicreportPoolSetter) Apply(q *dialect.InsertQuery) { vals[28] = psql.Raw("DEFAULT") } + if s.Status.IsValue() { + vals[29] = psql.Arg(s.Status.MustGet()) + } else { + vals[29] = psql.Raw("DEFAULT") + } + return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } @@ -561,7 +578,7 @@ func (s PublicreportPoolSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { } func (s PublicreportPoolSetter) Expressions(prefix ...string) []bob.Expression { - exprs := make([]bob.Expression, 0, 29) + exprs := make([]bob.Expression, 0, 30) if s.ID.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ @@ -766,6 +783,13 @@ func (s PublicreportPoolSetter) Expressions(prefix ...string) []bob.Expression { }}) } + if s.Status.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "status")...), + psql.Arg(s.Status), + }}) + } + return exprs } @@ -1114,6 +1138,7 @@ type publicreportPoolWhere[Q psql.Filterable] struct { ReporterName psql.WhereMod[Q, string] ReporterPhone psql.WhereMod[Q, string] Subscribe psql.WhereMod[Q, bool] + Status psql.WhereMod[Q, enums.PublicreportReportstatustype] } func (publicreportPoolWhere[Q]) AliasedAs(alias string) publicreportPoolWhere[Q] { @@ -1151,6 +1176,7 @@ func buildPublicreportPoolWhere[Q psql.Filterable](cols publicreportPoolColumns) ReporterName: psql.Where[Q, string](cols.ReporterName), ReporterPhone: psql.Where[Q, string](cols.ReporterPhone), Subscribe: psql.Where[Q, bool](cols.Subscribe), + Status: psql.Where[Q, enums.PublicreportReportstatustype](cols.Status), } } diff --git a/db/models/publicreport.quick.bob.go b/db/models/publicreport.quick.bob.go index e67c9c3e..1a97365f 100644 --- a/db/models/publicreport.quick.bob.go +++ b/db/models/publicreport.quick.bob.go @@ -9,6 +9,7 @@ import ( "io" "time" + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" "github.com/aarondl/opt/null" "github.com/aarondl/opt/omit" "github.com/aarondl/opt/omitnull" @@ -26,14 +27,16 @@ import ( // PublicreportQuick is an object representing the database table. type PublicreportQuick struct { - ID int32 `db:"id,pk" ` - Created time.Time `db:"created" ` - Comments string `db:"comments" ` - Location null.Val[string] `db:"location" ` - H3cell null.Val[string] `db:"h3cell" ` - PublicID string `db:"public_id" ` - ReporterEmail string `db:"reporter_email" ` - ReporterPhone string `db:"reporter_phone" ` + ID int32 `db:"id,pk" ` + Created time.Time `db:"created" ` + Comments string `db:"comments" ` + Location null.Val[string] `db:"location" ` + H3cell null.Val[string] `db:"h3cell" ` + PublicID string `db:"public_id" ` + ReporterEmail string `db:"reporter_email" ` + ReporterPhone string `db:"reporter_phone" ` + Address string `db:"address" ` + Status enums.PublicreportReportstatustype `db:"status" ` R publicreportQuickR `db:"-" ` } @@ -56,7 +59,7 @@ type publicreportQuickR struct { func buildPublicreportQuickColumns(alias string) publicreportQuickColumns { return publicreportQuickColumns{ ColumnsExpr: expr.NewColumnsExpr( - "id", "created", "comments", "location", "h3cell", "public_id", "reporter_email", "reporter_phone", + "id", "created", "comments", "location", "h3cell", "public_id", "reporter_email", "reporter_phone", "address", "status", ).WithParent("publicreport.quick"), tableAlias: alias, ID: psql.Quote(alias, "id"), @@ -67,6 +70,8 @@ func buildPublicreportQuickColumns(alias string) publicreportQuickColumns { PublicID: psql.Quote(alias, "public_id"), ReporterEmail: psql.Quote(alias, "reporter_email"), ReporterPhone: psql.Quote(alias, "reporter_phone"), + Address: psql.Quote(alias, "address"), + Status: psql.Quote(alias, "status"), } } @@ -81,6 +86,8 @@ type publicreportQuickColumns struct { PublicID psql.Expression ReporterEmail psql.Expression ReporterPhone psql.Expression + Address psql.Expression + Status psql.Expression } func (c publicreportQuickColumns) Alias() string { @@ -95,18 +102,20 @@ func (publicreportQuickColumns) AliasedAs(alias string) publicreportQuickColumns // All values are optional, and do not have to be set // Generated columns are not included type PublicreportQuickSetter struct { - ID omit.Val[int32] `db:"id,pk" ` - Created omit.Val[time.Time] `db:"created" ` - Comments omit.Val[string] `db:"comments" ` - Location omitnull.Val[string] `db:"location" ` - H3cell omitnull.Val[string] `db:"h3cell" ` - PublicID omit.Val[string] `db:"public_id" ` - ReporterEmail omit.Val[string] `db:"reporter_email" ` - ReporterPhone omit.Val[string] `db:"reporter_phone" ` + ID omit.Val[int32] `db:"id,pk" ` + Created omit.Val[time.Time] `db:"created" ` + Comments omit.Val[string] `db:"comments" ` + Location omitnull.Val[string] `db:"location" ` + H3cell omitnull.Val[string] `db:"h3cell" ` + PublicID omit.Val[string] `db:"public_id" ` + ReporterEmail omit.Val[string] `db:"reporter_email" ` + ReporterPhone omit.Val[string] `db:"reporter_phone" ` + Address omit.Val[string] `db:"address" ` + Status omit.Val[enums.PublicreportReportstatustype] `db:"status" ` } func (s PublicreportQuickSetter) SetColumns() []string { - vals := make([]string, 0, 8) + vals := make([]string, 0, 10) if s.ID.IsValue() { vals = append(vals, "id") } @@ -131,6 +140,12 @@ func (s PublicreportQuickSetter) SetColumns() []string { if s.ReporterPhone.IsValue() { vals = append(vals, "reporter_phone") } + if s.Address.IsValue() { + vals = append(vals, "address") + } + if s.Status.IsValue() { + vals = append(vals, "status") + } return vals } @@ -159,6 +174,12 @@ func (s PublicreportQuickSetter) Overwrite(t *PublicreportQuick) { if s.ReporterPhone.IsValue() { t.ReporterPhone = s.ReporterPhone.MustGet() } + if s.Address.IsValue() { + t.Address = s.Address.MustGet() + } + if s.Status.IsValue() { + t.Status = s.Status.MustGet() + } } func (s *PublicreportQuickSetter) Apply(q *dialect.InsertQuery) { @@ -167,7 +188,7 @@ func (s *PublicreportQuickSetter) Apply(q *dialect.InsertQuery) { }) q.AppendValues(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { - vals := make([]bob.Expression, 8) + vals := make([]bob.Expression, 10) if s.ID.IsValue() { vals[0] = psql.Arg(s.ID.MustGet()) } else { @@ -216,6 +237,18 @@ func (s *PublicreportQuickSetter) Apply(q *dialect.InsertQuery) { vals[7] = psql.Raw("DEFAULT") } + if s.Address.IsValue() { + vals[8] = psql.Arg(s.Address.MustGet()) + } else { + vals[8] = psql.Raw("DEFAULT") + } + + if s.Status.IsValue() { + vals[9] = psql.Arg(s.Status.MustGet()) + } else { + vals[9] = psql.Raw("DEFAULT") + } + return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "") })) } @@ -225,7 +258,7 @@ func (s PublicreportQuickSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] { } func (s PublicreportQuickSetter) Expressions(prefix ...string) []bob.Expression { - exprs := make([]bob.Expression, 0, 8) + exprs := make([]bob.Expression, 0, 10) if s.ID.IsValue() { exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ @@ -283,6 +316,20 @@ func (s PublicreportQuickSetter) Expressions(prefix ...string) []bob.Expression }}) } + if s.Address.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "address")...), + psql.Arg(s.Address), + }}) + } + + if s.Status.IsValue() { + exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{ + psql.Quote(append(prefix, "status")...), + psql.Arg(s.Status), + }}) + } + return exprs } @@ -610,6 +657,8 @@ type publicreportQuickWhere[Q psql.Filterable] struct { PublicID psql.WhereMod[Q, string] ReporterEmail psql.WhereMod[Q, string] ReporterPhone psql.WhereMod[Q, string] + Address psql.WhereMod[Q, string] + Status psql.WhereMod[Q, enums.PublicreportReportstatustype] } func (publicreportQuickWhere[Q]) AliasedAs(alias string) publicreportQuickWhere[Q] { @@ -626,6 +675,8 @@ func buildPublicreportQuickWhere[Q psql.Filterable](cols publicreportQuickColumn PublicID: psql.Where[Q, string](cols.PublicID), ReporterEmail: psql.Where[Q, string](cols.ReporterEmail), ReporterPhone: psql.Where[Q, string](cols.ReporterPhone), + Address: psql.Where[Q, string](cols.Address), + Status: psql.Where[Q, enums.PublicreportReportstatustype](cols.Status), } } diff --git a/db/models/publicreport.report_location.bob.go b/db/models/publicreport.report_location.bob.go new file mode 100644 index 00000000..7882ba24 --- /dev/null +++ b/db/models/publicreport.report_location.bob.go @@ -0,0 +1,122 @@ +// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. +// This file is meant to be re-generated in place and/or deleted at any time. + +package models + +import ( + "context" + "time" + + enums "github.com/Gleipnir-Technology/nidus-sync/db/enums" + "github.com/aarondl/opt/null" + "github.com/stephenafamo/bob" + "github.com/stephenafamo/bob/dialect/psql" + "github.com/stephenafamo/bob/expr" +) + +// PublicreportReportLocation is an object representing the database table. +type PublicreportReportLocation struct { + ID null.Val[int64] `db:"id" ` + TableName null.Val[string] `db:"table_name" ` + Address null.Val[string] `db:"address" ` + Created null.Val[time.Time] `db:"created" ` + Location null.Val[string] `db:"location" ` + PublicID null.Val[string] `db:"public_id" ` + Status null.Val[enums.PublicreportReportstatustype] `db:"status" ` +} + +// PublicreportReportLocationSlice is an alias for a slice of pointers to PublicreportReportLocation. +// This should almost always be used instead of []*PublicreportReportLocation. +type PublicreportReportLocationSlice []*PublicreportReportLocation + +// PublicreportReportLocations contains methods to work with the report_location view +var PublicreportReportLocations = psql.NewViewx[*PublicreportReportLocation, PublicreportReportLocationSlice]("publicreport", "report_location", buildPublicreportReportLocationColumns("publicreport.report_location")) + +// PublicreportReportLocationsQuery is a query on the report_location view +type PublicreportReportLocationsQuery = *psql.ViewQuery[*PublicreportReportLocation, PublicreportReportLocationSlice] + +func buildPublicreportReportLocationColumns(alias string) publicreportReportLocationColumns { + return publicreportReportLocationColumns{ + ColumnsExpr: expr.NewColumnsExpr( + "id", "table_name", "address", "created", "location", "public_id", "status", + ).WithParent("publicreport.report_location"), + tableAlias: alias, + ID: psql.Quote(alias, "id"), + TableName: psql.Quote(alias, "table_name"), + Address: psql.Quote(alias, "address"), + Created: psql.Quote(alias, "created"), + Location: psql.Quote(alias, "location"), + PublicID: psql.Quote(alias, "public_id"), + Status: psql.Quote(alias, "status"), + } +} + +type publicreportReportLocationColumns struct { + expr.ColumnsExpr + tableAlias string + ID psql.Expression + TableName psql.Expression + Address psql.Expression + Created psql.Expression + Location psql.Expression + PublicID psql.Expression + Status psql.Expression +} + +func (c publicreportReportLocationColumns) Alias() string { + return c.tableAlias +} + +func (publicreportReportLocationColumns) AliasedAs(alias string) publicreportReportLocationColumns { + return buildPublicreportReportLocationColumns(alias) +} + +// AfterQueryHook is called after PublicreportReportLocation is retrieved from the database +func (o *PublicreportReportLocation) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { + var err error + + switch queryType { + case bob.QueryTypeSelect: + ctx, err = PublicreportReportLocations.AfterSelectHooks.RunHooks(ctx, exec, PublicreportReportLocationSlice{o}) + } + + return err +} + +// AfterQueryHook is called after PublicreportReportLocationSlice is retrieved from the database +func (o PublicreportReportLocationSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error { + var err error + + switch queryType { + case bob.QueryTypeSelect: + ctx, err = PublicreportReportLocations.AfterSelectHooks.RunHooks(ctx, exec, o) + } + + return err +} + +type publicreportReportLocationWhere[Q psql.Filterable] struct { + ID psql.WhereNullMod[Q, int64] + TableName psql.WhereNullMod[Q, string] + Address psql.WhereNullMod[Q, string] + Created psql.WhereNullMod[Q, time.Time] + Location psql.WhereNullMod[Q, string] + PublicID psql.WhereNullMod[Q, string] + Status psql.WhereNullMod[Q, enums.PublicreportReportstatustype] +} + +func (publicreportReportLocationWhere[Q]) AliasedAs(alias string) publicreportReportLocationWhere[Q] { + return buildPublicreportReportLocationWhere[Q](buildPublicreportReportLocationColumns(alias)) +} + +func buildPublicreportReportLocationWhere[Q psql.Filterable](cols publicreportReportLocationColumns) publicreportReportLocationWhere[Q] { + return publicreportReportLocationWhere[Q]{ + ID: psql.WhereNull[Q, int64](cols.ID), + TableName: psql.WhereNull[Q, string](cols.TableName), + Address: psql.WhereNull[Q, string](cols.Address), + Created: psql.WhereNull[Q, time.Time](cols.Created), + Location: psql.WhereNull[Q, string](cols.Location), + PublicID: psql.WhereNull[Q, string](cols.PublicID), + Status: psql.WhereNull[Q, enums.PublicreportReportstatustype](cols.Status), + } +} diff --git a/go.mod b/go.mod index aa0285db..85d2a31f 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,7 @@ require ( github.com/minio/minio-go/v7 v7.0.97 github.com/pressly/goose/v3 v3.26.0 github.com/rs/zerolog v1.34.0 + github.com/shopspring/decimal v1.4.0 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/stephenafamo/bob v0.42.0 github.com/stephenafamo/scan v0.7.0 diff --git a/go.sum b/go.sum index 10270663..2b5f8289 100644 --- a/go.sum +++ b/go.sum @@ -172,6 +172,8 @@ github.com/sethvargo/go-retry v0.3.0 h1:EEt31A35QhrcRZtrYFDTBg91cqZVnFL2navjDrah github.com/sethvargo/go-retry v0.3.0/go.mod h1:mNX17F0C/HguQMyMyJxcnU471gOZGxCLyYaFyAZraas= github.com/shirou/gopsutil/v4 v4.25.5 h1:rtd9piuSMGeU8g1RMXjZs9y9luK5BwtnG7dZaQUJAsc= github.com/shirou/gopsutil/v4 v4.25.5/go.mod h1:PfybzyydfZcN+JMMjkF6Zb8Mq1A/VcogFFg7hj50W9c= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=