1445 lines
41 KiB
Go
1445 lines
41 KiB
Go
// 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 (
|
|
"context"
|
|
"fmt"
|
|
"io"
|
|
|
|
"github.com/Gleipnir-Technology/bob"
|
|
"github.com/Gleipnir-Technology/bob/dialect/psql"
|
|
"github.com/Gleipnir-Technology/bob/dialect/psql/dialect"
|
|
"github.com/Gleipnir-Technology/bob/dialect/psql/dm"
|
|
"github.com/Gleipnir-Technology/bob/dialect/psql/sm"
|
|
"github.com/Gleipnir-Technology/bob/dialect/psql/um"
|
|
"github.com/Gleipnir-Technology/bob/expr"
|
|
"github.com/Gleipnir-Technology/bob/orm"
|
|
"github.com/Gleipnir-Technology/bob/types/pgtypes"
|
|
"github.com/aarondl/opt/null"
|
|
"github.com/aarondl/opt/omit"
|
|
"github.com/aarondl/opt/omitnull"
|
|
)
|
|
|
|
// ArcgisAccount is an object representing the database table.
|
|
type ArcgisAccount struct {
|
|
ID string `db:"id,pk" `
|
|
Name string `db:"name" `
|
|
OrganizationID int32 `db:"organization_id" `
|
|
URLFeatures null.Val[string] `db:"url_features" `
|
|
URLInsights null.Val[string] `db:"url_insights" `
|
|
URLGeometry null.Val[string] `db:"url_geometry" `
|
|
URLNotebooks null.Val[string] `db:"url_notebooks" `
|
|
URLTiles null.Val[string] `db:"url_tiles" `
|
|
|
|
R arcgisAccountR `db:"-" `
|
|
}
|
|
|
|
// ArcgisAccountSlice is an alias for a slice of pointers to ArcgisAccount.
|
|
// This should almost always be used instead of []*ArcgisAccount.
|
|
type ArcgisAccountSlice []*ArcgisAccount
|
|
|
|
// ArcgisAccounts contains methods to work with the account table
|
|
var ArcgisAccounts = psql.NewTablex[*ArcgisAccount, ArcgisAccountSlice, *ArcgisAccountSetter]("arcgis", "account", buildArcgisAccountColumns("arcgis.account"))
|
|
|
|
// ArcgisAccountsQuery is a query on the account table
|
|
type ArcgisAccountsQuery = *psql.ViewQuery[*ArcgisAccount, ArcgisAccountSlice]
|
|
|
|
// arcgisAccountR is where relationships are stored.
|
|
type arcgisAccountR struct {
|
|
Organization *Organization // arcgis.account.account_organization_id_fkey
|
|
ArcgisAccountOauthTokens ArcgisOauthTokenSlice // arcgis.oauth_token.oauth_token_arcgis_account_id_fkey
|
|
ServiceFeatures ArcgisServiceFeatureSlice // arcgis.service_feature.service_feature_account_id_fkey
|
|
ServiceMaps ArcgisServiceMapSlice // arcgis.service_map.service_map_account_id_fkey
|
|
ArcgisAccountOrganizations OrganizationSlice // organization.organization_arcgis_account_id_fkey
|
|
}
|
|
|
|
func buildArcgisAccountColumns(alias string) arcgisAccountColumns {
|
|
return arcgisAccountColumns{
|
|
ColumnsExpr: expr.NewColumnsExpr(
|
|
"id", "name", "organization_id", "url_features", "url_insights", "url_geometry", "url_notebooks", "url_tiles",
|
|
).WithParent("arcgis.account"),
|
|
tableAlias: alias,
|
|
ID: psql.Quote(alias, "id"),
|
|
Name: psql.Quote(alias, "name"),
|
|
OrganizationID: psql.Quote(alias, "organization_id"),
|
|
URLFeatures: psql.Quote(alias, "url_features"),
|
|
URLInsights: psql.Quote(alias, "url_insights"),
|
|
URLGeometry: psql.Quote(alias, "url_geometry"),
|
|
URLNotebooks: psql.Quote(alias, "url_notebooks"),
|
|
URLTiles: psql.Quote(alias, "url_tiles"),
|
|
}
|
|
}
|
|
|
|
type arcgisAccountColumns struct {
|
|
expr.ColumnsExpr
|
|
tableAlias string
|
|
ID psql.Expression
|
|
Name psql.Expression
|
|
OrganizationID psql.Expression
|
|
URLFeatures psql.Expression
|
|
URLInsights psql.Expression
|
|
URLGeometry psql.Expression
|
|
URLNotebooks psql.Expression
|
|
URLTiles psql.Expression
|
|
}
|
|
|
|
func (c arcgisAccountColumns) Alias() string {
|
|
return c.tableAlias
|
|
}
|
|
|
|
func (arcgisAccountColumns) AliasedAs(alias string) arcgisAccountColumns {
|
|
return buildArcgisAccountColumns(alias)
|
|
}
|
|
|
|
// ArcgisAccountSetter is used for insert/upsert/update operations
|
|
// All values are optional, and do not have to be set
|
|
// Generated columns are not included
|
|
type ArcgisAccountSetter struct {
|
|
ID omit.Val[string] `db:"id,pk" `
|
|
Name omit.Val[string] `db:"name" `
|
|
OrganizationID omit.Val[int32] `db:"organization_id" `
|
|
URLFeatures omitnull.Val[string] `db:"url_features" `
|
|
URLInsights omitnull.Val[string] `db:"url_insights" `
|
|
URLGeometry omitnull.Val[string] `db:"url_geometry" `
|
|
URLNotebooks omitnull.Val[string] `db:"url_notebooks" `
|
|
URLTiles omitnull.Val[string] `db:"url_tiles" `
|
|
}
|
|
|
|
func (s ArcgisAccountSetter) SetColumns() []string {
|
|
vals := make([]string, 0, 8)
|
|
if s.ID.IsValue() {
|
|
vals = append(vals, "id")
|
|
}
|
|
if s.Name.IsValue() {
|
|
vals = append(vals, "name")
|
|
}
|
|
if s.OrganizationID.IsValue() {
|
|
vals = append(vals, "organization_id")
|
|
}
|
|
if !s.URLFeatures.IsUnset() {
|
|
vals = append(vals, "url_features")
|
|
}
|
|
if !s.URLInsights.IsUnset() {
|
|
vals = append(vals, "url_insights")
|
|
}
|
|
if !s.URLGeometry.IsUnset() {
|
|
vals = append(vals, "url_geometry")
|
|
}
|
|
if !s.URLNotebooks.IsUnset() {
|
|
vals = append(vals, "url_notebooks")
|
|
}
|
|
if !s.URLTiles.IsUnset() {
|
|
vals = append(vals, "url_tiles")
|
|
}
|
|
return vals
|
|
}
|
|
|
|
func (s ArcgisAccountSetter) Overwrite(t *ArcgisAccount) {
|
|
if s.ID.IsValue() {
|
|
t.ID = s.ID.MustGet()
|
|
}
|
|
if s.Name.IsValue() {
|
|
t.Name = s.Name.MustGet()
|
|
}
|
|
if s.OrganizationID.IsValue() {
|
|
t.OrganizationID = s.OrganizationID.MustGet()
|
|
}
|
|
if !s.URLFeatures.IsUnset() {
|
|
t.URLFeatures = s.URLFeatures.MustGetNull()
|
|
}
|
|
if !s.URLInsights.IsUnset() {
|
|
t.URLInsights = s.URLInsights.MustGetNull()
|
|
}
|
|
if !s.URLGeometry.IsUnset() {
|
|
t.URLGeometry = s.URLGeometry.MustGetNull()
|
|
}
|
|
if !s.URLNotebooks.IsUnset() {
|
|
t.URLNotebooks = s.URLNotebooks.MustGetNull()
|
|
}
|
|
if !s.URLTiles.IsUnset() {
|
|
t.URLTiles = s.URLTiles.MustGetNull()
|
|
}
|
|
}
|
|
|
|
func (s *ArcgisAccountSetter) Apply(q *dialect.InsertQuery) {
|
|
q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) {
|
|
return ArcgisAccounts.BeforeInsertHooks.RunHooks(ctx, exec, s)
|
|
})
|
|
|
|
q.AppendValues(bob.ExpressionFunc(func(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) {
|
|
vals := make([]bob.Expression, 8)
|
|
if s.ID.IsValue() {
|
|
vals[0] = psql.Arg(s.ID.MustGet())
|
|
} else {
|
|
vals[0] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if s.Name.IsValue() {
|
|
vals[1] = psql.Arg(s.Name.MustGet())
|
|
} else {
|
|
vals[1] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if s.OrganizationID.IsValue() {
|
|
vals[2] = psql.Arg(s.OrganizationID.MustGet())
|
|
} else {
|
|
vals[2] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if !s.URLFeatures.IsUnset() {
|
|
vals[3] = psql.Arg(s.URLFeatures.MustGetNull())
|
|
} else {
|
|
vals[3] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if !s.URLInsights.IsUnset() {
|
|
vals[4] = psql.Arg(s.URLInsights.MustGetNull())
|
|
} else {
|
|
vals[4] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if !s.URLGeometry.IsUnset() {
|
|
vals[5] = psql.Arg(s.URLGeometry.MustGetNull())
|
|
} else {
|
|
vals[5] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if !s.URLNotebooks.IsUnset() {
|
|
vals[6] = psql.Arg(s.URLNotebooks.MustGetNull())
|
|
} else {
|
|
vals[6] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
if !s.URLTiles.IsUnset() {
|
|
vals[7] = psql.Arg(s.URLTiles.MustGetNull())
|
|
} else {
|
|
vals[7] = psql.Raw("DEFAULT")
|
|
}
|
|
|
|
return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "")
|
|
}))
|
|
}
|
|
|
|
func (s ArcgisAccountSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] {
|
|
return um.Set(s.Expressions()...)
|
|
}
|
|
|
|
func (s ArcgisAccountSetter) Expressions(prefix ...string) []bob.Expression {
|
|
exprs := make([]bob.Expression, 0, 8)
|
|
|
|
if s.ID.IsValue() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "id")...),
|
|
psql.Arg(s.ID),
|
|
}})
|
|
}
|
|
|
|
if s.Name.IsValue() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "name")...),
|
|
psql.Arg(s.Name),
|
|
}})
|
|
}
|
|
|
|
if s.OrganizationID.IsValue() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "organization_id")...),
|
|
psql.Arg(s.OrganizationID),
|
|
}})
|
|
}
|
|
|
|
if !s.URLFeatures.IsUnset() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "url_features")...),
|
|
psql.Arg(s.URLFeatures),
|
|
}})
|
|
}
|
|
|
|
if !s.URLInsights.IsUnset() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "url_insights")...),
|
|
psql.Arg(s.URLInsights),
|
|
}})
|
|
}
|
|
|
|
if !s.URLGeometry.IsUnset() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "url_geometry")...),
|
|
psql.Arg(s.URLGeometry),
|
|
}})
|
|
}
|
|
|
|
if !s.URLNotebooks.IsUnset() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "url_notebooks")...),
|
|
psql.Arg(s.URLNotebooks),
|
|
}})
|
|
}
|
|
|
|
if !s.URLTiles.IsUnset() {
|
|
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
|
|
psql.Quote(append(prefix, "url_tiles")...),
|
|
psql.Arg(s.URLTiles),
|
|
}})
|
|
}
|
|
|
|
return exprs
|
|
}
|
|
|
|
// FindArcgisAccount retrieves a single record by primary key
|
|
// If cols is empty Find will return all columns.
|
|
func FindArcgisAccount(ctx context.Context, exec bob.Executor, IDPK string, cols ...string) (*ArcgisAccount, error) {
|
|
if len(cols) == 0 {
|
|
return ArcgisAccounts.Query(
|
|
sm.Where(ArcgisAccounts.Columns.ID.EQ(psql.Arg(IDPK))),
|
|
).One(ctx, exec)
|
|
}
|
|
|
|
return ArcgisAccounts.Query(
|
|
sm.Where(ArcgisAccounts.Columns.ID.EQ(psql.Arg(IDPK))),
|
|
sm.Columns(ArcgisAccounts.Columns.Only(cols...)),
|
|
).One(ctx, exec)
|
|
}
|
|
|
|
// ArcgisAccountExists checks the presence of a single record by primary key
|
|
func ArcgisAccountExists(ctx context.Context, exec bob.Executor, IDPK string) (bool, error) {
|
|
return ArcgisAccounts.Query(
|
|
sm.Where(ArcgisAccounts.Columns.ID.EQ(psql.Arg(IDPK))),
|
|
).Exists(ctx, exec)
|
|
}
|
|
|
|
// AfterQueryHook is called after ArcgisAccount is retrieved from the database
|
|
func (o *ArcgisAccount) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error {
|
|
var err error
|
|
|
|
switch queryType {
|
|
case bob.QueryTypeSelect:
|
|
ctx, err = ArcgisAccounts.AfterSelectHooks.RunHooks(ctx, exec, ArcgisAccountSlice{o})
|
|
case bob.QueryTypeInsert:
|
|
ctx, err = ArcgisAccounts.AfterInsertHooks.RunHooks(ctx, exec, ArcgisAccountSlice{o})
|
|
case bob.QueryTypeUpdate:
|
|
ctx, err = ArcgisAccounts.AfterUpdateHooks.RunHooks(ctx, exec, ArcgisAccountSlice{o})
|
|
case bob.QueryTypeDelete:
|
|
ctx, err = ArcgisAccounts.AfterDeleteHooks.RunHooks(ctx, exec, ArcgisAccountSlice{o})
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// primaryKeyVals returns the primary key values of the ArcgisAccount
|
|
func (o *ArcgisAccount) primaryKeyVals() bob.Expression {
|
|
return psql.Arg(o.ID)
|
|
}
|
|
|
|
func (o *ArcgisAccount) pkEQ() dialect.Expression {
|
|
return psql.Quote("arcgis.account", "id").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)
|
|
}))
|
|
}
|
|
|
|
// Update uses an executor to update the ArcgisAccount
|
|
func (o *ArcgisAccount) Update(ctx context.Context, exec bob.Executor, s *ArcgisAccountSetter) error {
|
|
v, err := ArcgisAccounts.Update(s.UpdateMod(), um.Where(o.pkEQ())).One(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
o.R = v.R
|
|
*o = *v
|
|
|
|
return nil
|
|
}
|
|
|
|
// Delete deletes a single ArcgisAccount record with an executor
|
|
func (o *ArcgisAccount) Delete(ctx context.Context, exec bob.Executor) error {
|
|
_, err := ArcgisAccounts.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec)
|
|
return err
|
|
}
|
|
|
|
// Reload refreshes the ArcgisAccount using the executor
|
|
func (o *ArcgisAccount) Reload(ctx context.Context, exec bob.Executor) error {
|
|
o2, err := ArcgisAccounts.Query(
|
|
sm.Where(ArcgisAccounts.Columns.ID.EQ(psql.Arg(o.ID))),
|
|
).One(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
o2.R = o.R
|
|
*o = *o2
|
|
|
|
return nil
|
|
}
|
|
|
|
// AfterQueryHook is called after ArcgisAccountSlice is retrieved from the database
|
|
func (o ArcgisAccountSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error {
|
|
var err error
|
|
|
|
switch queryType {
|
|
case bob.QueryTypeSelect:
|
|
ctx, err = ArcgisAccounts.AfterSelectHooks.RunHooks(ctx, exec, o)
|
|
case bob.QueryTypeInsert:
|
|
ctx, err = ArcgisAccounts.AfterInsertHooks.RunHooks(ctx, exec, o)
|
|
case bob.QueryTypeUpdate:
|
|
ctx, err = ArcgisAccounts.AfterUpdateHooks.RunHooks(ctx, exec, o)
|
|
case bob.QueryTypeDelete:
|
|
ctx, err = ArcgisAccounts.AfterDeleteHooks.RunHooks(ctx, exec, o)
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
func (o ArcgisAccountSlice) pkIN() dialect.Expression {
|
|
if len(o) == 0 {
|
|
return psql.Raw("NULL")
|
|
}
|
|
|
|
return psql.Quote("arcgis.account", "id").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()
|
|
}
|
|
return bob.ExpressSlice(ctx, w, d, start, pkPairs, "", ", ", "")
|
|
}))
|
|
}
|
|
|
|
// copyMatchingRows finds models in the given slice that have the same primary key
|
|
// then it first copies the existing relationships from the old model to the new model
|
|
// and then replaces the old model in the slice with the new model
|
|
func (o ArcgisAccountSlice) copyMatchingRows(from ...*ArcgisAccount) {
|
|
for i, old := range o {
|
|
for _, new := range from {
|
|
if new.ID != old.ID {
|
|
continue
|
|
}
|
|
new.R = old.R
|
|
o[i] = new
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
// UpdateMod modifies an update query with "WHERE primary_key IN (o...)"
|
|
func (o ArcgisAccountSlice) UpdateMod() bob.Mod[*dialect.UpdateQuery] {
|
|
return bob.ModFunc[*dialect.UpdateQuery](func(q *dialect.UpdateQuery) {
|
|
q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) {
|
|
return ArcgisAccounts.BeforeUpdateHooks.RunHooks(ctx, exec, o)
|
|
})
|
|
|
|
q.AppendLoader(bob.LoaderFunc(func(ctx context.Context, exec bob.Executor, retrieved any) error {
|
|
var err error
|
|
switch retrieved := retrieved.(type) {
|
|
case *ArcgisAccount:
|
|
o.copyMatchingRows(retrieved)
|
|
case []*ArcgisAccount:
|
|
o.copyMatchingRows(retrieved...)
|
|
case ArcgisAccountSlice:
|
|
o.copyMatchingRows(retrieved...)
|
|
default:
|
|
// If the retrieved value is not a ArcgisAccount or a slice of ArcgisAccount
|
|
// then run the AfterUpdateHooks on the slice
|
|
_, err = ArcgisAccounts.AfterUpdateHooks.RunHooks(ctx, exec, o)
|
|
}
|
|
|
|
return err
|
|
}))
|
|
|
|
q.AppendWhere(o.pkIN())
|
|
})
|
|
}
|
|
|
|
// DeleteMod modifies an delete query with "WHERE primary_key IN (o...)"
|
|
func (o ArcgisAccountSlice) DeleteMod() bob.Mod[*dialect.DeleteQuery] {
|
|
return bob.ModFunc[*dialect.DeleteQuery](func(q *dialect.DeleteQuery) {
|
|
q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) {
|
|
return ArcgisAccounts.BeforeDeleteHooks.RunHooks(ctx, exec, o)
|
|
})
|
|
|
|
q.AppendLoader(bob.LoaderFunc(func(ctx context.Context, exec bob.Executor, retrieved any) error {
|
|
var err error
|
|
switch retrieved := retrieved.(type) {
|
|
case *ArcgisAccount:
|
|
o.copyMatchingRows(retrieved)
|
|
case []*ArcgisAccount:
|
|
o.copyMatchingRows(retrieved...)
|
|
case ArcgisAccountSlice:
|
|
o.copyMatchingRows(retrieved...)
|
|
default:
|
|
// If the retrieved value is not a ArcgisAccount or a slice of ArcgisAccount
|
|
// then run the AfterDeleteHooks on the slice
|
|
_, err = ArcgisAccounts.AfterDeleteHooks.RunHooks(ctx, exec, o)
|
|
}
|
|
|
|
return err
|
|
}))
|
|
|
|
q.AppendWhere(o.pkIN())
|
|
})
|
|
}
|
|
|
|
func (o ArcgisAccountSlice) UpdateAll(ctx context.Context, exec bob.Executor, vals ArcgisAccountSetter) error {
|
|
if len(o) == 0 {
|
|
return nil
|
|
}
|
|
|
|
_, err := ArcgisAccounts.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec)
|
|
return err
|
|
}
|
|
|
|
func (o ArcgisAccountSlice) DeleteAll(ctx context.Context, exec bob.Executor) error {
|
|
if len(o) == 0 {
|
|
return nil
|
|
}
|
|
|
|
_, err := ArcgisAccounts.Delete(o.DeleteMod()).Exec(ctx, exec)
|
|
return err
|
|
}
|
|
|
|
func (o ArcgisAccountSlice) ReloadAll(ctx context.Context, exec bob.Executor) error {
|
|
if len(o) == 0 {
|
|
return nil
|
|
}
|
|
|
|
o2, err := ArcgisAccounts.Query(sm.Where(o.pkIN())).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
o.copyMatchingRows(o2...)
|
|
|
|
return nil
|
|
}
|
|
|
|
// Organization starts a query for related objects on organization
|
|
func (o *ArcgisAccount) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery {
|
|
return Organizations.Query(append(mods,
|
|
sm.Where(Organizations.Columns.ID.EQ(psql.Arg(o.OrganizationID))),
|
|
)...)
|
|
}
|
|
|
|
func (os ArcgisAccountSlice) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery {
|
|
pkOrganizationID := make(pgtypes.Array[int32], 0, len(os))
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
pkOrganizationID = append(pkOrganizationID, o.OrganizationID)
|
|
}
|
|
PKArgExpr := psql.Select(sm.Columns(
|
|
psql.F("unnest", psql.Cast(psql.Arg(pkOrganizationID), "integer[]")),
|
|
))
|
|
|
|
return Organizations.Query(append(mods,
|
|
sm.Where(psql.Group(Organizations.Columns.ID).OP("IN", PKArgExpr)),
|
|
)...)
|
|
}
|
|
|
|
// ArcgisAccountOauthTokens starts a query for related objects on arcgis.oauth_token
|
|
func (o *ArcgisAccount) ArcgisAccountOauthTokens(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisOauthTokensQuery {
|
|
return ArcgisOauthTokens.Query(append(mods,
|
|
sm.Where(ArcgisOauthTokens.Columns.ArcgisAccountID.EQ(psql.Arg(o.ID))),
|
|
)...)
|
|
}
|
|
|
|
func (os ArcgisAccountSlice) ArcgisAccountOauthTokens(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisOauthTokensQuery {
|
|
pkID := make(pgtypes.Array[string], 0, len(os))
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
pkID = append(pkID, o.ID)
|
|
}
|
|
PKArgExpr := psql.Select(sm.Columns(
|
|
psql.F("unnest", psql.Cast(psql.Arg(pkID), "text[]")),
|
|
))
|
|
|
|
return ArcgisOauthTokens.Query(append(mods,
|
|
sm.Where(psql.Group(ArcgisOauthTokens.Columns.ArcgisAccountID).OP("IN", PKArgExpr)),
|
|
)...)
|
|
}
|
|
|
|
// ServiceFeatures starts a query for related objects on arcgis.service_feature
|
|
func (o *ArcgisAccount) ServiceFeatures(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisServiceFeaturesQuery {
|
|
return ArcgisServiceFeatures.Query(append(mods,
|
|
sm.Where(ArcgisServiceFeatures.Columns.AccountID.EQ(psql.Arg(o.ID))),
|
|
)...)
|
|
}
|
|
|
|
func (os ArcgisAccountSlice) ServiceFeatures(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisServiceFeaturesQuery {
|
|
pkID := make(pgtypes.Array[string], 0, len(os))
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
pkID = append(pkID, o.ID)
|
|
}
|
|
PKArgExpr := psql.Select(sm.Columns(
|
|
psql.F("unnest", psql.Cast(psql.Arg(pkID), "text[]")),
|
|
))
|
|
|
|
return ArcgisServiceFeatures.Query(append(mods,
|
|
sm.Where(psql.Group(ArcgisServiceFeatures.Columns.AccountID).OP("IN", PKArgExpr)),
|
|
)...)
|
|
}
|
|
|
|
// ServiceMaps starts a query for related objects on arcgis.service_map
|
|
func (o *ArcgisAccount) ServiceMaps(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisServiceMapsQuery {
|
|
return ArcgisServiceMaps.Query(append(mods,
|
|
sm.Where(ArcgisServiceMaps.Columns.AccountID.EQ(psql.Arg(o.ID))),
|
|
)...)
|
|
}
|
|
|
|
func (os ArcgisAccountSlice) ServiceMaps(mods ...bob.Mod[*dialect.SelectQuery]) ArcgisServiceMapsQuery {
|
|
pkID := make(pgtypes.Array[string], 0, len(os))
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
pkID = append(pkID, o.ID)
|
|
}
|
|
PKArgExpr := psql.Select(sm.Columns(
|
|
psql.F("unnest", psql.Cast(psql.Arg(pkID), "text[]")),
|
|
))
|
|
|
|
return ArcgisServiceMaps.Query(append(mods,
|
|
sm.Where(psql.Group(ArcgisServiceMaps.Columns.AccountID).OP("IN", PKArgExpr)),
|
|
)...)
|
|
}
|
|
|
|
// ArcgisAccountOrganizations starts a query for related objects on organization
|
|
func (o *ArcgisAccount) ArcgisAccountOrganizations(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery {
|
|
return Organizations.Query(append(mods,
|
|
sm.Where(Organizations.Columns.ArcgisAccountID.EQ(psql.Arg(o.ID))),
|
|
)...)
|
|
}
|
|
|
|
func (os ArcgisAccountSlice) ArcgisAccountOrganizations(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery {
|
|
pkID := make(pgtypes.Array[string], 0, len(os))
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
pkID = append(pkID, o.ID)
|
|
}
|
|
PKArgExpr := psql.Select(sm.Columns(
|
|
psql.F("unnest", psql.Cast(psql.Arg(pkID), "text[]")),
|
|
))
|
|
|
|
return Organizations.Query(append(mods,
|
|
sm.Where(psql.Group(Organizations.Columns.ArcgisAccountID).OP("IN", PKArgExpr)),
|
|
)...)
|
|
}
|
|
|
|
func attachArcgisAccountOrganization0(ctx context.Context, exec bob.Executor, count int, arcgisAccount0 *ArcgisAccount, organization1 *Organization) (*ArcgisAccount, error) {
|
|
setter := &ArcgisAccountSetter{
|
|
OrganizationID: omit.From(organization1.ID),
|
|
}
|
|
|
|
err := arcgisAccount0.Update(ctx, exec, setter)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("attachArcgisAccountOrganization0: %w", err)
|
|
}
|
|
|
|
return arcgisAccount0, nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) InsertOrganization(ctx context.Context, exec bob.Executor, related *OrganizationSetter) error {
|
|
var err error
|
|
|
|
organization1, err := Organizations.Insert(related).One(ctx, exec)
|
|
if err != nil {
|
|
return fmt.Errorf("inserting related objects: %w", err)
|
|
}
|
|
|
|
_, err = attachArcgisAccountOrganization0(ctx, exec, 1, arcgisAccount0, organization1)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.Organization = organization1
|
|
|
|
organization1.R.Accounts = append(organization1.R.Accounts, arcgisAccount0)
|
|
|
|
return nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) AttachOrganization(ctx context.Context, exec bob.Executor, organization1 *Organization) error {
|
|
var err error
|
|
|
|
_, err = attachArcgisAccountOrganization0(ctx, exec, 1, arcgisAccount0, organization1)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.Organization = organization1
|
|
|
|
organization1.R.Accounts = append(organization1.R.Accounts, arcgisAccount0)
|
|
|
|
return nil
|
|
}
|
|
|
|
func insertArcgisAccountArcgisAccountOauthTokens0(ctx context.Context, exec bob.Executor, arcgisOauthTokens1 []*ArcgisOauthTokenSetter, arcgisAccount0 *ArcgisAccount) (ArcgisOauthTokenSlice, error) {
|
|
for i := range arcgisOauthTokens1 {
|
|
arcgisOauthTokens1[i].ArcgisAccountID = omitnull.From(arcgisAccount0.ID)
|
|
}
|
|
|
|
ret, err := ArcgisOauthTokens.Insert(bob.ToMods(arcgisOauthTokens1...)).All(ctx, exec)
|
|
if err != nil {
|
|
return ret, fmt.Errorf("insertArcgisAccountArcgisAccountOauthTokens0: %w", err)
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
func attachArcgisAccountArcgisAccountOauthTokens0(ctx context.Context, exec bob.Executor, count int, arcgisOauthTokens1 ArcgisOauthTokenSlice, arcgisAccount0 *ArcgisAccount) (ArcgisOauthTokenSlice, error) {
|
|
setter := &ArcgisOauthTokenSetter{
|
|
ArcgisAccountID: omitnull.From(arcgisAccount0.ID),
|
|
}
|
|
|
|
err := arcgisOauthTokens1.UpdateAll(ctx, exec, *setter)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("attachArcgisAccountArcgisAccountOauthTokens0: %w", err)
|
|
}
|
|
|
|
return arcgisOauthTokens1, nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) InsertArcgisAccountOauthTokens(ctx context.Context, exec bob.Executor, related ...*ArcgisOauthTokenSetter) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
|
|
arcgisOauthTokens1, err := insertArcgisAccountArcgisAccountOauthTokens0(ctx, exec, related, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ArcgisAccountOauthTokens = append(arcgisAccount0.R.ArcgisAccountOauthTokens, arcgisOauthTokens1...)
|
|
|
|
for _, rel := range arcgisOauthTokens1 {
|
|
rel.R.ArcgisAccountAccount = arcgisAccount0
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) AttachArcgisAccountOauthTokens(ctx context.Context, exec bob.Executor, related ...*ArcgisOauthToken) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
arcgisOauthTokens1 := ArcgisOauthTokenSlice(related)
|
|
|
|
_, err = attachArcgisAccountArcgisAccountOauthTokens0(ctx, exec, len(related), arcgisOauthTokens1, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ArcgisAccountOauthTokens = append(arcgisAccount0.R.ArcgisAccountOauthTokens, arcgisOauthTokens1...)
|
|
|
|
for _, rel := range related {
|
|
rel.R.ArcgisAccountAccount = arcgisAccount0
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func insertArcgisAccountServiceFeatures0(ctx context.Context, exec bob.Executor, arcgisServiceFeatures1 []*ArcgisServiceFeatureSetter, arcgisAccount0 *ArcgisAccount) (ArcgisServiceFeatureSlice, error) {
|
|
for i := range arcgisServiceFeatures1 {
|
|
arcgisServiceFeatures1[i].AccountID = omitnull.From(arcgisAccount0.ID)
|
|
}
|
|
|
|
ret, err := ArcgisServiceFeatures.Insert(bob.ToMods(arcgisServiceFeatures1...)).All(ctx, exec)
|
|
if err != nil {
|
|
return ret, fmt.Errorf("insertArcgisAccountServiceFeatures0: %w", err)
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
func attachArcgisAccountServiceFeatures0(ctx context.Context, exec bob.Executor, count int, arcgisServiceFeatures1 ArcgisServiceFeatureSlice, arcgisAccount0 *ArcgisAccount) (ArcgisServiceFeatureSlice, error) {
|
|
setter := &ArcgisServiceFeatureSetter{
|
|
AccountID: omitnull.From(arcgisAccount0.ID),
|
|
}
|
|
|
|
err := arcgisServiceFeatures1.UpdateAll(ctx, exec, *setter)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("attachArcgisAccountServiceFeatures0: %w", err)
|
|
}
|
|
|
|
return arcgisServiceFeatures1, nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) InsertServiceFeatures(ctx context.Context, exec bob.Executor, related ...*ArcgisServiceFeatureSetter) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
|
|
arcgisServiceFeatures1, err := insertArcgisAccountServiceFeatures0(ctx, exec, related, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ServiceFeatures = append(arcgisAccount0.R.ServiceFeatures, arcgisServiceFeatures1...)
|
|
|
|
for _, rel := range arcgisServiceFeatures1 {
|
|
rel.R.Account = arcgisAccount0
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) AttachServiceFeatures(ctx context.Context, exec bob.Executor, related ...*ArcgisServiceFeature) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
arcgisServiceFeatures1 := ArcgisServiceFeatureSlice(related)
|
|
|
|
_, err = attachArcgisAccountServiceFeatures0(ctx, exec, len(related), arcgisServiceFeatures1, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ServiceFeatures = append(arcgisAccount0.R.ServiceFeatures, arcgisServiceFeatures1...)
|
|
|
|
for _, rel := range related {
|
|
rel.R.Account = arcgisAccount0
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func insertArcgisAccountServiceMaps0(ctx context.Context, exec bob.Executor, arcgisServiceMaps1 []*ArcgisServiceMapSetter, arcgisAccount0 *ArcgisAccount) (ArcgisServiceMapSlice, error) {
|
|
for i := range arcgisServiceMaps1 {
|
|
arcgisServiceMaps1[i].AccountID = omit.From(arcgisAccount0.ID)
|
|
}
|
|
|
|
ret, err := ArcgisServiceMaps.Insert(bob.ToMods(arcgisServiceMaps1...)).All(ctx, exec)
|
|
if err != nil {
|
|
return ret, fmt.Errorf("insertArcgisAccountServiceMaps0: %w", err)
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
func attachArcgisAccountServiceMaps0(ctx context.Context, exec bob.Executor, count int, arcgisServiceMaps1 ArcgisServiceMapSlice, arcgisAccount0 *ArcgisAccount) (ArcgisServiceMapSlice, error) {
|
|
setter := &ArcgisServiceMapSetter{
|
|
AccountID: omit.From(arcgisAccount0.ID),
|
|
}
|
|
|
|
err := arcgisServiceMaps1.UpdateAll(ctx, exec, *setter)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("attachArcgisAccountServiceMaps0: %w", err)
|
|
}
|
|
|
|
return arcgisServiceMaps1, nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) InsertServiceMaps(ctx context.Context, exec bob.Executor, related ...*ArcgisServiceMapSetter) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
|
|
arcgisServiceMaps1, err := insertArcgisAccountServiceMaps0(ctx, exec, related, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ServiceMaps = append(arcgisAccount0.R.ServiceMaps, arcgisServiceMaps1...)
|
|
|
|
for _, rel := range arcgisServiceMaps1 {
|
|
rel.R.Account = arcgisAccount0
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) AttachServiceMaps(ctx context.Context, exec bob.Executor, related ...*ArcgisServiceMap) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
arcgisServiceMaps1 := ArcgisServiceMapSlice(related)
|
|
|
|
_, err = attachArcgisAccountServiceMaps0(ctx, exec, len(related), arcgisServiceMaps1, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ServiceMaps = append(arcgisAccount0.R.ServiceMaps, arcgisServiceMaps1...)
|
|
|
|
for _, rel := range related {
|
|
rel.R.Account = arcgisAccount0
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func insertArcgisAccountArcgisAccountOrganizations0(ctx context.Context, exec bob.Executor, organizations1 []*OrganizationSetter, arcgisAccount0 *ArcgisAccount) (OrganizationSlice, error) {
|
|
for i := range organizations1 {
|
|
organizations1[i].ArcgisAccountID = omitnull.From(arcgisAccount0.ID)
|
|
}
|
|
|
|
ret, err := Organizations.Insert(bob.ToMods(organizations1...)).All(ctx, exec)
|
|
if err != nil {
|
|
return ret, fmt.Errorf("insertArcgisAccountArcgisAccountOrganizations0: %w", err)
|
|
}
|
|
|
|
return ret, nil
|
|
}
|
|
|
|
func attachArcgisAccountArcgisAccountOrganizations0(ctx context.Context, exec bob.Executor, count int, organizations1 OrganizationSlice, arcgisAccount0 *ArcgisAccount) (OrganizationSlice, error) {
|
|
setter := &OrganizationSetter{
|
|
ArcgisAccountID: omitnull.From(arcgisAccount0.ID),
|
|
}
|
|
|
|
err := organizations1.UpdateAll(ctx, exec, *setter)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("attachArcgisAccountArcgisAccountOrganizations0: %w", err)
|
|
}
|
|
|
|
return organizations1, nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) InsertArcgisAccountOrganizations(ctx context.Context, exec bob.Executor, related ...*OrganizationSetter) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
|
|
organizations1, err := insertArcgisAccountArcgisAccountOrganizations0(ctx, exec, related, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ArcgisAccountOrganizations = append(arcgisAccount0.R.ArcgisAccountOrganizations, organizations1...)
|
|
|
|
for _, rel := range organizations1 {
|
|
rel.R.ArcgisAccountAccount = arcgisAccount0
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (arcgisAccount0 *ArcgisAccount) AttachArcgisAccountOrganizations(ctx context.Context, exec bob.Executor, related ...*Organization) error {
|
|
if len(related) == 0 {
|
|
return nil
|
|
}
|
|
|
|
var err error
|
|
organizations1 := OrganizationSlice(related)
|
|
|
|
_, err = attachArcgisAccountArcgisAccountOrganizations0(ctx, exec, len(related), organizations1, arcgisAccount0)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
arcgisAccount0.R.ArcgisAccountOrganizations = append(arcgisAccount0.R.ArcgisAccountOrganizations, organizations1...)
|
|
|
|
for _, rel := range related {
|
|
rel.R.ArcgisAccountAccount = arcgisAccount0
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type arcgisAccountWhere[Q psql.Filterable] struct {
|
|
ID psql.WhereMod[Q, string]
|
|
Name psql.WhereMod[Q, string]
|
|
OrganizationID psql.WhereMod[Q, int32]
|
|
URLFeatures psql.WhereNullMod[Q, string]
|
|
URLInsights psql.WhereNullMod[Q, string]
|
|
URLGeometry psql.WhereNullMod[Q, string]
|
|
URLNotebooks psql.WhereNullMod[Q, string]
|
|
URLTiles psql.WhereNullMod[Q, string]
|
|
}
|
|
|
|
func (arcgisAccountWhere[Q]) AliasedAs(alias string) arcgisAccountWhere[Q] {
|
|
return buildArcgisAccountWhere[Q](buildArcgisAccountColumns(alias))
|
|
}
|
|
|
|
func buildArcgisAccountWhere[Q psql.Filterable](cols arcgisAccountColumns) arcgisAccountWhere[Q] {
|
|
return arcgisAccountWhere[Q]{
|
|
ID: psql.Where[Q, string](cols.ID),
|
|
Name: psql.Where[Q, string](cols.Name),
|
|
OrganizationID: psql.Where[Q, int32](cols.OrganizationID),
|
|
URLFeatures: psql.WhereNull[Q, string](cols.URLFeatures),
|
|
URLInsights: psql.WhereNull[Q, string](cols.URLInsights),
|
|
URLGeometry: psql.WhereNull[Q, string](cols.URLGeometry),
|
|
URLNotebooks: psql.WhereNull[Q, string](cols.URLNotebooks),
|
|
URLTiles: psql.WhereNull[Q, string](cols.URLTiles),
|
|
}
|
|
}
|
|
|
|
func (o *ArcgisAccount) Preload(name string, retrieved any) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
switch name {
|
|
case "Organization":
|
|
rel, ok := retrieved.(*Organization)
|
|
if !ok {
|
|
return fmt.Errorf("arcgisAccount cannot load %T as %q", retrieved, name)
|
|
}
|
|
|
|
o.R.Organization = rel
|
|
|
|
if rel != nil {
|
|
rel.R.Accounts = ArcgisAccountSlice{o}
|
|
}
|
|
return nil
|
|
case "ArcgisAccountOauthTokens":
|
|
rels, ok := retrieved.(ArcgisOauthTokenSlice)
|
|
if !ok {
|
|
return fmt.Errorf("arcgisAccount cannot load %T as %q", retrieved, name)
|
|
}
|
|
|
|
o.R.ArcgisAccountOauthTokens = rels
|
|
|
|
for _, rel := range rels {
|
|
if rel != nil {
|
|
rel.R.ArcgisAccountAccount = o
|
|
}
|
|
}
|
|
return nil
|
|
case "ServiceFeatures":
|
|
rels, ok := retrieved.(ArcgisServiceFeatureSlice)
|
|
if !ok {
|
|
return fmt.Errorf("arcgisAccount cannot load %T as %q", retrieved, name)
|
|
}
|
|
|
|
o.R.ServiceFeatures = rels
|
|
|
|
for _, rel := range rels {
|
|
if rel != nil {
|
|
rel.R.Account = o
|
|
}
|
|
}
|
|
return nil
|
|
case "ServiceMaps":
|
|
rels, ok := retrieved.(ArcgisServiceMapSlice)
|
|
if !ok {
|
|
return fmt.Errorf("arcgisAccount cannot load %T as %q", retrieved, name)
|
|
}
|
|
|
|
o.R.ServiceMaps = rels
|
|
|
|
for _, rel := range rels {
|
|
if rel != nil {
|
|
rel.R.Account = o
|
|
}
|
|
}
|
|
return nil
|
|
case "ArcgisAccountOrganizations":
|
|
rels, ok := retrieved.(OrganizationSlice)
|
|
if !ok {
|
|
return fmt.Errorf("arcgisAccount cannot load %T as %q", retrieved, name)
|
|
}
|
|
|
|
o.R.ArcgisAccountOrganizations = rels
|
|
|
|
for _, rel := range rels {
|
|
if rel != nil {
|
|
rel.R.ArcgisAccountAccount = o
|
|
}
|
|
}
|
|
return nil
|
|
default:
|
|
return fmt.Errorf("arcgisAccount has no relationship %q", name)
|
|
}
|
|
}
|
|
|
|
type arcgisAccountPreloader struct {
|
|
Organization func(...psql.PreloadOption) psql.Preloader
|
|
}
|
|
|
|
func buildArcgisAccountPreloader() arcgisAccountPreloader {
|
|
return arcgisAccountPreloader{
|
|
Organization: func(opts ...psql.PreloadOption) psql.Preloader {
|
|
return psql.Preload[*Organization, OrganizationSlice](psql.PreloadRel{
|
|
Name: "Organization",
|
|
Sides: []psql.PreloadSide{
|
|
{
|
|
From: ArcgisAccounts,
|
|
To: Organizations,
|
|
FromColumns: []string{"organization_id"},
|
|
ToColumns: []string{"id"},
|
|
},
|
|
},
|
|
}, Organizations.Columns.Names(), opts...)
|
|
},
|
|
}
|
|
}
|
|
|
|
type arcgisAccountThenLoader[Q orm.Loadable] struct {
|
|
Organization func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
|
|
ArcgisAccountOauthTokens func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
|
|
ServiceFeatures func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
|
|
ServiceMaps func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
|
|
ArcgisAccountOrganizations func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
|
|
}
|
|
|
|
func buildArcgisAccountThenLoader[Q orm.Loadable]() arcgisAccountThenLoader[Q] {
|
|
type OrganizationLoadInterface interface {
|
|
LoadOrganization(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
|
|
}
|
|
type ArcgisAccountOauthTokensLoadInterface interface {
|
|
LoadArcgisAccountOauthTokens(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
|
|
}
|
|
type ServiceFeaturesLoadInterface interface {
|
|
LoadServiceFeatures(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
|
|
}
|
|
type ServiceMapsLoadInterface interface {
|
|
LoadServiceMaps(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
|
|
}
|
|
type ArcgisAccountOrganizationsLoadInterface interface {
|
|
LoadArcgisAccountOrganizations(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
|
|
}
|
|
|
|
return arcgisAccountThenLoader[Q]{
|
|
Organization: thenLoadBuilder[Q](
|
|
"Organization",
|
|
func(ctx context.Context, exec bob.Executor, retrieved OrganizationLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
return retrieved.LoadOrganization(ctx, exec, mods...)
|
|
},
|
|
),
|
|
ArcgisAccountOauthTokens: thenLoadBuilder[Q](
|
|
"ArcgisAccountOauthTokens",
|
|
func(ctx context.Context, exec bob.Executor, retrieved ArcgisAccountOauthTokensLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
return retrieved.LoadArcgisAccountOauthTokens(ctx, exec, mods...)
|
|
},
|
|
),
|
|
ServiceFeatures: thenLoadBuilder[Q](
|
|
"ServiceFeatures",
|
|
func(ctx context.Context, exec bob.Executor, retrieved ServiceFeaturesLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
return retrieved.LoadServiceFeatures(ctx, exec, mods...)
|
|
},
|
|
),
|
|
ServiceMaps: thenLoadBuilder[Q](
|
|
"ServiceMaps",
|
|
func(ctx context.Context, exec bob.Executor, retrieved ServiceMapsLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
return retrieved.LoadServiceMaps(ctx, exec, mods...)
|
|
},
|
|
),
|
|
ArcgisAccountOrganizations: thenLoadBuilder[Q](
|
|
"ArcgisAccountOrganizations",
|
|
func(ctx context.Context, exec bob.Executor, retrieved ArcgisAccountOrganizationsLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
return retrieved.LoadArcgisAccountOrganizations(ctx, exec, mods...)
|
|
},
|
|
),
|
|
}
|
|
}
|
|
|
|
// LoadOrganization loads the arcgisAccount's Organization into the .R struct
|
|
func (o *ArcgisAccount) LoadOrganization(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
// Reset the relationship
|
|
o.R.Organization = nil
|
|
|
|
related, err := o.Organization(mods...).One(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
related.R.Accounts = ArcgisAccountSlice{o}
|
|
|
|
o.R.Organization = related
|
|
return nil
|
|
}
|
|
|
|
// LoadOrganization loads the arcgisAccount's Organization into the .R struct
|
|
func (os ArcgisAccountSlice) LoadOrganization(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if len(os) == 0 {
|
|
return nil
|
|
}
|
|
|
|
organizations, err := os.Organization(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
for _, rel := range organizations {
|
|
|
|
if !(o.OrganizationID == rel.ID) {
|
|
continue
|
|
}
|
|
|
|
rel.R.Accounts = append(rel.R.Accounts, o)
|
|
|
|
o.R.Organization = rel
|
|
break
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// LoadArcgisAccountOauthTokens loads the arcgisAccount's ArcgisAccountOauthTokens into the .R struct
|
|
func (o *ArcgisAccount) LoadArcgisAccountOauthTokens(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
// Reset the relationship
|
|
o.R.ArcgisAccountOauthTokens = nil
|
|
|
|
related, err := o.ArcgisAccountOauthTokens(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, rel := range related {
|
|
rel.R.ArcgisAccountAccount = o
|
|
}
|
|
|
|
o.R.ArcgisAccountOauthTokens = related
|
|
return nil
|
|
}
|
|
|
|
// LoadArcgisAccountOauthTokens loads the arcgisAccount's ArcgisAccountOauthTokens into the .R struct
|
|
func (os ArcgisAccountSlice) LoadArcgisAccountOauthTokens(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if len(os) == 0 {
|
|
return nil
|
|
}
|
|
|
|
arcgisOauthTokens, err := os.ArcgisAccountOauthTokens(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
o.R.ArcgisAccountOauthTokens = nil
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
for _, rel := range arcgisOauthTokens {
|
|
|
|
if !rel.ArcgisAccountID.IsValue() {
|
|
continue
|
|
}
|
|
if !(rel.ArcgisAccountID.IsValue() && o.ID == rel.ArcgisAccountID.MustGet()) {
|
|
continue
|
|
}
|
|
|
|
rel.R.ArcgisAccountAccount = o
|
|
|
|
o.R.ArcgisAccountOauthTokens = append(o.R.ArcgisAccountOauthTokens, rel)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// LoadServiceFeatures loads the arcgisAccount's ServiceFeatures into the .R struct
|
|
func (o *ArcgisAccount) LoadServiceFeatures(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
// Reset the relationship
|
|
o.R.ServiceFeatures = nil
|
|
|
|
related, err := o.ServiceFeatures(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, rel := range related {
|
|
rel.R.Account = o
|
|
}
|
|
|
|
o.R.ServiceFeatures = related
|
|
return nil
|
|
}
|
|
|
|
// LoadServiceFeatures loads the arcgisAccount's ServiceFeatures into the .R struct
|
|
func (os ArcgisAccountSlice) LoadServiceFeatures(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if len(os) == 0 {
|
|
return nil
|
|
}
|
|
|
|
arcgisServiceFeatures, err := os.ServiceFeatures(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
o.R.ServiceFeatures = nil
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
for _, rel := range arcgisServiceFeatures {
|
|
|
|
if !rel.AccountID.IsValue() {
|
|
continue
|
|
}
|
|
if !(rel.AccountID.IsValue() && o.ID == rel.AccountID.MustGet()) {
|
|
continue
|
|
}
|
|
|
|
rel.R.Account = o
|
|
|
|
o.R.ServiceFeatures = append(o.R.ServiceFeatures, rel)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// LoadServiceMaps loads the arcgisAccount's ServiceMaps into the .R struct
|
|
func (o *ArcgisAccount) LoadServiceMaps(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
// Reset the relationship
|
|
o.R.ServiceMaps = nil
|
|
|
|
related, err := o.ServiceMaps(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, rel := range related {
|
|
rel.R.Account = o
|
|
}
|
|
|
|
o.R.ServiceMaps = related
|
|
return nil
|
|
}
|
|
|
|
// LoadServiceMaps loads the arcgisAccount's ServiceMaps into the .R struct
|
|
func (os ArcgisAccountSlice) LoadServiceMaps(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if len(os) == 0 {
|
|
return nil
|
|
}
|
|
|
|
arcgisServiceMaps, err := os.ServiceMaps(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
o.R.ServiceMaps = nil
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
for _, rel := range arcgisServiceMaps {
|
|
|
|
if !(o.ID == rel.AccountID) {
|
|
continue
|
|
}
|
|
|
|
rel.R.Account = o
|
|
|
|
o.R.ServiceMaps = append(o.R.ServiceMaps, rel)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// LoadArcgisAccountOrganizations loads the arcgisAccount's ArcgisAccountOrganizations into the .R struct
|
|
func (o *ArcgisAccount) LoadArcgisAccountOrganizations(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if o == nil {
|
|
return nil
|
|
}
|
|
|
|
// Reset the relationship
|
|
o.R.ArcgisAccountOrganizations = nil
|
|
|
|
related, err := o.ArcgisAccountOrganizations(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, rel := range related {
|
|
rel.R.ArcgisAccountAccount = o
|
|
}
|
|
|
|
o.R.ArcgisAccountOrganizations = related
|
|
return nil
|
|
}
|
|
|
|
// LoadArcgisAccountOrganizations loads the arcgisAccount's ArcgisAccountOrganizations into the .R struct
|
|
func (os ArcgisAccountSlice) LoadArcgisAccountOrganizations(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
|
|
if len(os) == 0 {
|
|
return nil
|
|
}
|
|
|
|
organizations, err := os.ArcgisAccountOrganizations(mods...).All(ctx, exec)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
o.R.ArcgisAccountOrganizations = nil
|
|
}
|
|
|
|
for _, o := range os {
|
|
if o == nil {
|
|
continue
|
|
}
|
|
|
|
for _, rel := range organizations {
|
|
|
|
if !rel.ArcgisAccountID.IsValue() {
|
|
continue
|
|
}
|
|
if !(rel.ArcgisAccountID.IsValue() && o.ID == rel.ArcgisAccountID.MustGet()) {
|
|
continue
|
|
}
|
|
|
|
rel.R.ArcgisAccountAccount = o
|
|
|
|
o.R.ArcgisAccountOrganizations = append(o.R.ArcgisAccountOrganizations, rel)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|