// Code generated by BobGen psql v0.42.1. 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/stephenafamo/bob" "github.com/stephenafamo/bob/clause" "github.com/stephenafamo/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 { ArcgisUsers joinSet[arcgisuserJoins[Q]] ArcgisUserPrivileges joinSet[arcgisUserPrivilegeJoins[Q]] CommsEmails joinSet[commsEmailJoins[Q]] CommsEmailLogs joinSet[commsEmailLogJoins[Q]] CommsPhones joinSet[commsPhoneJoins[Q]] CommsSMSLogs joinSet[commsSMSLogJoins[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]] H3Aggregations joinSet[h3AggregationJoins[Q]] ImportDistricts joinSet[importDistrictJoins[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]] OauthTokens joinSet[oauthTokenJoins[Q]] Organizations joinSet[organizationJoins[Q]] PublicreportImages joinSet[publicreportImageJoins[Q]] PublicreportImageExifs joinSet[publicreportImageExifJoins[Q]] PublicreportPools joinSet[publicreportPoolJoins[Q]] PublicreportPoolImages joinSet[publicreportPoolImageJoins[Q]] PublicreportQuicks joinSet[publicreportQuickJoins[Q]] PublicreportQuickImages joinSet[publicreportQuickImageJoins[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]{ ArcgisUsers: buildJoinSet[arcgisuserJoins[Q]](ArcgisUsers.Columns, buildArcgisUserJoins), ArcgisUserPrivileges: buildJoinSet[arcgisUserPrivilegeJoins[Q]](ArcgisUserPrivileges.Columns, buildArcgisUserPrivilegeJoins), CommsEmails: buildJoinSet[commsEmailJoins[Q]](CommsEmails.Columns, buildCommsEmailJoins), CommsEmailLogs: buildJoinSet[commsEmailLogJoins[Q]](CommsEmailLogs.Columns, buildCommsEmailLogJoins), CommsPhones: buildJoinSet[commsPhoneJoins[Q]](CommsPhones.Columns, buildCommsPhoneJoins), CommsSMSLogs: buildJoinSet[commsSMSLogJoins[Q]](CommsSMSLogs.Columns, buildCommsSMSLogJoins), 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), H3Aggregations: buildJoinSet[h3AggregationJoins[Q]](H3Aggregations.Columns, buildH3AggregationJoins), ImportDistricts: buildJoinSet[importDistrictJoins[Q]](ImportDistricts.Columns, buildImportDistrictJoins), 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), OauthTokens: buildJoinSet[oauthTokenJoins[Q]](OauthTokens.Columns, buildOauthTokenJoins), Organizations: buildJoinSet[organizationJoins[Q]](Organizations.Columns, buildOrganizationJoins), PublicreportImages: buildJoinSet[publicreportImageJoins[Q]](PublicreportImages.Columns, buildPublicreportImageJoins), PublicreportImageExifs: buildJoinSet[publicreportImageExifJoins[Q]](PublicreportImageExifs.Columns, buildPublicreportImageExifJoins), 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), 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 }