Remove old FieldSeeker tables, use v2 generated tables.

This requires a bunch of changes since the types on these tables are
much closer to the underlying types of the Fieldseeker data we are
getting back from the API.

I now need to use proper UUID types everywhere, which means I had to
modify the bob gen config to consistently use google UUID, my UUID
library of choice.

I also had to add the organization_id to all the fieldseeker tables
since we rely on them existing for some of our compound queries.

There were some changes to the API type signatures to get things to
build. I may yet regret those.
This commit is contained in:
Eli Ribble 2025-12-24 17:49:39 -07:00
parent 58f5afccc9
commit 1395e3d3ac
445 changed files with 54077 additions and 275856 deletions

View file

@ -1,4 +1,4 @@
// Code generated by BobGen psql v0.0.3-0.20251202003046-49148fc66a73+dirty. DO NOT EDIT.
// Code generated by BobGen psql v0.0.4-0.20251216163753-8e325b7c773a+dirty. DO NOT EDIT.
// This file is meant to be re-generated in place and/or deleted at any time.
package models
@ -32,66 +32,45 @@ func (j joinSet[Q]) AliasedAs(alias string) joinSet[Q] {
}
type joins[Q dialect.Joinable] struct {
FieldseekerSyncs joinSet[fieldseekerSyncJoins[Q]]
FSContainerrelates joinSet[fsContainerrelateJoins[Q]]
FSFieldscoutinglogs joinSet[fsFieldscoutinglogJoins[Q]]
FSHabitatrelates joinSet[fsHabitatrelateJoins[Q]]
FSInspectionsamples joinSet[fsInspectionsampleJoins[Q]]
FSInspectionsampledetails joinSet[fsInspectionsampledetailJoins[Q]]
FSLinelocations joinSet[fsLinelocationJoins[Q]]
FSLocationtrackings joinSet[fsLocationtrackingJoins[Q]]
FSMosquitoinspections joinSet[fsMosquitoinspectionJoins[Q]]
FSPointlocations joinSet[fsPointlocationJoins[Q]]
FSPolygonlocations joinSet[fsPolygonlocationJoins[Q]]
FSPools joinSet[fsPoolJoins[Q]]
FSPooldetails joinSet[fsPooldetailJoins[Q]]
FSProposedtreatmentareas joinSet[fsProposedtreatmentareaJoins[Q]]
FSQamosquitoinspections joinSet[fsQamosquitoinspectionJoins[Q]]
FSRodentlocations joinSet[fsRodentlocationJoins[Q]]
FSSamplecollections joinSet[fsSamplecollectionJoins[Q]]
FSSamplelocations joinSet[fsSamplelocationJoins[Q]]
FSServicerequests joinSet[fsServicerequestJoins[Q]]
FSSpeciesabundances joinSet[fsSpeciesabundanceJoins[Q]]
FSStormdrains joinSet[fsStormdrainJoins[Q]]
FSTimecards joinSet[fsTimecardJoins[Q]]
FSTrapdata joinSet[fsTrapdatumJoins[Q]]
FSTraplocations joinSet[fsTraplocationJoins[Q]]
FSTreatments joinSet[fsTreatmentJoins[Q]]
FSTreatmentareas joinSet[fsTreatmentareaJoins[Q]]
FSZones joinSet[fsZoneJoins[Q]]
FSZones2s joinSet[fsZones2Joins[Q]]
H3Aggregations joinSet[h3AggregationJoins[Q]]
HistoryContainerrelates joinSet[historyContainerrelateJoins[Q]]
HistoryFieldscoutinglogs joinSet[historyFieldscoutinglogJoins[Q]]
HistoryHabitatrelates joinSet[historyHabitatrelateJoins[Q]]
HistoryInspectionsamples joinSet[historyInspectionsampleJoins[Q]]
HistoryInspectionsampledetails joinSet[historyInspectionsampledetailJoins[Q]]
HistoryLinelocations joinSet[historyLinelocationJoins[Q]]
HistoryLocationtrackings joinSet[historyLocationtrackingJoins[Q]]
HistoryMosquitoinspections joinSet[historyMosquitoinspectionJoins[Q]]
HistoryPointlocations joinSet[historyPointlocationJoins[Q]]
HistoryPolygonlocations joinSet[historyPolygonlocationJoins[Q]]
HistoryPools joinSet[historyPoolJoins[Q]]
HistoryPooldetails joinSet[historyPooldetailJoins[Q]]
HistoryProposedtreatmentareas joinSet[historyProposedtreatmentareaJoins[Q]]
HistoryQamosquitoinspections joinSet[historyQamosquitoinspectionJoins[Q]]
HistoryRodentlocations joinSet[historyRodentlocationJoins[Q]]
HistorySamplecollections joinSet[historySamplecollectionJoins[Q]]
HistorySamplelocations joinSet[historySamplelocationJoins[Q]]
HistoryServicerequests joinSet[historyServicerequestJoins[Q]]
HistorySpeciesabundances joinSet[historySpeciesabundanceJoins[Q]]
HistoryStormdrains joinSet[historyStormdrainJoins[Q]]
HistoryTimecards joinSet[historyTimecardJoins[Q]]
HistoryTrapdata joinSet[historyTrapdatumJoins[Q]]
HistoryTraplocations joinSet[historyTraplocationJoins[Q]]
HistoryTreatments joinSet[historyTreatmentJoins[Q]]
HistoryTreatmentareas joinSet[historyTreatmentareaJoins[Q]]
HistoryZones joinSet[historyZoneJoins[Q]]
HistoryZones2s joinSet[historyZones2Joins[Q]]
Notifications joinSet[notificationJoins[Q]]
OauthTokens joinSet[oauthTokenJoins[Q]]
Organizations joinSet[organizationJoins[Q]]
Users joinSet[userJoins[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]]
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]]
Users joinSet[userJoins[Q]]
}
func buildJoinSet[Q interface{ aliasedAs(string) Q }, C any, F func(C, string) Q](c C, f F) joinSet[Q] {
@ -104,66 +83,45 @@ func buildJoinSet[Q interface{ aliasedAs(string) Q }, C any, F func(C, string) Q
func getJoins[Q dialect.Joinable]() joins[Q] {
return joins[Q]{
FieldseekerSyncs: buildJoinSet[fieldseekerSyncJoins[Q]](FieldseekerSyncs.Columns, buildFieldseekerSyncJoins),
FSContainerrelates: buildJoinSet[fsContainerrelateJoins[Q]](FSContainerrelates.Columns, buildFSContainerrelateJoins),
FSFieldscoutinglogs: buildJoinSet[fsFieldscoutinglogJoins[Q]](FSFieldscoutinglogs.Columns, buildFSFieldscoutinglogJoins),
FSHabitatrelates: buildJoinSet[fsHabitatrelateJoins[Q]](FSHabitatrelates.Columns, buildFSHabitatrelateJoins),
FSInspectionsamples: buildJoinSet[fsInspectionsampleJoins[Q]](FSInspectionsamples.Columns, buildFSInspectionsampleJoins),
FSInspectionsampledetails: buildJoinSet[fsInspectionsampledetailJoins[Q]](FSInspectionsampledetails.Columns, buildFSInspectionsampledetailJoins),
FSLinelocations: buildJoinSet[fsLinelocationJoins[Q]](FSLinelocations.Columns, buildFSLinelocationJoins),
FSLocationtrackings: buildJoinSet[fsLocationtrackingJoins[Q]](FSLocationtrackings.Columns, buildFSLocationtrackingJoins),
FSMosquitoinspections: buildJoinSet[fsMosquitoinspectionJoins[Q]](FSMosquitoinspections.Columns, buildFSMosquitoinspectionJoins),
FSPointlocations: buildJoinSet[fsPointlocationJoins[Q]](FSPointlocations.Columns, buildFSPointlocationJoins),
FSPolygonlocations: buildJoinSet[fsPolygonlocationJoins[Q]](FSPolygonlocations.Columns, buildFSPolygonlocationJoins),
FSPools: buildJoinSet[fsPoolJoins[Q]](FSPools.Columns, buildFSPoolJoins),
FSPooldetails: buildJoinSet[fsPooldetailJoins[Q]](FSPooldetails.Columns, buildFSPooldetailJoins),
FSProposedtreatmentareas: buildJoinSet[fsProposedtreatmentareaJoins[Q]](FSProposedtreatmentareas.Columns, buildFSProposedtreatmentareaJoins),
FSQamosquitoinspections: buildJoinSet[fsQamosquitoinspectionJoins[Q]](FSQamosquitoinspections.Columns, buildFSQamosquitoinspectionJoins),
FSRodentlocations: buildJoinSet[fsRodentlocationJoins[Q]](FSRodentlocations.Columns, buildFSRodentlocationJoins),
FSSamplecollections: buildJoinSet[fsSamplecollectionJoins[Q]](FSSamplecollections.Columns, buildFSSamplecollectionJoins),
FSSamplelocations: buildJoinSet[fsSamplelocationJoins[Q]](FSSamplelocations.Columns, buildFSSamplelocationJoins),
FSServicerequests: buildJoinSet[fsServicerequestJoins[Q]](FSServicerequests.Columns, buildFSServicerequestJoins),
FSSpeciesabundances: buildJoinSet[fsSpeciesabundanceJoins[Q]](FSSpeciesabundances.Columns, buildFSSpeciesabundanceJoins),
FSStormdrains: buildJoinSet[fsStormdrainJoins[Q]](FSStormdrains.Columns, buildFSStormdrainJoins),
FSTimecards: buildJoinSet[fsTimecardJoins[Q]](FSTimecards.Columns, buildFSTimecardJoins),
FSTrapdata: buildJoinSet[fsTrapdatumJoins[Q]](FSTrapdata.Columns, buildFSTrapdatumJoins),
FSTraplocations: buildJoinSet[fsTraplocationJoins[Q]](FSTraplocations.Columns, buildFSTraplocationJoins),
FSTreatments: buildJoinSet[fsTreatmentJoins[Q]](FSTreatments.Columns, buildFSTreatmentJoins),
FSTreatmentareas: buildJoinSet[fsTreatmentareaJoins[Q]](FSTreatmentareas.Columns, buildFSTreatmentareaJoins),
FSZones: buildJoinSet[fsZoneJoins[Q]](FSZones.Columns, buildFSZoneJoins),
FSZones2s: buildJoinSet[fsZones2Joins[Q]](FSZones2s.Columns, buildFSZones2Joins),
H3Aggregations: buildJoinSet[h3AggregationJoins[Q]](H3Aggregations.Columns, buildH3AggregationJoins),
HistoryContainerrelates: buildJoinSet[historyContainerrelateJoins[Q]](HistoryContainerrelates.Columns, buildHistoryContainerrelateJoins),
HistoryFieldscoutinglogs: buildJoinSet[historyFieldscoutinglogJoins[Q]](HistoryFieldscoutinglogs.Columns, buildHistoryFieldscoutinglogJoins),
HistoryHabitatrelates: buildJoinSet[historyHabitatrelateJoins[Q]](HistoryHabitatrelates.Columns, buildHistoryHabitatrelateJoins),
HistoryInspectionsamples: buildJoinSet[historyInspectionsampleJoins[Q]](HistoryInspectionsamples.Columns, buildHistoryInspectionsampleJoins),
HistoryInspectionsampledetails: buildJoinSet[historyInspectionsampledetailJoins[Q]](HistoryInspectionsampledetails.Columns, buildHistoryInspectionsampledetailJoins),
HistoryLinelocations: buildJoinSet[historyLinelocationJoins[Q]](HistoryLinelocations.Columns, buildHistoryLinelocationJoins),
HistoryLocationtrackings: buildJoinSet[historyLocationtrackingJoins[Q]](HistoryLocationtrackings.Columns, buildHistoryLocationtrackingJoins),
HistoryMosquitoinspections: buildJoinSet[historyMosquitoinspectionJoins[Q]](HistoryMosquitoinspections.Columns, buildHistoryMosquitoinspectionJoins),
HistoryPointlocations: buildJoinSet[historyPointlocationJoins[Q]](HistoryPointlocations.Columns, buildHistoryPointlocationJoins),
HistoryPolygonlocations: buildJoinSet[historyPolygonlocationJoins[Q]](HistoryPolygonlocations.Columns, buildHistoryPolygonlocationJoins),
HistoryPools: buildJoinSet[historyPoolJoins[Q]](HistoryPools.Columns, buildHistoryPoolJoins),
HistoryPooldetails: buildJoinSet[historyPooldetailJoins[Q]](HistoryPooldetails.Columns, buildHistoryPooldetailJoins),
HistoryProposedtreatmentareas: buildJoinSet[historyProposedtreatmentareaJoins[Q]](HistoryProposedtreatmentareas.Columns, buildHistoryProposedtreatmentareaJoins),
HistoryQamosquitoinspections: buildJoinSet[historyQamosquitoinspectionJoins[Q]](HistoryQamosquitoinspections.Columns, buildHistoryQamosquitoinspectionJoins),
HistoryRodentlocations: buildJoinSet[historyRodentlocationJoins[Q]](HistoryRodentlocations.Columns, buildHistoryRodentlocationJoins),
HistorySamplecollections: buildJoinSet[historySamplecollectionJoins[Q]](HistorySamplecollections.Columns, buildHistorySamplecollectionJoins),
HistorySamplelocations: buildJoinSet[historySamplelocationJoins[Q]](HistorySamplelocations.Columns, buildHistorySamplelocationJoins),
HistoryServicerequests: buildJoinSet[historyServicerequestJoins[Q]](HistoryServicerequests.Columns, buildHistoryServicerequestJoins),
HistorySpeciesabundances: buildJoinSet[historySpeciesabundanceJoins[Q]](HistorySpeciesabundances.Columns, buildHistorySpeciesabundanceJoins),
HistoryStormdrains: buildJoinSet[historyStormdrainJoins[Q]](HistoryStormdrains.Columns, buildHistoryStormdrainJoins),
HistoryTimecards: buildJoinSet[historyTimecardJoins[Q]](HistoryTimecards.Columns, buildHistoryTimecardJoins),
HistoryTrapdata: buildJoinSet[historyTrapdatumJoins[Q]](HistoryTrapdata.Columns, buildHistoryTrapdatumJoins),
HistoryTraplocations: buildJoinSet[historyTraplocationJoins[Q]](HistoryTraplocations.Columns, buildHistoryTraplocationJoins),
HistoryTreatments: buildJoinSet[historyTreatmentJoins[Q]](HistoryTreatments.Columns, buildHistoryTreatmentJoins),
HistoryTreatmentareas: buildJoinSet[historyTreatmentareaJoins[Q]](HistoryTreatmentareas.Columns, buildHistoryTreatmentareaJoins),
HistoryZones: buildJoinSet[historyZoneJoins[Q]](HistoryZones.Columns, buildHistoryZoneJoins),
HistoryZones2s: buildJoinSet[historyZones2Joins[Q]](HistoryZones2s.Columns, buildHistoryZones2Joins),
Notifications: buildJoinSet[notificationJoins[Q]](Notifications.Columns, buildNotificationJoins),
OauthTokens: buildJoinSet[oauthTokenJoins[Q]](OauthTokens.Columns, buildOauthTokenJoins),
Organizations: buildJoinSet[organizationJoins[Q]](Organizations.Columns, buildOrganizationJoins),
Users: buildJoinSet[userJoins[Q]](Users.Columns, buildUserJoins),
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),
Users: buildJoinSet[userJoins[Q]](Users.Columns, buildUserJoins),
}
}