// Code generated by BobGen psql v0.42.5. DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models import ( "hash/maphash" "github.com/Gleipnir-Technology/bob" "github.com/Gleipnir-Technology/bob/clause" "github.com/Gleipnir-Technology/bob/dialect/psql/dialect" ) var ( SelectJoins = getJoins[*dialect.SelectQuery]() UpdateJoins = getJoins[*dialect.UpdateQuery]() DeleteJoins = getJoins[*dialect.DeleteQuery]() ) type joinSet[Q interface{ aliasedAs(string) Q }] struct { InnerJoin Q LeftJoin Q RightJoin Q } func (j joinSet[Q]) AliasedAs(alias string) joinSet[Q] { return joinSet[Q]{ InnerJoin: j.InnerJoin.aliasedAs(alias), LeftJoin: j.LeftJoin.aliasedAs(alias), RightJoin: j.RightJoin.aliasedAs(alias), } } type joins[Q dialect.Joinable] struct { Addresses joinSet[addressJoins[Q]] ArcgisAccounts joinSet[arcgisAccountJoins[Q]] ArcgisAddressMappings joinSet[arcgisAddressMappingJoins[Q]] ArcgisLayers joinSet[arcgisLayerJoins[Q]] ArcgisLayerFields joinSet[arcgisLayerFieldJoins[Q]] ArcgisOauthTokens joinSet[arcgisOauthTokenJoins[Q]] ArcgisParcelMappings joinSet[arcgisParcelMappingJoins[Q]] ArcgisServiceFeatures joinSet[arcgisServiceFeatureJoins[Q]] ArcgisServiceMaps joinSet[arcgisServiceMapJoins[Q]] ArcgisUsers joinSet[arcgisuserJoins[Q]] ArcgisUserPrivileges joinSet[arcgisUserPrivilegeJoins[Q]] CommsEmailContacts joinSet[commsEmailContactJoins[Q]] CommsEmailLogs joinSet[commsEmailLogJoins[Q]] CommsEmailTemplates joinSet[commsEmailTemplateJoins[Q]] CommsPhones joinSet[commsPhoneJoins[Q]] CommsTextJobs joinSet[commsTextJobJoins[Q]] CommsTextLogs joinSet[commsTextLogJoins[Q]] ComplianceReportRequests joinSet[complianceReportRequestJoins[Q]] DistrictSubscriptionEmails joinSet[districtSubscriptionEmailJoins[Q]] DistrictSubscriptionPhones joinSet[districtSubscriptionPhoneJoins[Q]] FieldseekerContainerrelates joinSet[fieldseekerContainerrelateJoins[Q]] FieldseekerFieldscoutinglogs joinSet[fieldseekerFieldscoutinglogJoins[Q]] FieldseekerHabitatrelates joinSet[fieldseekerHabitatrelateJoins[Q]] FieldseekerInspectionsamples joinSet[fieldseekerInspectionsampleJoins[Q]] FieldseekerInspectionsampledetails joinSet[fieldseekerInspectionsampledetailJoins[Q]] FieldseekerLinelocations joinSet[fieldseekerLinelocationJoins[Q]] FieldseekerLocationtrackings joinSet[fieldseekerLocationtrackingJoins[Q]] FieldseekerMosquitoinspections joinSet[fieldseekerMosquitoinspectionJoins[Q]] FieldseekerPointlocations joinSet[fieldseekerPointlocationJoins[Q]] FieldseekerPolygonlocations joinSet[fieldseekerPolygonlocationJoins[Q]] FieldseekerPools joinSet[fieldseekerPoolJoins[Q]] FieldseekerPooldetails joinSet[fieldseekerPooldetailJoins[Q]] FieldseekerProposedtreatmentareas joinSet[fieldseekerProposedtreatmentareaJoins[Q]] FieldseekerQamosquitoinspections joinSet[fieldseekerQamosquitoinspectionJoins[Q]] FieldseekerRodentlocations joinSet[fieldseekerRodentlocationJoins[Q]] FieldseekerSamplecollections joinSet[fieldseekerSamplecollectionJoins[Q]] FieldseekerSamplelocations joinSet[fieldseekerSamplelocationJoins[Q]] FieldseekerServicerequests joinSet[fieldseekerServicerequestJoins[Q]] FieldseekerSpeciesabundances joinSet[fieldseekerSpeciesabundanceJoins[Q]] FieldseekerStormdrains joinSet[fieldseekerStormdrainJoins[Q]] FieldseekerTimecards joinSet[fieldseekerTimecardJoins[Q]] FieldseekerTrapdata joinSet[fieldseekerTrapdatumJoins[Q]] FieldseekerTraplocations joinSet[fieldseekerTraplocationJoins[Q]] FieldseekerTreatments joinSet[fieldseekerTreatmentJoins[Q]] FieldseekerTreatmentareas joinSet[fieldseekerTreatmentareaJoins[Q]] FieldseekerZones joinSet[fieldseekerZoneJoins[Q]] FieldseekerZones2s joinSet[fieldseekerZones2Joins[Q]] FieldseekerSyncs joinSet[fieldseekerSyncJoins[Q]] FileuploadCSVS joinSet[fileuploadCSVJoins[Q]] FileuploadErrorCSVS joinSet[fileuploadErrorCSVJoins[Q]] FileuploadErrorFiles joinSet[fileuploadErrorFileJoins[Q]] FileuploadFiles joinSet[fileuploadFileJoins[Q]] FileuploadFlyoverAerialServices joinSet[fileuploadFlyoverAerialServiceJoins[Q]] FileuploadPools joinSet[fileuploadPoolJoins[Q]] H3Aggregations joinSet[h3AggregationJoins[Q]] NoteAudios joinSet[noteAudioJoins[Q]] NoteAudioBreadcrumbs joinSet[noteAudioBreadcrumbJoins[Q]] NoteAudioData joinSet[noteAudioDatumJoins[Q]] NoteImages joinSet[noteImageJoins[Q]] NoteImageBreadcrumbs joinSet[noteImageBreadcrumbJoins[Q]] NoteImageData joinSet[noteImageDatumJoins[Q]] Notifications joinSet[notificationJoins[Q]] Organizations joinSet[organizationJoins[Q]] Parcels joinSet[parcelJoins[Q]] Pools joinSet[poolJoins[Q]] PublicreportImages joinSet[publicreportImageJoins[Q]] PublicreportImageExifs joinSet[publicreportImageExifJoins[Q]] PublicreportNotifyEmailNuisances joinSet[publicreportNotifyEmailNuisanceJoins[Q]] PublicreportNotifyEmailPools joinSet[publicreportNotifyEmailPoolJoins[Q]] PublicreportNotifyPhoneNuisances joinSet[publicreportNotifyPhoneNuisanceJoins[Q]] PublicreportNotifyPhonePools joinSet[publicreportNotifyPhonePoolJoins[Q]] PublicreportNuisances joinSet[publicreportNuisanceJoins[Q]] PublicreportNuisanceImages joinSet[publicreportNuisanceImageJoins[Q]] PublicreportPools joinSet[publicreportPoolJoins[Q]] PublicreportPoolImages joinSet[publicreportPoolImageJoins[Q]] PublicreportQuicks joinSet[publicreportQuickJoins[Q]] PublicreportQuickImages joinSet[publicreportQuickImageJoins[Q]] PublicreportSubscribeEmails joinSet[publicreportSubscribeEmailJoins[Q]] PublicreportSubscribePhones joinSet[publicreportSubscribePhoneJoins[Q]] Residents joinSet[residentJoins[Q]] Sites joinSet[siteJoins[Q]] Users joinSet[userJoins[Q]] } func buildJoinSet[Q interface{ aliasedAs(string) Q }, C any, F func(C, string) Q](c C, f F) joinSet[Q] { return joinSet[Q]{ InnerJoin: f(c, clause.InnerJoin), LeftJoin: f(c, clause.LeftJoin), RightJoin: f(c, clause.RightJoin), } } func getJoins[Q dialect.Joinable]() joins[Q] { return joins[Q]{ Addresses: buildJoinSet[addressJoins[Q]](Addresses.Columns, buildAddressJoins), ArcgisAccounts: buildJoinSet[arcgisAccountJoins[Q]](ArcgisAccounts.Columns, buildArcgisAccountJoins), ArcgisAddressMappings: buildJoinSet[arcgisAddressMappingJoins[Q]](ArcgisAddressMappings.Columns, buildArcgisAddressMappingJoins), ArcgisLayers: buildJoinSet[arcgisLayerJoins[Q]](ArcgisLayers.Columns, buildArcgisLayerJoins), ArcgisLayerFields: buildJoinSet[arcgisLayerFieldJoins[Q]](ArcgisLayerFields.Columns, buildArcgisLayerFieldJoins), ArcgisOauthTokens: buildJoinSet[arcgisOauthTokenJoins[Q]](ArcgisOauthTokens.Columns, buildArcgisOauthTokenJoins), ArcgisParcelMappings: buildJoinSet[arcgisParcelMappingJoins[Q]](ArcgisParcelMappings.Columns, buildArcgisParcelMappingJoins), ArcgisServiceFeatures: buildJoinSet[arcgisServiceFeatureJoins[Q]](ArcgisServiceFeatures.Columns, buildArcgisServiceFeatureJoins), ArcgisServiceMaps: buildJoinSet[arcgisServiceMapJoins[Q]](ArcgisServiceMaps.Columns, buildArcgisServiceMapJoins), ArcgisUsers: buildJoinSet[arcgisuserJoins[Q]](ArcgisUsers.Columns, buildArcgisUserJoins), ArcgisUserPrivileges: buildJoinSet[arcgisUserPrivilegeJoins[Q]](ArcgisUserPrivileges.Columns, buildArcgisUserPrivilegeJoins), CommsEmailContacts: buildJoinSet[commsEmailContactJoins[Q]](CommsEmailContacts.Columns, buildCommsEmailContactJoins), CommsEmailLogs: buildJoinSet[commsEmailLogJoins[Q]](CommsEmailLogs.Columns, buildCommsEmailLogJoins), CommsEmailTemplates: buildJoinSet[commsEmailTemplateJoins[Q]](CommsEmailTemplates.Columns, buildCommsEmailTemplateJoins), CommsPhones: buildJoinSet[commsPhoneJoins[Q]](CommsPhones.Columns, buildCommsPhoneJoins), CommsTextJobs: buildJoinSet[commsTextJobJoins[Q]](CommsTextJobs.Columns, buildCommsTextJobJoins), CommsTextLogs: buildJoinSet[commsTextLogJoins[Q]](CommsTextLogs.Columns, buildCommsTextLogJoins), ComplianceReportRequests: buildJoinSet[complianceReportRequestJoins[Q]](ComplianceReportRequests.Columns, buildComplianceReportRequestJoins), DistrictSubscriptionEmails: buildJoinSet[districtSubscriptionEmailJoins[Q]](DistrictSubscriptionEmails.Columns, buildDistrictSubscriptionEmailJoins), DistrictSubscriptionPhones: buildJoinSet[districtSubscriptionPhoneJoins[Q]](DistrictSubscriptionPhones.Columns, buildDistrictSubscriptionPhoneJoins), FieldseekerContainerrelates: buildJoinSet[fieldseekerContainerrelateJoins[Q]](FieldseekerContainerrelates.Columns, buildFieldseekerContainerrelateJoins), FieldseekerFieldscoutinglogs: buildJoinSet[fieldseekerFieldscoutinglogJoins[Q]](FieldseekerFieldscoutinglogs.Columns, buildFieldseekerFieldscoutinglogJoins), FieldseekerHabitatrelates: buildJoinSet[fieldseekerHabitatrelateJoins[Q]](FieldseekerHabitatrelates.Columns, buildFieldseekerHabitatrelateJoins), FieldseekerInspectionsamples: buildJoinSet[fieldseekerInspectionsampleJoins[Q]](FieldseekerInspectionsamples.Columns, buildFieldseekerInspectionsampleJoins), FieldseekerInspectionsampledetails: buildJoinSet[fieldseekerInspectionsampledetailJoins[Q]](FieldseekerInspectionsampledetails.Columns, buildFieldseekerInspectionsampledetailJoins), FieldseekerLinelocations: buildJoinSet[fieldseekerLinelocationJoins[Q]](FieldseekerLinelocations.Columns, buildFieldseekerLinelocationJoins), FieldseekerLocationtrackings: buildJoinSet[fieldseekerLocationtrackingJoins[Q]](FieldseekerLocationtrackings.Columns, buildFieldseekerLocationtrackingJoins), FieldseekerMosquitoinspections: buildJoinSet[fieldseekerMosquitoinspectionJoins[Q]](FieldseekerMosquitoinspections.Columns, buildFieldseekerMosquitoinspectionJoins), FieldseekerPointlocations: buildJoinSet[fieldseekerPointlocationJoins[Q]](FieldseekerPointlocations.Columns, buildFieldseekerPointlocationJoins), FieldseekerPolygonlocations: buildJoinSet[fieldseekerPolygonlocationJoins[Q]](FieldseekerPolygonlocations.Columns, buildFieldseekerPolygonlocationJoins), FieldseekerPools: buildJoinSet[fieldseekerPoolJoins[Q]](FieldseekerPools.Columns, buildFieldseekerPoolJoins), FieldseekerPooldetails: buildJoinSet[fieldseekerPooldetailJoins[Q]](FieldseekerPooldetails.Columns, buildFieldseekerPooldetailJoins), FieldseekerProposedtreatmentareas: buildJoinSet[fieldseekerProposedtreatmentareaJoins[Q]](FieldseekerProposedtreatmentareas.Columns, buildFieldseekerProposedtreatmentareaJoins), FieldseekerQamosquitoinspections: buildJoinSet[fieldseekerQamosquitoinspectionJoins[Q]](FieldseekerQamosquitoinspections.Columns, buildFieldseekerQamosquitoinspectionJoins), FieldseekerRodentlocations: buildJoinSet[fieldseekerRodentlocationJoins[Q]](FieldseekerRodentlocations.Columns, buildFieldseekerRodentlocationJoins), FieldseekerSamplecollections: buildJoinSet[fieldseekerSamplecollectionJoins[Q]](FieldseekerSamplecollections.Columns, buildFieldseekerSamplecollectionJoins), FieldseekerSamplelocations: buildJoinSet[fieldseekerSamplelocationJoins[Q]](FieldseekerSamplelocations.Columns, buildFieldseekerSamplelocationJoins), FieldseekerServicerequests: buildJoinSet[fieldseekerServicerequestJoins[Q]](FieldseekerServicerequests.Columns, buildFieldseekerServicerequestJoins), FieldseekerSpeciesabundances: buildJoinSet[fieldseekerSpeciesabundanceJoins[Q]](FieldseekerSpeciesabundances.Columns, buildFieldseekerSpeciesabundanceJoins), FieldseekerStormdrains: buildJoinSet[fieldseekerStormdrainJoins[Q]](FieldseekerStormdrains.Columns, buildFieldseekerStormdrainJoins), FieldseekerTimecards: buildJoinSet[fieldseekerTimecardJoins[Q]](FieldseekerTimecards.Columns, buildFieldseekerTimecardJoins), FieldseekerTrapdata: buildJoinSet[fieldseekerTrapdatumJoins[Q]](FieldseekerTrapdata.Columns, buildFieldseekerTrapdatumJoins), FieldseekerTraplocations: buildJoinSet[fieldseekerTraplocationJoins[Q]](FieldseekerTraplocations.Columns, buildFieldseekerTraplocationJoins), FieldseekerTreatments: buildJoinSet[fieldseekerTreatmentJoins[Q]](FieldseekerTreatments.Columns, buildFieldseekerTreatmentJoins), FieldseekerTreatmentareas: buildJoinSet[fieldseekerTreatmentareaJoins[Q]](FieldseekerTreatmentareas.Columns, buildFieldseekerTreatmentareaJoins), FieldseekerZones: buildJoinSet[fieldseekerZoneJoins[Q]](FieldseekerZones.Columns, buildFieldseekerZoneJoins), FieldseekerZones2s: buildJoinSet[fieldseekerZones2Joins[Q]](FieldseekerZones2s.Columns, buildFieldseekerZones2Joins), FieldseekerSyncs: buildJoinSet[fieldseekerSyncJoins[Q]](FieldseekerSyncs.Columns, buildFieldseekerSyncJoins), FileuploadCSVS: buildJoinSet[fileuploadCSVJoins[Q]](FileuploadCSVS.Columns, buildFileuploadCSVJoins), FileuploadErrorCSVS: buildJoinSet[fileuploadErrorCSVJoins[Q]](FileuploadErrorCSVS.Columns, buildFileuploadErrorCSVJoins), FileuploadErrorFiles: buildJoinSet[fileuploadErrorFileJoins[Q]](FileuploadErrorFiles.Columns, buildFileuploadErrorFileJoins), FileuploadFiles: buildJoinSet[fileuploadFileJoins[Q]](FileuploadFiles.Columns, buildFileuploadFileJoins), FileuploadFlyoverAerialServices: buildJoinSet[fileuploadFlyoverAerialServiceJoins[Q]](FileuploadFlyoverAerialServices.Columns, buildFileuploadFlyoverAerialServiceJoins), FileuploadPools: buildJoinSet[fileuploadPoolJoins[Q]](FileuploadPools.Columns, buildFileuploadPoolJoins), H3Aggregations: buildJoinSet[h3AggregationJoins[Q]](H3Aggregations.Columns, buildH3AggregationJoins), NoteAudios: buildJoinSet[noteAudioJoins[Q]](NoteAudios.Columns, buildNoteAudioJoins), NoteAudioBreadcrumbs: buildJoinSet[noteAudioBreadcrumbJoins[Q]](NoteAudioBreadcrumbs.Columns, buildNoteAudioBreadcrumbJoins), NoteAudioData: buildJoinSet[noteAudioDatumJoins[Q]](NoteAudioData.Columns, buildNoteAudioDatumJoins), NoteImages: buildJoinSet[noteImageJoins[Q]](NoteImages.Columns, buildNoteImageJoins), NoteImageBreadcrumbs: buildJoinSet[noteImageBreadcrumbJoins[Q]](NoteImageBreadcrumbs.Columns, buildNoteImageBreadcrumbJoins), NoteImageData: buildJoinSet[noteImageDatumJoins[Q]](NoteImageData.Columns, buildNoteImageDatumJoins), Notifications: buildJoinSet[notificationJoins[Q]](Notifications.Columns, buildNotificationJoins), Organizations: buildJoinSet[organizationJoins[Q]](Organizations.Columns, buildOrganizationJoins), Parcels: buildJoinSet[parcelJoins[Q]](Parcels.Columns, buildParcelJoins), Pools: buildJoinSet[poolJoins[Q]](Pools.Columns, buildPoolJoins), PublicreportImages: buildJoinSet[publicreportImageJoins[Q]](PublicreportImages.Columns, buildPublicreportImageJoins), PublicreportImageExifs: buildJoinSet[publicreportImageExifJoins[Q]](PublicreportImageExifs.Columns, buildPublicreportImageExifJoins), PublicreportNotifyEmailNuisances: buildJoinSet[publicreportNotifyEmailNuisanceJoins[Q]](PublicreportNotifyEmailNuisances.Columns, buildPublicreportNotifyEmailNuisanceJoins), PublicreportNotifyEmailPools: buildJoinSet[publicreportNotifyEmailPoolJoins[Q]](PublicreportNotifyEmailPools.Columns, buildPublicreportNotifyEmailPoolJoins), PublicreportNotifyPhoneNuisances: buildJoinSet[publicreportNotifyPhoneNuisanceJoins[Q]](PublicreportNotifyPhoneNuisances.Columns, buildPublicreportNotifyPhoneNuisanceJoins), PublicreportNotifyPhonePools: buildJoinSet[publicreportNotifyPhonePoolJoins[Q]](PublicreportNotifyPhonePools.Columns, buildPublicreportNotifyPhonePoolJoins), PublicreportNuisances: buildJoinSet[publicreportNuisanceJoins[Q]](PublicreportNuisances.Columns, buildPublicreportNuisanceJoins), PublicreportNuisanceImages: buildJoinSet[publicreportNuisanceImageJoins[Q]](PublicreportNuisanceImages.Columns, buildPublicreportNuisanceImageJoins), PublicreportPools: buildJoinSet[publicreportPoolJoins[Q]](PublicreportPools.Columns, buildPublicreportPoolJoins), PublicreportPoolImages: buildJoinSet[publicreportPoolImageJoins[Q]](PublicreportPoolImages.Columns, buildPublicreportPoolImageJoins), PublicreportQuicks: buildJoinSet[publicreportQuickJoins[Q]](PublicreportQuicks.Columns, buildPublicreportQuickJoins), PublicreportQuickImages: buildJoinSet[publicreportQuickImageJoins[Q]](PublicreportQuickImages.Columns, buildPublicreportQuickImageJoins), PublicreportSubscribeEmails: buildJoinSet[publicreportSubscribeEmailJoins[Q]](PublicreportSubscribeEmails.Columns, buildPublicreportSubscribeEmailJoins), PublicreportSubscribePhones: buildJoinSet[publicreportSubscribePhoneJoins[Q]](PublicreportSubscribePhones.Columns, buildPublicreportSubscribePhoneJoins), Residents: buildJoinSet[residentJoins[Q]](Residents.Columns, buildResidentJoins), Sites: buildJoinSet[siteJoins[Q]](Sites.Columns, buildSiteJoins), Users: buildJoinSet[userJoins[Q]](Users.Columns, buildUserJoins), } } type modAs[Q any, C interface{ AliasedAs(string) C }] struct { c C f func(C) bob.Mod[Q] } func (m modAs[Q, C]) Apply(q Q) { m.f(m.c).Apply(q) } func (m modAs[Q, C]) AliasedAs(alias string) bob.Mod[Q] { m.c = m.c.AliasedAs(alias) return m } func randInt() int64 { out := int64(new(maphash.Hash).Sum64()) if out < 0 { return -out % 10000 } return out % 10000 }