From e18ce6a09e7438bf1f979eedd4b838b0103a82da Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Tue, 13 Jan 2026 04:16:24 +0000 Subject: [PATCH] Make fieldseeker tables key on globalid, version This is because the objectid is not unique between organizations. --- .../fieldseeker.containerrelate.bob.go | 2 +- .../fieldseeker.fieldscoutinglog.bob.go | 2 +- db/dberrors/fieldseeker.habitatrelate.bob.go | 2 +- .../fieldseeker.inspectionsample.bob.go | 2 +- .../fieldseeker.inspectionsampledetail.bob.go | 2 +- db/dberrors/fieldseeker.linelocation.bob.go | 2 +- .../fieldseeker.locationtracking.bob.go | 2 +- .../fieldseeker.mosquitoinspection.bob.go | 2 +- db/dberrors/fieldseeker.pointlocation.bob.go | 2 +- .../fieldseeker.polygonlocation.bob.go | 2 +- db/dberrors/fieldseeker.pool.bob.go | 2 +- db/dberrors/fieldseeker.pooldetail.bob.go | 2 +- .../fieldseeker.proposedtreatmentarea.bob.go | 2 +- .../fieldseeker.qamosquitoinspection.bob.go | 2 +- db/dberrors/fieldseeker.rodentlocation.bob.go | 2 +- .../fieldseeker.samplecollection.bob.go | 2 +- db/dberrors/fieldseeker.samplelocation.bob.go | 2 +- db/dberrors/fieldseeker.servicerequest.bob.go | 2 +- .../fieldseeker.speciesabundance.bob.go | 2 +- db/dberrors/fieldseeker.stormdrain.bob.go | 2 +- db/dberrors/fieldseeker.timecard.bob.go | 2 +- db/dberrors/fieldseeker.trapdata.bob.go | 2 +- db/dberrors/fieldseeker.traplocation.bob.go | 2 +- db/dberrors/fieldseeker.treatment.bob.go | 2 +- db/dberrors/fieldseeker.treatmentarea.bob.go | 2 +- db/dberrors/fieldseeker.zones.bob.go | 2 +- db/dberrors/fieldseeker.zones2.bob.go | 2 +- db/dbinfo/fieldseeker.containerrelate.bob.go | 6 +- db/dbinfo/fieldseeker.fieldscoutinglog.bob.go | 6 +- db/dbinfo/fieldseeker.habitatrelate.bob.go | 6 +- db/dbinfo/fieldseeker.inspectionsample.bob.go | 6 +- .../fieldseeker.inspectionsampledetail.bob.go | 6 +- db/dbinfo/fieldseeker.linelocation.bob.go | 6 +- db/dbinfo/fieldseeker.locationtracking.bob.go | 6 +- .../fieldseeker.mosquitoinspection.bob.go | 6 +- db/dbinfo/fieldseeker.pointlocation.bob.go | 6 +- db/dbinfo/fieldseeker.polygonlocation.bob.go | 6 +- db/dbinfo/fieldseeker.pool.bob.go | 6 +- db/dbinfo/fieldseeker.pooldetail.bob.go | 6 +- .../fieldseeker.proposedtreatmentarea.bob.go | 6 +- .../fieldseeker.qamosquitoinspection.bob.go | 6 +- db/dbinfo/fieldseeker.rodentlocation.bob.go | 6 +- db/dbinfo/fieldseeker.samplecollection.bob.go | 6 +- db/dbinfo/fieldseeker.samplelocation.bob.go | 6 +- db/dbinfo/fieldseeker.servicerequest.bob.go | 6 +- db/dbinfo/fieldseeker.speciesabundance.bob.go | 6 +- db/dbinfo/fieldseeker.stormdrain.bob.go | 6 +- db/dbinfo/fieldseeker.timecard.bob.go | 6 +- db/dbinfo/fieldseeker.trapdata.bob.go | 6 +- db/dbinfo/fieldseeker.traplocation.bob.go | 6 +- db/dbinfo/fieldseeker.treatment.bob.go | 6 +- db/dbinfo/fieldseeker.treatmentarea.bob.go | 6 +- db/dbinfo/fieldseeker.zones.bob.go | 6 +- db/dbinfo/fieldseeker.zones2.bob.go | 6 +- db/factory/fieldseeker.containerrelate.bob.go | 4 + .../fieldseeker.fieldscoutinglog.bob.go | 4 + db/factory/fieldseeker.habitatrelate.bob.go | 4 + .../fieldseeker.inspectionsample.bob.go | 4 + .../fieldseeker.inspectionsampledetail.bob.go | 4 + db/factory/fieldseeker.linelocation.bob.go | 4 + .../fieldseeker.locationtracking.bob.go | 4 + .../fieldseeker.mosquitoinspection.bob.go | 4 + db/factory/fieldseeker.pointlocation.bob.go | 4 + db/factory/fieldseeker.polygonlocation.bob.go | 4 + db/factory/fieldseeker.pool.bob.go | 4 + db/factory/fieldseeker.pooldetail.bob.go | 4 + .../fieldseeker.proposedtreatmentarea.bob.go | 4 + .../fieldseeker.qamosquitoinspection.bob.go | 4 + db/factory/fieldseeker.rodentlocation.bob.go | 4 + .../fieldseeker.samplecollection.bob.go | 4 + db/factory/fieldseeker.samplelocation.bob.go | 4 + db/factory/fieldseeker.servicerequest.bob.go | 4 + .../fieldseeker.speciesabundance.bob.go | 4 + db/factory/fieldseeker.stormdrain.bob.go | 4 + db/factory/fieldseeker.timecard.bob.go | 4 + db/factory/fieldseeker.trapdata.bob.go | 4 + db/factory/fieldseeker.traplocation.bob.go | 4 + db/factory/fieldseeker.treatment.bob.go | 4 + db/factory/fieldseeker.treatmentarea.bob.go | 4 + db/factory/fieldseeker.zones.bob.go | 4 + db/factory/fieldseeker.zones2.bob.go | 4 + db/migrations/00027_fix_fieldseeker_pkeys.sql | 138 + .../00028_fieldseeker_function_globalid.sql | 9870 +++++++++++++++++ db/models/fieldseeker.containerrelate.bob.go | 28 +- db/models/fieldseeker.fieldscoutinglog.bob.go | 28 +- db/models/fieldseeker.habitatrelate.bob.go | 28 +- db/models/fieldseeker.inspectionsample.bob.go | 28 +- .../fieldseeker.inspectionsampledetail.bob.go | 28 +- db/models/fieldseeker.linelocation.bob.go | 28 +- db/models/fieldseeker.locationtracking.bob.go | 28 +- .../fieldseeker.mosquitoinspection.bob.go | 28 +- db/models/fieldseeker.pointlocation.bob.go | 28 +- db/models/fieldseeker.polygonlocation.bob.go | 28 +- db/models/fieldseeker.pool.bob.go | 28 +- db/models/fieldseeker.pooldetail.bob.go | 28 +- .../fieldseeker.proposedtreatmentarea.bob.go | 28 +- .../fieldseeker.qamosquitoinspection.bob.go | 28 +- db/models/fieldseeker.rodentlocation.bob.go | 28 +- db/models/fieldseeker.samplecollection.bob.go | 28 +- db/models/fieldseeker.samplelocation.bob.go | 28 +- db/models/fieldseeker.servicerequest.bob.go | 28 +- db/models/fieldseeker.speciesabundance.bob.go | 28 +- db/models/fieldseeker.stormdrain.bob.go | 28 +- db/models/fieldseeker.timecard.bob.go | 28 +- db/models/fieldseeker.trapdata.bob.go | 28 +- db/models/fieldseeker.traplocation.bob.go | 28 +- db/models/fieldseeker.treatment.bob.go | 28 +- db/models/fieldseeker.treatmentarea.bob.go | 28 +- db/models/fieldseeker.zones.bob.go | 28 +- db/models/fieldseeker.zones2.bob.go | 28 +- 110 files changed, 10602 insertions(+), 486 deletions(-) create mode 100644 db/migrations/00027_fix_fieldseeker_pkeys.sql create mode 100644 db/migrations/00028_fieldseeker_function_globalid.sql diff --git a/db/dberrors/fieldseeker.containerrelate.bob.go b/db/dberrors/fieldseeker.containerrelate.bob.go index 1ea2dfbf..2e5478b3 100644 --- a/db/dberrors/fieldseeker.containerrelate.bob.go +++ b/db/dberrors/fieldseeker.containerrelate.bob.go @@ -7,7 +7,7 @@ var FieldseekerContainerrelateErrors = &fieldseekerContainerrelateErrors{ ErrUniqueContainerrelatePkey: &UniqueConstraintError{ schema: "fieldseeker", table: "containerrelate", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "containerrelate_pkey", }, } diff --git a/db/dberrors/fieldseeker.fieldscoutinglog.bob.go b/db/dberrors/fieldseeker.fieldscoutinglog.bob.go index e5235a58..25c1147a 100644 --- a/db/dberrors/fieldseeker.fieldscoutinglog.bob.go +++ b/db/dberrors/fieldseeker.fieldscoutinglog.bob.go @@ -7,7 +7,7 @@ var FieldseekerFieldscoutinglogErrors = &fieldseekerFieldscoutinglogErrors{ ErrUniqueFieldscoutinglogPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "fieldscoutinglog", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "fieldscoutinglog_pkey", }, } diff --git a/db/dberrors/fieldseeker.habitatrelate.bob.go b/db/dberrors/fieldseeker.habitatrelate.bob.go index 15543fc0..752bf877 100644 --- a/db/dberrors/fieldseeker.habitatrelate.bob.go +++ b/db/dberrors/fieldseeker.habitatrelate.bob.go @@ -7,7 +7,7 @@ var FieldseekerHabitatrelateErrors = &fieldseekerHabitatrelateErrors{ ErrUniqueHabitatrelatePkey: &UniqueConstraintError{ schema: "fieldseeker", table: "habitatrelate", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "habitatrelate_pkey", }, } diff --git a/db/dberrors/fieldseeker.inspectionsample.bob.go b/db/dberrors/fieldseeker.inspectionsample.bob.go index 21003956..b4e31312 100644 --- a/db/dberrors/fieldseeker.inspectionsample.bob.go +++ b/db/dberrors/fieldseeker.inspectionsample.bob.go @@ -7,7 +7,7 @@ var FieldseekerInspectionsampleErrors = &fieldseekerInspectionsampleErrors{ ErrUniqueInspectionsamplePkey: &UniqueConstraintError{ schema: "fieldseeker", table: "inspectionsample", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "inspectionsample_pkey", }, } diff --git a/db/dberrors/fieldseeker.inspectionsampledetail.bob.go b/db/dberrors/fieldseeker.inspectionsampledetail.bob.go index f1fef926..5538e4c9 100644 --- a/db/dberrors/fieldseeker.inspectionsampledetail.bob.go +++ b/db/dberrors/fieldseeker.inspectionsampledetail.bob.go @@ -7,7 +7,7 @@ var FieldseekerInspectionsampledetailErrors = &fieldseekerInspectionsampledetail ErrUniqueInspectionsampledetailPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "inspectionsampledetail", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "inspectionsampledetail_pkey", }, } diff --git a/db/dberrors/fieldseeker.linelocation.bob.go b/db/dberrors/fieldseeker.linelocation.bob.go index 98d6e7d2..353de2a0 100644 --- a/db/dberrors/fieldseeker.linelocation.bob.go +++ b/db/dberrors/fieldseeker.linelocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerLinelocationErrors = &fieldseekerLinelocationErrors{ ErrUniqueLinelocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "linelocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "linelocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.locationtracking.bob.go b/db/dberrors/fieldseeker.locationtracking.bob.go index 1226d1e4..2f1f10ad 100644 --- a/db/dberrors/fieldseeker.locationtracking.bob.go +++ b/db/dberrors/fieldseeker.locationtracking.bob.go @@ -7,7 +7,7 @@ var FieldseekerLocationtrackingErrors = &fieldseekerLocationtrackingErrors{ ErrUniqueLocationtrackingPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "locationtracking", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "locationtracking_pkey", }, } diff --git a/db/dberrors/fieldseeker.mosquitoinspection.bob.go b/db/dberrors/fieldseeker.mosquitoinspection.bob.go index 6f54c513..127e85ca 100644 --- a/db/dberrors/fieldseeker.mosquitoinspection.bob.go +++ b/db/dberrors/fieldseeker.mosquitoinspection.bob.go @@ -7,7 +7,7 @@ var FieldseekerMosquitoinspectionErrors = &fieldseekerMosquitoinspectionErrors{ ErrUniqueMosquitoinspectionPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "mosquitoinspection", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "mosquitoinspection_pkey", }, } diff --git a/db/dberrors/fieldseeker.pointlocation.bob.go b/db/dberrors/fieldseeker.pointlocation.bob.go index 9bfc462c..1b46e6c2 100644 --- a/db/dberrors/fieldseeker.pointlocation.bob.go +++ b/db/dberrors/fieldseeker.pointlocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerPointlocationErrors = &fieldseekerPointlocationErrors{ ErrUniquePointlocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "pointlocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "pointlocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.polygonlocation.bob.go b/db/dberrors/fieldseeker.polygonlocation.bob.go index 64fa94bb..1502c145 100644 --- a/db/dberrors/fieldseeker.polygonlocation.bob.go +++ b/db/dberrors/fieldseeker.polygonlocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerPolygonlocationErrors = &fieldseekerPolygonlocationErrors{ ErrUniquePolygonlocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "polygonlocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "polygonlocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.pool.bob.go b/db/dberrors/fieldseeker.pool.bob.go index 55cf4727..fc41b355 100644 --- a/db/dberrors/fieldseeker.pool.bob.go +++ b/db/dberrors/fieldseeker.pool.bob.go @@ -7,7 +7,7 @@ var FieldseekerPoolErrors = &fieldseekerPoolErrors{ ErrUniquePoolPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "pool", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "pool_pkey", }, } diff --git a/db/dberrors/fieldseeker.pooldetail.bob.go b/db/dberrors/fieldseeker.pooldetail.bob.go index 5b97e055..613767bc 100644 --- a/db/dberrors/fieldseeker.pooldetail.bob.go +++ b/db/dberrors/fieldseeker.pooldetail.bob.go @@ -7,7 +7,7 @@ var FieldseekerPooldetailErrors = &fieldseekerPooldetailErrors{ ErrUniquePooldetailPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "pooldetail", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "pooldetail_pkey", }, } diff --git a/db/dberrors/fieldseeker.proposedtreatmentarea.bob.go b/db/dberrors/fieldseeker.proposedtreatmentarea.bob.go index 37630658..fcad48db 100644 --- a/db/dberrors/fieldseeker.proposedtreatmentarea.bob.go +++ b/db/dberrors/fieldseeker.proposedtreatmentarea.bob.go @@ -7,7 +7,7 @@ var FieldseekerProposedtreatmentareaErrors = &fieldseekerProposedtreatmentareaEr ErrUniqueProposedtreatmentareaPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "proposedtreatmentarea", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "proposedtreatmentarea_pkey", }, } diff --git a/db/dberrors/fieldseeker.qamosquitoinspection.bob.go b/db/dberrors/fieldseeker.qamosquitoinspection.bob.go index 71b70314..0d940baa 100644 --- a/db/dberrors/fieldseeker.qamosquitoinspection.bob.go +++ b/db/dberrors/fieldseeker.qamosquitoinspection.bob.go @@ -7,7 +7,7 @@ var FieldseekerQamosquitoinspectionErrors = &fieldseekerQamosquitoinspectionErro ErrUniqueQamosquitoinspectionPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "qamosquitoinspection", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "qamosquitoinspection_pkey", }, } diff --git a/db/dberrors/fieldseeker.rodentlocation.bob.go b/db/dberrors/fieldseeker.rodentlocation.bob.go index ed7a5828..8b365032 100644 --- a/db/dberrors/fieldseeker.rodentlocation.bob.go +++ b/db/dberrors/fieldseeker.rodentlocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerRodentlocationErrors = &fieldseekerRodentlocationErrors{ ErrUniqueRodentlocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "rodentlocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "rodentlocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.samplecollection.bob.go b/db/dberrors/fieldseeker.samplecollection.bob.go index 99ace32e..1bbb4dc8 100644 --- a/db/dberrors/fieldseeker.samplecollection.bob.go +++ b/db/dberrors/fieldseeker.samplecollection.bob.go @@ -7,7 +7,7 @@ var FieldseekerSamplecollectionErrors = &fieldseekerSamplecollectionErrors{ ErrUniqueSamplecollectionPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "samplecollection", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "samplecollection_pkey", }, } diff --git a/db/dberrors/fieldseeker.samplelocation.bob.go b/db/dberrors/fieldseeker.samplelocation.bob.go index c4449b05..889bb8b5 100644 --- a/db/dberrors/fieldseeker.samplelocation.bob.go +++ b/db/dberrors/fieldseeker.samplelocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerSamplelocationErrors = &fieldseekerSamplelocationErrors{ ErrUniqueSamplelocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "samplelocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "samplelocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.servicerequest.bob.go b/db/dberrors/fieldseeker.servicerequest.bob.go index e7c37a4f..ec0baf46 100644 --- a/db/dberrors/fieldseeker.servicerequest.bob.go +++ b/db/dberrors/fieldseeker.servicerequest.bob.go @@ -7,7 +7,7 @@ var FieldseekerServicerequestErrors = &fieldseekerServicerequestErrors{ ErrUniqueServicerequestPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "servicerequest", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "servicerequest_pkey", }, } diff --git a/db/dberrors/fieldseeker.speciesabundance.bob.go b/db/dberrors/fieldseeker.speciesabundance.bob.go index 2471760d..5a6fde04 100644 --- a/db/dberrors/fieldseeker.speciesabundance.bob.go +++ b/db/dberrors/fieldseeker.speciesabundance.bob.go @@ -7,7 +7,7 @@ var FieldseekerSpeciesabundanceErrors = &fieldseekerSpeciesabundanceErrors{ ErrUniqueSpeciesabundancePkey: &UniqueConstraintError{ schema: "fieldseeker", table: "speciesabundance", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "speciesabundance_pkey", }, } diff --git a/db/dberrors/fieldseeker.stormdrain.bob.go b/db/dberrors/fieldseeker.stormdrain.bob.go index 0ab99d41..fa72d71e 100644 --- a/db/dberrors/fieldseeker.stormdrain.bob.go +++ b/db/dberrors/fieldseeker.stormdrain.bob.go @@ -7,7 +7,7 @@ var FieldseekerStormdrainErrors = &fieldseekerStormdrainErrors{ ErrUniqueStormdrainPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "stormdrain", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "stormdrain_pkey", }, } diff --git a/db/dberrors/fieldseeker.timecard.bob.go b/db/dberrors/fieldseeker.timecard.bob.go index 857db9d5..a8c761ab 100644 --- a/db/dberrors/fieldseeker.timecard.bob.go +++ b/db/dberrors/fieldseeker.timecard.bob.go @@ -7,7 +7,7 @@ var FieldseekerTimecardErrors = &fieldseekerTimecardErrors{ ErrUniqueTimecardPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "timecard", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "timecard_pkey", }, } diff --git a/db/dberrors/fieldseeker.trapdata.bob.go b/db/dberrors/fieldseeker.trapdata.bob.go index 46aca4fd..f31e1333 100644 --- a/db/dberrors/fieldseeker.trapdata.bob.go +++ b/db/dberrors/fieldseeker.trapdata.bob.go @@ -7,7 +7,7 @@ var FieldseekerTrapdatumErrors = &fieldseekerTrapdatumErrors{ ErrUniqueTrapdataPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "trapdata", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "trapdata_pkey", }, } diff --git a/db/dberrors/fieldseeker.traplocation.bob.go b/db/dberrors/fieldseeker.traplocation.bob.go index 63a86b7f..a5c182e4 100644 --- a/db/dberrors/fieldseeker.traplocation.bob.go +++ b/db/dberrors/fieldseeker.traplocation.bob.go @@ -7,7 +7,7 @@ var FieldseekerTraplocationErrors = &fieldseekerTraplocationErrors{ ErrUniqueTraplocationPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "traplocation", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "traplocation_pkey", }, } diff --git a/db/dberrors/fieldseeker.treatment.bob.go b/db/dberrors/fieldseeker.treatment.bob.go index 9b901284..6231fcb3 100644 --- a/db/dberrors/fieldseeker.treatment.bob.go +++ b/db/dberrors/fieldseeker.treatment.bob.go @@ -7,7 +7,7 @@ var FieldseekerTreatmentErrors = &fieldseekerTreatmentErrors{ ErrUniqueTreatmentPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "treatment", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "treatment_pkey", }, } diff --git a/db/dberrors/fieldseeker.treatmentarea.bob.go b/db/dberrors/fieldseeker.treatmentarea.bob.go index 1629a93c..94ca5921 100644 --- a/db/dberrors/fieldseeker.treatmentarea.bob.go +++ b/db/dberrors/fieldseeker.treatmentarea.bob.go @@ -7,7 +7,7 @@ var FieldseekerTreatmentareaErrors = &fieldseekerTreatmentareaErrors{ ErrUniqueTreatmentareaPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "treatmentarea", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "treatmentarea_pkey", }, } diff --git a/db/dberrors/fieldseeker.zones.bob.go b/db/dberrors/fieldseeker.zones.bob.go index 28d1f1df..d18052a7 100644 --- a/db/dberrors/fieldseeker.zones.bob.go +++ b/db/dberrors/fieldseeker.zones.bob.go @@ -7,7 +7,7 @@ var FieldseekerZoneErrors = &fieldseekerZoneErrors{ ErrUniqueZonesPkey: &UniqueConstraintError{ schema: "fieldseeker", table: "zones", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "zones_pkey", }, } diff --git a/db/dberrors/fieldseeker.zones2.bob.go b/db/dberrors/fieldseeker.zones2.bob.go index 306f4948..3d378f51 100644 --- a/db/dberrors/fieldseeker.zones2.bob.go +++ b/db/dberrors/fieldseeker.zones2.bob.go @@ -7,7 +7,7 @@ var FieldseekerZones2Errors = &fieldseekerZones2Errors{ ErrUniqueZones2Pkey: &UniqueConstraintError{ schema: "fieldseeker", table: "zones2", - columns: []string{"objectid", "version"}, + columns: []string{"globalid", "version"}, s: "zones2_pkey", }, } diff --git a/db/dbinfo/fieldseeker.containerrelate.bob.go b/db/dbinfo/fieldseeker.containerrelate.bob.go index 1e2bcf1a..e7f9fe89 100644 --- a/db/dbinfo/fieldseeker.containerrelate.bob.go +++ b/db/dbinfo/fieldseeker.containerrelate.bob.go @@ -18,7 +18,7 @@ var FieldseekerContainerrelates = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.containerrelate_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -184,7 +184,7 @@ var FieldseekerContainerrelates = Table[ Name: "containerrelate_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -204,7 +204,7 @@ var FieldseekerContainerrelates = Table[ }, PrimaryKey: &constraint{ Name: "containerrelate_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerContainerrelateForeignKeys{ diff --git a/db/dbinfo/fieldseeker.fieldscoutinglog.bob.go b/db/dbinfo/fieldseeker.fieldscoutinglog.bob.go index afd0bff9..c506a744 100644 --- a/db/dbinfo/fieldseeker.fieldscoutinglog.bob.go +++ b/db/dbinfo/fieldseeker.fieldscoutinglog.bob.go @@ -18,7 +18,7 @@ var FieldseekerFieldscoutinglogs = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.fieldscoutinglog_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -157,7 +157,7 @@ var FieldseekerFieldscoutinglogs = Table[ Name: "fieldscoutinglog_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -177,7 +177,7 @@ var FieldseekerFieldscoutinglogs = Table[ }, PrimaryKey: &constraint{ Name: "fieldscoutinglog_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerFieldscoutinglogForeignKeys{ diff --git a/db/dbinfo/fieldseeker.habitatrelate.bob.go b/db/dbinfo/fieldseeker.habitatrelate.bob.go index c3714682..b19ac6ac 100644 --- a/db/dbinfo/fieldseeker.habitatrelate.bob.go +++ b/db/dbinfo/fieldseeker.habitatrelate.bob.go @@ -18,7 +18,7 @@ var FieldseekerHabitatrelates = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.habitatrelate_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -166,7 +166,7 @@ var FieldseekerHabitatrelates = Table[ Name: "habitatrelate_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -186,7 +186,7 @@ var FieldseekerHabitatrelates = Table[ }, PrimaryKey: &constraint{ Name: "habitatrelate_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerHabitatrelateForeignKeys{ diff --git a/db/dbinfo/fieldseeker.inspectionsample.bob.go b/db/dbinfo/fieldseeker.inspectionsample.bob.go index bf82b8fb..d2e307a2 100644 --- a/db/dbinfo/fieldseeker.inspectionsample.bob.go +++ b/db/dbinfo/fieldseeker.inspectionsample.bob.go @@ -18,7 +18,7 @@ var FieldseekerInspectionsamples = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.inspectionsample_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -184,7 +184,7 @@ var FieldseekerInspectionsamples = Table[ Name: "inspectionsample_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -204,7 +204,7 @@ var FieldseekerInspectionsamples = Table[ }, PrimaryKey: &constraint{ Name: "inspectionsample_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerInspectionsampleForeignKeys{ diff --git a/db/dbinfo/fieldseeker.inspectionsampledetail.bob.go b/db/dbinfo/fieldseeker.inspectionsampledetail.bob.go index f7fcac72..6587df5f 100644 --- a/db/dbinfo/fieldseeker.inspectionsampledetail.bob.go +++ b/db/dbinfo/fieldseeker.inspectionsampledetail.bob.go @@ -18,7 +18,7 @@ var FieldseekerInspectionsampledetails = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.inspectionsampledetail_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -283,7 +283,7 @@ var FieldseekerInspectionsampledetails = Table[ Name: "inspectionsampledetail_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -303,7 +303,7 @@ var FieldseekerInspectionsampledetails = Table[ }, PrimaryKey: &constraint{ Name: "inspectionsampledetail_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerInspectionsampledetailForeignKeys{ diff --git a/db/dbinfo/fieldseeker.linelocation.bob.go b/db/dbinfo/fieldseeker.linelocation.bob.go index 156ed57f..ef4c5c02 100644 --- a/db/dbinfo/fieldseeker.linelocation.bob.go +++ b/db/dbinfo/fieldseeker.linelocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerLinelocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.linelocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -490,7 +490,7 @@ var FieldseekerLinelocations = Table[ Name: "linelocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -510,7 +510,7 @@ var FieldseekerLinelocations = Table[ }, PrimaryKey: &constraint{ Name: "linelocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerLinelocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.locationtracking.bob.go b/db/dbinfo/fieldseeker.locationtracking.bob.go index 9d8bb618..65aba4b0 100644 --- a/db/dbinfo/fieldseeker.locationtracking.bob.go +++ b/db/dbinfo/fieldseeker.locationtracking.bob.go @@ -18,7 +18,7 @@ var FieldseekerLocationtrackings = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.locationtracking_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -166,7 +166,7 @@ var FieldseekerLocationtrackings = Table[ Name: "locationtracking_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -186,7 +186,7 @@ var FieldseekerLocationtrackings = Table[ }, PrimaryKey: &constraint{ Name: "locationtracking_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerLocationtrackingForeignKeys{ diff --git a/db/dbinfo/fieldseeker.mosquitoinspection.bob.go b/db/dbinfo/fieldseeker.mosquitoinspection.bob.go index 85bcce22..15436115 100644 --- a/db/dbinfo/fieldseeker.mosquitoinspection.bob.go +++ b/db/dbinfo/fieldseeker.mosquitoinspection.bob.go @@ -18,7 +18,7 @@ var FieldseekerMosquitoinspections = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.mosquitoinspection_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -571,7 +571,7 @@ var FieldseekerMosquitoinspections = Table[ Name: "mosquitoinspection_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -591,7 +591,7 @@ var FieldseekerMosquitoinspections = Table[ }, PrimaryKey: &constraint{ Name: "mosquitoinspection_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerMosquitoinspectionForeignKeys{ diff --git a/db/dbinfo/fieldseeker.pointlocation.bob.go b/db/dbinfo/fieldseeker.pointlocation.bob.go index 9319d3d7..999e6ef6 100644 --- a/db/dbinfo/fieldseeker.pointlocation.bob.go +++ b/db/dbinfo/fieldseeker.pointlocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerPointlocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.pointlocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -463,7 +463,7 @@ var FieldseekerPointlocations = Table[ Name: "pointlocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -483,7 +483,7 @@ var FieldseekerPointlocations = Table[ }, PrimaryKey: &constraint{ Name: "pointlocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerPointlocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.polygonlocation.bob.go b/db/dbinfo/fieldseeker.polygonlocation.bob.go index 2ee4796f..835412ab 100644 --- a/db/dbinfo/fieldseeker.polygonlocation.bob.go +++ b/db/dbinfo/fieldseeker.polygonlocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerPolygonlocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.polygonlocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -436,7 +436,7 @@ var FieldseekerPolygonlocations = Table[ Name: "polygonlocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -456,7 +456,7 @@ var FieldseekerPolygonlocations = Table[ }, PrimaryKey: &constraint{ Name: "polygonlocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerPolygonlocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.pool.bob.go b/db/dbinfo/fieldseeker.pool.bob.go index e6ffdf1a..51158097 100644 --- a/db/dbinfo/fieldseeker.pool.bob.go +++ b/db/dbinfo/fieldseeker.pool.bob.go @@ -18,7 +18,7 @@ var FieldseekerPools = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.pool_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -310,7 +310,7 @@ var FieldseekerPools = Table[ Name: "pool_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -330,7 +330,7 @@ var FieldseekerPools = Table[ }, PrimaryKey: &constraint{ Name: "pool_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerPoolForeignKeys{ diff --git a/db/dbinfo/fieldseeker.pooldetail.bob.go b/db/dbinfo/fieldseeker.pooldetail.bob.go index 90fcdd38..65c5b988 100644 --- a/db/dbinfo/fieldseeker.pooldetail.bob.go +++ b/db/dbinfo/fieldseeker.pooldetail.bob.go @@ -18,7 +18,7 @@ var FieldseekerPooldetails = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.pooldetail_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -184,7 +184,7 @@ var FieldseekerPooldetails = Table[ Name: "pooldetail_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -204,7 +204,7 @@ var FieldseekerPooldetails = Table[ }, PrimaryKey: &constraint{ Name: "pooldetail_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerPooldetailForeignKeys{ diff --git a/db/dbinfo/fieldseeker.proposedtreatmentarea.bob.go b/db/dbinfo/fieldseeker.proposedtreatmentarea.bob.go index f8903bb9..8ae3d2f6 100644 --- a/db/dbinfo/fieldseeker.proposedtreatmentarea.bob.go +++ b/db/dbinfo/fieldseeker.proposedtreatmentarea.bob.go @@ -18,7 +18,7 @@ var FieldseekerProposedtreatmentareas = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.proposedtreatmentarea_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -355,7 +355,7 @@ var FieldseekerProposedtreatmentareas = Table[ Name: "proposedtreatmentarea_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -375,7 +375,7 @@ var FieldseekerProposedtreatmentareas = Table[ }, PrimaryKey: &constraint{ Name: "proposedtreatmentarea_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerProposedtreatmentareaForeignKeys{ diff --git a/db/dbinfo/fieldseeker.qamosquitoinspection.bob.go b/db/dbinfo/fieldseeker.qamosquitoinspection.bob.go index c5ef6dc9..c841701d 100644 --- a/db/dbinfo/fieldseeker.qamosquitoinspection.bob.go +++ b/db/dbinfo/fieldseeker.qamosquitoinspection.bob.go @@ -18,7 +18,7 @@ var FieldseekerQamosquitoinspections = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.qamosquitoinspection_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -616,7 +616,7 @@ var FieldseekerQamosquitoinspections = Table[ Name: "qamosquitoinspection_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -636,7 +636,7 @@ var FieldseekerQamosquitoinspections = Table[ }, PrimaryKey: &constraint{ Name: "qamosquitoinspection_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerQamosquitoinspectionForeignKeys{ diff --git a/db/dbinfo/fieldseeker.rodentlocation.bob.go b/db/dbinfo/fieldseeker.rodentlocation.bob.go index f47e7680..5e57a239 100644 --- a/db/dbinfo/fieldseeker.rodentlocation.bob.go +++ b/db/dbinfo/fieldseeker.rodentlocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerRodentlocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.rodentlocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -328,7 +328,7 @@ var FieldseekerRodentlocations = Table[ Name: "rodentlocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -348,7 +348,7 @@ var FieldseekerRodentlocations = Table[ }, PrimaryKey: &constraint{ Name: "rodentlocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerRodentlocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.samplecollection.bob.go b/db/dbinfo/fieldseeker.samplecollection.bob.go index 4bddf634..a22bc7ec 100644 --- a/db/dbinfo/fieldseeker.samplecollection.bob.go +++ b/db/dbinfo/fieldseeker.samplecollection.bob.go @@ -18,7 +18,7 @@ var FieldseekerSamplecollections = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.samplecollection_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -472,7 +472,7 @@ var FieldseekerSamplecollections = Table[ Name: "samplecollection_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -492,7 +492,7 @@ var FieldseekerSamplecollections = Table[ }, PrimaryKey: &constraint{ Name: "samplecollection_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerSamplecollectionForeignKeys{ diff --git a/db/dbinfo/fieldseeker.samplelocation.bob.go b/db/dbinfo/fieldseeker.samplelocation.bob.go index e3dccb53..89007afd 100644 --- a/db/dbinfo/fieldseeker.samplelocation.bob.go +++ b/db/dbinfo/fieldseeker.samplelocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerSamplelocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.samplelocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -274,7 +274,7 @@ var FieldseekerSamplelocations = Table[ Name: "samplelocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -294,7 +294,7 @@ var FieldseekerSamplelocations = Table[ }, PrimaryKey: &constraint{ Name: "samplelocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerSamplelocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.servicerequest.bob.go b/db/dbinfo/fieldseeker.servicerequest.bob.go index cf973996..92a55390 100644 --- a/db/dbinfo/fieldseeker.servicerequest.bob.go +++ b/db/dbinfo/fieldseeker.servicerequest.bob.go @@ -18,7 +18,7 @@ var FieldseekerServicerequests = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.servicerequest_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -841,7 +841,7 @@ var FieldseekerServicerequests = Table[ Name: "servicerequest_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -861,7 +861,7 @@ var FieldseekerServicerequests = Table[ }, PrimaryKey: &constraint{ Name: "servicerequest_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerServicerequestForeignKeys{ diff --git a/db/dbinfo/fieldseeker.speciesabundance.bob.go b/db/dbinfo/fieldseeker.speciesabundance.bob.go index 8a970ac6..3d67c19a 100644 --- a/db/dbinfo/fieldseeker.speciesabundance.bob.go +++ b/db/dbinfo/fieldseeker.speciesabundance.bob.go @@ -18,7 +18,7 @@ var FieldseekerSpeciesabundances = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.speciesabundance_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -319,7 +319,7 @@ var FieldseekerSpeciesabundances = Table[ Name: "speciesabundance_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -339,7 +339,7 @@ var FieldseekerSpeciesabundances = Table[ }, PrimaryKey: &constraint{ Name: "speciesabundance_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerSpeciesabundanceForeignKeys{ diff --git a/db/dbinfo/fieldseeker.stormdrain.bob.go b/db/dbinfo/fieldseeker.stormdrain.bob.go index 8e2423a1..931622c0 100644 --- a/db/dbinfo/fieldseeker.stormdrain.bob.go +++ b/db/dbinfo/fieldseeker.stormdrain.bob.go @@ -18,7 +18,7 @@ var FieldseekerStormdrains = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.stormdrain_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -229,7 +229,7 @@ var FieldseekerStormdrains = Table[ Name: "stormdrain_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -249,7 +249,7 @@ var FieldseekerStormdrains = Table[ }, PrimaryKey: &constraint{ Name: "stormdrain_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerStormdrainForeignKeys{ diff --git a/db/dbinfo/fieldseeker.timecard.bob.go b/db/dbinfo/fieldseeker.timecard.bob.go index 7efd39c5..d635a67a 100644 --- a/db/dbinfo/fieldseeker.timecard.bob.go +++ b/db/dbinfo/fieldseeker.timecard.bob.go @@ -18,7 +18,7 @@ var FieldseekerTimecards = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.timecard_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -310,7 +310,7 @@ var FieldseekerTimecards = Table[ Name: "timecard_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -330,7 +330,7 @@ var FieldseekerTimecards = Table[ }, PrimaryKey: &constraint{ Name: "timecard_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerTimecardForeignKeys{ diff --git a/db/dbinfo/fieldseeker.trapdata.bob.go b/db/dbinfo/fieldseeker.trapdata.bob.go index 94712d67..14f83873 100644 --- a/db/dbinfo/fieldseeker.trapdata.bob.go +++ b/db/dbinfo/fieldseeker.trapdata.bob.go @@ -18,7 +18,7 @@ var FieldseekerTrapdata = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.trapdata_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -445,7 +445,7 @@ var FieldseekerTrapdata = Table[ Name: "trapdata_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -465,7 +465,7 @@ var FieldseekerTrapdata = Table[ }, PrimaryKey: &constraint{ Name: "trapdata_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerTrapdatumForeignKeys{ diff --git a/db/dbinfo/fieldseeker.traplocation.bob.go b/db/dbinfo/fieldseeker.traplocation.bob.go index d1f073c5..b2563629 100644 --- a/db/dbinfo/fieldseeker.traplocation.bob.go +++ b/db/dbinfo/fieldseeker.traplocation.bob.go @@ -18,7 +18,7 @@ var FieldseekerTraplocations = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.traplocation_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -328,7 +328,7 @@ var FieldseekerTraplocations = Table[ Name: "traplocation_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -348,7 +348,7 @@ var FieldseekerTraplocations = Table[ }, PrimaryKey: &constraint{ Name: "traplocation_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerTraplocationForeignKeys{ diff --git a/db/dbinfo/fieldseeker.treatment.bob.go b/db/dbinfo/fieldseeker.treatment.bob.go index df9a36db..914c0532 100644 --- a/db/dbinfo/fieldseeker.treatment.bob.go +++ b/db/dbinfo/fieldseeker.treatment.bob.go @@ -18,7 +18,7 @@ var FieldseekerTreatments = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.treatment_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -553,7 +553,7 @@ var FieldseekerTreatments = Table[ Name: "treatment_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -573,7 +573,7 @@ var FieldseekerTreatments = Table[ }, PrimaryKey: &constraint{ Name: "treatment_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerTreatmentForeignKeys{ diff --git a/db/dbinfo/fieldseeker.treatmentarea.bob.go b/db/dbinfo/fieldseeker.treatmentarea.bob.go index 9ef11512..f4dbf8b7 100644 --- a/db/dbinfo/fieldseeker.treatmentarea.bob.go +++ b/db/dbinfo/fieldseeker.treatmentarea.bob.go @@ -18,7 +18,7 @@ var FieldseekerTreatmentareas = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.treatmentarea_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -220,7 +220,7 @@ var FieldseekerTreatmentareas = Table[ Name: "treatmentarea_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -240,7 +240,7 @@ var FieldseekerTreatmentareas = Table[ }, PrimaryKey: &constraint{ Name: "treatmentarea_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerTreatmentareaForeignKeys{ diff --git a/db/dbinfo/fieldseeker.zones.bob.go b/db/dbinfo/fieldseeker.zones.bob.go index 25b5bca1..eb1ecf75 100644 --- a/db/dbinfo/fieldseeker.zones.bob.go +++ b/db/dbinfo/fieldseeker.zones.bob.go @@ -18,7 +18,7 @@ var FieldseekerZones = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.zones_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -184,7 +184,7 @@ var FieldseekerZones = Table[ Name: "zones_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -204,7 +204,7 @@ var FieldseekerZones = Table[ }, PrimaryKey: &constraint{ Name: "zones_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerZoneForeignKeys{ diff --git a/db/dbinfo/fieldseeker.zones2.bob.go b/db/dbinfo/fieldseeker.zones2.bob.go index 8adf5c41..6d26143d 100644 --- a/db/dbinfo/fieldseeker.zones2.bob.go +++ b/db/dbinfo/fieldseeker.zones2.bob.go @@ -18,7 +18,7 @@ var FieldseekerZones2s = Table[ Objectid: column{ Name: "objectid", DBType: "bigint", - Default: "nextval('fieldseeker.zones2_objectid_seq'::regclass)", + Default: "", Comment: "", Nullable: false, Generated: false, @@ -175,7 +175,7 @@ var FieldseekerZones2s = Table[ Name: "zones2_pkey", Columns: []indexColumn{ { - Name: "objectid", + Name: "globalid", Desc: null.FromCond(false, true), IsExpression: false, }, @@ -195,7 +195,7 @@ var FieldseekerZones2s = Table[ }, PrimaryKey: &constraint{ Name: "zones2_pkey", - Columns: []string{"objectid", "version"}, + Columns: []string{"globalid", "version"}, Comment: "", }, ForeignKeys: fieldseekerZones2ForeignKeys{ diff --git a/db/factory/fieldseeker.containerrelate.bob.go b/db/factory/fieldseeker.containerrelate.bob.go index b7f40005..8a1a3613 100644 --- a/db/factory/fieldseeker.containerrelate.bob.go +++ b/db/factory/fieldseeker.containerrelate.bob.go @@ -264,6 +264,10 @@ func (o FieldseekerContainerrelateTemplate) BuildMany(number int) models.Fieldse } func ensureCreatableFieldseekerContainerrelate(m *models.FieldseekerContainerrelateSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.fieldscoutinglog.bob.go b/db/factory/fieldseeker.fieldscoutinglog.bob.go index 480121c3..e688ab28 100644 --- a/db/factory/fieldseeker.fieldscoutinglog.bob.go +++ b/db/factory/fieldseeker.fieldscoutinglog.bob.go @@ -240,6 +240,10 @@ func (o FieldseekerFieldscoutinglogTemplate) BuildMany(number int) models.Fields } func ensureCreatableFieldseekerFieldscoutinglog(m *models.FieldseekerFieldscoutinglogSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.habitatrelate.bob.go b/db/factory/fieldseeker.habitatrelate.bob.go index afac1c4e..bbf2eaef 100644 --- a/db/factory/fieldseeker.habitatrelate.bob.go +++ b/db/factory/fieldseeker.habitatrelate.bob.go @@ -248,6 +248,10 @@ func (o FieldseekerHabitatrelateTemplate) BuildMany(number int) models.Fieldseek } func ensureCreatableFieldseekerHabitatrelate(m *models.FieldseekerHabitatrelateSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.inspectionsample.bob.go b/db/factory/fieldseeker.inspectionsample.bob.go index 2007ec6b..3306127e 100644 --- a/db/factory/fieldseeker.inspectionsample.bob.go +++ b/db/factory/fieldseeker.inspectionsample.bob.go @@ -264,6 +264,10 @@ func (o FieldseekerInspectionsampleTemplate) BuildMany(number int) models.Fields } func ensureCreatableFieldseekerInspectionsample(m *models.FieldseekerInspectionsampleSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.inspectionsampledetail.bob.go b/db/factory/fieldseeker.inspectionsampledetail.bob.go index 14285c91..006b3dd3 100644 --- a/db/factory/fieldseeker.inspectionsampledetail.bob.go +++ b/db/factory/fieldseeker.inspectionsampledetail.bob.go @@ -352,6 +352,10 @@ func (o FieldseekerInspectionsampledetailTemplate) BuildMany(number int) models. } func ensureCreatableFieldseekerInspectionsampledetail(m *models.FieldseekerInspectionsampledetailSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.linelocation.bob.go b/db/factory/fieldseeker.linelocation.bob.go index 891f7187..06e2dd00 100644 --- a/db/factory/fieldseeker.linelocation.bob.go +++ b/db/factory/fieldseeker.linelocation.bob.go @@ -536,6 +536,10 @@ func (o FieldseekerLinelocationTemplate) BuildMany(number int) models.Fieldseeke } func ensureCreatableFieldseekerLinelocation(m *models.FieldseekerLinelocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.locationtracking.bob.go b/db/factory/fieldseeker.locationtracking.bob.go index e4bbd667..02742246 100644 --- a/db/factory/fieldseeker.locationtracking.bob.go +++ b/db/factory/fieldseeker.locationtracking.bob.go @@ -248,6 +248,10 @@ func (o FieldseekerLocationtrackingTemplate) BuildMany(number int) models.Fields } func ensureCreatableFieldseekerLocationtracking(m *models.FieldseekerLocationtrackingSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.mosquitoinspection.bob.go b/db/factory/fieldseeker.mosquitoinspection.bob.go index 1d510173..3f5e6093 100644 --- a/db/factory/fieldseeker.mosquitoinspection.bob.go +++ b/db/factory/fieldseeker.mosquitoinspection.bob.go @@ -608,6 +608,10 @@ func (o FieldseekerMosquitoinspectionTemplate) BuildMany(number int) models.Fiel } func ensureCreatableFieldseekerMosquitoinspection(m *models.FieldseekerMosquitoinspectionSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.pointlocation.bob.go b/db/factory/fieldseeker.pointlocation.bob.go index 201db192..55faf410 100644 --- a/db/factory/fieldseeker.pointlocation.bob.go +++ b/db/factory/fieldseeker.pointlocation.bob.go @@ -508,6 +508,10 @@ func (o FieldseekerPointlocationTemplate) BuildMany(number int) models.Fieldseek } func ensureCreatableFieldseekerPointlocation(m *models.FieldseekerPointlocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.polygonlocation.bob.go b/db/factory/fieldseeker.polygonlocation.bob.go index dd7e2f95..7f6485f8 100644 --- a/db/factory/fieldseeker.polygonlocation.bob.go +++ b/db/factory/fieldseeker.polygonlocation.bob.go @@ -488,6 +488,10 @@ func (o FieldseekerPolygonlocationTemplate) BuildMany(number int) models.Fieldse } func ensureCreatableFieldseekerPolygonlocation(m *models.FieldseekerPolygonlocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.pool.bob.go b/db/factory/fieldseeker.pool.bob.go index 901a97fb..1ffac53a 100644 --- a/db/factory/fieldseeker.pool.bob.go +++ b/db/factory/fieldseeker.pool.bob.go @@ -376,6 +376,10 @@ func (o FieldseekerPoolTemplate) BuildMany(number int) models.FieldseekerPoolSli } func ensureCreatableFieldseekerPool(m *models.FieldseekerPoolSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.pooldetail.bob.go b/db/factory/fieldseeker.pooldetail.bob.go index 973f5bbc..22cb2ca4 100644 --- a/db/factory/fieldseeker.pooldetail.bob.go +++ b/db/factory/fieldseeker.pooldetail.bob.go @@ -264,6 +264,10 @@ func (o FieldseekerPooldetailTemplate) BuildMany(number int) models.FieldseekerP } func ensureCreatableFieldseekerPooldetail(m *models.FieldseekerPooldetailSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.proposedtreatmentarea.bob.go b/db/factory/fieldseeker.proposedtreatmentarea.bob.go index 7253b326..1bf811dd 100644 --- a/db/factory/fieldseeker.proposedtreatmentarea.bob.go +++ b/db/factory/fieldseeker.proposedtreatmentarea.bob.go @@ -416,6 +416,10 @@ func (o FieldseekerProposedtreatmentareaTemplate) BuildMany(number int) models.F } func ensureCreatableFieldseekerProposedtreatmentarea(m *models.FieldseekerProposedtreatmentareaSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.qamosquitoinspection.bob.go b/db/factory/fieldseeker.qamosquitoinspection.bob.go index 594e8ec3..bf8ea348 100644 --- a/db/factory/fieldseeker.qamosquitoinspection.bob.go +++ b/db/factory/fieldseeker.qamosquitoinspection.bob.go @@ -648,6 +648,10 @@ func (o FieldseekerQamosquitoinspectionTemplate) BuildMany(number int) models.Fi } func ensureCreatableFieldseekerQamosquitoinspection(m *models.FieldseekerQamosquitoinspectionSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.rodentlocation.bob.go b/db/factory/fieldseeker.rodentlocation.bob.go index 6488c200..63871fcd 100644 --- a/db/factory/fieldseeker.rodentlocation.bob.go +++ b/db/factory/fieldseeker.rodentlocation.bob.go @@ -392,6 +392,10 @@ func (o FieldseekerRodentlocationTemplate) BuildMany(number int) models.Fieldsee } func ensureCreatableFieldseekerRodentlocation(m *models.FieldseekerRodentlocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.samplecollection.bob.go b/db/factory/fieldseeker.samplecollection.bob.go index 3bcc4547..9ce1f745 100644 --- a/db/factory/fieldseeker.samplecollection.bob.go +++ b/db/factory/fieldseeker.samplecollection.bob.go @@ -520,6 +520,10 @@ func (o FieldseekerSamplecollectionTemplate) BuildMany(number int) models.Fields } func ensureCreatableFieldseekerSamplecollection(m *models.FieldseekerSamplecollectionSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.samplelocation.bob.go b/db/factory/fieldseeker.samplelocation.bob.go index 3da93ef9..85d1ece6 100644 --- a/db/factory/fieldseeker.samplelocation.bob.go +++ b/db/factory/fieldseeker.samplelocation.bob.go @@ -344,6 +344,10 @@ func (o FieldseekerSamplelocationTemplate) BuildMany(number int) models.Fieldsee } func ensureCreatableFieldseekerSamplelocation(m *models.FieldseekerSamplelocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.servicerequest.bob.go b/db/factory/fieldseeker.servicerequest.bob.go index bbc25592..0ce06a72 100644 --- a/db/factory/fieldseeker.servicerequest.bob.go +++ b/db/factory/fieldseeker.servicerequest.bob.go @@ -844,6 +844,10 @@ func (o FieldseekerServicerequestTemplate) BuildMany(number int) models.Fieldsee } func ensureCreatableFieldseekerServicerequest(m *models.FieldseekerServicerequestSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.speciesabundance.bob.go b/db/factory/fieldseeker.speciesabundance.bob.go index e4325466..18fea4e5 100644 --- a/db/factory/fieldseeker.speciesabundance.bob.go +++ b/db/factory/fieldseeker.speciesabundance.bob.go @@ -384,6 +384,10 @@ func (o FieldseekerSpeciesabundanceTemplate) BuildMany(number int) models.Fields } func ensureCreatableFieldseekerSpeciesabundance(m *models.FieldseekerSpeciesabundanceSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.stormdrain.bob.go b/db/factory/fieldseeker.stormdrain.bob.go index df521773..3b1caa24 100644 --- a/db/factory/fieldseeker.stormdrain.bob.go +++ b/db/factory/fieldseeker.stormdrain.bob.go @@ -304,6 +304,10 @@ func (o FieldseekerStormdrainTemplate) BuildMany(number int) models.FieldseekerS } func ensureCreatableFieldseekerStormdrain(m *models.FieldseekerStormdrainSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.timecard.bob.go b/db/factory/fieldseeker.timecard.bob.go index c4106fd6..5001368d 100644 --- a/db/factory/fieldseeker.timecard.bob.go +++ b/db/factory/fieldseeker.timecard.bob.go @@ -376,6 +376,10 @@ func (o FieldseekerTimecardTemplate) BuildMany(number int) models.FieldseekerTim } func ensureCreatableFieldseekerTimecard(m *models.FieldseekerTimecardSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.trapdata.bob.go b/db/factory/fieldseeker.trapdata.bob.go index 9916136e..aa03e598 100644 --- a/db/factory/fieldseeker.trapdata.bob.go +++ b/db/factory/fieldseeker.trapdata.bob.go @@ -492,6 +492,10 @@ func (o FieldseekerTrapdatumTemplate) BuildMany(number int) models.FieldseekerTr } func ensureCreatableFieldseekerTrapdatum(m *models.FieldseekerTrapdatumSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.traplocation.bob.go b/db/factory/fieldseeker.traplocation.bob.go index 63e84725..b2699c74 100644 --- a/db/factory/fieldseeker.traplocation.bob.go +++ b/db/factory/fieldseeker.traplocation.bob.go @@ -392,6 +392,10 @@ func (o FieldseekerTraplocationTemplate) BuildMany(number int) models.Fieldseeke } func ensureCreatableFieldseekerTraplocation(m *models.FieldseekerTraplocationSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.treatment.bob.go b/db/factory/fieldseeker.treatment.bob.go index 862bb58e..99e0a3bf 100644 --- a/db/factory/fieldseeker.treatment.bob.go +++ b/db/factory/fieldseeker.treatment.bob.go @@ -588,6 +588,10 @@ func (o FieldseekerTreatmentTemplate) BuildMany(number int) models.FieldseekerTr } func ensureCreatableFieldseekerTreatment(m *models.FieldseekerTreatmentSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.treatmentarea.bob.go b/db/factory/fieldseeker.treatmentarea.bob.go index 86d0a906..9f48e08a 100644 --- a/db/factory/fieldseeker.treatmentarea.bob.go +++ b/db/factory/fieldseeker.treatmentarea.bob.go @@ -296,6 +296,10 @@ func (o FieldseekerTreatmentareaTemplate) BuildMany(number int) models.Fieldseek } func ensureCreatableFieldseekerTreatmentarea(m *models.FieldseekerTreatmentareaSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.zones.bob.go b/db/factory/fieldseeker.zones.bob.go index 72ef1e81..e733cca5 100644 --- a/db/factory/fieldseeker.zones.bob.go +++ b/db/factory/fieldseeker.zones.bob.go @@ -264,6 +264,10 @@ func (o FieldseekerZoneTemplate) BuildMany(number int) models.FieldseekerZoneSli } func ensureCreatableFieldseekerZone(m *models.FieldseekerZoneSetter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/factory/fieldseeker.zones2.bob.go b/db/factory/fieldseeker.zones2.bob.go index f8f7f71b..2d383f58 100644 --- a/db/factory/fieldseeker.zones2.bob.go +++ b/db/factory/fieldseeker.zones2.bob.go @@ -256,6 +256,10 @@ func (o FieldseekerZones2Template) BuildMany(number int) models.FieldseekerZones } func ensureCreatableFieldseekerZones2(m *models.FieldseekerZones2Setter) { + if !(m.Objectid.IsValue()) { + val := random_int64(nil) + m.Objectid = omit.From(val) + } if !(m.Globalid.IsValue()) { val := random_uuid_UUID(nil) m.Globalid = omit.From(val) diff --git a/db/migrations/00027_fix_fieldseeker_pkeys.sql b/db/migrations/00027_fix_fieldseeker_pkeys.sql new file mode 100644 index 00000000..1e96fed1 --- /dev/null +++ b/db/migrations/00027_fix_fieldseeker_pkeys.sql @@ -0,0 +1,138 @@ +-- +goose Up +ALTER TABLE fieldseeker.containerrelate DROP CONSTRAINT containerrelate_pkey; +ALTER TABLE fieldseeker.containerrelate ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.containerrelate_objectid_seq; +ALTER TABLE fieldseeker.containerrelate ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.fieldscoutinglog DROP CONSTRAINT fieldscoutinglog_pkey; +ALTER TABLE fieldseeker.fieldscoutinglog ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.fieldscoutinglog_objectid_seq; +ALTER TABLE fieldseeker.fieldscoutinglog ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.habitatrelate DROP CONSTRAINT habitatrelate_pkey; +ALTER TABLE fieldseeker.habitatrelate ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.habitatrelate_objectid_seq; +ALTER TABLE fieldseeker.habitatrelate ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.inspectionsample DROP CONSTRAINT inspectionsample_pkey; +ALTER TABLE fieldseeker.inspectionsample ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.inspectionsample_objectid_seq; +ALTER TABLE fieldseeker.inspectionsample ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.inspectionsampledetail DROP CONSTRAINT inspectionsampledetail_pkey; +ALTER TABLE fieldseeker.inspectionsampledetail ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.inspectionsampledetail_objectid_seq; +ALTER TABLE fieldseeker.inspectionsampledetail ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.linelocation DROP CONSTRAINT linelocation_pkey; +ALTER TABLE fieldseeker.linelocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.linelocation_objectid_seq; +ALTER TABLE fieldseeker.linelocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.locationtracking DROP CONSTRAINT locationtracking_pkey; +ALTER TABLE fieldseeker.locationtracking ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.locationtracking_objectid_seq; +ALTER TABLE fieldseeker.locationtracking ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.mosquitoinspection DROP CONSTRAINT mosquitoinspection_pkey; +ALTER TABLE fieldseeker.mosquitoinspection ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.mosquitoinspection_objectid_seq; +ALTER TABLE fieldseeker.mosquitoinspection ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.pointlocation DROP CONSTRAINT pointlocation_pkey; +ALTER TABLE fieldseeker.pointlocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.pointlocation_objectid_seq; +ALTER TABLE fieldseeker.pointlocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.polygonlocation DROP CONSTRAINT polygonlocation_pkey; +ALTER TABLE fieldseeker.polygonlocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.polygonlocation_objectid_seq; +ALTER TABLE fieldseeker.polygonlocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.pool DROP CONSTRAINT pool_pkey; +ALTER TABLE fieldseeker.pool ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.pool_objectid_seq; +ALTER TABLE fieldseeker.pool ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.pooldetail DROP CONSTRAINT pooldetail_pkey; +ALTER TABLE fieldseeker.pooldetail ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.pooldetail_objectid_seq; +ALTER TABLE fieldseeker.pooldetail ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.proposedtreatmentarea DROP CONSTRAINT proposedtreatmentarea_pkey; +ALTER TABLE fieldseeker.proposedtreatmentarea ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.proposedtreatmentarea_objectid_seq; +ALTER TABLE fieldseeker.proposedtreatmentarea ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.qamosquitoinspection DROP CONSTRAINT qamosquitoinspection_pkey; +ALTER TABLE fieldseeker.qamosquitoinspection ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.qamosquitoinspection_objectid_seq; +ALTER TABLE fieldseeker.qamosquitoinspection ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.rodentlocation DROP CONSTRAINT rodentlocation_pkey; +ALTER TABLE fieldseeker.rodentlocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.rodentlocation_objectid_seq; +ALTER TABLE fieldseeker.rodentlocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.samplecollection DROP CONSTRAINT samplecollection_pkey; +ALTER TABLE fieldseeker.samplecollection ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.samplecollection_objectid_seq; +ALTER TABLE fieldseeker.samplecollection ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.samplelocation DROP CONSTRAINT samplelocation_pkey; +ALTER TABLE fieldseeker.samplelocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.samplelocation_objectid_seq; +ALTER TABLE fieldseeker.samplelocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.servicerequest DROP CONSTRAINT servicerequest_pkey; +ALTER TABLE fieldseeker.servicerequest ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.servicerequest_objectid_seq; +ALTER TABLE fieldseeker.servicerequest ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.speciesabundance DROP CONSTRAINT speciesabundance_pkey; +ALTER TABLE fieldseeker.speciesabundance ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.speciesabundance_objectid_seq; +ALTER TABLE fieldseeker.speciesabundance ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.stormdrain DROP CONSTRAINT stormdrain_pkey; +ALTER TABLE fieldseeker.stormdrain ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.stormdrain_objectid_seq; +ALTER TABLE fieldseeker.stormdrain ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.timecard DROP CONSTRAINT timecard_pkey; +ALTER TABLE fieldseeker.timecard ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.timecard_objectid_seq; +ALTER TABLE fieldseeker.timecard ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.trapdata DROP CONSTRAINT trapdata_pkey; +ALTER TABLE fieldseeker.trapdata ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.trapdata_objectid_seq; +ALTER TABLE fieldseeker.trapdata ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.traplocation DROP CONSTRAINT traplocation_pkey; +ALTER TABLE fieldseeker.traplocation ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.traplocation_objectid_seq; +ALTER TABLE fieldseeker.traplocation ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.treatment DROP CONSTRAINT treatment_pkey; +ALTER TABLE fieldseeker.treatment ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.treatment_objectid_seq; +ALTER TABLE fieldseeker.treatment ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.treatmentarea DROP CONSTRAINT treatmentarea_pkey; +ALTER TABLE fieldseeker.treatmentarea ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.treatmentarea_objectid_seq; +ALTER TABLE fieldseeker.treatmentarea ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.zones DROP CONSTRAINT zones_pkey; +ALTER TABLE fieldseeker.zones ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.zones_objectid_seq; +ALTER TABLE fieldseeker.zones ADD PRIMARY KEY (globalid, version); + +ALTER TABLE fieldseeker.zones2 DROP CONSTRAINT zones2_pkey; +ALTER TABLE fieldseeker.zones2 ALTER COLUMN objectid DROP DEFAULT; +DROP SEQUENCE fieldseeker.zones2_objectid_seq; +ALTER TABLE fieldseeker.zones2 ADD PRIMARY KEY (globalid, version); + +-- +goose Down +SELECT "not done" FROM non_existent; diff --git a/db/migrations/00028_fieldseeker_function_globalid.sql b/db/migrations/00028_fieldseeker_function_globalid.sql new file mode 100644 index 00000000..ce20fcd8 --- /dev/null +++ b/db/migrations/00028_fieldseeker_function_globalid.sql @@ -0,0 +1,9870 @@ +-- +goose Up +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_containerrelate( + p_objectid bigint, + p_organization_id INTEGER, + + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_inspsampleid uuid, + p_mosquitoinspid uuid, + p_treatmentid uuid, + p_containertype varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.containerrelate lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.inspsampleid IS NOT DISTINCT FROM p_inspsampleid + AND lv.mosquitoinspid IS NOT DISTINCT FROM p_mosquitoinspid + AND lv.treatmentid IS NOT DISTINCT FROM p_treatmentid + AND lv.containertype IS NOT DISTINCT FROM p_containertype + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.containerrelate + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.containerrelate + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.containerrelate ( + objectid, + organization_id, + + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + inspsampleid, + mosquitoinspid, + treatmentid, + containertype, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_inspsampleid, + p_mosquitoinspid, + p_treatmentid, + p_containertype, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_fieldscoutinglog( + p_objectid bigint, + p_organization_id INTEGER, + + p_status smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.fieldscoutinglog lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.status IS NOT DISTINCT FROM p_status + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.fieldscoutinglog + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.fieldscoutinglog + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.fieldscoutinglog ( + objectid, + organization_id, + + status, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_status, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_habitatrelate( + p_objectid bigint, + p_organization_id INTEGER, + + p_foreign_id uuid, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_habitattype varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.habitatrelate lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.foreign_id IS NOT DISTINCT FROM p_foreign_id + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.habitattype IS NOT DISTINCT FROM p_habitattype + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.habitatrelate + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.habitatrelate + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.habitatrelate ( + objectid, + organization_id, + + foreign_id, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + habitattype, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_foreign_id, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_habitattype, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsampledetail( + p_objectid bigint, + p_organization_id INTEGER, + + p_inspsample_id uuid, + p_fieldspecies varchar, + p_flarvcount smallint, + p_fpupcount smallint, + p_feggcount smallint, + p_flstages varchar, + p_fdomstage varchar, + p_fadultact varchar, + p_labspecies varchar, + p_llarvcount smallint, + p_lpupcount smallint, + p_leggcount smallint, + p_ldomstage varchar, + p_comments varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_processed smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.inspectionsampledetail lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.inspsample_id IS NOT DISTINCT FROM p_inspsample_id + AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies + AND lv.flarvcount IS NOT DISTINCT FROM p_flarvcount + AND lv.fpupcount IS NOT DISTINCT FROM p_fpupcount + AND lv.feggcount IS NOT DISTINCT FROM p_feggcount + AND lv.flstages IS NOT DISTINCT FROM p_flstages + AND lv.fdomstage IS NOT DISTINCT FROM p_fdomstage + AND lv.fadultact IS NOT DISTINCT FROM p_fadultact + AND lv.labspecies IS NOT DISTINCT FROM p_labspecies + AND lv.llarvcount IS NOT DISTINCT FROM p_llarvcount + AND lv.lpupcount IS NOT DISTINCT FROM p_lpupcount + AND lv.leggcount IS NOT DISTINCT FROM p_leggcount + AND lv.ldomstage IS NOT DISTINCT FROM p_ldomstage + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.inspectionsampledetail + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.inspectionsampledetail + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.inspectionsampledetail ( + objectid, + organization_id, + + inspsample_id, + fieldspecies, + flarvcount, + fpupcount, + feggcount, + flstages, + fdomstage, + fadultact, + labspecies, + llarvcount, + lpupcount, + leggcount, + ldomstage, + comments, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + processed, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_inspsample_id, + p_fieldspecies, + p_flarvcount, + p_fpupcount, + p_feggcount, + p_flstages, + p_fdomstage, + p_fadultact, + p_labspecies, + p_llarvcount, + p_lpupcount, + p_leggcount, + p_ldomstage, + p_comments, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_processed, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsample( + p_objectid bigint, + p_organization_id INTEGER, + + p_insp_id uuid, + p_sampleid varchar, + p_processed smallint, + p_idbytech varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.inspectionsample lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.insp_id IS NOT DISTINCT FROM p_insp_id + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.idbytech IS NOT DISTINCT FROM p_idbytech + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.inspectionsample + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.inspectionsample + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.inspectionsample ( + objectid, + organization_id, + + insp_id, + sampleid, + processed, + idbytech, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_insp_id, + p_sampleid, + p_processed, + p_idbytech, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_linelocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_acres double precision, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_length_ft double precision, + p_width_ft double precision, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_hectares double precision, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_length_meters double precision, + p_width_meters double precision, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.linelocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.length_ft IS NOT DISTINCT FROM p_length_ft + AND lv.width_ft IS NOT DISTINCT FROM p_width_ft + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.length_meters IS NOT DISTINCT FROM p_length_meters + AND lv.width_meters IS NOT DISTINCT FROM p_width_meters + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.linelocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.linelocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.linelocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + acres, + nextactiondatescheduled, + larvinspectinterval, + length_ft, + width_ft, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + hectares, + lastinspectactivity, + lasttreatactivity, + length_meters, + width_meters, + lastinspectconditions, + waterorigin, + creationdate, + creator, + editdate, + editor, + jurisdiction, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_acres, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_length_ft, + p_width_ft, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_hectares, + p_lastinspectactivity, + p_lasttreatactivity, + p_length_meters, + p_width_meters, + p_lastinspectconditions, + p_waterorigin, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_locationtracking( + p_objectid bigint, + p_organization_id INTEGER, + + p_accuracy double precision, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_globalid uuid, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.locationtracking lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.accuracy IS NOT DISTINCT FROM p_accuracy + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.locationtracking + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.locationtracking + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.locationtracking ( + objectid, + organization_id, + + accuracy, + created_user, + created_date, + last_edited_user, + last_edited_date, + globalid, + fieldtech, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_accuracy, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_globalid, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_mosquitoinspection( + p_objectid bigint, + p_organization_id INTEGER, + + p_numdips smallint, + p_activity varchar, + p_breeding varchar, + p_totlarvae smallint, + p_totpupae smallint, + p_eggs smallint, + p_posdips smallint, + p_adultact varchar, + p_lstages varchar, + p_domstage varchar, + p_actiontaken varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_raingauge double precision, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_winddir varchar, + p_avglarvae double precision, + p_avgpupae double precision, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_personalcontact smallint, + p_tirecount smallint, + p_cbcount smallint, + p_containercount smallint, + p_fieldspecies varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_srid uuid, + p_fieldtech varchar, + p_larvaepresent smallint, + p_pupaepresent smallint, + p_sdid uuid, + p_sitecond varchar, + p_positivecontainercount smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_visualmonitoring smallint, + p_vmcomments varchar, + p_adminaction varchar, + p_ptaid uuid, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.mosquitoinspection lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.numdips IS NOT DISTINCT FROM p_numdips + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.breeding IS NOT DISTINCT FROM p_breeding + AND lv.totlarvae IS NOT DISTINCT FROM p_totlarvae + AND lv.totpupae IS NOT DISTINCT FROM p_totpupae + AND lv.eggs IS NOT DISTINCT FROM p_eggs + AND lv.posdips IS NOT DISTINCT FROM p_posdips + AND lv.adultact IS NOT DISTINCT FROM p_adultact + AND lv.lstages IS NOT DISTINCT FROM p_lstages + AND lv.domstage IS NOT DISTINCT FROM p_domstage + AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.avglarvae IS NOT DISTINCT FROM p_avglarvae + AND lv.avgpupae IS NOT DISTINCT FROM p_avgpupae + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.personalcontact IS NOT DISTINCT FROM p_personalcontact + AND lv.tirecount IS NOT DISTINCT FROM p_tirecount + AND lv.cbcount IS NOT DISTINCT FROM p_cbcount + AND lv.containercount IS NOT DISTINCT FROM p_containercount + AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent + AND lv.pupaepresent IS NOT DISTINCT FROM p_pupaepresent + AND lv.sdid IS NOT DISTINCT FROM p_sdid + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.positivecontainercount IS NOT DISTINCT FROM p_positivecontainercount + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.visualmonitoring IS NOT DISTINCT FROM p_visualmonitoring + AND lv.vmcomments IS NOT DISTINCT FROM p_vmcomments + AND lv.adminaction IS NOT DISTINCT FROM p_adminaction + AND lv.ptaid IS NOT DISTINCT FROM p_ptaid + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.mosquitoinspection + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.mosquitoinspection + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.mosquitoinspection ( + objectid, + organization_id, + + numdips, + activity, + breeding, + totlarvae, + totpupae, + eggs, + posdips, + adultact, + lstages, + domstage, + actiontaken, + comments, + avetemp, + windspeed, + raingauge, + startdatetime, + enddatetime, + winddir, + avglarvae, + avgpupae, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + personalcontact, + tirecount, + cbcount, + containercount, + fieldspecies, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + linelocid, + pointlocid, + polygonlocid, + srid, + fieldtech, + larvaepresent, + pupaepresent, + sdid, + sitecond, + positivecontainercount, + creationdate, + creator, + editdate, + editor, + jurisdiction, + visualmonitoring, + vmcomments, + adminaction, + ptaid, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_numdips, + p_activity, + p_breeding, + p_totlarvae, + p_totpupae, + p_eggs, + p_posdips, + p_adultact, + p_lstages, + p_domstage, + p_actiontaken, + p_comments, + p_avetemp, + p_windspeed, + p_raingauge, + p_startdatetime, + p_enddatetime, + p_winddir, + p_avglarvae, + p_avgpupae, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_personalcontact, + p_tirecount, + p_cbcount, + p_containercount, + p_fieldspecies, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_srid, + p_fieldtech, + p_larvaepresent, + p_pupaepresent, + p_sdid, + p_sitecond, + p_positivecontainercount, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_visualmonitoring, + p_vmcomments, + p_adminaction, + p_ptaid, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pointlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_stype varchar, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_x double precision, + p_y double precision, + p_assignedtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_deactivate_reason varchar, + p_scalarpriority integer, + p_sourcestatus varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pointlocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.stype IS NOT DISTINCT FROM p_stype + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.x IS NOT DISTINCT FROM p_x + AND lv.y IS NOT DISTINCT FROM p_y + AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.deactivate_reason IS NOT DISTINCT FROM p_deactivate_reason + AND lv.scalarpriority IS NOT DISTINCT FROM p_scalarpriority + AND lv.sourcestatus IS NOT DISTINCT FROM p_sourcestatus + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pointlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pointlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pointlocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + nextactiondatescheduled, + larvinspectinterval, + zone2, + locationnumber, + globalid, + stype, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + lastinspectactivity, + lasttreatactivity, + lastinspectconditions, + waterorigin, + x, + y, + assignedtech, + creationdate, + creator, + editdate, + editor, + jurisdiction, + deactivate_reason, + scalarpriority, + sourcestatus, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_zone2, + p_locationnumber, + p_globalid, + p_stype, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_lastinspectactivity, + p_lasttreatactivity, + p_lastinspectconditions, + p_waterorigin, + p_x, + p_y, + p_assignedtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_deactivate_reason, + p_scalarpriority, + p_sourcestatus, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_polygonlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_acres double precision, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_hectares double precision, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_filter varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.polygonlocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.filter IS NOT DISTINCT FROM p_filter + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.polygonlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.polygonlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.polygonlocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + acres, + nextactiondatescheduled, + larvinspectinterval, + zone2, + locationnumber, + globalid, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + hectares, + lastinspectactivity, + lasttreatactivity, + lastinspectconditions, + waterorigin, + filter, + creationdate, + creator, + editdate, + editor, + jurisdiction, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_acres, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_zone2, + p_locationnumber, + p_globalid, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_hectares, + p_lastinspectactivity, + p_lasttreatactivity, + p_lastinspectconditions, + p_waterorigin, + p_filter, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pooldetail( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_pool_id uuid, + p_species varchar, + p_females smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pooldetail lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.pool_id IS NOT DISTINCT FROM p_pool_id + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.females IS NOT DISTINCT FROM p_females + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pooldetail + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pooldetail + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pooldetail ( + objectid, + organization_id, + + trapdata_id, + pool_id, + species, + females, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_pool_id, + p_species, + p_females, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pool( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_datesent timestamp, + p_survtech varchar, + p_datetested timestamp, + p_testtech varchar, + p_comments varchar, + p_sampleid varchar, + p_processed smallint, + p_lab_id uuid, + p_testmethod varchar, + p_diseasetested varchar, + p_diseasepos varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lab varchar, + p_poolyear smallint, + p_gatewaysync smallint, + p_vectorsurvcollectionid varchar, + p_vectorsurvpoolid varchar, + p_vectorsurvtrapdataid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pool lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.datesent IS NOT DISTINCT FROM p_datesent + AND lv.survtech IS NOT DISTINCT FROM p_survtech + AND lv.datetested IS NOT DISTINCT FROM p_datetested + AND lv.testtech IS NOT DISTINCT FROM p_testtech + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.lab_id IS NOT DISTINCT FROM p_lab_id + AND lv.testmethod IS NOT DISTINCT FROM p_testmethod + AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested + AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lab IS NOT DISTINCT FROM p_lab + AND lv.poolyear IS NOT DISTINCT FROM p_poolyear + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.vectorsurvcollectionid IS NOT DISTINCT FROM p_vectorsurvcollectionid + AND lv.vectorsurvpoolid IS NOT DISTINCT FROM p_vectorsurvpoolid + AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pool + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pool + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pool ( + objectid, + organization_id, + + trapdata_id, + datesent, + survtech, + datetested, + testtech, + comments, + sampleid, + processed, + lab_id, + testmethod, + diseasetested, + diseasepos, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lab, + poolyear, + gatewaysync, + vectorsurvcollectionid, + vectorsurvpoolid, + vectorsurvtrapdataid, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_datesent, + p_survtech, + p_datetested, + p_testtech, + p_comments, + p_sampleid, + p_processed, + p_lab_id, + p_testmethod, + p_diseasetested, + p_diseasepos, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lab, + p_poolyear, + p_gatewaysync, + p_vectorsurvcollectionid, + p_vectorsurvpoolid, + p_vectorsurvtrapdataid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_proposedtreatmentarea( + p_objectid bigint, + p_organization_id INTEGER, + + p_method varchar, + p_comments varchar, + p_zone varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_zone2 varchar, + p_completeddate timestamp, + p_completedby varchar, + p_completed smallint, + p_issprayroute smallint, + p_name varchar, + p_acres double precision, + p_globalid uuid, + p_exported smallint, + p_targetproduct varchar, + p_targetapprate double precision, + p_hectares double precision, + p_lasttreatactivity varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_priority varchar, + p_duedate timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_targetspecies varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.proposedtreatmentarea lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.method IS NOT DISTINCT FROM p_method + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.completeddate IS NOT DISTINCT FROM p_completeddate + AND lv.completedby IS NOT DISTINCT FROM p_completedby + AND lv.completed IS NOT DISTINCT FROM p_completed + AND lv.issprayroute IS NOT DISTINCT FROM p_issprayroute + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.exported IS NOT DISTINCT FROM p_exported + AND lv.targetproduct IS NOT DISTINCT FROM p_targetproduct + AND lv.targetapprate IS NOT DISTINCT FROM p_targetapprate + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.duedate IS NOT DISTINCT FROM p_duedate + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.proposedtreatmentarea + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.proposedtreatmentarea + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.proposedtreatmentarea ( + objectid, + organization_id, + + method, + comments, + zone, + reviewed, + reviewedby, + revieweddate, + zone2, + completeddate, + completedby, + completed, + issprayroute, + name, + acres, + globalid, + exported, + targetproduct, + targetapprate, + hectares, + lasttreatactivity, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + priority, + duedate, + creationdate, + creator, + editdate, + editor, + targetspecies, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_method, + p_comments, + p_zone, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_zone2, + p_completeddate, + p_completedby, + p_completed, + p_issprayroute, + p_name, + p_acres, + p_globalid, + p_exported, + p_targetproduct, + p_targetapprate, + p_hectares, + p_lasttreatactivity, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_priority, + p_duedate, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_targetspecies, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_qamosquitoinspection( + p_objectid bigint, + p_organization_id INTEGER, + + p_posdips smallint, + p_actiontaken varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_raingauge double precision, + p_globalid uuid, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_winddir varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_lr smallint, + p_negdips smallint, + p_totalacres double precision, + p_acresbreeding double precision, + p_fish smallint, + p_sitetype varchar, + p_breedingpotential varchar, + p_movingwater smallint, + p_nowaterever smallint, + p_mosquitohabitat varchar, + p_habvalue1 smallint, + p_habvalue1percent smallint, + p_habvalue2 smallint, + p_habvalue2percent smallint, + p_potential smallint, + p_larvaepresent smallint, + p_larvaeinsidetreatedarea smallint, + p_larvaeoutsidetreatedarea smallint, + p_larvaereason varchar, + p_aquaticorganisms varchar, + p_vegetation varchar, + p_sourcereduction varchar, + p_waterpresent smallint, + p_watermovement1 varchar, + p_watermovement1percent smallint, + p_watermovement2 varchar, + p_watermovement2percent smallint, + p_soilconditions varchar, + p_waterduration varchar, + p_watersource varchar, + p_waterconditions varchar, + p_adultactivity smallint, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.qamosquitoinspection lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.posdips IS NOT DISTINCT FROM p_posdips + AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.lr IS NOT DISTINCT FROM p_lr + AND lv.negdips IS NOT DISTINCT FROM p_negdips + AND lv.totalacres IS NOT DISTINCT FROM p_totalacres + AND lv.acresbreeding IS NOT DISTINCT FROM p_acresbreeding + AND lv.fish IS NOT DISTINCT FROM p_fish + AND lv.sitetype IS NOT DISTINCT FROM p_sitetype + AND lv.breedingpotential IS NOT DISTINCT FROM p_breedingpotential + AND lv.movingwater IS NOT DISTINCT FROM p_movingwater + AND lv.nowaterever IS NOT DISTINCT FROM p_nowaterever + AND lv.mosquitohabitat IS NOT DISTINCT FROM p_mosquitohabitat + AND lv.habvalue1 IS NOT DISTINCT FROM p_habvalue1 + AND lv.habvalue1percent IS NOT DISTINCT FROM p_habvalue1percent + AND lv.habvalue2 IS NOT DISTINCT FROM p_habvalue2 + AND lv.habvalue2percent IS NOT DISTINCT FROM p_habvalue2percent + AND lv.potential IS NOT DISTINCT FROM p_potential + AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent + AND lv.larvaeinsidetreatedarea IS NOT DISTINCT FROM p_larvaeinsidetreatedarea + AND lv.larvaeoutsidetreatedarea IS NOT DISTINCT FROM p_larvaeoutsidetreatedarea + AND lv.larvaereason IS NOT DISTINCT FROM p_larvaereason + AND lv.aquaticorganisms IS NOT DISTINCT FROM p_aquaticorganisms + AND lv.vegetation IS NOT DISTINCT FROM p_vegetation + AND lv.sourcereduction IS NOT DISTINCT FROM p_sourcereduction + AND lv.waterpresent IS NOT DISTINCT FROM p_waterpresent + AND lv.watermovement1 IS NOT DISTINCT FROM p_watermovement1 + AND lv.watermovement1percent IS NOT DISTINCT FROM p_watermovement1percent + AND lv.watermovement2 IS NOT DISTINCT FROM p_watermovement2 + AND lv.watermovement2percent IS NOT DISTINCT FROM p_watermovement2percent + AND lv.soilconditions IS NOT DISTINCT FROM p_soilconditions + AND lv.waterduration IS NOT DISTINCT FROM p_waterduration + AND lv.watersource IS NOT DISTINCT FROM p_watersource + AND lv.waterconditions IS NOT DISTINCT FROM p_waterconditions + AND lv.adultactivity IS NOT DISTINCT FROM p_adultactivity + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.qamosquitoinspection + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.qamosquitoinspection + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.qamosquitoinspection ( + objectid, + organization_id, + + posdips, + actiontaken, + comments, + avetemp, + windspeed, + raingauge, + globalid, + startdatetime, + enddatetime, + winddir, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + lr, + negdips, + totalacres, + acresbreeding, + fish, + sitetype, + breedingpotential, + movingwater, + nowaterever, + mosquitohabitat, + habvalue1, + habvalue1percent, + habvalue2, + habvalue2percent, + potential, + larvaepresent, + larvaeinsidetreatedarea, + larvaeoutsidetreatedarea, + larvaereason, + aquaticorganisms, + vegetation, + sourcereduction, + waterpresent, + watermovement1, + watermovement1percent, + watermovement2, + watermovement2percent, + soilconditions, + waterduration, + watersource, + waterconditions, + adultactivity, + linelocid, + pointlocid, + polygonlocid, + created_user, + created_date, + last_edited_user, + last_edited_date, + fieldtech, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_posdips, + p_actiontaken, + p_comments, + p_avetemp, + p_windspeed, + p_raingauge, + p_globalid, + p_startdatetime, + p_enddatetime, + p_winddir, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_lr, + p_negdips, + p_totalacres, + p_acresbreeding, + p_fish, + p_sitetype, + p_breedingpotential, + p_movingwater, + p_nowaterever, + p_mosquitohabitat, + p_habvalue1, + p_habvalue1percent, + p_habvalue2, + p_habvalue2percent, + p_potential, + p_larvaepresent, + p_larvaeinsidetreatedarea, + p_larvaeoutsidetreatedarea, + p_larvaereason, + p_aquaticorganisms, + p_vegetation, + p_sourcereduction, + p_waterpresent, + p_watermovement1, + p_watermovement1percent, + p_watermovement2, + p_watermovement2percent, + p_soilconditions, + p_waterduration, + p_watersource, + p_waterconditions, + p_adultactivity, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_rodentlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_locationname varchar, + p_zone varchar, + p_zone2 varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_locationnumber integer, + p_lastinspectdate timestamp, + p_lastinspectspecies varchar, + p_lastinspectaction varchar, + p_lastinspectconditions varchar, + p_lastinspectrodentevidence varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.rodentlocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectspecies IS NOT DISTINCT FROM p_lastinspectspecies + AND lv.lastinspectaction IS NOT DISTINCT FROM p_lastinspectaction + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.lastinspectrodentevidence IS NOT DISTINCT FROM p_lastinspectrodentevidence + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.rodentlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.rodentlocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.rodentlocation ( + objectid, + organization_id, + + locationname, + zone, + zone2, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + nextactiondatescheduled, + locationnumber, + lastinspectdate, + lastinspectspecies, + lastinspectaction, + lastinspectconditions, + lastinspectrodentevidence, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + jurisdiction, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_locationname, + p_zone, + p_zone2, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_nextactiondatescheduled, + p_locationnumber, + p_lastinspectdate, + p_lastinspectspecies, + p_lastinspectaction, + p_lastinspectconditions, + p_lastinspectrodentevidence, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_samplecollection( + p_objectid bigint, + p_organization_id INTEGER, + + p_loc_id uuid, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_sitecond varchar, + p_sampleid varchar, + p_survtech varchar, + p_datesent timestamp, + p_datetested timestamp, + p_testtech varchar, + p_comments varchar, + p_processed smallint, + p_sampletype varchar, + p_samplecond varchar, + p_species varchar, + p_sex varchar, + p_avetemp double precision, + p_windspeed double precision, + p_winddir varchar, + p_raingauge double precision, + p_activity varchar, + p_testmethod varchar, + p_diseasetested varchar, + p_diseasepos varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lab varchar, + p_fieldtech varchar, + p_flockid uuid, + p_samplecount smallint, + p_chickenid uuid, + p_gatewaysync smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.samplecollection lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.loc_id IS NOT DISTINCT FROM p_loc_id + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.survtech IS NOT DISTINCT FROM p_survtech + AND lv.datesent IS NOT DISTINCT FROM p_datesent + AND lv.datetested IS NOT DISTINCT FROM p_datetested + AND lv.testtech IS NOT DISTINCT FROM p_testtech + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.sampletype IS NOT DISTINCT FROM p_sampletype + AND lv.samplecond IS NOT DISTINCT FROM p_samplecond + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.sex IS NOT DISTINCT FROM p_sex + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.testmethod IS NOT DISTINCT FROM p_testmethod + AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested + AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lab IS NOT DISTINCT FROM p_lab + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.flockid IS NOT DISTINCT FROM p_flockid + AND lv.samplecount IS NOT DISTINCT FROM p_samplecount + AND lv.chickenid IS NOT DISTINCT FROM p_chickenid + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.samplecollection + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.samplecollection + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.samplecollection ( + objectid, + organization_id, + + loc_id, + startdatetime, + enddatetime, + sitecond, + sampleid, + survtech, + datesent, + datetested, + testtech, + comments, + processed, + sampletype, + samplecond, + species, + sex, + avetemp, + windspeed, + winddir, + raingauge, + activity, + testmethod, + diseasetested, + diseasepos, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lab, + fieldtech, + flockid, + samplecount, + chickenid, + gatewaysync, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_loc_id, + p_startdatetime, + p_enddatetime, + p_sitecond, + p_sampleid, + p_survtech, + p_datesent, + p_datetested, + p_testtech, + p_comments, + p_processed, + p_sampletype, + p_samplecond, + p_species, + p_sex, + p_avetemp, + p_windspeed, + p_winddir, + p_raingauge, + p_activity, + p_testmethod, + p_diseasetested, + p_diseasepos, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lab, + p_fieldtech, + p_flockid, + p_samplecount, + p_chickenid, + p_gatewaysync, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_samplelocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_gatewaysync smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.samplelocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.samplelocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.samplelocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.samplelocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + externalid, + nextactiondatescheduled, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + gatewaysync, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_externalid, + p_nextactiondatescheduled, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_gatewaysync, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_servicerequest( + p_objectid bigint, + p_organization_id INTEGER, + + p_recdatetime timestamp, + p_source varchar, + p_entrytech varchar, + p_priority varchar, + p_supervisor varchar, + p_assignedtech varchar, + p_status varchar, + p_clranon smallint, + p_clrfname varchar, + p_clrphone1 varchar, + p_clrphone2 varchar, + p_clremail varchar, + p_clrcompany varchar, + p_clraddr1 varchar, + p_clraddr2 varchar, + p_clrcity varchar, + p_clrstate varchar, + p_clrzip varchar, + p_clrother varchar, + p_clrcontpref varchar, + p_reqcompany varchar, + p_reqaddr1 varchar, + p_reqaddr2 varchar, + p_reqcity varchar, + p_reqstate varchar, + p_reqzip varchar, + p_reqcrossst varchar, + p_reqsubdiv varchar, + p_reqmapgrid varchar, + p_reqpermission smallint, + p_reqtarget varchar, + p_reqdescr varchar, + p_reqnotesfortech varchar, + p_reqnotesforcust varchar, + p_reqfldnotes varchar, + p_reqprogramactions varchar, + p_datetimeclosed timestamp, + p_techclosed varchar, + p_sr_number integer, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_accepted smallint, + p_accepteddate timestamp, + p_rejectedby varchar, + p_rejecteddate timestamp, + p_rejectedreason varchar, + p_duedate timestamp, + p_acceptedby varchar, + p_comments varchar, + p_estcompletedate timestamp, + p_nextaction varchar, + p_recordstatus smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_firstresponsedate timestamp, + p_responsedaycount smallint, + p_allowed varchar, + p_xvalue varchar, + p_yvalue varchar, + p_validx varchar, + p_validy varchar, + p_externalid varchar, + p_externalerror varchar, + p_pointlocid uuid, + p_notified smallint, + p_notifieddate timestamp, + p_scheduled smallint, + p_scheduleddate timestamp, + p_dog integer, + p_schedule_period varchar, + p_schedule_notes varchar, + p_spanish integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_issuesreported varchar, + p_jurisdiction varchar, + p_notificationtimestamp varchar, + p_zone varchar, + p_zone2 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.servicerequest lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.recdatetime IS NOT DISTINCT FROM p_recdatetime + AND lv.source IS NOT DISTINCT FROM p_source + AND lv.entrytech IS NOT DISTINCT FROM p_entrytech + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.supervisor IS NOT DISTINCT FROM p_supervisor + AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech + AND lv.status IS NOT DISTINCT FROM p_status + AND lv.clranon IS NOT DISTINCT FROM p_clranon + AND lv.clrfname IS NOT DISTINCT FROM p_clrfname + AND lv.clrphone1 IS NOT DISTINCT FROM p_clrphone1 + AND lv.clrphone2 IS NOT DISTINCT FROM p_clrphone2 + AND lv.clremail IS NOT DISTINCT FROM p_clremail + AND lv.clrcompany IS NOT DISTINCT FROM p_clrcompany + AND lv.clraddr1 IS NOT DISTINCT FROM p_clraddr1 + AND lv.clraddr2 IS NOT DISTINCT FROM p_clraddr2 + AND lv.clrcity IS NOT DISTINCT FROM p_clrcity + AND lv.clrstate IS NOT DISTINCT FROM p_clrstate + AND lv.clrzip IS NOT DISTINCT FROM p_clrzip + AND lv.clrother IS NOT DISTINCT FROM p_clrother + AND lv.clrcontpref IS NOT DISTINCT FROM p_clrcontpref + AND lv.reqcompany IS NOT DISTINCT FROM p_reqcompany + AND lv.reqaddr1 IS NOT DISTINCT FROM p_reqaddr1 + AND lv.reqaddr2 IS NOT DISTINCT FROM p_reqaddr2 + AND lv.reqcity IS NOT DISTINCT FROM p_reqcity + AND lv.reqstate IS NOT DISTINCT FROM p_reqstate + AND lv.reqzip IS NOT DISTINCT FROM p_reqzip + AND lv.reqcrossst IS NOT DISTINCT FROM p_reqcrossst + AND lv.reqsubdiv IS NOT DISTINCT FROM p_reqsubdiv + AND lv.reqmapgrid IS NOT DISTINCT FROM p_reqmapgrid + AND lv.reqpermission IS NOT DISTINCT FROM p_reqpermission + AND lv.reqtarget IS NOT DISTINCT FROM p_reqtarget + AND lv.reqdescr IS NOT DISTINCT FROM p_reqdescr + AND lv.reqnotesfortech IS NOT DISTINCT FROM p_reqnotesfortech + AND lv.reqnotesforcust IS NOT DISTINCT FROM p_reqnotesforcust + AND lv.reqfldnotes IS NOT DISTINCT FROM p_reqfldnotes + AND lv.reqprogramactions IS NOT DISTINCT FROM p_reqprogramactions + AND lv.datetimeclosed IS NOT DISTINCT FROM p_datetimeclosed + AND lv.techclosed IS NOT DISTINCT FROM p_techclosed + AND lv.sr_number IS NOT DISTINCT FROM p_sr_number + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.accepted IS NOT DISTINCT FROM p_accepted + AND lv.accepteddate IS NOT DISTINCT FROM p_accepteddate + AND lv.rejectedby IS NOT DISTINCT FROM p_rejectedby + AND lv.rejecteddate IS NOT DISTINCT FROM p_rejecteddate + AND lv.rejectedreason IS NOT DISTINCT FROM p_rejectedreason + AND lv.duedate IS NOT DISTINCT FROM p_duedate + AND lv.acceptedby IS NOT DISTINCT FROM p_acceptedby + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.estcompletedate IS NOT DISTINCT FROM p_estcompletedate + AND lv.nextaction IS NOT DISTINCT FROM p_nextaction + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.firstresponsedate IS NOT DISTINCT FROM p_firstresponsedate + AND lv.responsedaycount IS NOT DISTINCT FROM p_responsedaycount + AND lv.allowed IS NOT DISTINCT FROM p_allowed + AND lv.xvalue IS NOT DISTINCT FROM p_xvalue + AND lv.yvalue IS NOT DISTINCT FROM p_yvalue + AND lv.validx IS NOT DISTINCT FROM p_validx + AND lv.validy IS NOT DISTINCT FROM p_validy + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.externalerror IS NOT DISTINCT FROM p_externalerror + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.notified IS NOT DISTINCT FROM p_notified + AND lv.notifieddate IS NOT DISTINCT FROM p_notifieddate + AND lv.scheduled IS NOT DISTINCT FROM p_scheduled + AND lv.scheduleddate IS NOT DISTINCT FROM p_scheduleddate + AND lv.dog IS NOT DISTINCT FROM p_dog + AND lv.schedule_period IS NOT DISTINCT FROM p_schedule_period + AND lv.schedule_notes IS NOT DISTINCT FROM p_schedule_notes + AND lv.spanish IS NOT DISTINCT FROM p_spanish + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.issuesreported IS NOT DISTINCT FROM p_issuesreported + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.notificationtimestamp IS NOT DISTINCT FROM p_notificationtimestamp + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.servicerequest + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.servicerequest + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.servicerequest ( + objectid, + organization_id, + + recdatetime, + source, + entrytech, + priority, + supervisor, + assignedtech, + status, + clranon, + clrfname, + clrphone1, + clrphone2, + clremail, + clrcompany, + clraddr1, + clraddr2, + clrcity, + clrstate, + clrzip, + clrother, + clrcontpref, + reqcompany, + reqaddr1, + reqaddr2, + reqcity, + reqstate, + reqzip, + reqcrossst, + reqsubdiv, + reqmapgrid, + reqpermission, + reqtarget, + reqdescr, + reqnotesfortech, + reqnotesforcust, + reqfldnotes, + reqprogramactions, + datetimeclosed, + techclosed, + sr_number, + reviewed, + reviewedby, + revieweddate, + accepted, + accepteddate, + rejectedby, + rejecteddate, + rejectedreason, + duedate, + acceptedby, + comments, + estcompletedate, + nextaction, + recordstatus, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + firstresponsedate, + responsedaycount, + allowed, + xvalue, + yvalue, + validx, + validy, + externalid, + externalerror, + pointlocid, + notified, + notifieddate, + scheduled, + scheduleddate, + dog, + schedule_period, + schedule_notes, + spanish, + creationdate, + creator, + editdate, + editor, + issuesreported, + jurisdiction, + notificationtimestamp, + zone, + zone2, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_recdatetime, + p_source, + p_entrytech, + p_priority, + p_supervisor, + p_assignedtech, + p_status, + p_clranon, + p_clrfname, + p_clrphone1, + p_clrphone2, + p_clremail, + p_clrcompany, + p_clraddr1, + p_clraddr2, + p_clrcity, + p_clrstate, + p_clrzip, + p_clrother, + p_clrcontpref, + p_reqcompany, + p_reqaddr1, + p_reqaddr2, + p_reqcity, + p_reqstate, + p_reqzip, + p_reqcrossst, + p_reqsubdiv, + p_reqmapgrid, + p_reqpermission, + p_reqtarget, + p_reqdescr, + p_reqnotesfortech, + p_reqnotesforcust, + p_reqfldnotes, + p_reqprogramactions, + p_datetimeclosed, + p_techclosed, + p_sr_number, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_accepted, + p_accepteddate, + p_rejectedby, + p_rejecteddate, + p_rejectedreason, + p_duedate, + p_acceptedby, + p_comments, + p_estcompletedate, + p_nextaction, + p_recordstatus, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_firstresponsedate, + p_responsedaycount, + p_allowed, + p_xvalue, + p_yvalue, + p_validx, + p_validy, + p_externalid, + p_externalerror, + p_pointlocid, + p_notified, + p_notifieddate, + p_scheduled, + p_scheduleddate, + p_dog, + p_schedule_period, + p_schedule_notes, + p_spanish, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_issuesreported, + p_jurisdiction, + p_notificationtimestamp, + p_zone, + p_zone2, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_speciesabundance( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_species varchar, + p_males smallint, + p_unknown smallint, + p_bloodedfem smallint, + p_gravidfem smallint, + p_larvae smallint, + p_poolstogen smallint, + p_processed smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_pupae smallint, + p_eggs smallint, + p_females integer, + p_total integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_yearweek integer, + p_globalzscore double precision, + p_r7score double precision, + p_r8score double precision, + p_h3r7 varchar, + p_h3r8 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.speciesabundance lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.males IS NOT DISTINCT FROM p_males + AND lv.unknown IS NOT DISTINCT FROM p_unknown + AND lv.bloodedfem IS NOT DISTINCT FROM p_bloodedfem + AND lv.gravidfem IS NOT DISTINCT FROM p_gravidfem + AND lv.larvae IS NOT DISTINCT FROM p_larvae + AND lv.poolstogen IS NOT DISTINCT FROM p_poolstogen + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.pupae IS NOT DISTINCT FROM p_pupae + AND lv.eggs IS NOT DISTINCT FROM p_eggs + AND lv.females IS NOT DISTINCT FROM p_females + AND lv.total IS NOT DISTINCT FROM p_total + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.yearweek IS NOT DISTINCT FROM p_yearweek + AND lv.globalzscore IS NOT DISTINCT FROM p_globalzscore + AND lv.r7score IS NOT DISTINCT FROM p_r7score + AND lv.r8score IS NOT DISTINCT FROM p_r8score + AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 + AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.speciesabundance + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.speciesabundance + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.speciesabundance ( + objectid, + organization_id, + + trapdata_id, + species, + males, + unknown, + bloodedfem, + gravidfem, + larvae, + poolstogen, + processed, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + pupae, + eggs, + females, + total, + creationdate, + creator, + editdate, + editor, + yearweek, + globalzscore, + r7score, + r8score, + h3r7, + h3r8, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_species, + p_males, + p_unknown, + p_bloodedfem, + p_gravidfem, + p_larvae, + p_poolstogen, + p_processed, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_pupae, + p_eggs, + p_females, + p_total, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_yearweek, + p_globalzscore, + p_r7score, + p_r8score, + p_h3r7, + p_h3r8, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_stormdrain( + p_objectid bigint, + p_organization_id INTEGER, + + p_nexttreatmentdate timestamp, + p_lasttreatdate timestamp, + p_lastaction varchar, + p_symbology varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_laststatus varchar, + p_zone varchar, + p_zone2 varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_type varchar, + p_jurisdiction varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.stormdrain lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.nexttreatmentdate IS NOT DISTINCT FROM p_nexttreatmentdate + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lastaction IS NOT DISTINCT FROM p_lastaction + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.laststatus IS NOT DISTINCT FROM p_laststatus + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.type IS NOT DISTINCT FROM p_type + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.stormdrain + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.stormdrain + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.stormdrain ( + objectid, + organization_id, + + nexttreatmentdate, + lasttreatdate, + lastaction, + symbology, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + laststatus, + zone, + zone2, + creationdate, + creator, + editdate, + editor, + type, + jurisdiction, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_nexttreatmentdate, + p_lasttreatdate, + p_lastaction, + p_symbology, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_laststatus, + p_zone, + p_zone2, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_type, + p_jurisdiction, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_timecard( + p_objectid bigint, + p_organization_id INTEGER, + + p_activity varchar, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_comments varchar, + p_externalid varchar, + p_equiptype varchar, + p_locationname varchar, + p_zone varchar, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_lclocid uuid, + p_samplelocid uuid, + p_srid uuid, + p_traplocid uuid, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_rodentlocid uuid, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.timecard lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.equiptype IS NOT DISTINCT FROM p_equiptype + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.lclocid IS NOT DISTINCT FROM p_lclocid + AND lv.samplelocid IS NOT DISTINCT FROM p_samplelocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.traplocid IS NOT DISTINCT FROM p_traplocid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.rodentlocid IS NOT DISTINCT FROM p_rodentlocid + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.timecard + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.timecard + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.timecard ( + objectid, + organization_id, + + activity, + startdatetime, + enddatetime, + comments, + externalid, + equiptype, + locationname, + zone, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + linelocid, + pointlocid, + polygonlocid, + lclocid, + samplelocid, + srid, + traplocid, + fieldtech, + creationdate, + creator, + editdate, + editor, + rodentlocid, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_activity, + p_startdatetime, + p_enddatetime, + p_comments, + p_externalid, + p_equiptype, + p_locationname, + p_zone, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_lclocid, + p_samplelocid, + p_srid, + p_traplocid, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_rodentlocid, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_trapdata( + p_objectid bigint, + p_organization_id INTEGER, + + p_traptype varchar, + p_trapactivitytype varchar, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_comments varchar, + p_idbytech varchar, + p_sortbytech varchar, + p_processed smallint, + p_sitecond varchar, + p_locationname varchar, + p_recordstatus smallint, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_trapcondition varchar, + p_trapnights smallint, + p_zone varchar, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_srid uuid, + p_fieldtech varchar, + p_gatewaysync smallint, + p_loc_id uuid, + p_voltage double precision, + p_winddir varchar, + p_windspeed double precision, + p_avetemp double precision, + p_raingauge double precision, + p_lr smallint, + p_field integer, + p_vectorsurvtrapdataid varchar, + p_vectorsurvtraplocationid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_lure varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.trapdata lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.traptype IS NOT DISTINCT FROM p_traptype + AND lv.trapactivitytype IS NOT DISTINCT FROM p_trapactivitytype + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.idbytech IS NOT DISTINCT FROM p_idbytech + AND lv.sortbytech IS NOT DISTINCT FROM p_sortbytech + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.trapcondition IS NOT DISTINCT FROM p_trapcondition + AND lv.trapnights IS NOT DISTINCT FROM p_trapnights + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.loc_id IS NOT DISTINCT FROM p_loc_id + AND lv.voltage IS NOT DISTINCT FROM p_voltage + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.lr IS NOT DISTINCT FROM p_lr + AND lv.field IS NOT DISTINCT FROM p_field + AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid + AND lv.vectorsurvtraplocationid IS NOT DISTINCT FROM p_vectorsurvtraplocationid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.lure IS NOT DISTINCT FROM p_lure + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.trapdata + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.trapdata + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.trapdata ( + objectid, + organization_id, + + traptype, + trapactivitytype, + startdatetime, + enddatetime, + comments, + idbytech, + sortbytech, + processed, + sitecond, + locationname, + recordstatus, + reviewed, + reviewedby, + revieweddate, + trapcondition, + trapnights, + zone, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + srid, + fieldtech, + gatewaysync, + loc_id, + voltage, + winddir, + windspeed, + avetemp, + raingauge, + lr, + field, + vectorsurvtrapdataid, + vectorsurvtraplocationid, + creationdate, + creator, + editdate, + editor, + lure, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_traptype, + p_trapactivitytype, + p_startdatetime, + p_enddatetime, + p_comments, + p_idbytech, + p_sortbytech, + p_processed, + p_sitecond, + p_locationname, + p_recordstatus, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_trapcondition, + p_trapnights, + p_zone, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_srid, + p_fieldtech, + p_gatewaysync, + p_loc_id, + p_voltage, + p_winddir, + p_windspeed, + p_avetemp, + p_raingauge, + p_lr, + p_field, + p_vectorsurvtrapdataid, + p_vectorsurvtraplocationid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_lure, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_traplocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_gatewaysync smallint, + p_route integer, + p_set_dow integer, + p_route_order integer, + p_vectorsurvsiteid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_h3r7 varchar, + p_h3r8 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.traplocation lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.route IS NOT DISTINCT FROM p_route + AND lv.set_dow IS NOT DISTINCT FROM p_set_dow + AND lv.route_order IS NOT DISTINCT FROM p_route_order + AND lv.vectorsurvsiteid IS NOT DISTINCT FROM p_vectorsurvsiteid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 + AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.traplocation + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.traplocation + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.traplocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + externalid, + nextactiondatescheduled, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + gatewaysync, + route, + set_dow, + route_order, + vectorsurvsiteid, + creationdate, + creator, + editdate, + editor, + h3r7, + h3r8, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_externalid, + p_nextactiondatescheduled, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_gatewaysync, + p_route, + p_set_dow, + p_route_order, + p_vectorsurvsiteid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_h3r7, + p_h3r8, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_treatmentarea( + p_objectid bigint, + p_organization_id INTEGER, + + p_treat_id uuid, + p_session_id uuid, + p_treatdate timestamp, + p_comments varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_notified smallint, + p_type varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.treatmentarea lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.treat_id IS NOT DISTINCT FROM p_treat_id + AND lv.session_id IS NOT DISTINCT FROM p_session_id + AND lv.treatdate IS NOT DISTINCT FROM p_treatdate + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.notified IS NOT DISTINCT FROM p_notified + AND lv.type IS NOT DISTINCT FROM p_type + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.treatmentarea + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.treatmentarea + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.treatmentarea ( + objectid, + organization_id, + + treat_id, + session_id, + treatdate, + comments, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + notified, + type, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_treat_id, + p_session_id, + p_treatdate, + p_comments, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_notified, + p_type, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_treatment( + p_objectid bigint, + p_organization_id INTEGER, + + p_activity varchar, + p_treatarea double precision, + p_areaunit varchar, + p_product varchar, + p_qty double precision, + p_qtyunit varchar, + p_method varchar, + p_equiptype varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_winddir varchar, + p_raingauge double precision, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_insp_id uuid, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_warningoverride smallint, + p_recordstatus smallint, + p_zone2 varchar, + p_treatacres double precision, + p_tirecount smallint, + p_cbcount smallint, + p_containercount smallint, + p_globalid uuid, + p_treatmentlength double precision, + p_treatmenthours double precision, + p_treatmentlengthunits varchar, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_srid uuid, + p_sdid uuid, + p_barrierrouteid uuid, + p_ulvrouteid uuid, + p_fieldtech varchar, + p_ptaid uuid, + p_flowrate double precision, + p_habitat varchar, + p_treathectares double precision, + p_invloc varchar, + p_temp_sitecond varchar, + p_sitecond varchar, + p_totalcostprodcut double precision, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_targetspecies varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.treatment lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.treatarea IS NOT DISTINCT FROM p_treatarea + AND lv.areaunit IS NOT DISTINCT FROM p_areaunit + AND lv.product IS NOT DISTINCT FROM p_product + AND lv.qty IS NOT DISTINCT FROM p_qty + AND lv.qtyunit IS NOT DISTINCT FROM p_qtyunit + AND lv.method IS NOT DISTINCT FROM p_method + AND lv.equiptype IS NOT DISTINCT FROM p_equiptype + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.insp_id IS NOT DISTINCT FROM p_insp_id + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.warningoverride IS NOT DISTINCT FROM p_warningoverride + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.treatacres IS NOT DISTINCT FROM p_treatacres + AND lv.tirecount IS NOT DISTINCT FROM p_tirecount + AND lv.cbcount IS NOT DISTINCT FROM p_cbcount + AND lv.containercount IS NOT DISTINCT FROM p_containercount + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.treatmentlength IS NOT DISTINCT FROM p_treatmentlength + AND lv.treatmenthours IS NOT DISTINCT FROM p_treatmenthours + AND lv.treatmentlengthunits IS NOT DISTINCT FROM p_treatmentlengthunits + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.sdid IS NOT DISTINCT FROM p_sdid + AND lv.barrierrouteid IS NOT DISTINCT FROM p_barrierrouteid + AND lv.ulvrouteid IS NOT DISTINCT FROM p_ulvrouteid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.ptaid IS NOT DISTINCT FROM p_ptaid + AND lv.flowrate IS NOT DISTINCT FROM p_flowrate + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.treathectares IS NOT DISTINCT FROM p_treathectares + AND lv.invloc IS NOT DISTINCT FROM p_invloc + AND lv.temp_sitecond IS NOT DISTINCT FROM p_temp_sitecond + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.totalcostprodcut IS NOT DISTINCT FROM p_totalcostprodcut + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.treatment + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.treatment + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.treatment ( + objectid, + organization_id, + + activity, + treatarea, + areaunit, + product, + qty, + qtyunit, + method, + equiptype, + comments, + avetemp, + windspeed, + winddir, + raingauge, + startdatetime, + enddatetime, + insp_id, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + warningoverride, + recordstatus, + zone2, + treatacres, + tirecount, + cbcount, + containercount, + globalid, + treatmentlength, + treatmenthours, + treatmentlengthunits, + linelocid, + pointlocid, + polygonlocid, + srid, + sdid, + barrierrouteid, + ulvrouteid, + fieldtech, + ptaid, + flowrate, + habitat, + treathectares, + invloc, + temp_sitecond, + sitecond, + totalcostprodcut, + creationdate, + creator, + editdate, + editor, + targetspecies, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_activity, + p_treatarea, + p_areaunit, + p_product, + p_qty, + p_qtyunit, + p_method, + p_equiptype, + p_comments, + p_avetemp, + p_windspeed, + p_winddir, + p_raingauge, + p_startdatetime, + p_enddatetime, + p_insp_id, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_warningoverride, + p_recordstatus, + p_zone2, + p_treatacres, + p_tirecount, + p_cbcount, + p_containercount, + p_globalid, + p_treatmentlength, + p_treatmenthours, + p_treatmentlengthunits, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_srid, + p_sdid, + p_barrierrouteid, + p_ulvrouteid, + p_fieldtech, + p_ptaid, + p_flowrate, + p_habitat, + p_treathectares, + p_invloc, + p_temp_sitecond, + p_sitecond, + p_totalcostprodcut, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_targetspecies, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_zones2( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.zones2 lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.zones2 + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.zones2 + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.zones2 ( + objectid, + organization_id, + + name, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_zones( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_active integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.zones lv + WHERE lv.globalid = p_globalid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.zones + WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.zones + WHERE globalid = p_globalid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.zones ( + objectid, + organization_id, + + name, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + active, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_active, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd +-- +goose Down +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_containerrelate( + p_objectid bigint, + p_organization_id INTEGER, + + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_inspsampleid uuid, + p_mosquitoinspid uuid, + p_treatmentid uuid, + p_containertype varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.containerrelate lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.inspsampleid IS NOT DISTINCT FROM p_inspsampleid + AND lv.mosquitoinspid IS NOT DISTINCT FROM p_mosquitoinspid + AND lv.treatmentid IS NOT DISTINCT FROM p_treatmentid + AND lv.containertype IS NOT DISTINCT FROM p_containertype + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.containerrelate + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.containerrelate + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.containerrelate ( + objectid, + organization_id, + + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + inspsampleid, + mosquitoinspid, + treatmentid, + containertype, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_inspsampleid, + p_mosquitoinspid, + p_treatmentid, + p_containertype, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_fieldscoutinglog( + p_objectid bigint, + p_organization_id INTEGER, + + p_status smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.fieldscoutinglog lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.status IS NOT DISTINCT FROM p_status + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.fieldscoutinglog + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.fieldscoutinglog + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.fieldscoutinglog ( + objectid, + organization_id, + + status, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_status, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_habitatrelate( + p_objectid bigint, + p_organization_id INTEGER, + + p_foreign_id uuid, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_habitattype varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.habitatrelate lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.foreign_id IS NOT DISTINCT FROM p_foreign_id + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.habitattype IS NOT DISTINCT FROM p_habitattype + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.habitatrelate + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.habitatrelate + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.habitatrelate ( + objectid, + organization_id, + + foreign_id, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + habitattype, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_foreign_id, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_habitattype, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsampledetail( + p_objectid bigint, + p_organization_id INTEGER, + + p_inspsample_id uuid, + p_fieldspecies varchar, + p_flarvcount smallint, + p_fpupcount smallint, + p_feggcount smallint, + p_flstages varchar, + p_fdomstage varchar, + p_fadultact varchar, + p_labspecies varchar, + p_llarvcount smallint, + p_lpupcount smallint, + p_leggcount smallint, + p_ldomstage varchar, + p_comments varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_processed smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.inspectionsampledetail lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.inspsample_id IS NOT DISTINCT FROM p_inspsample_id + AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies + AND lv.flarvcount IS NOT DISTINCT FROM p_flarvcount + AND lv.fpupcount IS NOT DISTINCT FROM p_fpupcount + AND lv.feggcount IS NOT DISTINCT FROM p_feggcount + AND lv.flstages IS NOT DISTINCT FROM p_flstages + AND lv.fdomstage IS NOT DISTINCT FROM p_fdomstage + AND lv.fadultact IS NOT DISTINCT FROM p_fadultact + AND lv.labspecies IS NOT DISTINCT FROM p_labspecies + AND lv.llarvcount IS NOT DISTINCT FROM p_llarvcount + AND lv.lpupcount IS NOT DISTINCT FROM p_lpupcount + AND lv.leggcount IS NOT DISTINCT FROM p_leggcount + AND lv.ldomstage IS NOT DISTINCT FROM p_ldomstage + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.inspectionsampledetail + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.inspectionsampledetail + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.inspectionsampledetail ( + objectid, + organization_id, + + inspsample_id, + fieldspecies, + flarvcount, + fpupcount, + feggcount, + flstages, + fdomstage, + fadultact, + labspecies, + llarvcount, + lpupcount, + leggcount, + ldomstage, + comments, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + processed, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_inspsample_id, + p_fieldspecies, + p_flarvcount, + p_fpupcount, + p_feggcount, + p_flstages, + p_fdomstage, + p_fadultact, + p_labspecies, + p_llarvcount, + p_lpupcount, + p_leggcount, + p_ldomstage, + p_comments, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_processed, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsample( + p_objectid bigint, + p_organization_id INTEGER, + + p_insp_id uuid, + p_sampleid varchar, + p_processed smallint, + p_idbytech varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.inspectionsample lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.insp_id IS NOT DISTINCT FROM p_insp_id + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.idbytech IS NOT DISTINCT FROM p_idbytech + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.inspectionsample + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.inspectionsample + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.inspectionsample ( + objectid, + organization_id, + + insp_id, + sampleid, + processed, + idbytech, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_insp_id, + p_sampleid, + p_processed, + p_idbytech, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_linelocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_acres double precision, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_length_ft double precision, + p_width_ft double precision, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_hectares double precision, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_length_meters double precision, + p_width_meters double precision, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.linelocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.length_ft IS NOT DISTINCT FROM p_length_ft + AND lv.width_ft IS NOT DISTINCT FROM p_width_ft + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.length_meters IS NOT DISTINCT FROM p_length_meters + AND lv.width_meters IS NOT DISTINCT FROM p_width_meters + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.linelocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.linelocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.linelocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + acres, + nextactiondatescheduled, + larvinspectinterval, + length_ft, + width_ft, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + hectares, + lastinspectactivity, + lasttreatactivity, + length_meters, + width_meters, + lastinspectconditions, + waterorigin, + creationdate, + creator, + editdate, + editor, + jurisdiction, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_acres, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_length_ft, + p_width_ft, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_hectares, + p_lastinspectactivity, + p_lasttreatactivity, + p_length_meters, + p_width_meters, + p_lastinspectconditions, + p_waterorigin, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_locationtracking( + p_objectid bigint, + p_organization_id INTEGER, + + p_accuracy double precision, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_globalid uuid, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.locationtracking lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.accuracy IS NOT DISTINCT FROM p_accuracy + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.locationtracking + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.locationtracking + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.locationtracking ( + objectid, + organization_id, + + accuracy, + created_user, + created_date, + last_edited_user, + last_edited_date, + globalid, + fieldtech, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_accuracy, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_globalid, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_mosquitoinspection( + p_objectid bigint, + p_organization_id INTEGER, + + p_numdips smallint, + p_activity varchar, + p_breeding varchar, + p_totlarvae smallint, + p_totpupae smallint, + p_eggs smallint, + p_posdips smallint, + p_adultact varchar, + p_lstages varchar, + p_domstage varchar, + p_actiontaken varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_raingauge double precision, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_winddir varchar, + p_avglarvae double precision, + p_avgpupae double precision, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_personalcontact smallint, + p_tirecount smallint, + p_cbcount smallint, + p_containercount smallint, + p_fieldspecies varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_srid uuid, + p_fieldtech varchar, + p_larvaepresent smallint, + p_pupaepresent smallint, + p_sdid uuid, + p_sitecond varchar, + p_positivecontainercount smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_visualmonitoring smallint, + p_vmcomments varchar, + p_adminaction varchar, + p_ptaid uuid, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.mosquitoinspection lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.numdips IS NOT DISTINCT FROM p_numdips + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.breeding IS NOT DISTINCT FROM p_breeding + AND lv.totlarvae IS NOT DISTINCT FROM p_totlarvae + AND lv.totpupae IS NOT DISTINCT FROM p_totpupae + AND lv.eggs IS NOT DISTINCT FROM p_eggs + AND lv.posdips IS NOT DISTINCT FROM p_posdips + AND lv.adultact IS NOT DISTINCT FROM p_adultact + AND lv.lstages IS NOT DISTINCT FROM p_lstages + AND lv.domstage IS NOT DISTINCT FROM p_domstage + AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.avglarvae IS NOT DISTINCT FROM p_avglarvae + AND lv.avgpupae IS NOT DISTINCT FROM p_avgpupae + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.personalcontact IS NOT DISTINCT FROM p_personalcontact + AND lv.tirecount IS NOT DISTINCT FROM p_tirecount + AND lv.cbcount IS NOT DISTINCT FROM p_cbcount + AND lv.containercount IS NOT DISTINCT FROM p_containercount + AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent + AND lv.pupaepresent IS NOT DISTINCT FROM p_pupaepresent + AND lv.sdid IS NOT DISTINCT FROM p_sdid + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.positivecontainercount IS NOT DISTINCT FROM p_positivecontainercount + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.visualmonitoring IS NOT DISTINCT FROM p_visualmonitoring + AND lv.vmcomments IS NOT DISTINCT FROM p_vmcomments + AND lv.adminaction IS NOT DISTINCT FROM p_adminaction + AND lv.ptaid IS NOT DISTINCT FROM p_ptaid + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.mosquitoinspection + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.mosquitoinspection + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.mosquitoinspection ( + objectid, + organization_id, + + numdips, + activity, + breeding, + totlarvae, + totpupae, + eggs, + posdips, + adultact, + lstages, + domstage, + actiontaken, + comments, + avetemp, + windspeed, + raingauge, + startdatetime, + enddatetime, + winddir, + avglarvae, + avgpupae, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + personalcontact, + tirecount, + cbcount, + containercount, + fieldspecies, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + linelocid, + pointlocid, + polygonlocid, + srid, + fieldtech, + larvaepresent, + pupaepresent, + sdid, + sitecond, + positivecontainercount, + creationdate, + creator, + editdate, + editor, + jurisdiction, + visualmonitoring, + vmcomments, + adminaction, + ptaid, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_numdips, + p_activity, + p_breeding, + p_totlarvae, + p_totpupae, + p_eggs, + p_posdips, + p_adultact, + p_lstages, + p_domstage, + p_actiontaken, + p_comments, + p_avetemp, + p_windspeed, + p_raingauge, + p_startdatetime, + p_enddatetime, + p_winddir, + p_avglarvae, + p_avgpupae, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_personalcontact, + p_tirecount, + p_cbcount, + p_containercount, + p_fieldspecies, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_srid, + p_fieldtech, + p_larvaepresent, + p_pupaepresent, + p_sdid, + p_sitecond, + p_positivecontainercount, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_visualmonitoring, + p_vmcomments, + p_adminaction, + p_ptaid, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pointlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_stype varchar, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_x double precision, + p_y double precision, + p_assignedtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_deactivate_reason varchar, + p_scalarpriority integer, + p_sourcestatus varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pointlocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.stype IS NOT DISTINCT FROM p_stype + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.x IS NOT DISTINCT FROM p_x + AND lv.y IS NOT DISTINCT FROM p_y + AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.deactivate_reason IS NOT DISTINCT FROM p_deactivate_reason + AND lv.scalarpriority IS NOT DISTINCT FROM p_scalarpriority + AND lv.sourcestatus IS NOT DISTINCT FROM p_sourcestatus + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pointlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pointlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pointlocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + nextactiondatescheduled, + larvinspectinterval, + zone2, + locationnumber, + globalid, + stype, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + lastinspectactivity, + lasttreatactivity, + lastinspectconditions, + waterorigin, + x, + y, + assignedtech, + creationdate, + creator, + editdate, + editor, + jurisdiction, + deactivate_reason, + scalarpriority, + sourcestatus, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_zone2, + p_locationnumber, + p_globalid, + p_stype, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_lastinspectactivity, + p_lasttreatactivity, + p_lastinspectconditions, + p_waterorigin, + p_x, + p_y, + p_assignedtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_deactivate_reason, + p_scalarpriority, + p_sourcestatus, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_polygonlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_acres double precision, + p_nextactiondatescheduled timestamp, + p_larvinspectinterval smallint, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_lastinspectdate timestamp, + p_lastinspectbreeding varchar, + p_lastinspectavglarvae double precision, + p_lastinspectavgpupae double precision, + p_lastinspectlstages varchar, + p_lastinspectactiontaken varchar, + p_lastinspectfieldspecies varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_hectares double precision, + p_lastinspectactivity varchar, + p_lasttreatactivity varchar, + p_lastinspectconditions varchar, + p_waterorigin varchar, + p_filter varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.polygonlocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding + AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae + AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae + AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages + AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken + AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin + AND lv.filter IS NOT DISTINCT FROM p_filter + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.polygonlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.polygonlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.polygonlocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + acres, + nextactiondatescheduled, + larvinspectinterval, + zone2, + locationnumber, + globalid, + lastinspectdate, + lastinspectbreeding, + lastinspectavglarvae, + lastinspectavgpupae, + lastinspectlstages, + lastinspectactiontaken, + lastinspectfieldspecies, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + hectares, + lastinspectactivity, + lasttreatactivity, + lastinspectconditions, + waterorigin, + filter, + creationdate, + creator, + editdate, + editor, + jurisdiction, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_acres, + p_nextactiondatescheduled, + p_larvinspectinterval, + p_zone2, + p_locationnumber, + p_globalid, + p_lastinspectdate, + p_lastinspectbreeding, + p_lastinspectavglarvae, + p_lastinspectavgpupae, + p_lastinspectlstages, + p_lastinspectactiontaken, + p_lastinspectfieldspecies, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_hectares, + p_lastinspectactivity, + p_lasttreatactivity, + p_lastinspectconditions, + p_waterorigin, + p_filter, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pooldetail( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_pool_id uuid, + p_species varchar, + p_females smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pooldetail lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.pool_id IS NOT DISTINCT FROM p_pool_id + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.females IS NOT DISTINCT FROM p_females + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pooldetail + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pooldetail + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pooldetail ( + objectid, + organization_id, + + trapdata_id, + pool_id, + species, + females, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_pool_id, + p_species, + p_females, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_pool( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_datesent timestamp, + p_survtech varchar, + p_datetested timestamp, + p_testtech varchar, + p_comments varchar, + p_sampleid varchar, + p_processed smallint, + p_lab_id uuid, + p_testmethod varchar, + p_diseasetested varchar, + p_diseasepos varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lab varchar, + p_poolyear smallint, + p_gatewaysync smallint, + p_vectorsurvcollectionid varchar, + p_vectorsurvpoolid varchar, + p_vectorsurvtrapdataid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.pool lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.datesent IS NOT DISTINCT FROM p_datesent + AND lv.survtech IS NOT DISTINCT FROM p_survtech + AND lv.datetested IS NOT DISTINCT FROM p_datetested + AND lv.testtech IS NOT DISTINCT FROM p_testtech + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.lab_id IS NOT DISTINCT FROM p_lab_id + AND lv.testmethod IS NOT DISTINCT FROM p_testmethod + AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested + AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lab IS NOT DISTINCT FROM p_lab + AND lv.poolyear IS NOT DISTINCT FROM p_poolyear + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.vectorsurvcollectionid IS NOT DISTINCT FROM p_vectorsurvcollectionid + AND lv.vectorsurvpoolid IS NOT DISTINCT FROM p_vectorsurvpoolid + AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.pool + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.pool + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.pool ( + objectid, + organization_id, + + trapdata_id, + datesent, + survtech, + datetested, + testtech, + comments, + sampleid, + processed, + lab_id, + testmethod, + diseasetested, + diseasepos, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lab, + poolyear, + gatewaysync, + vectorsurvcollectionid, + vectorsurvpoolid, + vectorsurvtrapdataid, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_datesent, + p_survtech, + p_datetested, + p_testtech, + p_comments, + p_sampleid, + p_processed, + p_lab_id, + p_testmethod, + p_diseasetested, + p_diseasepos, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lab, + p_poolyear, + p_gatewaysync, + p_vectorsurvcollectionid, + p_vectorsurvpoolid, + p_vectorsurvtrapdataid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_proposedtreatmentarea( + p_objectid bigint, + p_organization_id INTEGER, + + p_method varchar, + p_comments varchar, + p_zone varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_zone2 varchar, + p_completeddate timestamp, + p_completedby varchar, + p_completed smallint, + p_issprayroute smallint, + p_name varchar, + p_acres double precision, + p_globalid uuid, + p_exported smallint, + p_targetproduct varchar, + p_targetapprate double precision, + p_hectares double precision, + p_lasttreatactivity varchar, + p_lasttreatdate timestamp, + p_lasttreatproduct varchar, + p_lasttreatqty double precision, + p_lasttreatqtyunit varchar, + p_priority varchar, + p_duedate timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_targetspecies varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.proposedtreatmentarea lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.method IS NOT DISTINCT FROM p_method + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.completeddate IS NOT DISTINCT FROM p_completeddate + AND lv.completedby IS NOT DISTINCT FROM p_completedby + AND lv.completed IS NOT DISTINCT FROM p_completed + AND lv.issprayroute IS NOT DISTINCT FROM p_issprayroute + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.acres IS NOT DISTINCT FROM p_acres + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.exported IS NOT DISTINCT FROM p_exported + AND lv.targetproduct IS NOT DISTINCT FROM p_targetproduct + AND lv.targetapprate IS NOT DISTINCT FROM p_targetapprate + AND lv.hectares IS NOT DISTINCT FROM p_hectares + AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct + AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty + AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.duedate IS NOT DISTINCT FROM p_duedate + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.proposedtreatmentarea + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.proposedtreatmentarea + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.proposedtreatmentarea ( + objectid, + organization_id, + + method, + comments, + zone, + reviewed, + reviewedby, + revieweddate, + zone2, + completeddate, + completedby, + completed, + issprayroute, + name, + acres, + globalid, + exported, + targetproduct, + targetapprate, + hectares, + lasttreatactivity, + lasttreatdate, + lasttreatproduct, + lasttreatqty, + lasttreatqtyunit, + priority, + duedate, + creationdate, + creator, + editdate, + editor, + targetspecies, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_method, + p_comments, + p_zone, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_zone2, + p_completeddate, + p_completedby, + p_completed, + p_issprayroute, + p_name, + p_acres, + p_globalid, + p_exported, + p_targetproduct, + p_targetapprate, + p_hectares, + p_lasttreatactivity, + p_lasttreatdate, + p_lasttreatproduct, + p_lasttreatqty, + p_lasttreatqtyunit, + p_priority, + p_duedate, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_targetspecies, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_qamosquitoinspection( + p_objectid bigint, + p_organization_id INTEGER, + + p_posdips smallint, + p_actiontaken varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_raingauge double precision, + p_globalid uuid, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_winddir varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_lr smallint, + p_negdips smallint, + p_totalacres double precision, + p_acresbreeding double precision, + p_fish smallint, + p_sitetype varchar, + p_breedingpotential varchar, + p_movingwater smallint, + p_nowaterever smallint, + p_mosquitohabitat varchar, + p_habvalue1 smallint, + p_habvalue1percent smallint, + p_habvalue2 smallint, + p_habvalue2percent smallint, + p_potential smallint, + p_larvaepresent smallint, + p_larvaeinsidetreatedarea smallint, + p_larvaeoutsidetreatedarea smallint, + p_larvaereason varchar, + p_aquaticorganisms varchar, + p_vegetation varchar, + p_sourcereduction varchar, + p_waterpresent smallint, + p_watermovement1 varchar, + p_watermovement1percent smallint, + p_watermovement2 varchar, + p_watermovement2percent smallint, + p_soilconditions varchar, + p_waterduration varchar, + p_watersource varchar, + p_waterconditions varchar, + p_adultactivity smallint, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.qamosquitoinspection lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.posdips IS NOT DISTINCT FROM p_posdips + AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.lr IS NOT DISTINCT FROM p_lr + AND lv.negdips IS NOT DISTINCT FROM p_negdips + AND lv.totalacres IS NOT DISTINCT FROM p_totalacres + AND lv.acresbreeding IS NOT DISTINCT FROM p_acresbreeding + AND lv.fish IS NOT DISTINCT FROM p_fish + AND lv.sitetype IS NOT DISTINCT FROM p_sitetype + AND lv.breedingpotential IS NOT DISTINCT FROM p_breedingpotential + AND lv.movingwater IS NOT DISTINCT FROM p_movingwater + AND lv.nowaterever IS NOT DISTINCT FROM p_nowaterever + AND lv.mosquitohabitat IS NOT DISTINCT FROM p_mosquitohabitat + AND lv.habvalue1 IS NOT DISTINCT FROM p_habvalue1 + AND lv.habvalue1percent IS NOT DISTINCT FROM p_habvalue1percent + AND lv.habvalue2 IS NOT DISTINCT FROM p_habvalue2 + AND lv.habvalue2percent IS NOT DISTINCT FROM p_habvalue2percent + AND lv.potential IS NOT DISTINCT FROM p_potential + AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent + AND lv.larvaeinsidetreatedarea IS NOT DISTINCT FROM p_larvaeinsidetreatedarea + AND lv.larvaeoutsidetreatedarea IS NOT DISTINCT FROM p_larvaeoutsidetreatedarea + AND lv.larvaereason IS NOT DISTINCT FROM p_larvaereason + AND lv.aquaticorganisms IS NOT DISTINCT FROM p_aquaticorganisms + AND lv.vegetation IS NOT DISTINCT FROM p_vegetation + AND lv.sourcereduction IS NOT DISTINCT FROM p_sourcereduction + AND lv.waterpresent IS NOT DISTINCT FROM p_waterpresent + AND lv.watermovement1 IS NOT DISTINCT FROM p_watermovement1 + AND lv.watermovement1percent IS NOT DISTINCT FROM p_watermovement1percent + AND lv.watermovement2 IS NOT DISTINCT FROM p_watermovement2 + AND lv.watermovement2percent IS NOT DISTINCT FROM p_watermovement2percent + AND lv.soilconditions IS NOT DISTINCT FROM p_soilconditions + AND lv.waterduration IS NOT DISTINCT FROM p_waterduration + AND lv.watersource IS NOT DISTINCT FROM p_watersource + AND lv.waterconditions IS NOT DISTINCT FROM p_waterconditions + AND lv.adultactivity IS NOT DISTINCT FROM p_adultactivity + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.qamosquitoinspection + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.qamosquitoinspection + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.qamosquitoinspection ( + objectid, + organization_id, + + posdips, + actiontaken, + comments, + avetemp, + windspeed, + raingauge, + globalid, + startdatetime, + enddatetime, + winddir, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + lr, + negdips, + totalacres, + acresbreeding, + fish, + sitetype, + breedingpotential, + movingwater, + nowaterever, + mosquitohabitat, + habvalue1, + habvalue1percent, + habvalue2, + habvalue2percent, + potential, + larvaepresent, + larvaeinsidetreatedarea, + larvaeoutsidetreatedarea, + larvaereason, + aquaticorganisms, + vegetation, + sourcereduction, + waterpresent, + watermovement1, + watermovement1percent, + watermovement2, + watermovement2percent, + soilconditions, + waterduration, + watersource, + waterconditions, + adultactivity, + linelocid, + pointlocid, + polygonlocid, + created_user, + created_date, + last_edited_user, + last_edited_date, + fieldtech, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_posdips, + p_actiontaken, + p_comments, + p_avetemp, + p_windspeed, + p_raingauge, + p_globalid, + p_startdatetime, + p_enddatetime, + p_winddir, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_lr, + p_negdips, + p_totalacres, + p_acresbreeding, + p_fish, + p_sitetype, + p_breedingpotential, + p_movingwater, + p_nowaterever, + p_mosquitohabitat, + p_habvalue1, + p_habvalue1percent, + p_habvalue2, + p_habvalue2percent, + p_potential, + p_larvaepresent, + p_larvaeinsidetreatedarea, + p_larvaeoutsidetreatedarea, + p_larvaereason, + p_aquaticorganisms, + p_vegetation, + p_sourcereduction, + p_waterpresent, + p_watermovement1, + p_watermovement1percent, + p_watermovement2, + p_watermovement2percent, + p_soilconditions, + p_waterduration, + p_watersource, + p_waterconditions, + p_adultactivity, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_rodentlocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_locationname varchar, + p_zone varchar, + p_zone2 varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_symbology varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_locationnumber integer, + p_lastinspectdate timestamp, + p_lastinspectspecies varchar, + p_lastinspectaction varchar, + p_lastinspectconditions varchar, + p_lastinspectrodentevidence varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_jurisdiction varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.rodentlocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate + AND lv.lastinspectspecies IS NOT DISTINCT FROM p_lastinspectspecies + AND lv.lastinspectaction IS NOT DISTINCT FROM p_lastinspectaction + AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions + AND lv.lastinspectrodentevidence IS NOT DISTINCT FROM p_lastinspectrodentevidence + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.rodentlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.rodentlocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.rodentlocation ( + objectid, + organization_id, + + locationname, + zone, + zone2, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + symbology, + externalid, + nextactiondatescheduled, + locationnumber, + lastinspectdate, + lastinspectspecies, + lastinspectaction, + lastinspectconditions, + lastinspectrodentevidence, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + jurisdiction, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_locationname, + p_zone, + p_zone2, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_symbology, + p_externalid, + p_nextactiondatescheduled, + p_locationnumber, + p_lastinspectdate, + p_lastinspectspecies, + p_lastinspectaction, + p_lastinspectconditions, + p_lastinspectrodentevidence, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_jurisdiction, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_samplecollection( + p_objectid bigint, + p_organization_id INTEGER, + + p_loc_id uuid, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_sitecond varchar, + p_sampleid varchar, + p_survtech varchar, + p_datesent timestamp, + p_datetested timestamp, + p_testtech varchar, + p_comments varchar, + p_processed smallint, + p_sampletype varchar, + p_samplecond varchar, + p_species varchar, + p_sex varchar, + p_avetemp double precision, + p_windspeed double precision, + p_winddir varchar, + p_raingauge double precision, + p_activity varchar, + p_testmethod varchar, + p_diseasetested varchar, + p_diseasepos varchar, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_recordstatus smallint, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_lab varchar, + p_fieldtech varchar, + p_flockid uuid, + p_samplecount smallint, + p_chickenid uuid, + p_gatewaysync smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.samplecollection lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.loc_id IS NOT DISTINCT FROM p_loc_id + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.sampleid IS NOT DISTINCT FROM p_sampleid + AND lv.survtech IS NOT DISTINCT FROM p_survtech + AND lv.datesent IS NOT DISTINCT FROM p_datesent + AND lv.datetested IS NOT DISTINCT FROM p_datetested + AND lv.testtech IS NOT DISTINCT FROM p_testtech + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.sampletype IS NOT DISTINCT FROM p_sampletype + AND lv.samplecond IS NOT DISTINCT FROM p_samplecond + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.sex IS NOT DISTINCT FROM p_sex + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.testmethod IS NOT DISTINCT FROM p_testmethod + AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested + AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.lab IS NOT DISTINCT FROM p_lab + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.flockid IS NOT DISTINCT FROM p_flockid + AND lv.samplecount IS NOT DISTINCT FROM p_samplecount + AND lv.chickenid IS NOT DISTINCT FROM p_chickenid + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.samplecollection + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.samplecollection + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.samplecollection ( + objectid, + organization_id, + + loc_id, + startdatetime, + enddatetime, + sitecond, + sampleid, + survtech, + datesent, + datetested, + testtech, + comments, + processed, + sampletype, + samplecond, + species, + sex, + avetemp, + windspeed, + winddir, + raingauge, + activity, + testmethod, + diseasetested, + diseasepos, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + recordstatus, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + lab, + fieldtech, + flockid, + samplecount, + chickenid, + gatewaysync, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_loc_id, + p_startdatetime, + p_enddatetime, + p_sitecond, + p_sampleid, + p_survtech, + p_datesent, + p_datetested, + p_testtech, + p_comments, + p_processed, + p_sampletype, + p_samplecond, + p_species, + p_sex, + p_avetemp, + p_windspeed, + p_winddir, + p_raingauge, + p_activity, + p_testmethod, + p_diseasetested, + p_diseasepos, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_recordstatus, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_lab, + p_fieldtech, + p_flockid, + p_samplecount, + p_chickenid, + p_gatewaysync, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_samplelocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_gatewaysync smallint, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.samplelocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.samplelocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.samplelocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.samplelocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + externalid, + nextactiondatescheduled, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + gatewaysync, + creationdate, + creator, + editdate, + editor, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_externalid, + p_nextactiondatescheduled, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_gatewaysync, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_servicerequest( + p_objectid bigint, + p_organization_id INTEGER, + + p_recdatetime timestamp, + p_source varchar, + p_entrytech varchar, + p_priority varchar, + p_supervisor varchar, + p_assignedtech varchar, + p_status varchar, + p_clranon smallint, + p_clrfname varchar, + p_clrphone1 varchar, + p_clrphone2 varchar, + p_clremail varchar, + p_clrcompany varchar, + p_clraddr1 varchar, + p_clraddr2 varchar, + p_clrcity varchar, + p_clrstate varchar, + p_clrzip varchar, + p_clrother varchar, + p_clrcontpref varchar, + p_reqcompany varchar, + p_reqaddr1 varchar, + p_reqaddr2 varchar, + p_reqcity varchar, + p_reqstate varchar, + p_reqzip varchar, + p_reqcrossst varchar, + p_reqsubdiv varchar, + p_reqmapgrid varchar, + p_reqpermission smallint, + p_reqtarget varchar, + p_reqdescr varchar, + p_reqnotesfortech varchar, + p_reqnotesforcust varchar, + p_reqfldnotes varchar, + p_reqprogramactions varchar, + p_datetimeclosed timestamp, + p_techclosed varchar, + p_sr_number integer, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_accepted smallint, + p_accepteddate timestamp, + p_rejectedby varchar, + p_rejecteddate timestamp, + p_rejectedreason varchar, + p_duedate timestamp, + p_acceptedby varchar, + p_comments varchar, + p_estcompletedate timestamp, + p_nextaction varchar, + p_recordstatus smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_firstresponsedate timestamp, + p_responsedaycount smallint, + p_allowed varchar, + p_xvalue varchar, + p_yvalue varchar, + p_validx varchar, + p_validy varchar, + p_externalid varchar, + p_externalerror varchar, + p_pointlocid uuid, + p_notified smallint, + p_notifieddate timestamp, + p_scheduled smallint, + p_scheduleddate timestamp, + p_dog integer, + p_schedule_period varchar, + p_schedule_notes varchar, + p_spanish integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_issuesreported varchar, + p_jurisdiction varchar, + p_notificationtimestamp varchar, + p_zone varchar, + p_zone2 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.servicerequest lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.recdatetime IS NOT DISTINCT FROM p_recdatetime + AND lv.source IS NOT DISTINCT FROM p_source + AND lv.entrytech IS NOT DISTINCT FROM p_entrytech + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.supervisor IS NOT DISTINCT FROM p_supervisor + AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech + AND lv.status IS NOT DISTINCT FROM p_status + AND lv.clranon IS NOT DISTINCT FROM p_clranon + AND lv.clrfname IS NOT DISTINCT FROM p_clrfname + AND lv.clrphone1 IS NOT DISTINCT FROM p_clrphone1 + AND lv.clrphone2 IS NOT DISTINCT FROM p_clrphone2 + AND lv.clremail IS NOT DISTINCT FROM p_clremail + AND lv.clrcompany IS NOT DISTINCT FROM p_clrcompany + AND lv.clraddr1 IS NOT DISTINCT FROM p_clraddr1 + AND lv.clraddr2 IS NOT DISTINCT FROM p_clraddr2 + AND lv.clrcity IS NOT DISTINCT FROM p_clrcity + AND lv.clrstate IS NOT DISTINCT FROM p_clrstate + AND lv.clrzip IS NOT DISTINCT FROM p_clrzip + AND lv.clrother IS NOT DISTINCT FROM p_clrother + AND lv.clrcontpref IS NOT DISTINCT FROM p_clrcontpref + AND lv.reqcompany IS NOT DISTINCT FROM p_reqcompany + AND lv.reqaddr1 IS NOT DISTINCT FROM p_reqaddr1 + AND lv.reqaddr2 IS NOT DISTINCT FROM p_reqaddr2 + AND lv.reqcity IS NOT DISTINCT FROM p_reqcity + AND lv.reqstate IS NOT DISTINCT FROM p_reqstate + AND lv.reqzip IS NOT DISTINCT FROM p_reqzip + AND lv.reqcrossst IS NOT DISTINCT FROM p_reqcrossst + AND lv.reqsubdiv IS NOT DISTINCT FROM p_reqsubdiv + AND lv.reqmapgrid IS NOT DISTINCT FROM p_reqmapgrid + AND lv.reqpermission IS NOT DISTINCT FROM p_reqpermission + AND lv.reqtarget IS NOT DISTINCT FROM p_reqtarget + AND lv.reqdescr IS NOT DISTINCT FROM p_reqdescr + AND lv.reqnotesfortech IS NOT DISTINCT FROM p_reqnotesfortech + AND lv.reqnotesforcust IS NOT DISTINCT FROM p_reqnotesforcust + AND lv.reqfldnotes IS NOT DISTINCT FROM p_reqfldnotes + AND lv.reqprogramactions IS NOT DISTINCT FROM p_reqprogramactions + AND lv.datetimeclosed IS NOT DISTINCT FROM p_datetimeclosed + AND lv.techclosed IS NOT DISTINCT FROM p_techclosed + AND lv.sr_number IS NOT DISTINCT FROM p_sr_number + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.accepted IS NOT DISTINCT FROM p_accepted + AND lv.accepteddate IS NOT DISTINCT FROM p_accepteddate + AND lv.rejectedby IS NOT DISTINCT FROM p_rejectedby + AND lv.rejecteddate IS NOT DISTINCT FROM p_rejecteddate + AND lv.rejectedreason IS NOT DISTINCT FROM p_rejectedreason + AND lv.duedate IS NOT DISTINCT FROM p_duedate + AND lv.acceptedby IS NOT DISTINCT FROM p_acceptedby + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.estcompletedate IS NOT DISTINCT FROM p_estcompletedate + AND lv.nextaction IS NOT DISTINCT FROM p_nextaction + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.firstresponsedate IS NOT DISTINCT FROM p_firstresponsedate + AND lv.responsedaycount IS NOT DISTINCT FROM p_responsedaycount + AND lv.allowed IS NOT DISTINCT FROM p_allowed + AND lv.xvalue IS NOT DISTINCT FROM p_xvalue + AND lv.yvalue IS NOT DISTINCT FROM p_yvalue + AND lv.validx IS NOT DISTINCT FROM p_validx + AND lv.validy IS NOT DISTINCT FROM p_validy + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.externalerror IS NOT DISTINCT FROM p_externalerror + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.notified IS NOT DISTINCT FROM p_notified + AND lv.notifieddate IS NOT DISTINCT FROM p_notifieddate + AND lv.scheduled IS NOT DISTINCT FROM p_scheduled + AND lv.scheduleddate IS NOT DISTINCT FROM p_scheduleddate + AND lv.dog IS NOT DISTINCT FROM p_dog + AND lv.schedule_period IS NOT DISTINCT FROM p_schedule_period + AND lv.schedule_notes IS NOT DISTINCT FROM p_schedule_notes + AND lv.spanish IS NOT DISTINCT FROM p_spanish + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.issuesreported IS NOT DISTINCT FROM p_issuesreported + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.notificationtimestamp IS NOT DISTINCT FROM p_notificationtimestamp + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.servicerequest + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.servicerequest + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.servicerequest ( + objectid, + organization_id, + + recdatetime, + source, + entrytech, + priority, + supervisor, + assignedtech, + status, + clranon, + clrfname, + clrphone1, + clrphone2, + clremail, + clrcompany, + clraddr1, + clraddr2, + clrcity, + clrstate, + clrzip, + clrother, + clrcontpref, + reqcompany, + reqaddr1, + reqaddr2, + reqcity, + reqstate, + reqzip, + reqcrossst, + reqsubdiv, + reqmapgrid, + reqpermission, + reqtarget, + reqdescr, + reqnotesfortech, + reqnotesforcust, + reqfldnotes, + reqprogramactions, + datetimeclosed, + techclosed, + sr_number, + reviewed, + reviewedby, + revieweddate, + accepted, + accepteddate, + rejectedby, + rejecteddate, + rejectedreason, + duedate, + acceptedby, + comments, + estcompletedate, + nextaction, + recordstatus, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + firstresponsedate, + responsedaycount, + allowed, + xvalue, + yvalue, + validx, + validy, + externalid, + externalerror, + pointlocid, + notified, + notifieddate, + scheduled, + scheduleddate, + dog, + schedule_period, + schedule_notes, + spanish, + creationdate, + creator, + editdate, + editor, + issuesreported, + jurisdiction, + notificationtimestamp, + zone, + zone2, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_recdatetime, + p_source, + p_entrytech, + p_priority, + p_supervisor, + p_assignedtech, + p_status, + p_clranon, + p_clrfname, + p_clrphone1, + p_clrphone2, + p_clremail, + p_clrcompany, + p_clraddr1, + p_clraddr2, + p_clrcity, + p_clrstate, + p_clrzip, + p_clrother, + p_clrcontpref, + p_reqcompany, + p_reqaddr1, + p_reqaddr2, + p_reqcity, + p_reqstate, + p_reqzip, + p_reqcrossst, + p_reqsubdiv, + p_reqmapgrid, + p_reqpermission, + p_reqtarget, + p_reqdescr, + p_reqnotesfortech, + p_reqnotesforcust, + p_reqfldnotes, + p_reqprogramactions, + p_datetimeclosed, + p_techclosed, + p_sr_number, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_accepted, + p_accepteddate, + p_rejectedby, + p_rejecteddate, + p_rejectedreason, + p_duedate, + p_acceptedby, + p_comments, + p_estcompletedate, + p_nextaction, + p_recordstatus, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_firstresponsedate, + p_responsedaycount, + p_allowed, + p_xvalue, + p_yvalue, + p_validx, + p_validy, + p_externalid, + p_externalerror, + p_pointlocid, + p_notified, + p_notifieddate, + p_scheduled, + p_scheduleddate, + p_dog, + p_schedule_period, + p_schedule_notes, + p_spanish, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_issuesreported, + p_jurisdiction, + p_notificationtimestamp, + p_zone, + p_zone2, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_speciesabundance( + p_objectid bigint, + p_organization_id INTEGER, + + p_trapdata_id uuid, + p_species varchar, + p_males smallint, + p_unknown smallint, + p_bloodedfem smallint, + p_gravidfem smallint, + p_larvae smallint, + p_poolstogen smallint, + p_processed smallint, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_pupae smallint, + p_eggs smallint, + p_females integer, + p_total integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_yearweek integer, + p_globalzscore double precision, + p_r7score double precision, + p_r8score double precision, + p_h3r7 varchar, + p_h3r8 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.speciesabundance lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id + AND lv.species IS NOT DISTINCT FROM p_species + AND lv.males IS NOT DISTINCT FROM p_males + AND lv.unknown IS NOT DISTINCT FROM p_unknown + AND lv.bloodedfem IS NOT DISTINCT FROM p_bloodedfem + AND lv.gravidfem IS NOT DISTINCT FROM p_gravidfem + AND lv.larvae IS NOT DISTINCT FROM p_larvae + AND lv.poolstogen IS NOT DISTINCT FROM p_poolstogen + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.pupae IS NOT DISTINCT FROM p_pupae + AND lv.eggs IS NOT DISTINCT FROM p_eggs + AND lv.females IS NOT DISTINCT FROM p_females + AND lv.total IS NOT DISTINCT FROM p_total + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.yearweek IS NOT DISTINCT FROM p_yearweek + AND lv.globalzscore IS NOT DISTINCT FROM p_globalzscore + AND lv.r7score IS NOT DISTINCT FROM p_r7score + AND lv.r8score IS NOT DISTINCT FROM p_r8score + AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 + AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.speciesabundance + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.speciesabundance + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.speciesabundance ( + objectid, + organization_id, + + trapdata_id, + species, + males, + unknown, + bloodedfem, + gravidfem, + larvae, + poolstogen, + processed, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + pupae, + eggs, + females, + total, + creationdate, + creator, + editdate, + editor, + yearweek, + globalzscore, + r7score, + r8score, + h3r7, + h3r8, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_trapdata_id, + p_species, + p_males, + p_unknown, + p_bloodedfem, + p_gravidfem, + p_larvae, + p_poolstogen, + p_processed, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_pupae, + p_eggs, + p_females, + p_total, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_yearweek, + p_globalzscore, + p_r7score, + p_r8score, + p_h3r7, + p_h3r8, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_stormdrain( + p_objectid bigint, + p_organization_id INTEGER, + + p_nexttreatmentdate timestamp, + p_lasttreatdate timestamp, + p_lastaction varchar, + p_symbology varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_laststatus varchar, + p_zone varchar, + p_zone2 varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_type varchar, + p_jurisdiction varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.stormdrain lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.nexttreatmentdate IS NOT DISTINCT FROM p_nexttreatmentdate + AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate + AND lv.lastaction IS NOT DISTINCT FROM p_lastaction + AND lv.symbology IS NOT DISTINCT FROM p_symbology + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.laststatus IS NOT DISTINCT FROM p_laststatus + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.type IS NOT DISTINCT FROM p_type + AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.stormdrain + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.stormdrain + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.stormdrain ( + objectid, + organization_id, + + nexttreatmentdate, + lasttreatdate, + lastaction, + symbology, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + laststatus, + zone, + zone2, + creationdate, + creator, + editdate, + editor, + type, + jurisdiction, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_nexttreatmentdate, + p_lasttreatdate, + p_lastaction, + p_symbology, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_laststatus, + p_zone, + p_zone2, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_type, + p_jurisdiction, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_timecard( + p_objectid bigint, + p_organization_id INTEGER, + + p_activity varchar, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_comments varchar, + p_externalid varchar, + p_equiptype varchar, + p_locationname varchar, + p_zone varchar, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_lclocid uuid, + p_samplelocid uuid, + p_srid uuid, + p_traplocid uuid, + p_fieldtech varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_rodentlocid uuid, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.timecard lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.equiptype IS NOT DISTINCT FROM p_equiptype + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.lclocid IS NOT DISTINCT FROM p_lclocid + AND lv.samplelocid IS NOT DISTINCT FROM p_samplelocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.traplocid IS NOT DISTINCT FROM p_traplocid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.rodentlocid IS NOT DISTINCT FROM p_rodentlocid + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.timecard + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.timecard + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.timecard ( + objectid, + organization_id, + + activity, + startdatetime, + enddatetime, + comments, + externalid, + equiptype, + locationname, + zone, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + linelocid, + pointlocid, + polygonlocid, + lclocid, + samplelocid, + srid, + traplocid, + fieldtech, + creationdate, + creator, + editdate, + editor, + rodentlocid, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_activity, + p_startdatetime, + p_enddatetime, + p_comments, + p_externalid, + p_equiptype, + p_locationname, + p_zone, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_lclocid, + p_samplelocid, + p_srid, + p_traplocid, + p_fieldtech, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_rodentlocid, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_trapdata( + p_objectid bigint, + p_organization_id INTEGER, + + p_traptype varchar, + p_trapactivitytype varchar, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_comments varchar, + p_idbytech varchar, + p_sortbytech varchar, + p_processed smallint, + p_sitecond varchar, + p_locationname varchar, + p_recordstatus smallint, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_trapcondition varchar, + p_trapnights smallint, + p_zone varchar, + p_zone2 varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_srid uuid, + p_fieldtech varchar, + p_gatewaysync smallint, + p_loc_id uuid, + p_voltage double precision, + p_winddir varchar, + p_windspeed double precision, + p_avetemp double precision, + p_raingauge double precision, + p_lr smallint, + p_field integer, + p_vectorsurvtrapdataid varchar, + p_vectorsurvtraplocationid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_lure varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.trapdata lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.traptype IS NOT DISTINCT FROM p_traptype + AND lv.trapactivitytype IS NOT DISTINCT FROM p_trapactivitytype + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.idbytech IS NOT DISTINCT FROM p_idbytech + AND lv.sortbytech IS NOT DISTINCT FROM p_sortbytech + AND lv.processed IS NOT DISTINCT FROM p_processed + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.trapcondition IS NOT DISTINCT FROM p_trapcondition + AND lv.trapnights IS NOT DISTINCT FROM p_trapnights + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.loc_id IS NOT DISTINCT FROM p_loc_id + AND lv.voltage IS NOT DISTINCT FROM p_voltage + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.lr IS NOT DISTINCT FROM p_lr + AND lv.field IS NOT DISTINCT FROM p_field + AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid + AND lv.vectorsurvtraplocationid IS NOT DISTINCT FROM p_vectorsurvtraplocationid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.lure IS NOT DISTINCT FROM p_lure + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.trapdata + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.trapdata + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.trapdata ( + objectid, + organization_id, + + traptype, + trapactivitytype, + startdatetime, + enddatetime, + comments, + idbytech, + sortbytech, + processed, + sitecond, + locationname, + recordstatus, + reviewed, + reviewedby, + revieweddate, + trapcondition, + trapnights, + zone, + zone2, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + srid, + fieldtech, + gatewaysync, + loc_id, + voltage, + winddir, + windspeed, + avetemp, + raingauge, + lr, + field, + vectorsurvtrapdataid, + vectorsurvtraplocationid, + creationdate, + creator, + editdate, + editor, + lure, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_traptype, + p_trapactivitytype, + p_startdatetime, + p_enddatetime, + p_comments, + p_idbytech, + p_sortbytech, + p_processed, + p_sitecond, + p_locationname, + p_recordstatus, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_trapcondition, + p_trapnights, + p_zone, + p_zone2, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_srid, + p_fieldtech, + p_gatewaysync, + p_loc_id, + p_voltage, + p_winddir, + p_windspeed, + p_avetemp, + p_raingauge, + p_lr, + p_field, + p_vectorsurvtrapdataid, + p_vectorsurvtraplocationid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_lure, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_traplocation( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_zone varchar, + p_habitat varchar, + p_priority varchar, + p_usetype varchar, + p_active smallint, + p_description varchar, + p_accessdesc varchar, + p_comments varchar, + p_externalid varchar, + p_nextactiondatescheduled timestamp, + p_zone2 varchar, + p_locationnumber integer, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_gatewaysync smallint, + p_route integer, + p_set_dow integer, + p_route_order integer, + p_vectorsurvsiteid varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_h3r7 varchar, + p_h3r8 varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.traplocation lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.priority IS NOT DISTINCT FROM p_priority + AND lv.usetype IS NOT DISTINCT FROM p_usetype + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.description IS NOT DISTINCT FROM p_description + AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.externalid IS NOT DISTINCT FROM p_externalid + AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync + AND lv.route IS NOT DISTINCT FROM p_route + AND lv.set_dow IS NOT DISTINCT FROM p_set_dow + AND lv.route_order IS NOT DISTINCT FROM p_route_order + AND lv.vectorsurvsiteid IS NOT DISTINCT FROM p_vectorsurvsiteid + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 + AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.traplocation + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.traplocation + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.traplocation ( + objectid, + organization_id, + + name, + zone, + habitat, + priority, + usetype, + active, + description, + accessdesc, + comments, + externalid, + nextactiondatescheduled, + zone2, + locationnumber, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + gatewaysync, + route, + set_dow, + route_order, + vectorsurvsiteid, + creationdate, + creator, + editdate, + editor, + h3r7, + h3r8, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_zone, + p_habitat, + p_priority, + p_usetype, + p_active, + p_description, + p_accessdesc, + p_comments, + p_externalid, + p_nextactiondatescheduled, + p_zone2, + p_locationnumber, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_gatewaysync, + p_route, + p_set_dow, + p_route_order, + p_vectorsurvsiteid, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_h3r7, + p_h3r8, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_treatmentarea( + p_objectid bigint, + p_organization_id INTEGER, + + p_treat_id uuid, + p_session_id uuid, + p_treatdate timestamp, + p_comments varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_notified smallint, + p_type varchar, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.treatmentarea lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.treat_id IS NOT DISTINCT FROM p_treat_id + AND lv.session_id IS NOT DISTINCT FROM p_session_id + AND lv.treatdate IS NOT DISTINCT FROM p_treatdate + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.notified IS NOT DISTINCT FROM p_notified + AND lv.type IS NOT DISTINCT FROM p_type + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.treatmentarea + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.treatmentarea + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.treatmentarea ( + objectid, + organization_id, + + treat_id, + session_id, + treatdate, + comments, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + notified, + type, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_treat_id, + p_session_id, + p_treatdate, + p_comments, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_notified, + p_type, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_treatment( + p_objectid bigint, + p_organization_id INTEGER, + + p_activity varchar, + p_treatarea double precision, + p_areaunit varchar, + p_product varchar, + p_qty double precision, + p_qtyunit varchar, + p_method varchar, + p_equiptype varchar, + p_comments varchar, + p_avetemp double precision, + p_windspeed double precision, + p_winddir varchar, + p_raingauge double precision, + p_startdatetime timestamp, + p_enddatetime timestamp, + p_insp_id uuid, + p_reviewed smallint, + p_reviewedby varchar, + p_revieweddate timestamp, + p_locationname varchar, + p_zone varchar, + p_warningoverride smallint, + p_recordstatus smallint, + p_zone2 varchar, + p_treatacres double precision, + p_tirecount smallint, + p_cbcount smallint, + p_containercount smallint, + p_globalid uuid, + p_treatmentlength double precision, + p_treatmenthours double precision, + p_treatmentlengthunits varchar, + p_linelocid uuid, + p_pointlocid uuid, + p_polygonlocid uuid, + p_srid uuid, + p_sdid uuid, + p_barrierrouteid uuid, + p_ulvrouteid uuid, + p_fieldtech varchar, + p_ptaid uuid, + p_flowrate double precision, + p_habitat varchar, + p_treathectares double precision, + p_invloc varchar, + p_temp_sitecond varchar, + p_sitecond varchar, + p_totalcostprodcut double precision, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_targetspecies varchar, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.treatment lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.activity IS NOT DISTINCT FROM p_activity + AND lv.treatarea IS NOT DISTINCT FROM p_treatarea + AND lv.areaunit IS NOT DISTINCT FROM p_areaunit + AND lv.product IS NOT DISTINCT FROM p_product + AND lv.qty IS NOT DISTINCT FROM p_qty + AND lv.qtyunit IS NOT DISTINCT FROM p_qtyunit + AND lv.method IS NOT DISTINCT FROM p_method + AND lv.equiptype IS NOT DISTINCT FROM p_equiptype + AND lv.comments IS NOT DISTINCT FROM p_comments + AND lv.avetemp IS NOT DISTINCT FROM p_avetemp + AND lv.windspeed IS NOT DISTINCT FROM p_windspeed + AND lv.winddir IS NOT DISTINCT FROM p_winddir + AND lv.raingauge IS NOT DISTINCT FROM p_raingauge + AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime + AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime + AND lv.insp_id IS NOT DISTINCT FROM p_insp_id + AND lv.reviewed IS NOT DISTINCT FROM p_reviewed + AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby + AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate + AND lv.locationname IS NOT DISTINCT FROM p_locationname + AND lv.zone IS NOT DISTINCT FROM p_zone + AND lv.warningoverride IS NOT DISTINCT FROM p_warningoverride + AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus + AND lv.zone2 IS NOT DISTINCT FROM p_zone2 + AND lv.treatacres IS NOT DISTINCT FROM p_treatacres + AND lv.tirecount IS NOT DISTINCT FROM p_tirecount + AND lv.cbcount IS NOT DISTINCT FROM p_cbcount + AND lv.containercount IS NOT DISTINCT FROM p_containercount + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.treatmentlength IS NOT DISTINCT FROM p_treatmentlength + AND lv.treatmenthours IS NOT DISTINCT FROM p_treatmenthours + AND lv.treatmentlengthunits IS NOT DISTINCT FROM p_treatmentlengthunits + AND lv.linelocid IS NOT DISTINCT FROM p_linelocid + AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid + AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid + AND lv.srid IS NOT DISTINCT FROM p_srid + AND lv.sdid IS NOT DISTINCT FROM p_sdid + AND lv.barrierrouteid IS NOT DISTINCT FROM p_barrierrouteid + AND lv.ulvrouteid IS NOT DISTINCT FROM p_ulvrouteid + AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech + AND lv.ptaid IS NOT DISTINCT FROM p_ptaid + AND lv.flowrate IS NOT DISTINCT FROM p_flowrate + AND lv.habitat IS NOT DISTINCT FROM p_habitat + AND lv.treathectares IS NOT DISTINCT FROM p_treathectares + AND lv.invloc IS NOT DISTINCT FROM p_invloc + AND lv.temp_sitecond IS NOT DISTINCT FROM p_temp_sitecond + AND lv.sitecond IS NOT DISTINCT FROM p_sitecond + AND lv.totalcostprodcut IS NOT DISTINCT FROM p_totalcostprodcut + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.treatment + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.treatment + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.treatment ( + objectid, + organization_id, + + activity, + treatarea, + areaunit, + product, + qty, + qtyunit, + method, + equiptype, + comments, + avetemp, + windspeed, + winddir, + raingauge, + startdatetime, + enddatetime, + insp_id, + reviewed, + reviewedby, + revieweddate, + locationname, + zone, + warningoverride, + recordstatus, + zone2, + treatacres, + tirecount, + cbcount, + containercount, + globalid, + treatmentlength, + treatmenthours, + treatmentlengthunits, + linelocid, + pointlocid, + polygonlocid, + srid, + sdid, + barrierrouteid, + ulvrouteid, + fieldtech, + ptaid, + flowrate, + habitat, + treathectares, + invloc, + temp_sitecond, + sitecond, + totalcostprodcut, + creationdate, + creator, + editdate, + editor, + targetspecies, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_activity, + p_treatarea, + p_areaunit, + p_product, + p_qty, + p_qtyunit, + p_method, + p_equiptype, + p_comments, + p_avetemp, + p_windspeed, + p_winddir, + p_raingauge, + p_startdatetime, + p_enddatetime, + p_insp_id, + p_reviewed, + p_reviewedby, + p_revieweddate, + p_locationname, + p_zone, + p_warningoverride, + p_recordstatus, + p_zone2, + p_treatacres, + p_tirecount, + p_cbcount, + p_containercount, + p_globalid, + p_treatmentlength, + p_treatmenthours, + p_treatmentlengthunits, + p_linelocid, + p_pointlocid, + p_polygonlocid, + p_srid, + p_sdid, + p_barrierrouteid, + p_ulvrouteid, + p_fieldtech, + p_ptaid, + p_flowrate, + p_habitat, + p_treathectares, + p_invloc, + p_temp_sitecond, + p_sitecond, + p_totalcostprodcut, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_targetspecies, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_zones2( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.zones2 lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.zones2 + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.zones2 + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.zones2 ( + objectid, + organization_id, + + name, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd + +-- +goose StatementBegin +CREATE OR REPLACE FUNCTION fieldseeker.insert_zones( + p_objectid bigint, + p_organization_id INTEGER, + + p_name varchar, + p_globalid uuid, + p_created_user varchar, + p_created_date timestamp, + p_last_edited_user varchar, + p_last_edited_date timestamp, + p_active integer, + p_creationdate timestamp, + p_creator varchar, + p_editdate timestamp, + p_editor varchar, + p_shape__area double precision, + p_shape__length double precision, + p_geometry jsonb, + p_geospatial geometry +) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ +DECLARE + v_next_version integer; + v_changes_exist boolean; +BEGIN + -- Check if changes exist + SELECT NOT EXISTS ( + SELECT 1 FROM fieldseeker.zones lv + WHERE lv.objectid = p_objectid + AND lv.organization_id = p_organization_id + + AND lv.name IS NOT DISTINCT FROM p_name + AND lv.globalid IS NOT DISTINCT FROM p_globalid + AND lv.created_user IS NOT DISTINCT FROM p_created_user + AND lv.created_date IS NOT DISTINCT FROM p_created_date + AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user + AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date + AND lv.active IS NOT DISTINCT FROM p_active + AND lv.creationdate IS NOT DISTINCT FROM p_creationdate + AND lv.creator IS NOT DISTINCT FROM p_creator + AND lv.editdate IS NOT DISTINCT FROM p_editdate + AND lv.editor IS NOT DISTINCT FROM p_editor + AND lv.shape__area IS NOT DISTINCT FROM p_shape__area + AND lv.shape__length IS NOT DISTINCT FROM p_shape__length + AND lv.geometry IS NOT DISTINCT FROM p_geometry + AND lv.geospatial IS NOT DISTINCT FROM p_geospatial + ORDER BY VERSION DESC LIMIT 1 + ) INTO v_changes_exist; + + -- If no changes, return false with current version + IF NOT v_changes_exist THEN + RETURN QUERY + SELECT + FALSE AS row_inserted, + (SELECT VERSION FROM fieldseeker.zones + WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; + RETURN; + END IF; + + -- Calculate next version + SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version + FROM fieldseeker.zones + WHERE objectid = p_objectid AND organization_id = p_organization_id; + + -- Insert new version + INSERT INTO fieldseeker.zones ( + objectid, + organization_id, + + name, + globalid, + created_user, + created_date, + last_edited_user, + last_edited_date, + active, + creationdate, + creator, + editdate, + editor, + shape__area, + shape__length, + geometry, + geospatial, + VERSION + ) VALUES ( + p_objectid, + p_organization_id, + + p_name, + p_globalid, + p_created_user, + p_created_date, + p_last_edited_user, + p_last_edited_date, + p_active, + p_creationdate, + p_creator, + p_editdate, + p_editor, + p_shape__area, + p_shape__length, + p_geometry, + p_geospatial, + v_next_version + ); + + -- Return success with new version + RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; +END; +$$ LANGUAGE plpgsql; +-- +goose StatementEnd diff --git a/db/models/fieldseeker.containerrelate.bob.go b/db/models/fieldseeker.containerrelate.bob.go index a389eab6..434c2320 100644 --- a/db/models/fieldseeker.containerrelate.bob.go +++ b/db/models/fieldseeker.containerrelate.bob.go @@ -29,9 +29,9 @@ import ( // FieldseekerContainerrelate is an object representing the database table. type FieldseekerContainerrelate struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -141,8 +141,8 @@ func (fieldseekerContainerrelateColumns) AliasedAs(alias string) fieldseekerCont // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerContainerrelateSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Objectid omit.Val[int64] `db:"objectid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -534,25 +534,25 @@ func (s FieldseekerContainerrelateSetter) Expressions(prefix ...string) []bob.Ex // FindFieldseekerContainerrelate retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerContainerrelate(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerContainerrelate, error) { +func FindFieldseekerContainerrelate(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerContainerrelate, error) { if len(cols) == 0 { return FieldseekerContainerrelates.Query( - sm.Where(FieldseekerContainerrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerContainerrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerContainerrelates.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerContainerrelates.Query( - sm.Where(FieldseekerContainerrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerContainerrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerContainerrelates.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerContainerrelates.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerContainerrelateExists checks the presence of a single record by primary key -func FieldseekerContainerrelateExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerContainerrelateExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerContainerrelates.Query( - sm.Where(FieldseekerContainerrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerContainerrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerContainerrelates.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -578,13 +578,13 @@ func (o *FieldseekerContainerrelate) AfterQueryHook(ctx context.Context, exec bo // primaryKeyVals returns the primary key values of the FieldseekerContainerrelate func (o *FieldseekerContainerrelate) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerContainerrelate) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.containerrelate", "objectid"), psql.Quote("fieldseeker.containerrelate", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.containerrelate", "globalid"), psql.Quote("fieldseeker.containerrelate", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -611,7 +611,7 @@ func (o *FieldseekerContainerrelate) Delete(ctx context.Context, exec bob.Execut // Reload refreshes the FieldseekerContainerrelate using the executor func (o *FieldseekerContainerrelate) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerContainerrelates.Query( - sm.Where(FieldseekerContainerrelates.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerContainerrelates.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerContainerrelates.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -646,7 +646,7 @@ func (o FieldseekerContainerrelateSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.containerrelate", "objectid"), psql.Quote("fieldseeker.containerrelate", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.containerrelate", "globalid"), psql.Quote("fieldseeker.containerrelate", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -661,7 +661,7 @@ func (o FieldseekerContainerrelateSlice) pkIN() dialect.Expression { func (o FieldseekerContainerrelateSlice) copyMatchingRows(from ...*FieldseekerContainerrelate) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.fieldscoutinglog.bob.go b/db/models/fieldseeker.fieldscoutinglog.bob.go index 70fe9565..3d88e8fd 100644 --- a/db/models/fieldseeker.fieldscoutinglog.bob.go +++ b/db/models/fieldseeker.fieldscoutinglog.bob.go @@ -29,11 +29,11 @@ import ( // FieldseekerFieldscoutinglog is an object representing the database table. type FieldseekerFieldscoutinglog struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is STATUS Status null.Val[int16] `db:"status" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -129,9 +129,9 @@ func (fieldseekerFieldscoutinglogColumns) AliasedAs(alias string) fieldseekerFie // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerFieldscoutinglogSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Status omitnull.Val[int16] `db:"status" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -462,25 +462,25 @@ func (s FieldseekerFieldscoutinglogSetter) Expressions(prefix ...string) []bob.E // FindFieldseekerFieldscoutinglog retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerFieldscoutinglog(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerFieldscoutinglog, error) { +func FindFieldseekerFieldscoutinglog(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerFieldscoutinglog, error) { if len(cols) == 0 { return FieldseekerFieldscoutinglogs.Query( - sm.Where(FieldseekerFieldscoutinglogs.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerFieldscoutinglogs.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerFieldscoutinglogs.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerFieldscoutinglogs.Query( - sm.Where(FieldseekerFieldscoutinglogs.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerFieldscoutinglogs.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerFieldscoutinglogs.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerFieldscoutinglogs.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerFieldscoutinglogExists checks the presence of a single record by primary key -func FieldseekerFieldscoutinglogExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerFieldscoutinglogExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerFieldscoutinglogs.Query( - sm.Where(FieldseekerFieldscoutinglogs.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerFieldscoutinglogs.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerFieldscoutinglogs.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -506,13 +506,13 @@ func (o *FieldseekerFieldscoutinglog) AfterQueryHook(ctx context.Context, exec b // primaryKeyVals returns the primary key values of the FieldseekerFieldscoutinglog func (o *FieldseekerFieldscoutinglog) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerFieldscoutinglog) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.fieldscoutinglog", "objectid"), psql.Quote("fieldseeker.fieldscoutinglog", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.fieldscoutinglog", "globalid"), psql.Quote("fieldseeker.fieldscoutinglog", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -539,7 +539,7 @@ func (o *FieldseekerFieldscoutinglog) Delete(ctx context.Context, exec bob.Execu // Reload refreshes the FieldseekerFieldscoutinglog using the executor func (o *FieldseekerFieldscoutinglog) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerFieldscoutinglogs.Query( - sm.Where(FieldseekerFieldscoutinglogs.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerFieldscoutinglogs.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerFieldscoutinglogs.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -574,7 +574,7 @@ func (o FieldseekerFieldscoutinglogSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.fieldscoutinglog", "objectid"), psql.Quote("fieldseeker.fieldscoutinglog", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.fieldscoutinglog", "globalid"), psql.Quote("fieldseeker.fieldscoutinglog", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -589,7 +589,7 @@ func (o FieldseekerFieldscoutinglogSlice) pkIN() dialect.Expression { func (o FieldseekerFieldscoutinglogSlice) copyMatchingRows(from ...*FieldseekerFieldscoutinglog) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.habitatrelate.bob.go b/db/models/fieldseeker.habitatrelate.bob.go index ed70d92f..f78468e3 100644 --- a/db/models/fieldseeker.habitatrelate.bob.go +++ b/db/models/fieldseeker.habitatrelate.bob.go @@ -29,11 +29,11 @@ import ( // FieldseekerHabitatrelate is an object representing the database table. type FieldseekerHabitatrelate struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is FOREIGN_ID ForeignID null.Val[uuid.UUID] `db:"foreign_id" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -133,9 +133,9 @@ func (fieldseekerHabitatrelateColumns) AliasedAs(alias string) fieldseekerHabita // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerHabitatrelateSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` ForeignID omitnull.Val[uuid.UUID] `db:"foreign_id" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -486,25 +486,25 @@ func (s FieldseekerHabitatrelateSetter) Expressions(prefix ...string) []bob.Expr // FindFieldseekerHabitatrelate retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerHabitatrelate(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerHabitatrelate, error) { +func FindFieldseekerHabitatrelate(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerHabitatrelate, error) { if len(cols) == 0 { return FieldseekerHabitatrelates.Query( - sm.Where(FieldseekerHabitatrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerHabitatrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerHabitatrelates.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerHabitatrelates.Query( - sm.Where(FieldseekerHabitatrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerHabitatrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerHabitatrelates.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerHabitatrelates.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerHabitatrelateExists checks the presence of a single record by primary key -func FieldseekerHabitatrelateExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerHabitatrelateExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerHabitatrelates.Query( - sm.Where(FieldseekerHabitatrelates.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerHabitatrelates.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerHabitatrelates.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -530,13 +530,13 @@ func (o *FieldseekerHabitatrelate) AfterQueryHook(ctx context.Context, exec bob. // primaryKeyVals returns the primary key values of the FieldseekerHabitatrelate func (o *FieldseekerHabitatrelate) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerHabitatrelate) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.habitatrelate", "objectid"), psql.Quote("fieldseeker.habitatrelate", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.habitatrelate", "globalid"), psql.Quote("fieldseeker.habitatrelate", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -563,7 +563,7 @@ func (o *FieldseekerHabitatrelate) Delete(ctx context.Context, exec bob.Executor // Reload refreshes the FieldseekerHabitatrelate using the executor func (o *FieldseekerHabitatrelate) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerHabitatrelates.Query( - sm.Where(FieldseekerHabitatrelates.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerHabitatrelates.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerHabitatrelates.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -598,7 +598,7 @@ func (o FieldseekerHabitatrelateSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.habitatrelate", "objectid"), psql.Quote("fieldseeker.habitatrelate", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.habitatrelate", "globalid"), psql.Quote("fieldseeker.habitatrelate", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -613,7 +613,7 @@ func (o FieldseekerHabitatrelateSlice) pkIN() dialect.Expression { func (o FieldseekerHabitatrelateSlice) copyMatchingRows(from ...*FieldseekerHabitatrelate) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.inspectionsample.bob.go b/db/models/fieldseeker.inspectionsample.bob.go index 715c0af6..16fd4908 100644 --- a/db/models/fieldseeker.inspectionsample.bob.go +++ b/db/models/fieldseeker.inspectionsample.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerInspectionsample is an object representing the database table. type FieldseekerInspectionsample struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is INSP_ID InspID null.Val[uuid.UUID] `db:"insp_id" ` // Original attribute from ArcGIS API is SAMPLEID @@ -39,7 +39,7 @@ type FieldseekerInspectionsample struct { // Original attribute from ArcGIS API is IDBYTECH Idbytech null.Val[string] `db:"idbytech" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -141,12 +141,12 @@ func (fieldseekerInspectionsampleColumns) AliasedAs(alias string) fieldseekerIns // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerInspectionsampleSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` InspID omitnull.Val[uuid.UUID] `db:"insp_id" ` Sampleid omitnull.Val[string] `db:"sampleid" ` Processed omitnull.Val[int16] `db:"processed" ` Idbytech omitnull.Val[string] `db:"idbytech" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -534,25 +534,25 @@ func (s FieldseekerInspectionsampleSetter) Expressions(prefix ...string) []bob.E // FindFieldseekerInspectionsample retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerInspectionsample(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerInspectionsample, error) { +func FindFieldseekerInspectionsample(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerInspectionsample, error) { if len(cols) == 0 { return FieldseekerInspectionsamples.Query( - sm.Where(FieldseekerInspectionsamples.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsamples.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsamples.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerInspectionsamples.Query( - sm.Where(FieldseekerInspectionsamples.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsamples.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsamples.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerInspectionsamples.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerInspectionsampleExists checks the presence of a single record by primary key -func FieldseekerInspectionsampleExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerInspectionsampleExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerInspectionsamples.Query( - sm.Where(FieldseekerInspectionsamples.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsamples.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsamples.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -578,13 +578,13 @@ func (o *FieldseekerInspectionsample) AfterQueryHook(ctx context.Context, exec b // primaryKeyVals returns the primary key values of the FieldseekerInspectionsample func (o *FieldseekerInspectionsample) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerInspectionsample) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.inspectionsample", "objectid"), psql.Quote("fieldseeker.inspectionsample", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.inspectionsample", "globalid"), psql.Quote("fieldseeker.inspectionsample", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -611,7 +611,7 @@ func (o *FieldseekerInspectionsample) Delete(ctx context.Context, exec bob.Execu // Reload refreshes the FieldseekerInspectionsample using the executor func (o *FieldseekerInspectionsample) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerInspectionsamples.Query( - sm.Where(FieldseekerInspectionsamples.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerInspectionsamples.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerInspectionsamples.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -646,7 +646,7 @@ func (o FieldseekerInspectionsampleSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.inspectionsample", "objectid"), psql.Quote("fieldseeker.inspectionsample", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.inspectionsample", "globalid"), psql.Quote("fieldseeker.inspectionsample", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -661,7 +661,7 @@ func (o FieldseekerInspectionsampleSlice) pkIN() dialect.Expression { func (o FieldseekerInspectionsampleSlice) copyMatchingRows(from ...*FieldseekerInspectionsample) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.inspectionsampledetail.bob.go b/db/models/fieldseeker.inspectionsampledetail.bob.go index 0db5f1c8..de4bebc5 100644 --- a/db/models/fieldseeker.inspectionsampledetail.bob.go +++ b/db/models/fieldseeker.inspectionsampledetail.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerInspectionsampledetail is an object representing the database table. type FieldseekerInspectionsampledetail struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is INSPSAMPLE_ID InspsampleID null.Val[uuid.UUID] `db:"inspsample_id" ` // Original attribute from ArcGIS API is FIELDSPECIES @@ -59,7 +59,7 @@ type FieldseekerInspectionsampledetail struct { // Original attribute from ArcGIS API is COMMENTS Comments null.Val[string] `db:"comments" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -185,7 +185,7 @@ func (fieldseekerInspectionsampledetailColumns) AliasedAs(alias string) fieldsee // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerInspectionsampledetailSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` InspsampleID omitnull.Val[uuid.UUID] `db:"inspsample_id" ` Fieldspecies omitnull.Val[string] `db:"fieldspecies" ` Flarvcount omitnull.Val[int16] `db:"flarvcount" ` @@ -200,7 +200,7 @@ type FieldseekerInspectionsampledetailSetter struct { Leggcount omitnull.Val[int16] `db:"leggcount" ` Ldomstage omitnull.Val[string] `db:"ldomstage" ` Comments omitnull.Val[string] `db:"comments" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -798,25 +798,25 @@ func (s FieldseekerInspectionsampledetailSetter) Expressions(prefix ...string) [ // FindFieldseekerInspectionsampledetail retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerInspectionsampledetail(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerInspectionsampledetail, error) { +func FindFieldseekerInspectionsampledetail(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerInspectionsampledetail, error) { if len(cols) == 0 { return FieldseekerInspectionsampledetails.Query( - sm.Where(FieldseekerInspectionsampledetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsampledetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsampledetails.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerInspectionsampledetails.Query( - sm.Where(FieldseekerInspectionsampledetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsampledetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsampledetails.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerInspectionsampledetails.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerInspectionsampledetailExists checks the presence of a single record by primary key -func FieldseekerInspectionsampledetailExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerInspectionsampledetailExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerInspectionsampledetails.Query( - sm.Where(FieldseekerInspectionsampledetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerInspectionsampledetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerInspectionsampledetails.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -842,13 +842,13 @@ func (o *FieldseekerInspectionsampledetail) AfterQueryHook(ctx context.Context, // primaryKeyVals returns the primary key values of the FieldseekerInspectionsampledetail func (o *FieldseekerInspectionsampledetail) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerInspectionsampledetail) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.inspectionsampledetail", "objectid"), psql.Quote("fieldseeker.inspectionsampledetail", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.inspectionsampledetail", "globalid"), psql.Quote("fieldseeker.inspectionsampledetail", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -875,7 +875,7 @@ func (o *FieldseekerInspectionsampledetail) Delete(ctx context.Context, exec bob // Reload refreshes the FieldseekerInspectionsampledetail using the executor func (o *FieldseekerInspectionsampledetail) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerInspectionsampledetails.Query( - sm.Where(FieldseekerInspectionsampledetails.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerInspectionsampledetails.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerInspectionsampledetails.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -910,7 +910,7 @@ func (o FieldseekerInspectionsampledetailSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.inspectionsampledetail", "objectid"), psql.Quote("fieldseeker.inspectionsampledetail", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.inspectionsampledetail", "globalid"), psql.Quote("fieldseeker.inspectionsampledetail", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -925,7 +925,7 @@ func (o FieldseekerInspectionsampledetailSlice) pkIN() dialect.Expression { func (o FieldseekerInspectionsampledetailSlice) copyMatchingRows(from ...*FieldseekerInspectionsampledetail) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.linelocation.bob.go b/db/models/fieldseeker.linelocation.bob.go index 57c1c18d..9cafe385 100644 --- a/db/models/fieldseeker.linelocation.bob.go +++ b/db/models/fieldseeker.linelocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerLinelocation is an object representing the database table. type FieldseekerLinelocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE @@ -67,7 +67,7 @@ type FieldseekerLinelocation struct { // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -277,7 +277,7 @@ func (fieldseekerLinelocationColumns) AliasedAs(alias string) fieldseekerLineloc // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerLinelocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` @@ -296,7 +296,7 @@ type FieldseekerLinelocationSetter struct { WidthFT omitnull.Val[float64] `db:"width_ft" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -1350,25 +1350,25 @@ func (s FieldseekerLinelocationSetter) Expressions(prefix ...string) []bob.Expre // FindFieldseekerLinelocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerLinelocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerLinelocation, error) { +func FindFieldseekerLinelocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerLinelocation, error) { if len(cols) == 0 { return FieldseekerLinelocations.Query( - sm.Where(FieldseekerLinelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLinelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLinelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerLinelocations.Query( - sm.Where(FieldseekerLinelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLinelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLinelocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerLinelocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerLinelocationExists checks the presence of a single record by primary key -func FieldseekerLinelocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerLinelocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerLinelocations.Query( - sm.Where(FieldseekerLinelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLinelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLinelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1394,13 +1394,13 @@ func (o *FieldseekerLinelocation) AfterQueryHook(ctx context.Context, exec bob.E // primaryKeyVals returns the primary key values of the FieldseekerLinelocation func (o *FieldseekerLinelocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerLinelocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.linelocation", "objectid"), psql.Quote("fieldseeker.linelocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.linelocation", "globalid"), psql.Quote("fieldseeker.linelocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1427,7 +1427,7 @@ func (o *FieldseekerLinelocation) Delete(ctx context.Context, exec bob.Executor) // Reload refreshes the FieldseekerLinelocation using the executor func (o *FieldseekerLinelocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerLinelocations.Query( - sm.Where(FieldseekerLinelocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerLinelocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerLinelocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1462,7 +1462,7 @@ func (o FieldseekerLinelocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.linelocation", "objectid"), psql.Quote("fieldseeker.linelocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.linelocation", "globalid"), psql.Quote("fieldseeker.linelocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1477,7 +1477,7 @@ func (o FieldseekerLinelocationSlice) pkIN() dialect.Expression { func (o FieldseekerLinelocationSlice) copyMatchingRows(from ...*FieldseekerLinelocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.locationtracking.bob.go b/db/models/fieldseeker.locationtracking.bob.go index c2690cb0..da97a897 100644 --- a/db/models/fieldseeker.locationtracking.bob.go +++ b/db/models/fieldseeker.locationtracking.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerLocationtracking is an object representing the database table. type FieldseekerLocationtracking struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is Accuracy Accuracy null.Val[float64] `db:"accuracy" ` // Original attribute from ArcGIS API is created_user @@ -41,7 +41,7 @@ type FieldseekerLocationtracking struct { // Original attribute from ArcGIS API is last_edited_date LastEditedDate null.Val[time.Time] `db:"last_edited_date" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is FIELDTECH Fieldtech null.Val[string] `db:"fieldtech" ` // Original attribute from ArcGIS API is CreationDate @@ -133,13 +133,13 @@ func (fieldseekerLocationtrackingColumns) AliasedAs(alias string) fieldseekerLoc // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerLocationtrackingSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Accuracy omitnull.Val[float64] `db:"accuracy" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` LastEditedDate omitnull.Val[time.Time] `db:"last_edited_date" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Fieldtech omitnull.Val[string] `db:"fieldtech" ` Creationdate omitnull.Val[time.Time] `db:"creationdate" ` Creator omitnull.Val[string] `db:"creator" ` @@ -486,25 +486,25 @@ func (s FieldseekerLocationtrackingSetter) Expressions(prefix ...string) []bob.E // FindFieldseekerLocationtracking retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerLocationtracking(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerLocationtracking, error) { +func FindFieldseekerLocationtracking(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerLocationtracking, error) { if len(cols) == 0 { return FieldseekerLocationtrackings.Query( - sm.Where(FieldseekerLocationtrackings.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLocationtrackings.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLocationtrackings.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerLocationtrackings.Query( - sm.Where(FieldseekerLocationtrackings.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLocationtrackings.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLocationtrackings.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerLocationtrackings.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerLocationtrackingExists checks the presence of a single record by primary key -func FieldseekerLocationtrackingExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerLocationtrackingExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerLocationtrackings.Query( - sm.Where(FieldseekerLocationtrackings.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerLocationtrackings.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerLocationtrackings.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -530,13 +530,13 @@ func (o *FieldseekerLocationtracking) AfterQueryHook(ctx context.Context, exec b // primaryKeyVals returns the primary key values of the FieldseekerLocationtracking func (o *FieldseekerLocationtracking) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerLocationtracking) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.locationtracking", "objectid"), psql.Quote("fieldseeker.locationtracking", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.locationtracking", "globalid"), psql.Quote("fieldseeker.locationtracking", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -563,7 +563,7 @@ func (o *FieldseekerLocationtracking) Delete(ctx context.Context, exec bob.Execu // Reload refreshes the FieldseekerLocationtracking using the executor func (o *FieldseekerLocationtracking) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerLocationtrackings.Query( - sm.Where(FieldseekerLocationtrackings.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerLocationtrackings.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerLocationtrackings.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -598,7 +598,7 @@ func (o FieldseekerLocationtrackingSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.locationtracking", "objectid"), psql.Quote("fieldseeker.locationtracking", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.locationtracking", "globalid"), psql.Quote("fieldseeker.locationtracking", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -613,7 +613,7 @@ func (o FieldseekerLocationtrackingSlice) pkIN() dialect.Expression { func (o FieldseekerLocationtrackingSlice) copyMatchingRows(from ...*FieldseekerLocationtracking) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.mosquitoinspection.bob.go b/db/models/fieldseeker.mosquitoinspection.bob.go index 545af94a..85baa2b7 100644 --- a/db/models/fieldseeker.mosquitoinspection.bob.go +++ b/db/models/fieldseeker.mosquitoinspection.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerMosquitoinspection is an object representing the database table. type FieldseekerMosquitoinspection struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NUMDIPS Numdips null.Val[int16] `db:"numdips" ` // Original attribute from ArcGIS API is ACTIVITY @@ -95,7 +95,7 @@ type FieldseekerMosquitoinspection struct { // Original attribute from ArcGIS API is FIELDSPECIES Fieldspecies null.Val[string] `db:"fieldspecies" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -313,7 +313,7 @@ func (fieldseekerMosquitoinspectionColumns) AliasedAs(alias string) fieldseekerM // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerMosquitoinspectionSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Numdips omitnull.Val[int16] `db:"numdips" ` Activity omitnull.Val[string] `db:"activity" ` Breeding omitnull.Val[string] `db:"breeding" ` @@ -346,7 +346,7 @@ type FieldseekerMosquitoinspectionSetter struct { Cbcount omitnull.Val[int16] `db:"cbcount" ` Containercount omitnull.Val[int16] `db:"containercount" ` Fieldspecies omitnull.Val[string] `db:"fieldspecies" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -1566,25 +1566,25 @@ func (s FieldseekerMosquitoinspectionSetter) Expressions(prefix ...string) []bob // FindFieldseekerMosquitoinspection retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerMosquitoinspection(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerMosquitoinspection, error) { +func FindFieldseekerMosquitoinspection(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerMosquitoinspection, error) { if len(cols) == 0 { return FieldseekerMosquitoinspections.Query( - sm.Where(FieldseekerMosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerMosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerMosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerMosquitoinspections.Query( - sm.Where(FieldseekerMosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerMosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerMosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerMosquitoinspections.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerMosquitoinspectionExists checks the presence of a single record by primary key -func FieldseekerMosquitoinspectionExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerMosquitoinspectionExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerMosquitoinspections.Query( - sm.Where(FieldseekerMosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerMosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerMosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1610,13 +1610,13 @@ func (o *FieldseekerMosquitoinspection) AfterQueryHook(ctx context.Context, exec // primaryKeyVals returns the primary key values of the FieldseekerMosquitoinspection func (o *FieldseekerMosquitoinspection) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerMosquitoinspection) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.mosquitoinspection", "objectid"), psql.Quote("fieldseeker.mosquitoinspection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.mosquitoinspection", "globalid"), psql.Quote("fieldseeker.mosquitoinspection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1643,7 +1643,7 @@ func (o *FieldseekerMosquitoinspection) Delete(ctx context.Context, exec bob.Exe // Reload refreshes the FieldseekerMosquitoinspection using the executor func (o *FieldseekerMosquitoinspection) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerMosquitoinspections.Query( - sm.Where(FieldseekerMosquitoinspections.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerMosquitoinspections.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerMosquitoinspections.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1678,7 +1678,7 @@ func (o FieldseekerMosquitoinspectionSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.mosquitoinspection", "objectid"), psql.Quote("fieldseeker.mosquitoinspection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.mosquitoinspection", "globalid"), psql.Quote("fieldseeker.mosquitoinspection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1693,7 +1693,7 @@ func (o FieldseekerMosquitoinspectionSlice) pkIN() dialect.Expression { func (o FieldseekerMosquitoinspectionSlice) copyMatchingRows(from ...*FieldseekerMosquitoinspection) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.pointlocation.bob.go b/db/models/fieldseeker.pointlocation.bob.go index 7aa99cdb..4a879030 100644 --- a/db/models/fieldseeker.pointlocation.bob.go +++ b/db/models/fieldseeker.pointlocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerPointlocation is an object representing the database table. type FieldseekerPointlocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE @@ -61,7 +61,7 @@ type FieldseekerPointlocation struct { // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is STYPE Stype null.Val[string] `db:"stype" ` // Original attribute from ArcGIS API is LASTINSPECTDATE @@ -264,7 +264,7 @@ func (fieldseekerPointlocationColumns) AliasedAs(alias string) fieldseekerPointl // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerPointlocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` @@ -280,7 +280,7 @@ type FieldseekerPointlocationSetter struct { Larvinspectinterval omitnull.Val[int16] `db:"larvinspectinterval" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Stype omitnull.Val[string] `db:"stype" ` Lastinspectdate omitnull.Val[time.Time] `db:"lastinspectdate" ` Lastinspectbreeding omitnull.Val[string] `db:"lastinspectbreeding" ` @@ -1257,25 +1257,25 @@ func (s FieldseekerPointlocationSetter) Expressions(prefix ...string) []bob.Expr // FindFieldseekerPointlocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerPointlocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerPointlocation, error) { +func FindFieldseekerPointlocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerPointlocation, error) { if len(cols) == 0 { return FieldseekerPointlocations.Query( - sm.Where(FieldseekerPointlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPointlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPointlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerPointlocations.Query( - sm.Where(FieldseekerPointlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPointlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPointlocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerPointlocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerPointlocationExists checks the presence of a single record by primary key -func FieldseekerPointlocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerPointlocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerPointlocations.Query( - sm.Where(FieldseekerPointlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPointlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPointlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1301,13 +1301,13 @@ func (o *FieldseekerPointlocation) AfterQueryHook(ctx context.Context, exec bob. // primaryKeyVals returns the primary key values of the FieldseekerPointlocation func (o *FieldseekerPointlocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerPointlocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.pointlocation", "objectid"), psql.Quote("fieldseeker.pointlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pointlocation", "globalid"), psql.Quote("fieldseeker.pointlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1334,7 +1334,7 @@ func (o *FieldseekerPointlocation) Delete(ctx context.Context, exec bob.Executor // Reload refreshes the FieldseekerPointlocation using the executor func (o *FieldseekerPointlocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerPointlocations.Query( - sm.Where(FieldseekerPointlocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerPointlocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerPointlocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1369,7 +1369,7 @@ func (o FieldseekerPointlocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.pointlocation", "objectid"), psql.Quote("fieldseeker.pointlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pointlocation", "globalid"), psql.Quote("fieldseeker.pointlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1384,7 +1384,7 @@ func (o FieldseekerPointlocationSlice) pkIN() dialect.Expression { func (o FieldseekerPointlocationSlice) copyMatchingRows(from ...*FieldseekerPointlocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.polygonlocation.bob.go b/db/models/fieldseeker.polygonlocation.bob.go index 5f19de16..2e65aa46 100644 --- a/db/models/fieldseeker.polygonlocation.bob.go +++ b/db/models/fieldseeker.polygonlocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerPolygonlocation is an object representing the database table. type FieldseekerPolygonlocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE @@ -63,7 +63,7 @@ type FieldseekerPolygonlocation struct { // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is LASTINSPECTDATE Lastinspectdate null.Val[time.Time] `db:"lastinspectdate" ` // Original attribute from ArcGIS API is LASTINSPECTBREEDING @@ -253,7 +253,7 @@ func (fieldseekerPolygonlocationColumns) AliasedAs(alias string) fieldseekerPoly // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerPolygonlocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` @@ -270,7 +270,7 @@ type FieldseekerPolygonlocationSetter struct { Larvinspectinterval omitnull.Val[int16] `db:"larvinspectinterval" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Lastinspectdate omitnull.Val[time.Time] `db:"lastinspectdate" ` Lastinspectbreeding omitnull.Val[string] `db:"lastinspectbreeding" ` Lastinspectavglarvae omitnull.Val[float64] `db:"lastinspectavglarvae" ` @@ -1206,25 +1206,25 @@ func (s FieldseekerPolygonlocationSetter) Expressions(prefix ...string) []bob.Ex // FindFieldseekerPolygonlocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerPolygonlocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerPolygonlocation, error) { +func FindFieldseekerPolygonlocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerPolygonlocation, error) { if len(cols) == 0 { return FieldseekerPolygonlocations.Query( - sm.Where(FieldseekerPolygonlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPolygonlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPolygonlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerPolygonlocations.Query( - sm.Where(FieldseekerPolygonlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPolygonlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPolygonlocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerPolygonlocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerPolygonlocationExists checks the presence of a single record by primary key -func FieldseekerPolygonlocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerPolygonlocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerPolygonlocations.Query( - sm.Where(FieldseekerPolygonlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPolygonlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPolygonlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1250,13 +1250,13 @@ func (o *FieldseekerPolygonlocation) AfterQueryHook(ctx context.Context, exec bo // primaryKeyVals returns the primary key values of the FieldseekerPolygonlocation func (o *FieldseekerPolygonlocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerPolygonlocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.polygonlocation", "objectid"), psql.Quote("fieldseeker.polygonlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.polygonlocation", "globalid"), psql.Quote("fieldseeker.polygonlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1283,7 +1283,7 @@ func (o *FieldseekerPolygonlocation) Delete(ctx context.Context, exec bob.Execut // Reload refreshes the FieldseekerPolygonlocation using the executor func (o *FieldseekerPolygonlocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerPolygonlocations.Query( - sm.Where(FieldseekerPolygonlocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerPolygonlocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerPolygonlocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1318,7 +1318,7 @@ func (o FieldseekerPolygonlocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.polygonlocation", "objectid"), psql.Quote("fieldseeker.polygonlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.polygonlocation", "globalid"), psql.Quote("fieldseeker.polygonlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1333,7 +1333,7 @@ func (o FieldseekerPolygonlocationSlice) pkIN() dialect.Expression { func (o FieldseekerPolygonlocationSlice) copyMatchingRows(from ...*FieldseekerPolygonlocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.pool.bob.go b/db/models/fieldseeker.pool.bob.go index a20eea7d..c204b6c0 100644 --- a/db/models/fieldseeker.pool.bob.go +++ b/db/models/fieldseeker.pool.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerPool is an object representing the database table. type FieldseekerPool struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is TRAPDATA_ID TrapdataID null.Val[uuid.UUID] `db:"trapdata_id" ` // Original attribute from ArcGIS API is DATESENT @@ -55,7 +55,7 @@ type FieldseekerPool struct { // Original attribute from ArcGIS API is DISEASEPOS Diseasepos null.Val[string] `db:"diseasepos" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -197,7 +197,7 @@ func (fieldseekerPoolColumns) AliasedAs(alias string) fieldseekerPoolColumns { // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerPoolSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` TrapdataID omitnull.Val[uuid.UUID] `db:"trapdata_id" ` Datesent omitnull.Val[time.Time] `db:"datesent" ` Survtech omitnull.Val[string] `db:"survtech" ` @@ -210,7 +210,7 @@ type FieldseekerPoolSetter struct { Testmethod omitnull.Val[string] `db:"testmethod" ` Diseasetested omitnull.Val[string] `db:"diseasetested" ` Diseasepos omitnull.Val[string] `db:"diseasepos" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -870,25 +870,25 @@ func (s FieldseekerPoolSetter) Expressions(prefix ...string) []bob.Expression { // FindFieldseekerPool retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerPool(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerPool, error) { +func FindFieldseekerPool(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerPool, error) { if len(cols) == 0 { return FieldseekerPools.Query( - sm.Where(FieldseekerPools.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPools.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPools.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerPools.Query( - sm.Where(FieldseekerPools.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPools.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPools.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerPools.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerPoolExists checks the presence of a single record by primary key -func FieldseekerPoolExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerPoolExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerPools.Query( - sm.Where(FieldseekerPools.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPools.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPools.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -914,13 +914,13 @@ func (o *FieldseekerPool) AfterQueryHook(ctx context.Context, exec bob.Executor, // primaryKeyVals returns the primary key values of the FieldseekerPool func (o *FieldseekerPool) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerPool) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.pool", "objectid"), psql.Quote("fieldseeker.pool", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pool", "globalid"), psql.Quote("fieldseeker.pool", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -947,7 +947,7 @@ func (o *FieldseekerPool) Delete(ctx context.Context, exec bob.Executor) error { // Reload refreshes the FieldseekerPool using the executor func (o *FieldseekerPool) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerPools.Query( - sm.Where(FieldseekerPools.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerPools.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerPools.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -982,7 +982,7 @@ func (o FieldseekerPoolSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.pool", "objectid"), psql.Quote("fieldseeker.pool", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pool", "globalid"), psql.Quote("fieldseeker.pool", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -997,7 +997,7 @@ func (o FieldseekerPoolSlice) pkIN() dialect.Expression { func (o FieldseekerPoolSlice) copyMatchingRows(from ...*FieldseekerPool) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.pooldetail.bob.go b/db/models/fieldseeker.pooldetail.bob.go index af00b0e7..385f4543 100644 --- a/db/models/fieldseeker.pooldetail.bob.go +++ b/db/models/fieldseeker.pooldetail.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerPooldetail is an object representing the database table. type FieldseekerPooldetail struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is TRAPDATA_ID TrapdataID null.Val[uuid.UUID] `db:"trapdata_id" ` // Original attribute from ArcGIS API is POOL_ID @@ -39,7 +39,7 @@ type FieldseekerPooldetail struct { // Original attribute from ArcGIS API is FEMALES Females null.Val[int16] `db:"females" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -141,12 +141,12 @@ func (fieldseekerPooldetailColumns) AliasedAs(alias string) fieldseekerPooldetai // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerPooldetailSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` TrapdataID omitnull.Val[uuid.UUID] `db:"trapdata_id" ` PoolID omitnull.Val[uuid.UUID] `db:"pool_id" ` Species omitnull.Val[string] `db:"species" ` Females omitnull.Val[int16] `db:"females" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -534,25 +534,25 @@ func (s FieldseekerPooldetailSetter) Expressions(prefix ...string) []bob.Express // FindFieldseekerPooldetail retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerPooldetail(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerPooldetail, error) { +func FindFieldseekerPooldetail(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerPooldetail, error) { if len(cols) == 0 { return FieldseekerPooldetails.Query( - sm.Where(FieldseekerPooldetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPooldetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPooldetails.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerPooldetails.Query( - sm.Where(FieldseekerPooldetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPooldetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPooldetails.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerPooldetails.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerPooldetailExists checks the presence of a single record by primary key -func FieldseekerPooldetailExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerPooldetailExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerPooldetails.Query( - sm.Where(FieldseekerPooldetails.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerPooldetails.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerPooldetails.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -578,13 +578,13 @@ func (o *FieldseekerPooldetail) AfterQueryHook(ctx context.Context, exec bob.Exe // primaryKeyVals returns the primary key values of the FieldseekerPooldetail func (o *FieldseekerPooldetail) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerPooldetail) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.pooldetail", "objectid"), psql.Quote("fieldseeker.pooldetail", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pooldetail", "globalid"), psql.Quote("fieldseeker.pooldetail", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -611,7 +611,7 @@ func (o *FieldseekerPooldetail) Delete(ctx context.Context, exec bob.Executor) e // Reload refreshes the FieldseekerPooldetail using the executor func (o *FieldseekerPooldetail) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerPooldetails.Query( - sm.Where(FieldseekerPooldetails.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerPooldetails.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerPooldetails.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -646,7 +646,7 @@ func (o FieldseekerPooldetailSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.pooldetail", "objectid"), psql.Quote("fieldseeker.pooldetail", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.pooldetail", "globalid"), psql.Quote("fieldseeker.pooldetail", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -661,7 +661,7 @@ func (o FieldseekerPooldetailSlice) pkIN() dialect.Expression { func (o FieldseekerPooldetailSlice) copyMatchingRows(from ...*FieldseekerPooldetail) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.proposedtreatmentarea.bob.go b/db/models/fieldseeker.proposedtreatmentarea.bob.go index b648dd0b..9669e95f 100644 --- a/db/models/fieldseeker.proposedtreatmentarea.bob.go +++ b/db/models/fieldseeker.proposedtreatmentarea.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerProposedtreatmentarea is an object representing the database table. type FieldseekerProposedtreatmentarea struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is METHOD Method null.Val[string] `db:"method" ` // Original attribute from ArcGIS API is COMMENTS @@ -57,7 +57,7 @@ type FieldseekerProposedtreatmentarea struct { // Original attribute from ArcGIS API is ACRES Acres null.Val[float64] `db:"acres" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is EXPORTED Exported null.Val[int16] `db:"exported" ` // Original attribute from ArcGIS API is TARGETPRODUCT @@ -217,7 +217,7 @@ func (fieldseekerProposedtreatmentareaColumns) AliasedAs(alias string) fieldseek // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerProposedtreatmentareaSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Method omitnull.Val[string] `db:"method" ` Comments omitnull.Val[string] `db:"comments" ` Zone omitnull.Val[string] `db:"zone" ` @@ -231,7 +231,7 @@ type FieldseekerProposedtreatmentareaSetter struct { Issprayroute omitnull.Val[int16] `db:"issprayroute" ` Name omitnull.Val[string] `db:"name" ` Acres omitnull.Val[float64] `db:"acres" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Exported omitnull.Val[int16] `db:"exported" ` Targetproduct omitnull.Val[string] `db:"targetproduct" ` Targetapprate omitnull.Val[float64] `db:"targetapprate" ` @@ -990,25 +990,25 @@ func (s FieldseekerProposedtreatmentareaSetter) Expressions(prefix ...string) [] // FindFieldseekerProposedtreatmentarea retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerProposedtreatmentarea(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerProposedtreatmentarea, error) { +func FindFieldseekerProposedtreatmentarea(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerProposedtreatmentarea, error) { if len(cols) == 0 { return FieldseekerProposedtreatmentareas.Query( - sm.Where(FieldseekerProposedtreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerProposedtreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerProposedtreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerProposedtreatmentareas.Query( - sm.Where(FieldseekerProposedtreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerProposedtreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerProposedtreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerProposedtreatmentareas.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerProposedtreatmentareaExists checks the presence of a single record by primary key -func FieldseekerProposedtreatmentareaExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerProposedtreatmentareaExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerProposedtreatmentareas.Query( - sm.Where(FieldseekerProposedtreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerProposedtreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerProposedtreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1034,13 +1034,13 @@ func (o *FieldseekerProposedtreatmentarea) AfterQueryHook(ctx context.Context, e // primaryKeyVals returns the primary key values of the FieldseekerProposedtreatmentarea func (o *FieldseekerProposedtreatmentarea) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerProposedtreatmentarea) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.proposedtreatmentarea", "objectid"), psql.Quote("fieldseeker.proposedtreatmentarea", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.proposedtreatmentarea", "globalid"), psql.Quote("fieldseeker.proposedtreatmentarea", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1067,7 +1067,7 @@ func (o *FieldseekerProposedtreatmentarea) Delete(ctx context.Context, exec bob. // Reload refreshes the FieldseekerProposedtreatmentarea using the executor func (o *FieldseekerProposedtreatmentarea) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerProposedtreatmentareas.Query( - sm.Where(FieldseekerProposedtreatmentareas.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerProposedtreatmentareas.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerProposedtreatmentareas.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1102,7 +1102,7 @@ func (o FieldseekerProposedtreatmentareaSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.proposedtreatmentarea", "objectid"), psql.Quote("fieldseeker.proposedtreatmentarea", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.proposedtreatmentarea", "globalid"), psql.Quote("fieldseeker.proposedtreatmentarea", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1117,7 +1117,7 @@ func (o FieldseekerProposedtreatmentareaSlice) pkIN() dialect.Expression { func (o FieldseekerProposedtreatmentareaSlice) copyMatchingRows(from ...*FieldseekerProposedtreatmentarea) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.qamosquitoinspection.bob.go b/db/models/fieldseeker.qamosquitoinspection.bob.go index ed3e844f..b742d6b3 100644 --- a/db/models/fieldseeker.qamosquitoinspection.bob.go +++ b/db/models/fieldseeker.qamosquitoinspection.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerQamosquitoinspection is an object representing the database table. type FieldseekerQamosquitoinspection struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is POSDIPS Posdips null.Val[int16] `db:"posdips" ` // Original attribute from ArcGIS API is ACTIONTAKEN @@ -43,7 +43,7 @@ type FieldseekerQamosquitoinspection struct { // Original attribute from ArcGIS API is RAINGAUGE Raingauge null.Val[float64] `db:"raingauge" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is STARTDATETIME Startdatetime null.Val[time.Time] `db:"startdatetime" ` // Original attribute from ArcGIS API is ENDDATETIME @@ -333,14 +333,14 @@ func (fieldseekerQamosquitoinspectionColumns) AliasedAs(alias string) fieldseeke // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerQamosquitoinspectionSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Posdips omitnull.Val[int16] `db:"posdips" ` Actiontaken omitnull.Val[string] `db:"actiontaken" ` Comments omitnull.Val[string] `db:"comments" ` Avetemp omitnull.Val[float64] `db:"avetemp" ` Windspeed omitnull.Val[float64] `db:"windspeed" ` Raingauge omitnull.Val[float64] `db:"raingauge" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Startdatetime omitnull.Val[time.Time] `db:"startdatetime" ` Enddatetime omitnull.Val[time.Time] `db:"enddatetime" ` Winddir omitnull.Val[string] `db:"winddir" ` @@ -1686,25 +1686,25 @@ func (s FieldseekerQamosquitoinspectionSetter) Expressions(prefix ...string) []b // FindFieldseekerQamosquitoinspection retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerQamosquitoinspection(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerQamosquitoinspection, error) { +func FindFieldseekerQamosquitoinspection(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerQamosquitoinspection, error) { if len(cols) == 0 { return FieldseekerQamosquitoinspections.Query( - sm.Where(FieldseekerQamosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerQamosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerQamosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerQamosquitoinspections.Query( - sm.Where(FieldseekerQamosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerQamosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerQamosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerQamosquitoinspections.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerQamosquitoinspectionExists checks the presence of a single record by primary key -func FieldseekerQamosquitoinspectionExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerQamosquitoinspectionExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerQamosquitoinspections.Query( - sm.Where(FieldseekerQamosquitoinspections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerQamosquitoinspections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerQamosquitoinspections.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1730,13 +1730,13 @@ func (o *FieldseekerQamosquitoinspection) AfterQueryHook(ctx context.Context, ex // primaryKeyVals returns the primary key values of the FieldseekerQamosquitoinspection func (o *FieldseekerQamosquitoinspection) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerQamosquitoinspection) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.qamosquitoinspection", "objectid"), psql.Quote("fieldseeker.qamosquitoinspection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.qamosquitoinspection", "globalid"), psql.Quote("fieldseeker.qamosquitoinspection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1763,7 +1763,7 @@ func (o *FieldseekerQamosquitoinspection) Delete(ctx context.Context, exec bob.E // Reload refreshes the FieldseekerQamosquitoinspection using the executor func (o *FieldseekerQamosquitoinspection) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerQamosquitoinspections.Query( - sm.Where(FieldseekerQamosquitoinspections.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerQamosquitoinspections.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerQamosquitoinspections.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1798,7 +1798,7 @@ func (o FieldseekerQamosquitoinspectionSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.qamosquitoinspection", "objectid"), psql.Quote("fieldseeker.qamosquitoinspection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.qamosquitoinspection", "globalid"), psql.Quote("fieldseeker.qamosquitoinspection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1813,7 +1813,7 @@ func (o FieldseekerQamosquitoinspectionSlice) pkIN() dialect.Expression { func (o FieldseekerQamosquitoinspectionSlice) copyMatchingRows(from ...*FieldseekerQamosquitoinspection) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.rodentlocation.bob.go b/db/models/fieldseeker.rodentlocation.bob.go index e59d0b5c..6e57a0a1 100644 --- a/db/models/fieldseeker.rodentlocation.bob.go +++ b/db/models/fieldseeker.rodentlocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerRodentlocation is an object representing the database table. type FieldseekerRodentlocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is LOCATIONNAME Locationname null.Val[string] `db:"locationname" ` // Original attribute from ArcGIS API is ZONE @@ -69,7 +69,7 @@ type FieldseekerRodentlocation struct { // Original attribute from ArcGIS API is LASTINSPECTRODENTEVIDENCE Lastinspectrodentevidence null.Val[string] `db:"lastinspectrodentevidence" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -205,7 +205,7 @@ func (fieldseekerRodentlocationColumns) AliasedAs(alias string) fieldseekerRoden // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerRodentlocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Locationname omitnull.Val[string] `db:"locationname" ` Zone omitnull.Val[string] `db:"zone" ` Zone2 omitnull.Val[string] `db:"zone2" ` @@ -225,7 +225,7 @@ type FieldseekerRodentlocationSetter struct { Lastinspectaction omitnull.Val[string] `db:"lastinspectaction" ` Lastinspectconditions omitnull.Val[string] `db:"lastinspectconditions" ` Lastinspectrodentevidence omitnull.Val[string] `db:"lastinspectrodentevidence" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -918,25 +918,25 @@ func (s FieldseekerRodentlocationSetter) Expressions(prefix ...string) []bob.Exp // FindFieldseekerRodentlocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerRodentlocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerRodentlocation, error) { +func FindFieldseekerRodentlocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerRodentlocation, error) { if len(cols) == 0 { return FieldseekerRodentlocations.Query( - sm.Where(FieldseekerRodentlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerRodentlocations.Query( - sm.Where(FieldseekerRodentlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerRodentlocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerRodentlocationExists checks the presence of a single record by primary key -func FieldseekerRodentlocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerRodentlocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerRodentlocations.Query( - sm.Where(FieldseekerRodentlocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -962,13 +962,13 @@ func (o *FieldseekerRodentlocation) AfterQueryHook(ctx context.Context, exec bob // primaryKeyVals returns the primary key values of the FieldseekerRodentlocation func (o *FieldseekerRodentlocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerRodentlocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.rodentlocation", "objectid"), psql.Quote("fieldseeker.rodentlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.rodentlocation", "globalid"), psql.Quote("fieldseeker.rodentlocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -995,7 +995,7 @@ func (o *FieldseekerRodentlocation) Delete(ctx context.Context, exec bob.Executo // Reload refreshes the FieldseekerRodentlocation using the executor func (o *FieldseekerRodentlocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerRodentlocations.Query( - sm.Where(FieldseekerRodentlocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerRodentlocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerRodentlocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1030,7 +1030,7 @@ func (o FieldseekerRodentlocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.rodentlocation", "objectid"), psql.Quote("fieldseeker.rodentlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.rodentlocation", "globalid"), psql.Quote("fieldseeker.rodentlocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1045,7 +1045,7 @@ func (o FieldseekerRodentlocationSlice) pkIN() dialect.Expression { func (o FieldseekerRodentlocationSlice) copyMatchingRows(from ...*FieldseekerRodentlocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.samplecollection.bob.go b/db/models/fieldseeker.samplecollection.bob.go index 63e45804..512a787f 100644 --- a/db/models/fieldseeker.samplecollection.bob.go +++ b/db/models/fieldseeker.samplecollection.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerSamplecollection is an object representing the database table. type FieldseekerSamplecollection struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is LOC_ID LocID null.Val[uuid.UUID] `db:"loc_id" ` // Original attribute from ArcGIS API is STARTDATETIME @@ -91,7 +91,7 @@ type FieldseekerSamplecollection struct { // Original attribute from ArcGIS API is ZONE2 Zone2 null.Val[string] `db:"zone2" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -269,7 +269,7 @@ func (fieldseekerSamplecollectionColumns) AliasedAs(alias string) fieldseekerSam // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerSamplecollectionSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` LocID omitnull.Val[uuid.UUID] `db:"loc_id" ` Startdatetime omitnull.Val[time.Time] `db:"startdatetime" ` Enddatetime omitnull.Val[time.Time] `db:"enddatetime" ` @@ -300,7 +300,7 @@ type FieldseekerSamplecollectionSetter struct { Zone omitnull.Val[string] `db:"zone" ` Recordstatus omitnull.Val[int16] `db:"recordstatus" ` Zone2 omitnull.Val[string] `db:"zone2" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -1302,25 +1302,25 @@ func (s FieldseekerSamplecollectionSetter) Expressions(prefix ...string) []bob.E // FindFieldseekerSamplecollection retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerSamplecollection(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerSamplecollection, error) { +func FindFieldseekerSamplecollection(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerSamplecollection, error) { if len(cols) == 0 { return FieldseekerSamplecollections.Query( - sm.Where(FieldseekerSamplecollections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplecollections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplecollections.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerSamplecollections.Query( - sm.Where(FieldseekerSamplecollections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplecollections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplecollections.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerSamplecollections.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerSamplecollectionExists checks the presence of a single record by primary key -func FieldseekerSamplecollectionExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerSamplecollectionExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerSamplecollections.Query( - sm.Where(FieldseekerSamplecollections.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplecollections.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplecollections.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1346,13 +1346,13 @@ func (o *FieldseekerSamplecollection) AfterQueryHook(ctx context.Context, exec b // primaryKeyVals returns the primary key values of the FieldseekerSamplecollection func (o *FieldseekerSamplecollection) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerSamplecollection) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.samplecollection", "objectid"), psql.Quote("fieldseeker.samplecollection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.samplecollection", "globalid"), psql.Quote("fieldseeker.samplecollection", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1379,7 +1379,7 @@ func (o *FieldseekerSamplecollection) Delete(ctx context.Context, exec bob.Execu // Reload refreshes the FieldseekerSamplecollection using the executor func (o *FieldseekerSamplecollection) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerSamplecollections.Query( - sm.Where(FieldseekerSamplecollections.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerSamplecollections.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerSamplecollections.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1414,7 +1414,7 @@ func (o FieldseekerSamplecollectionSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.samplecollection", "objectid"), psql.Quote("fieldseeker.samplecollection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.samplecollection", "globalid"), psql.Quote("fieldseeker.samplecollection", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1429,7 +1429,7 @@ func (o FieldseekerSamplecollectionSlice) pkIN() dialect.Expression { func (o FieldseekerSamplecollectionSlice) copyMatchingRows(from ...*FieldseekerSamplecollection) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.samplelocation.bob.go b/db/models/fieldseeker.samplelocation.bob.go index 3513d3ed..6782a33b 100644 --- a/db/models/fieldseeker.samplelocation.bob.go +++ b/db/models/fieldseeker.samplelocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerSamplelocation is an object representing the database table. type FieldseekerSamplelocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE @@ -57,7 +57,7 @@ type FieldseekerSamplelocation struct { // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -181,7 +181,7 @@ func (fieldseekerSamplelocationColumns) AliasedAs(alias string) fieldseekerSampl // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerSamplelocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` @@ -195,7 +195,7 @@ type FieldseekerSamplelocationSetter struct { Nextactiondatescheduled omitnull.Val[time.Time] `db:"nextactiondatescheduled" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -774,25 +774,25 @@ func (s FieldseekerSamplelocationSetter) Expressions(prefix ...string) []bob.Exp // FindFieldseekerSamplelocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerSamplelocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerSamplelocation, error) { +func FindFieldseekerSamplelocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerSamplelocation, error) { if len(cols) == 0 { return FieldseekerSamplelocations.Query( - sm.Where(FieldseekerSamplelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerSamplelocations.Query( - sm.Where(FieldseekerSamplelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerSamplelocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerSamplelocationExists checks the presence of a single record by primary key -func FieldseekerSamplelocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerSamplelocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerSamplelocations.Query( - sm.Where(FieldseekerSamplelocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -818,13 +818,13 @@ func (o *FieldseekerSamplelocation) AfterQueryHook(ctx context.Context, exec bob // primaryKeyVals returns the primary key values of the FieldseekerSamplelocation func (o *FieldseekerSamplelocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerSamplelocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.samplelocation", "objectid"), psql.Quote("fieldseeker.samplelocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.samplelocation", "globalid"), psql.Quote("fieldseeker.samplelocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -851,7 +851,7 @@ func (o *FieldseekerSamplelocation) Delete(ctx context.Context, exec bob.Executo // Reload refreshes the FieldseekerSamplelocation using the executor func (o *FieldseekerSamplelocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerSamplelocations.Query( - sm.Where(FieldseekerSamplelocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerSamplelocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerSamplelocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -886,7 +886,7 @@ func (o FieldseekerSamplelocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.samplelocation", "objectid"), psql.Quote("fieldseeker.samplelocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.samplelocation", "globalid"), psql.Quote("fieldseeker.samplelocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -901,7 +901,7 @@ func (o FieldseekerSamplelocationSlice) pkIN() dialect.Expression { func (o FieldseekerSamplelocationSlice) copyMatchingRows(from ...*FieldseekerSamplelocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.servicerequest.bob.go b/db/models/fieldseeker.servicerequest.bob.go index 7c4cab03..5cac059f 100644 --- a/db/models/fieldseeker.servicerequest.bob.go +++ b/db/models/fieldseeker.servicerequest.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerServicerequest is an object representing the database table. type FieldseekerServicerequest struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is RECDATETIME Recdatetime null.Val[time.Time] `db:"recdatetime" ` // Original attribute from ArcGIS API is SOURCE @@ -137,7 +137,7 @@ type FieldseekerServicerequest struct { // Original attribute from ArcGIS API is RECORDSTATUS Recordstatus null.Val[int16] `db:"recordstatus" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -432,7 +432,7 @@ func (fieldseekerServicerequestColumns) AliasedAs(alias string) fieldseekerServi // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerServicerequestSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Recdatetime omitnull.Val[time.Time] `db:"recdatetime" ` Source omitnull.Val[string] `db:"source" ` Entrytech omitnull.Val[string] `db:"entrytech" ` @@ -486,7 +486,7 @@ type FieldseekerServicerequestSetter struct { Estcompletedate omitnull.Val[time.Time] `db:"estcompletedate" ` Nextaction omitnull.Val[string] `db:"nextaction" ` Recordstatus omitnull.Val[int16] `db:"recordstatus" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -2265,25 +2265,25 @@ func (s FieldseekerServicerequestSetter) Expressions(prefix ...string) []bob.Exp // FindFieldseekerServicerequest retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerServicerequest(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerServicerequest, error) { +func FindFieldseekerServicerequest(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerServicerequest, error) { if len(cols) == 0 { return FieldseekerServicerequests.Query( - sm.Where(FieldseekerServicerequests.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerServicerequests.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerServicerequests.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerServicerequests.Query( - sm.Where(FieldseekerServicerequests.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerServicerequests.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerServicerequests.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerServicerequests.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerServicerequestExists checks the presence of a single record by primary key -func FieldseekerServicerequestExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerServicerequestExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerServicerequests.Query( - sm.Where(FieldseekerServicerequests.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerServicerequests.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerServicerequests.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -2309,13 +2309,13 @@ func (o *FieldseekerServicerequest) AfterQueryHook(ctx context.Context, exec bob // primaryKeyVals returns the primary key values of the FieldseekerServicerequest func (o *FieldseekerServicerequest) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerServicerequest) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.servicerequest", "objectid"), psql.Quote("fieldseeker.servicerequest", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.servicerequest", "globalid"), psql.Quote("fieldseeker.servicerequest", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -2342,7 +2342,7 @@ func (o *FieldseekerServicerequest) Delete(ctx context.Context, exec bob.Executo // Reload refreshes the FieldseekerServicerequest using the executor func (o *FieldseekerServicerequest) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerServicerequests.Query( - sm.Where(FieldseekerServicerequests.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerServicerequests.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerServicerequests.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -2377,7 +2377,7 @@ func (o FieldseekerServicerequestSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.servicerequest", "objectid"), psql.Quote("fieldseeker.servicerequest", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.servicerequest", "globalid"), psql.Quote("fieldseeker.servicerequest", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -2392,7 +2392,7 @@ func (o FieldseekerServicerequestSlice) pkIN() dialect.Expression { func (o FieldseekerServicerequestSlice) copyMatchingRows(from ...*FieldseekerServicerequest) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.speciesabundance.bob.go b/db/models/fieldseeker.speciesabundance.bob.go index 327127ee..bb8fef8f 100644 --- a/db/models/fieldseeker.speciesabundance.bob.go +++ b/db/models/fieldseeker.speciesabundance.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerSpeciesabundance is an object representing the database table. type FieldseekerSpeciesabundance struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is TRAPDATA_ID TrapdataID null.Val[uuid.UUID] `db:"trapdata_id" ` // Original attribute from ArcGIS API is SPECIES @@ -49,7 +49,7 @@ type FieldseekerSpeciesabundance struct { // Original attribute from ArcGIS API is PROCESSED Processed null.Val[int16] `db:"processed" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -201,7 +201,7 @@ func (fieldseekerSpeciesabundanceColumns) AliasedAs(alias string) fieldseekerSpe // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerSpeciesabundanceSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` TrapdataID omitnull.Val[uuid.UUID] `db:"trapdata_id" ` Species omitnull.Val[string] `db:"species" ` Males omitnull.Val[int16] `db:"males" ` @@ -211,7 +211,7 @@ type FieldseekerSpeciesabundanceSetter struct { Larvae omitnull.Val[int16] `db:"larvae" ` Poolstogen omitnull.Val[int16] `db:"poolstogen" ` Processed omitnull.Val[int16] `db:"processed" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -894,25 +894,25 @@ func (s FieldseekerSpeciesabundanceSetter) Expressions(prefix ...string) []bob.E // FindFieldseekerSpeciesabundance retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerSpeciesabundance(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerSpeciesabundance, error) { +func FindFieldseekerSpeciesabundance(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerSpeciesabundance, error) { if len(cols) == 0 { return FieldseekerSpeciesabundances.Query( - sm.Where(FieldseekerSpeciesabundances.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSpeciesabundances.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSpeciesabundances.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerSpeciesabundances.Query( - sm.Where(FieldseekerSpeciesabundances.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSpeciesabundances.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSpeciesabundances.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerSpeciesabundances.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerSpeciesabundanceExists checks the presence of a single record by primary key -func FieldseekerSpeciesabundanceExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerSpeciesabundanceExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerSpeciesabundances.Query( - sm.Where(FieldseekerSpeciesabundances.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerSpeciesabundances.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerSpeciesabundances.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -938,13 +938,13 @@ func (o *FieldseekerSpeciesabundance) AfterQueryHook(ctx context.Context, exec b // primaryKeyVals returns the primary key values of the FieldseekerSpeciesabundance func (o *FieldseekerSpeciesabundance) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerSpeciesabundance) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.speciesabundance", "objectid"), psql.Quote("fieldseeker.speciesabundance", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.speciesabundance", "globalid"), psql.Quote("fieldseeker.speciesabundance", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -971,7 +971,7 @@ func (o *FieldseekerSpeciesabundance) Delete(ctx context.Context, exec bob.Execu // Reload refreshes the FieldseekerSpeciesabundance using the executor func (o *FieldseekerSpeciesabundance) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerSpeciesabundances.Query( - sm.Where(FieldseekerSpeciesabundances.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerSpeciesabundances.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerSpeciesabundances.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1006,7 +1006,7 @@ func (o FieldseekerSpeciesabundanceSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.speciesabundance", "objectid"), psql.Quote("fieldseeker.speciesabundance", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.speciesabundance", "globalid"), psql.Quote("fieldseeker.speciesabundance", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1021,7 +1021,7 @@ func (o FieldseekerSpeciesabundanceSlice) pkIN() dialect.Expression { func (o FieldseekerSpeciesabundanceSlice) copyMatchingRows(from ...*FieldseekerSpeciesabundance) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.stormdrain.bob.go b/db/models/fieldseeker.stormdrain.bob.go index f595d02c..8169a1cd 100644 --- a/db/models/fieldseeker.stormdrain.bob.go +++ b/db/models/fieldseeker.stormdrain.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerStormdrain is an object representing the database table. type FieldseekerStormdrain struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NextTreatmentDate Nexttreatmentdate null.Val[time.Time] `db:"nexttreatmentdate" ` // Original attribute from ArcGIS API is LastTreatDate @@ -39,7 +39,7 @@ type FieldseekerStormdrain struct { // Original attribute from ArcGIS API is Symbology Symbology null.Val[string] `db:"symbology" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -161,12 +161,12 @@ func (fieldseekerStormdrainColumns) AliasedAs(alias string) fieldseekerStormdrai // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerStormdrainSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Nexttreatmentdate omitnull.Val[time.Time] `db:"nexttreatmentdate" ` Lasttreatdate omitnull.Val[time.Time] `db:"lasttreatdate" ` Lastaction omitnull.Val[string] `db:"lastaction" ` Symbology omitnull.Val[string] `db:"symbology" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -654,25 +654,25 @@ func (s FieldseekerStormdrainSetter) Expressions(prefix ...string) []bob.Express // FindFieldseekerStormdrain retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerStormdrain(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerStormdrain, error) { +func FindFieldseekerStormdrain(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerStormdrain, error) { if len(cols) == 0 { return FieldseekerStormdrains.Query( - sm.Where(FieldseekerStormdrains.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerStormdrains.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerStormdrains.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerStormdrains.Query( - sm.Where(FieldseekerStormdrains.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerStormdrains.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerStormdrains.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerStormdrains.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerStormdrainExists checks the presence of a single record by primary key -func FieldseekerStormdrainExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerStormdrainExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerStormdrains.Query( - sm.Where(FieldseekerStormdrains.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerStormdrains.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerStormdrains.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -698,13 +698,13 @@ func (o *FieldseekerStormdrain) AfterQueryHook(ctx context.Context, exec bob.Exe // primaryKeyVals returns the primary key values of the FieldseekerStormdrain func (o *FieldseekerStormdrain) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerStormdrain) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.stormdrain", "objectid"), psql.Quote("fieldseeker.stormdrain", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.stormdrain", "globalid"), psql.Quote("fieldseeker.stormdrain", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -731,7 +731,7 @@ func (o *FieldseekerStormdrain) Delete(ctx context.Context, exec bob.Executor) e // Reload refreshes the FieldseekerStormdrain using the executor func (o *FieldseekerStormdrain) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerStormdrains.Query( - sm.Where(FieldseekerStormdrains.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerStormdrains.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerStormdrains.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -766,7 +766,7 @@ func (o FieldseekerStormdrainSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.stormdrain", "objectid"), psql.Quote("fieldseeker.stormdrain", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.stormdrain", "globalid"), psql.Quote("fieldseeker.stormdrain", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -781,7 +781,7 @@ func (o FieldseekerStormdrainSlice) pkIN() dialect.Expression { func (o FieldseekerStormdrainSlice) copyMatchingRows(from ...*FieldseekerStormdrain) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.timecard.bob.go b/db/models/fieldseeker.timecard.bob.go index 2ba96d15..d5571f34 100644 --- a/db/models/fieldseeker.timecard.bob.go +++ b/db/models/fieldseeker.timecard.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerTimecard is an object representing the database table. type FieldseekerTimecard struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is ACTIVITY Activity null.Val[string] `db:"activity" ` // Original attribute from ArcGIS API is STARTDATETIME @@ -49,7 +49,7 @@ type FieldseekerTimecard struct { // Original attribute from ArcGIS API is ZONE2 Zone2 null.Val[string] `db:"zone2" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -197,7 +197,7 @@ func (fieldseekerTimecardColumns) AliasedAs(alias string) fieldseekerTimecardCol // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerTimecardSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Activity omitnull.Val[string] `db:"activity" ` Startdatetime omitnull.Val[time.Time] `db:"startdatetime" ` Enddatetime omitnull.Val[time.Time] `db:"enddatetime" ` @@ -207,7 +207,7 @@ type FieldseekerTimecardSetter struct { Locationname omitnull.Val[string] `db:"locationname" ` Zone omitnull.Val[string] `db:"zone" ` Zone2 omitnull.Val[string] `db:"zone2" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -870,25 +870,25 @@ func (s FieldseekerTimecardSetter) Expressions(prefix ...string) []bob.Expressio // FindFieldseekerTimecard retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerTimecard(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerTimecard, error) { +func FindFieldseekerTimecard(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerTimecard, error) { if len(cols) == 0 { return FieldseekerTimecards.Query( - sm.Where(FieldseekerTimecards.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTimecards.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTimecards.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerTimecards.Query( - sm.Where(FieldseekerTimecards.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTimecards.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTimecards.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerTimecards.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerTimecardExists checks the presence of a single record by primary key -func FieldseekerTimecardExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerTimecardExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerTimecards.Query( - sm.Where(FieldseekerTimecards.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTimecards.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTimecards.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -914,13 +914,13 @@ func (o *FieldseekerTimecard) AfterQueryHook(ctx context.Context, exec bob.Execu // primaryKeyVals returns the primary key values of the FieldseekerTimecard func (o *FieldseekerTimecard) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerTimecard) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.timecard", "objectid"), psql.Quote("fieldseeker.timecard", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.timecard", "globalid"), psql.Quote("fieldseeker.timecard", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -947,7 +947,7 @@ func (o *FieldseekerTimecard) Delete(ctx context.Context, exec bob.Executor) err // Reload refreshes the FieldseekerTimecard using the executor func (o *FieldseekerTimecard) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerTimecards.Query( - sm.Where(FieldseekerTimecards.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerTimecards.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerTimecards.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -982,7 +982,7 @@ func (o FieldseekerTimecardSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.timecard", "objectid"), psql.Quote("fieldseeker.timecard", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.timecard", "globalid"), psql.Quote("fieldseeker.timecard", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -997,7 +997,7 @@ func (o FieldseekerTimecardSlice) pkIN() dialect.Expression { func (o FieldseekerTimecardSlice) copyMatchingRows(from ...*FieldseekerTimecard) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.trapdata.bob.go b/db/models/fieldseeker.trapdata.bob.go index 24166a68..e23fa62d 100644 --- a/db/models/fieldseeker.trapdata.bob.go +++ b/db/models/fieldseeker.trapdata.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerTrapdatum is an object representing the database table. type FieldseekerTrapdatum struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is TRAPTYPE Traptype null.Val[string] `db:"traptype" ` // Original attribute from ArcGIS API is TRAPACTIVITYTYPE @@ -67,7 +67,7 @@ type FieldseekerTrapdatum struct { // Original attribute from ArcGIS API is ZONE2 Zone2 null.Val[string] `db:"zone2" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -256,7 +256,7 @@ func (fieldseekerTrapdatumColumns) AliasedAs(alias string) fieldseekerTrapdatumC // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerTrapdatumSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Traptype omitnull.Val[string] `db:"traptype" ` Trapactivitytype omitnull.Val[string] `db:"trapactivitytype" ` Startdatetime omitnull.Val[time.Time] `db:"startdatetime" ` @@ -275,7 +275,7 @@ type FieldseekerTrapdatumSetter struct { Trapnights omitnull.Val[int16] `db:"trapnights" ` Zone omitnull.Val[string] `db:"zone" ` Zone2 omitnull.Val[string] `db:"zone2" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -1209,25 +1209,25 @@ func (s FieldseekerTrapdatumSetter) Expressions(prefix ...string) []bob.Expressi // FindFieldseekerTrapdatum retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerTrapdatum(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerTrapdatum, error) { +func FindFieldseekerTrapdatum(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerTrapdatum, error) { if len(cols) == 0 { return FieldseekerTrapdata.Query( - sm.Where(FieldseekerTrapdata.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTrapdata.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTrapdata.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerTrapdata.Query( - sm.Where(FieldseekerTrapdata.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTrapdata.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTrapdata.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerTrapdata.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerTrapdatumExists checks the presence of a single record by primary key -func FieldseekerTrapdatumExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerTrapdatumExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerTrapdata.Query( - sm.Where(FieldseekerTrapdata.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTrapdata.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTrapdata.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1253,13 +1253,13 @@ func (o *FieldseekerTrapdatum) AfterQueryHook(ctx context.Context, exec bob.Exec // primaryKeyVals returns the primary key values of the FieldseekerTrapdatum func (o *FieldseekerTrapdatum) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerTrapdatum) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.trapdata", "objectid"), psql.Quote("fieldseeker.trapdata", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.trapdata", "globalid"), psql.Quote("fieldseeker.trapdata", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1286,7 +1286,7 @@ func (o *FieldseekerTrapdatum) Delete(ctx context.Context, exec bob.Executor) er // Reload refreshes the FieldseekerTrapdatum using the executor func (o *FieldseekerTrapdatum) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerTrapdata.Query( - sm.Where(FieldseekerTrapdata.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerTrapdata.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerTrapdata.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1321,7 +1321,7 @@ func (o FieldseekerTrapdatumSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.trapdata", "objectid"), psql.Quote("fieldseeker.trapdata", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.trapdata", "globalid"), psql.Quote("fieldseeker.trapdata", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1336,7 +1336,7 @@ func (o FieldseekerTrapdatumSlice) pkIN() dialect.Expression { func (o FieldseekerTrapdatumSlice) copyMatchingRows(from ...*FieldseekerTrapdatum) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.traplocation.bob.go b/db/models/fieldseeker.traplocation.bob.go index 56635232..ae0123ef 100644 --- a/db/models/fieldseeker.traplocation.bob.go +++ b/db/models/fieldseeker.traplocation.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerTraplocation is an object representing the database table. type FieldseekerTraplocation struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is ZONE @@ -57,7 +57,7 @@ type FieldseekerTraplocation struct { // Original attribute from ArcGIS API is LOCATIONNUMBER Locationnumber null.Val[int32] `db:"locationnumber" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -205,7 +205,7 @@ func (fieldseekerTraplocationColumns) AliasedAs(alias string) fieldseekerTraploc // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerTraplocationSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` Zone omitnull.Val[string] `db:"zone" ` Habitat omitnull.Val[string] `db:"habitat" ` @@ -219,7 +219,7 @@ type FieldseekerTraplocationSetter struct { Nextactiondatescheduled omitnull.Val[time.Time] `db:"nextactiondatescheduled" ` Zone2 omitnull.Val[string] `db:"zone2" ` Locationnumber omitnull.Val[int32] `db:"locationnumber" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -918,25 +918,25 @@ func (s FieldseekerTraplocationSetter) Expressions(prefix ...string) []bob.Expre // FindFieldseekerTraplocation retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerTraplocation(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerTraplocation, error) { +func FindFieldseekerTraplocation(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerTraplocation, error) { if len(cols) == 0 { return FieldseekerTraplocations.Query( - sm.Where(FieldseekerTraplocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTraplocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTraplocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerTraplocations.Query( - sm.Where(FieldseekerTraplocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTraplocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTraplocations.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerTraplocations.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerTraplocationExists checks the presence of a single record by primary key -func FieldseekerTraplocationExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerTraplocationExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerTraplocations.Query( - sm.Where(FieldseekerTraplocations.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTraplocations.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTraplocations.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -962,13 +962,13 @@ func (o *FieldseekerTraplocation) AfterQueryHook(ctx context.Context, exec bob.E // primaryKeyVals returns the primary key values of the FieldseekerTraplocation func (o *FieldseekerTraplocation) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerTraplocation) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.traplocation", "objectid"), psql.Quote("fieldseeker.traplocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.traplocation", "globalid"), psql.Quote("fieldseeker.traplocation", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -995,7 +995,7 @@ func (o *FieldseekerTraplocation) Delete(ctx context.Context, exec bob.Executor) // Reload refreshes the FieldseekerTraplocation using the executor func (o *FieldseekerTraplocation) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerTraplocations.Query( - sm.Where(FieldseekerTraplocations.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerTraplocations.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerTraplocations.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1030,7 +1030,7 @@ func (o FieldseekerTraplocationSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.traplocation", "objectid"), psql.Quote("fieldseeker.traplocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.traplocation", "globalid"), psql.Quote("fieldseeker.traplocation", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1045,7 +1045,7 @@ func (o FieldseekerTraplocationSlice) pkIN() dialect.Expression { func (o FieldseekerTraplocationSlice) copyMatchingRows(from ...*FieldseekerTraplocation) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.treatment.bob.go b/db/models/fieldseeker.treatment.bob.go index 4e024452..f4129dbd 100644 --- a/db/models/fieldseeker.treatment.bob.go +++ b/db/models/fieldseeker.treatment.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerTreatment is an object representing the database table. type FieldseekerTreatment struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is ACTIVITY Activity null.Val[string] `db:"activity" ` // Original attribute from ArcGIS API is TREATAREA @@ -87,7 +87,7 @@ type FieldseekerTreatment struct { // Original attribute from ArcGIS API is CONTAINERCOUNT Containercount null.Val[int16] `db:"containercount" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is TREATMENTLENGTH Treatmentlength null.Val[float64] `db:"treatmentlength" ` // Original attribute from ArcGIS API is TREATMENTHOURS @@ -304,7 +304,7 @@ func (fieldseekerTreatmentColumns) AliasedAs(alias string) fieldseekerTreatmentC // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerTreatmentSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Activity omitnull.Val[string] `db:"activity" ` Treatarea omitnull.Val[float64] `db:"treatarea" ` Areaunit omitnull.Val[string] `db:"areaunit" ` @@ -333,7 +333,7 @@ type FieldseekerTreatmentSetter struct { Tirecount omitnull.Val[int16] `db:"tirecount" ` Cbcount omitnull.Val[int16] `db:"cbcount" ` Containercount omitnull.Val[int16] `db:"containercount" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` Treatmentlength omitnull.Val[float64] `db:"treatmentlength" ` Treatmenthours omitnull.Val[float64] `db:"treatmenthours" ` Treatmentlengthunits omitnull.Val[string] `db:"treatmentlengthunits" ` @@ -1497,25 +1497,25 @@ func (s FieldseekerTreatmentSetter) Expressions(prefix ...string) []bob.Expressi // FindFieldseekerTreatment retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerTreatment(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerTreatment, error) { +func FindFieldseekerTreatment(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerTreatment, error) { if len(cols) == 0 { return FieldseekerTreatments.Query( - sm.Where(FieldseekerTreatments.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatments.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatments.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerTreatments.Query( - sm.Where(FieldseekerTreatments.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatments.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatments.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerTreatments.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerTreatmentExists checks the presence of a single record by primary key -func FieldseekerTreatmentExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerTreatmentExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerTreatments.Query( - sm.Where(FieldseekerTreatments.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatments.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatments.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -1541,13 +1541,13 @@ func (o *FieldseekerTreatment) AfterQueryHook(ctx context.Context, exec bob.Exec // primaryKeyVals returns the primary key values of the FieldseekerTreatment func (o *FieldseekerTreatment) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerTreatment) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.treatment", "objectid"), psql.Quote("fieldseeker.treatment", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.treatment", "globalid"), psql.Quote("fieldseeker.treatment", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -1574,7 +1574,7 @@ func (o *FieldseekerTreatment) Delete(ctx context.Context, exec bob.Executor) er // Reload refreshes the FieldseekerTreatment using the executor func (o *FieldseekerTreatment) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerTreatments.Query( - sm.Where(FieldseekerTreatments.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerTreatments.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerTreatments.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -1609,7 +1609,7 @@ func (o FieldseekerTreatmentSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.treatment", "objectid"), psql.Quote("fieldseeker.treatment", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.treatment", "globalid"), psql.Quote("fieldseeker.treatment", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -1624,7 +1624,7 @@ func (o FieldseekerTreatmentSlice) pkIN() dialect.Expression { func (o FieldseekerTreatmentSlice) copyMatchingRows(from ...*FieldseekerTreatment) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.treatmentarea.bob.go b/db/models/fieldseeker.treatmentarea.bob.go index bdae3688..507f947c 100644 --- a/db/models/fieldseeker.treatmentarea.bob.go +++ b/db/models/fieldseeker.treatmentarea.bob.go @@ -29,7 +29,7 @@ import ( // FieldseekerTreatmentarea is an object representing the database table. type FieldseekerTreatmentarea struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is TREAT_ID TreatID null.Val[uuid.UUID] `db:"treat_id" ` // Original attribute from ArcGIS API is SESSION_ID @@ -39,7 +39,7 @@ type FieldseekerTreatmentarea struct { // Original attribute from ArcGIS API is COMMENTS Comments null.Val[string] `db:"comments" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -157,12 +157,12 @@ func (fieldseekerTreatmentareaColumns) AliasedAs(alias string) fieldseekerTreatm // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerTreatmentareaSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` TreatID omitnull.Val[uuid.UUID] `db:"treat_id" ` SessionID omitnull.Val[uuid.UUID] `db:"session_id" ` Treatdate omitnull.Val[time.Time] `db:"treatdate" ` Comments omitnull.Val[string] `db:"comments" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -630,25 +630,25 @@ func (s FieldseekerTreatmentareaSetter) Expressions(prefix ...string) []bob.Expr // FindFieldseekerTreatmentarea retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerTreatmentarea(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerTreatmentarea, error) { +func FindFieldseekerTreatmentarea(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerTreatmentarea, error) { if len(cols) == 0 { return FieldseekerTreatmentareas.Query( - sm.Where(FieldseekerTreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerTreatmentareas.Query( - sm.Where(FieldseekerTreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerTreatmentareas.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerTreatmentareaExists checks the presence of a single record by primary key -func FieldseekerTreatmentareaExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerTreatmentareaExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerTreatmentareas.Query( - sm.Where(FieldseekerTreatmentareas.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerTreatmentareas.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerTreatmentareas.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -674,13 +674,13 @@ func (o *FieldseekerTreatmentarea) AfterQueryHook(ctx context.Context, exec bob. // primaryKeyVals returns the primary key values of the FieldseekerTreatmentarea func (o *FieldseekerTreatmentarea) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerTreatmentarea) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.treatmentarea", "objectid"), psql.Quote("fieldseeker.treatmentarea", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.treatmentarea", "globalid"), psql.Quote("fieldseeker.treatmentarea", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -707,7 +707,7 @@ func (o *FieldseekerTreatmentarea) Delete(ctx context.Context, exec bob.Executor // Reload refreshes the FieldseekerTreatmentarea using the executor func (o *FieldseekerTreatmentarea) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerTreatmentareas.Query( - sm.Where(FieldseekerTreatmentareas.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerTreatmentareas.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerTreatmentareas.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -742,7 +742,7 @@ func (o FieldseekerTreatmentareaSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.treatmentarea", "objectid"), psql.Quote("fieldseeker.treatmentarea", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.treatmentarea", "globalid"), psql.Quote("fieldseeker.treatmentarea", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -757,7 +757,7 @@ func (o FieldseekerTreatmentareaSlice) pkIN() dialect.Expression { func (o FieldseekerTreatmentareaSlice) copyMatchingRows(from ...*FieldseekerTreatmentarea) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.zones.bob.go b/db/models/fieldseeker.zones.bob.go index cf83561f..c6b8695b 100644 --- a/db/models/fieldseeker.zones.bob.go +++ b/db/models/fieldseeker.zones.bob.go @@ -29,11 +29,11 @@ import ( // FieldseekerZone is an object representing the database table. type FieldseekerZone struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -141,9 +141,9 @@ func (fieldseekerZoneColumns) AliasedAs(alias string) fieldseekerZoneColumns { // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerZoneSetter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -534,25 +534,25 @@ func (s FieldseekerZoneSetter) Expressions(prefix ...string) []bob.Expression { // FindFieldseekerZone retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerZone(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerZone, error) { +func FindFieldseekerZone(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerZone, error) { if len(cols) == 0 { return FieldseekerZones.Query( - sm.Where(FieldseekerZones.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerZones.Query( - sm.Where(FieldseekerZones.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerZones.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerZoneExists checks the presence of a single record by primary key -func FieldseekerZoneExists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerZoneExists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerZones.Query( - sm.Where(FieldseekerZones.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -578,13 +578,13 @@ func (o *FieldseekerZone) AfterQueryHook(ctx context.Context, exec bob.Executor, // primaryKeyVals returns the primary key values of the FieldseekerZone func (o *FieldseekerZone) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerZone) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.zones", "objectid"), psql.Quote("fieldseeker.zones", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.zones", "globalid"), psql.Quote("fieldseeker.zones", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -611,7 +611,7 @@ func (o *FieldseekerZone) Delete(ctx context.Context, exec bob.Executor) error { // Reload refreshes the FieldseekerZone using the executor func (o *FieldseekerZone) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerZones.Query( - sm.Where(FieldseekerZones.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerZones.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerZones.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -646,7 +646,7 @@ func (o FieldseekerZoneSlice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.zones", "objectid"), psql.Quote("fieldseeker.zones", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.zones", "globalid"), psql.Quote("fieldseeker.zones", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -661,7 +661,7 @@ func (o FieldseekerZoneSlice) pkIN() dialect.Expression { func (o FieldseekerZoneSlice) copyMatchingRows(from ...*FieldseekerZone) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version { diff --git a/db/models/fieldseeker.zones2.bob.go b/db/models/fieldseeker.zones2.bob.go index 34f1c7ca..93c6badb 100644 --- a/db/models/fieldseeker.zones2.bob.go +++ b/db/models/fieldseeker.zones2.bob.go @@ -29,11 +29,11 @@ import ( // FieldseekerZones2 is an object representing the database table. type FieldseekerZones2 struct { - Objectid int64 `db:"objectid,pk" ` + Objectid int64 `db:"objectid" ` // Original attribute from ArcGIS API is NAME Name null.Val[string] `db:"name" ` // Original attribute from ArcGIS API is GlobalID - Globalid uuid.UUID `db:"globalid" ` + Globalid uuid.UUID `db:"globalid,pk" ` // Original attribute from ArcGIS API is created_user CreatedUser null.Val[string] `db:"created_user" ` // Original attribute from ArcGIS API is created_date @@ -137,9 +137,9 @@ func (fieldseekerZones2Columns) AliasedAs(alias string) fieldseekerZones2Columns // All values are optional, and do not have to be set // Generated columns are not included type FieldseekerZones2Setter struct { - Objectid omit.Val[int64] `db:"objectid,pk" ` + Objectid omit.Val[int64] `db:"objectid" ` Name omitnull.Val[string] `db:"name" ` - Globalid omit.Val[uuid.UUID] `db:"globalid" ` + Globalid omit.Val[uuid.UUID] `db:"globalid,pk" ` CreatedUser omitnull.Val[string] `db:"created_user" ` CreatedDate omitnull.Val[time.Time] `db:"created_date" ` LastEditedUser omitnull.Val[string] `db:"last_edited_user" ` @@ -510,25 +510,25 @@ func (s FieldseekerZones2Setter) Expressions(prefix ...string) []bob.Expression // FindFieldseekerZones2 retrieves a single record by primary key // If cols is empty Find will return all columns. -func FindFieldseekerZones2(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32, cols ...string) (*FieldseekerZones2, error) { +func FindFieldseekerZones2(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32, cols ...string) (*FieldseekerZones2, error) { if len(cols) == 0 { return FieldseekerZones2s.Query( - sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones2s.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones2s.Columns.Version.EQ(psql.Arg(VersionPK))), ).One(ctx, exec) } return FieldseekerZones2s.Query( - sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones2s.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones2s.Columns.Version.EQ(psql.Arg(VersionPK))), sm.Columns(FieldseekerZones2s.Columns.Only(cols...)), ).One(ctx, exec) } // FieldseekerZones2Exists checks the presence of a single record by primary key -func FieldseekerZones2Exists(ctx context.Context, exec bob.Executor, ObjectidPK int64, VersionPK int32) (bool, error) { +func FieldseekerZones2Exists(ctx context.Context, exec bob.Executor, GlobalidPK uuid.UUID, VersionPK int32) (bool, error) { return FieldseekerZones2s.Query( - sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(ObjectidPK))), + sm.Where(FieldseekerZones2s.Columns.Globalid.EQ(psql.Arg(GlobalidPK))), sm.Where(FieldseekerZones2s.Columns.Version.EQ(psql.Arg(VersionPK))), ).Exists(ctx, exec) } @@ -554,13 +554,13 @@ func (o *FieldseekerZones2) AfterQueryHook(ctx context.Context, exec bob.Executo // primaryKeyVals returns the primary key values of the FieldseekerZones2 func (o *FieldseekerZones2) primaryKeyVals() bob.Expression { return psql.ArgGroup( - o.Objectid, + o.Globalid, o.Version, ) } func (o *FieldseekerZones2) pkEQ() dialect.Expression { - return psql.Group(psql.Quote("fieldseeker.zones2", "objectid"), psql.Quote("fieldseeker.zones2", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.zones2", "globalid"), psql.Quote("fieldseeker.zones2", "version")).EQ(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.primaryKeyVals().WriteSQL(ctx, w, d, start) })) } @@ -587,7 +587,7 @@ func (o *FieldseekerZones2) Delete(ctx context.Context, exec bob.Executor) error // Reload refreshes the FieldseekerZones2 using the executor func (o *FieldseekerZones2) Reload(ctx context.Context, exec bob.Executor) error { o2, err := FieldseekerZones2s.Query( - sm.Where(FieldseekerZones2s.Columns.Objectid.EQ(psql.Arg(o.Objectid))), + sm.Where(FieldseekerZones2s.Columns.Globalid.EQ(psql.Arg(o.Globalid))), sm.Where(FieldseekerZones2s.Columns.Version.EQ(psql.Arg(o.Version))), ).One(ctx, exec) if err != nil { @@ -622,7 +622,7 @@ func (o FieldseekerZones2Slice) pkIN() dialect.Expression { return psql.Raw("NULL") } - return psql.Group(psql.Quote("fieldseeker.zones2", "objectid"), psql.Quote("fieldseeker.zones2", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { + return psql.Group(psql.Quote("fieldseeker.zones2", "globalid"), psql.Quote("fieldseeker.zones2", "version")).In(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { pkPairs := make([]bob.Expression, len(o)) for i, row := range o { pkPairs[i] = row.primaryKeyVals() @@ -637,7 +637,7 @@ func (o FieldseekerZones2Slice) pkIN() dialect.Expression { func (o FieldseekerZones2Slice) copyMatchingRows(from ...*FieldseekerZones2) { for i, old := range o { for _, new := range from { - if new.Objectid != old.Objectid { + if new.Globalid != old.Globalid { continue } if new.Version != old.Version {