// Code generated by BobGen psql v0.0.4-0.20260105020634-53e08d840e47+dirty. DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models import ( "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 { 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]] 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]] PublicreportQuicks joinSet[publicreportQuickJoins[Q]] PublicreportQuickPhotos joinSet[publicreportQuickPhotoJoins[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]{ 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), 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), PublicreportQuicks: buildJoinSet[publicreportQuickJoins[Q]](PublicreportQuicks.Columns, buildPublicreportQuickJoins), PublicreportQuickPhotos: buildJoinSet[publicreportQuickPhotoJoins[Q]](PublicreportQuickPhotos.Columns, buildPublicreportQuickPhotoJoins), 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 }