nidus-sync/db/models/note_image.bob.go
Eli Ribble 1395e3d3ac 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.
2025-12-24 17:58:08 -07:00

1502 lines
41 KiB
Go

// 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
import (
"context"
"fmt"
"io"
"time"
"github.com/aarondl/opt/null"
"github.com/aarondl/opt/omit"
"github.com/aarondl/opt/omitnull"
"github.com/google/uuid"
"github.com/stephenafamo/bob"
"github.com/stephenafamo/bob/dialect/psql"
"github.com/stephenafamo/bob/dialect/psql/dialect"
"github.com/stephenafamo/bob/dialect/psql/dm"
"github.com/stephenafamo/bob/dialect/psql/sm"
"github.com/stephenafamo/bob/dialect/psql/um"
"github.com/stephenafamo/bob/expr"
"github.com/stephenafamo/bob/mods"
"github.com/stephenafamo/bob/orm"
"github.com/stephenafamo/bob/types/pgtypes"
)
// NoteImage is an object representing the database table.
type NoteImage struct {
Created time.Time `db:"created" `
CreatorID int32 `db:"creator_id" `
Deleted null.Val[time.Time] `db:"deleted" `
DeletorID null.Val[int32] `db:"deletor_id" `
OrganizationID int32 `db:"organization_id" `
Version int32 `db:"version,pk" `
UUID uuid.UUID `db:"uuid,pk" `
R noteImageR `db:"-" `
}
// NoteImageSlice is an alias for a slice of pointers to NoteImage.
// This should almost always be used instead of []*NoteImage.
type NoteImageSlice []*NoteImage
// NoteImages contains methods to work with the note_image table
var NoteImages = psql.NewTablex[*NoteImage, NoteImageSlice, *NoteImageSetter]("", "note_image", buildNoteImageColumns("note_image"))
// NoteImagesQuery is a query on the note_image table
type NoteImagesQuery = *psql.ViewQuery[*NoteImage, NoteImageSlice]
// noteImageR is where relationships are stored.
type noteImageR struct {
CreatorUser *User // note_image.note_image_creator_id_fkey
DeletorUser *User // note_image.note_image_deletor_id_fkey
Organization *Organization // note_image.note_image_organization_id_fkey
NoteImageBreadcrumbs NoteImageBreadcrumbSlice // note_image_breadcrumb.note_image_breadcrumb_note_image_version_note_image_uuid_fkey
NoteImageData NoteImageDatumSlice // note_image_data.note_image_data_note_image_version_note_image_uuid_fkey
}
func buildNoteImageColumns(alias string) noteImageColumns {
return noteImageColumns{
ColumnsExpr: expr.NewColumnsExpr(
"created", "creator_id", "deleted", "deletor_id", "organization_id", "version", "uuid",
).WithParent("note_image"),
tableAlias: alias,
Created: psql.Quote(alias, "created"),
CreatorID: psql.Quote(alias, "creator_id"),
Deleted: psql.Quote(alias, "deleted"),
DeletorID: psql.Quote(alias, "deletor_id"),
OrganizationID: psql.Quote(alias, "organization_id"),
Version: psql.Quote(alias, "version"),
UUID: psql.Quote(alias, "uuid"),
}
}
type noteImageColumns struct {
expr.ColumnsExpr
tableAlias string
Created psql.Expression
CreatorID psql.Expression
Deleted psql.Expression
DeletorID psql.Expression
OrganizationID psql.Expression
Version psql.Expression
UUID psql.Expression
}
func (c noteImageColumns) Alias() string {
return c.tableAlias
}
func (noteImageColumns) AliasedAs(alias string) noteImageColumns {
return buildNoteImageColumns(alias)
}
// NoteImageSetter is used for insert/upsert/update operations
// All values are optional, and do not have to be set
// Generated columns are not included
type NoteImageSetter struct {
Created omit.Val[time.Time] `db:"created" `
CreatorID omit.Val[int32] `db:"creator_id" `
Deleted omitnull.Val[time.Time] `db:"deleted" `
DeletorID omitnull.Val[int32] `db:"deletor_id" `
OrganizationID omit.Val[int32] `db:"organization_id" `
Version omit.Val[int32] `db:"version,pk" `
UUID omit.Val[uuid.UUID] `db:"uuid,pk" `
}
func (s NoteImageSetter) SetColumns() []string {
vals := make([]string, 0, 7)
if s.Created.IsValue() {
vals = append(vals, "created")
}
if s.CreatorID.IsValue() {
vals = append(vals, "creator_id")
}
if !s.Deleted.IsUnset() {
vals = append(vals, "deleted")
}
if !s.DeletorID.IsUnset() {
vals = append(vals, "deletor_id")
}
if s.OrganizationID.IsValue() {
vals = append(vals, "organization_id")
}
if s.Version.IsValue() {
vals = append(vals, "version")
}
if s.UUID.IsValue() {
vals = append(vals, "uuid")
}
return vals
}
func (s NoteImageSetter) Overwrite(t *NoteImage) {
if s.Created.IsValue() {
t.Created = s.Created.MustGet()
}
if s.CreatorID.IsValue() {
t.CreatorID = s.CreatorID.MustGet()
}
if !s.Deleted.IsUnset() {
t.Deleted = s.Deleted.MustGetNull()
}
if !s.DeletorID.IsUnset() {
t.DeletorID = s.DeletorID.MustGetNull()
}
if s.OrganizationID.IsValue() {
t.OrganizationID = s.OrganizationID.MustGet()
}
if s.Version.IsValue() {
t.Version = s.Version.MustGet()
}
if s.UUID.IsValue() {
t.UUID = s.UUID.MustGet()
}
}
func (s *NoteImageSetter) Apply(q *dialect.InsertQuery) {
q.AppendHooks(func(ctx context.Context, exec bob.Executor) (context.Context, error) {
return NoteImages.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, 7)
if s.Created.IsValue() {
vals[0] = psql.Arg(s.Created.MustGet())
} else {
vals[0] = psql.Raw("DEFAULT")
}
if s.CreatorID.IsValue() {
vals[1] = psql.Arg(s.CreatorID.MustGet())
} else {
vals[1] = psql.Raw("DEFAULT")
}
if !s.Deleted.IsUnset() {
vals[2] = psql.Arg(s.Deleted.MustGetNull())
} else {
vals[2] = psql.Raw("DEFAULT")
}
if !s.DeletorID.IsUnset() {
vals[3] = psql.Arg(s.DeletorID.MustGetNull())
} else {
vals[3] = psql.Raw("DEFAULT")
}
if s.OrganizationID.IsValue() {
vals[4] = psql.Arg(s.OrganizationID.MustGet())
} else {
vals[4] = psql.Raw("DEFAULT")
}
if s.Version.IsValue() {
vals[5] = psql.Arg(s.Version.MustGet())
} else {
vals[5] = psql.Raw("DEFAULT")
}
if s.UUID.IsValue() {
vals[6] = psql.Arg(s.UUID.MustGet())
} else {
vals[6] = psql.Raw("DEFAULT")
}
return bob.ExpressSlice(ctx, w, d, start, vals, "", ", ", "")
}))
}
func (s NoteImageSetter) UpdateMod() bob.Mod[*dialect.UpdateQuery] {
return um.Set(s.Expressions()...)
}
func (s NoteImageSetter) Expressions(prefix ...string) []bob.Expression {
exprs := make([]bob.Expression, 0, 7)
if s.Created.IsValue() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "created")...),
psql.Arg(s.Created),
}})
}
if s.CreatorID.IsValue() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "creator_id")...),
psql.Arg(s.CreatorID),
}})
}
if !s.Deleted.IsUnset() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "deleted")...),
psql.Arg(s.Deleted),
}})
}
if !s.DeletorID.IsUnset() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "deletor_id")...),
psql.Arg(s.DeletorID),
}})
}
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.Version.IsValue() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "version")...),
psql.Arg(s.Version),
}})
}
if s.UUID.IsValue() {
exprs = append(exprs, expr.Join{Sep: " = ", Exprs: []bob.Expression{
psql.Quote(append(prefix, "uuid")...),
psql.Arg(s.UUID),
}})
}
return exprs
}
// FindNoteImage retrieves a single record by primary key
// If cols is empty Find will return all columns.
func FindNoteImage(ctx context.Context, exec bob.Executor, VersionPK int32, UUIDPK uuid.UUID, cols ...string) (*NoteImage, error) {
if len(cols) == 0 {
return NoteImages.Query(
sm.Where(NoteImages.Columns.Version.EQ(psql.Arg(VersionPK))),
sm.Where(NoteImages.Columns.UUID.EQ(psql.Arg(UUIDPK))),
).One(ctx, exec)
}
return NoteImages.Query(
sm.Where(NoteImages.Columns.Version.EQ(psql.Arg(VersionPK))),
sm.Where(NoteImages.Columns.UUID.EQ(psql.Arg(UUIDPK))),
sm.Columns(NoteImages.Columns.Only(cols...)),
).One(ctx, exec)
}
// NoteImageExists checks the presence of a single record by primary key
func NoteImageExists(ctx context.Context, exec bob.Executor, VersionPK int32, UUIDPK uuid.UUID) (bool, error) {
return NoteImages.Query(
sm.Where(NoteImages.Columns.Version.EQ(psql.Arg(VersionPK))),
sm.Where(NoteImages.Columns.UUID.EQ(psql.Arg(UUIDPK))),
).Exists(ctx, exec)
}
// AfterQueryHook is called after NoteImage is retrieved from the database
func (o *NoteImage) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error {
var err error
switch queryType {
case bob.QueryTypeSelect:
ctx, err = NoteImages.AfterSelectHooks.RunHooks(ctx, exec, NoteImageSlice{o})
case bob.QueryTypeInsert:
ctx, err = NoteImages.AfterInsertHooks.RunHooks(ctx, exec, NoteImageSlice{o})
case bob.QueryTypeUpdate:
ctx, err = NoteImages.AfterUpdateHooks.RunHooks(ctx, exec, NoteImageSlice{o})
case bob.QueryTypeDelete:
ctx, err = NoteImages.AfterDeleteHooks.RunHooks(ctx, exec, NoteImageSlice{o})
}
return err
}
// primaryKeyVals returns the primary key values of the NoteImage
func (o *NoteImage) primaryKeyVals() bob.Expression {
return psql.ArgGroup(
o.Version,
o.UUID,
)
}
func (o *NoteImage) pkEQ() dialect.Expression {
return psql.Group(psql.Quote("note_image", "version"), psql.Quote("note_image", "uuid")).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 NoteImage
func (o *NoteImage) Update(ctx context.Context, exec bob.Executor, s *NoteImageSetter) error {
v, err := NoteImages.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 NoteImage record with an executor
func (o *NoteImage) Delete(ctx context.Context, exec bob.Executor) error {
_, err := NoteImages.Delete(dm.Where(o.pkEQ())).Exec(ctx, exec)
return err
}
// Reload refreshes the NoteImage using the executor
func (o *NoteImage) Reload(ctx context.Context, exec bob.Executor) error {
o2, err := NoteImages.Query(
sm.Where(NoteImages.Columns.Version.EQ(psql.Arg(o.Version))),
sm.Where(NoteImages.Columns.UUID.EQ(psql.Arg(o.UUID))),
).One(ctx, exec)
if err != nil {
return err
}
o2.R = o.R
*o = *o2
return nil
}
// AfterQueryHook is called after NoteImageSlice is retrieved from the database
func (o NoteImageSlice) AfterQueryHook(ctx context.Context, exec bob.Executor, queryType bob.QueryType) error {
var err error
switch queryType {
case bob.QueryTypeSelect:
ctx, err = NoteImages.AfterSelectHooks.RunHooks(ctx, exec, o)
case bob.QueryTypeInsert:
ctx, err = NoteImages.AfterInsertHooks.RunHooks(ctx, exec, o)
case bob.QueryTypeUpdate:
ctx, err = NoteImages.AfterUpdateHooks.RunHooks(ctx, exec, o)
case bob.QueryTypeDelete:
ctx, err = NoteImages.AfterDeleteHooks.RunHooks(ctx, exec, o)
}
return err
}
func (o NoteImageSlice) pkIN() dialect.Expression {
if len(o) == 0 {
return psql.Raw("NULL")
}
return psql.Group(psql.Quote("note_image", "version"), psql.Quote("note_image", "uuid")).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 NoteImageSlice) copyMatchingRows(from ...*NoteImage) {
for i, old := range o {
for _, new := range from {
if new.Version != old.Version {
continue
}
if new.UUID != old.UUID {
continue
}
new.R = old.R
o[i] = new
break
}
}
}
// UpdateMod modifies an update query with "WHERE primary_key IN (o...)"
func (o NoteImageSlice) 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 NoteImages.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 *NoteImage:
o.copyMatchingRows(retrieved)
case []*NoteImage:
o.copyMatchingRows(retrieved...)
case NoteImageSlice:
o.copyMatchingRows(retrieved...)
default:
// If the retrieved value is not a NoteImage or a slice of NoteImage
// then run the AfterUpdateHooks on the slice
_, err = NoteImages.AfterUpdateHooks.RunHooks(ctx, exec, o)
}
return err
}))
q.AppendWhere(o.pkIN())
})
}
// DeleteMod modifies an delete query with "WHERE primary_key IN (o...)"
func (o NoteImageSlice) 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 NoteImages.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 *NoteImage:
o.copyMatchingRows(retrieved)
case []*NoteImage:
o.copyMatchingRows(retrieved...)
case NoteImageSlice:
o.copyMatchingRows(retrieved...)
default:
// If the retrieved value is not a NoteImage or a slice of NoteImage
// then run the AfterDeleteHooks on the slice
_, err = NoteImages.AfterDeleteHooks.RunHooks(ctx, exec, o)
}
return err
}))
q.AppendWhere(o.pkIN())
})
}
func (o NoteImageSlice) UpdateAll(ctx context.Context, exec bob.Executor, vals NoteImageSetter) error {
if len(o) == 0 {
return nil
}
_, err := NoteImages.Update(vals.UpdateMod(), o.UpdateMod()).All(ctx, exec)
return err
}
func (o NoteImageSlice) DeleteAll(ctx context.Context, exec bob.Executor) error {
if len(o) == 0 {
return nil
}
_, err := NoteImages.Delete(o.DeleteMod()).Exec(ctx, exec)
return err
}
func (o NoteImageSlice) ReloadAll(ctx context.Context, exec bob.Executor) error {
if len(o) == 0 {
return nil
}
o2, err := NoteImages.Query(sm.Where(o.pkIN())).All(ctx, exec)
if err != nil {
return err
}
o.copyMatchingRows(o2...)
return nil
}
// CreatorUser starts a query for related objects on user_
func (o *NoteImage) CreatorUser(mods ...bob.Mod[*dialect.SelectQuery]) UsersQuery {
return Users.Query(append(mods,
sm.Where(Users.Columns.ID.EQ(psql.Arg(o.CreatorID))),
)...)
}
func (os NoteImageSlice) CreatorUser(mods ...bob.Mod[*dialect.SelectQuery]) UsersQuery {
pkCreatorID := make(pgtypes.Array[int32], 0, len(os))
for _, o := range os {
if o == nil {
continue
}
pkCreatorID = append(pkCreatorID, o.CreatorID)
}
PKArgExpr := psql.Select(sm.Columns(
psql.F("unnest", psql.Cast(psql.Arg(pkCreatorID), "integer[]")),
))
return Users.Query(append(mods,
sm.Where(psql.Group(Users.Columns.ID).OP("IN", PKArgExpr)),
)...)
}
// DeletorUser starts a query for related objects on user_
func (o *NoteImage) DeletorUser(mods ...bob.Mod[*dialect.SelectQuery]) UsersQuery {
return Users.Query(append(mods,
sm.Where(Users.Columns.ID.EQ(psql.Arg(o.DeletorID))),
)...)
}
func (os NoteImageSlice) DeletorUser(mods ...bob.Mod[*dialect.SelectQuery]) UsersQuery {
pkDeletorID := make(pgtypes.Array[null.Val[int32]], 0, len(os))
for _, o := range os {
if o == nil {
continue
}
pkDeletorID = append(pkDeletorID, o.DeletorID)
}
PKArgExpr := psql.Select(sm.Columns(
psql.F("unnest", psql.Cast(psql.Arg(pkDeletorID), "integer[]")),
))
return Users.Query(append(mods,
sm.Where(psql.Group(Users.Columns.ID).OP("IN", PKArgExpr)),
)...)
}
// Organization starts a query for related objects on organization
func (o *NoteImage) Organization(mods ...bob.Mod[*dialect.SelectQuery]) OrganizationsQuery {
return Organizations.Query(append(mods,
sm.Where(Organizations.Columns.ID.EQ(psql.Arg(o.OrganizationID))),
)...)
}
func (os NoteImageSlice) 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)),
)...)
}
// NoteImageBreadcrumbs starts a query for related objects on note_image_breadcrumb
func (o *NoteImage) NoteImageBreadcrumbs(mods ...bob.Mod[*dialect.SelectQuery]) NoteImageBreadcrumbsQuery {
return NoteImageBreadcrumbs.Query(append(mods,
sm.Where(NoteImageBreadcrumbs.Columns.NoteImageVersion.EQ(psql.Arg(o.Version))), sm.Where(NoteImageBreadcrumbs.Columns.NoteImageUUID.EQ(psql.Arg(o.UUID))),
)...)
}
func (os NoteImageSlice) NoteImageBreadcrumbs(mods ...bob.Mod[*dialect.SelectQuery]) NoteImageBreadcrumbsQuery {
pkVersion := make(pgtypes.Array[int32], 0, len(os))
pkUUID := make(pgtypes.Array[uuid.UUID], 0, len(os))
for _, o := range os {
if o == nil {
continue
}
pkVersion = append(pkVersion, o.Version)
pkUUID = append(pkUUID, o.UUID)
}
PKArgExpr := psql.Select(sm.Columns(
psql.F("unnest", psql.Cast(psql.Arg(pkVersion), "integer[]")),
psql.F("unnest", psql.Cast(psql.Arg(pkUUID), "uuid[]")),
))
return NoteImageBreadcrumbs.Query(append(mods,
sm.Where(psql.Group(NoteImageBreadcrumbs.Columns.NoteImageVersion, NoteImageBreadcrumbs.Columns.NoteImageUUID).OP("IN", PKArgExpr)),
)...)
}
// NoteImageData starts a query for related objects on note_image_data
func (o *NoteImage) NoteImageData(mods ...bob.Mod[*dialect.SelectQuery]) NoteImageDataQuery {
return NoteImageData.Query(append(mods,
sm.Where(NoteImageData.Columns.NoteImageVersion.EQ(psql.Arg(o.Version))), sm.Where(NoteImageData.Columns.NoteImageUUID.EQ(psql.Arg(o.UUID))),
)...)
}
func (os NoteImageSlice) NoteImageData(mods ...bob.Mod[*dialect.SelectQuery]) NoteImageDataQuery {
pkVersion := make(pgtypes.Array[int32], 0, len(os))
pkUUID := make(pgtypes.Array[uuid.UUID], 0, len(os))
for _, o := range os {
if o == nil {
continue
}
pkVersion = append(pkVersion, o.Version)
pkUUID = append(pkUUID, o.UUID)
}
PKArgExpr := psql.Select(sm.Columns(
psql.F("unnest", psql.Cast(psql.Arg(pkVersion), "integer[]")),
psql.F("unnest", psql.Cast(psql.Arg(pkUUID), "uuid[]")),
))
return NoteImageData.Query(append(mods,
sm.Where(psql.Group(NoteImageData.Columns.NoteImageVersion, NoteImageData.Columns.NoteImageUUID).OP("IN", PKArgExpr)),
)...)
}
func attachNoteImageCreatorUser0(ctx context.Context, exec bob.Executor, count int, noteImage0 *NoteImage, user1 *User) (*NoteImage, error) {
setter := &NoteImageSetter{
CreatorID: omit.From(user1.ID),
}
err := noteImage0.Update(ctx, exec, setter)
if err != nil {
return nil, fmt.Errorf("attachNoteImageCreatorUser0: %w", err)
}
return noteImage0, nil
}
func (noteImage0 *NoteImage) InsertCreatorUser(ctx context.Context, exec bob.Executor, related *UserSetter) error {
var err error
user1, err := Users.Insert(related).One(ctx, exec)
if err != nil {
return fmt.Errorf("inserting related objects: %w", err)
}
_, err = attachNoteImageCreatorUser0(ctx, exec, 1, noteImage0, user1)
if err != nil {
return err
}
noteImage0.R.CreatorUser = user1
user1.R.CreatorNoteImages = append(user1.R.CreatorNoteImages, noteImage0)
return nil
}
func (noteImage0 *NoteImage) AttachCreatorUser(ctx context.Context, exec bob.Executor, user1 *User) error {
var err error
_, err = attachNoteImageCreatorUser0(ctx, exec, 1, noteImage0, user1)
if err != nil {
return err
}
noteImage0.R.CreatorUser = user1
user1.R.CreatorNoteImages = append(user1.R.CreatorNoteImages, noteImage0)
return nil
}
func attachNoteImageDeletorUser0(ctx context.Context, exec bob.Executor, count int, noteImage0 *NoteImage, user1 *User) (*NoteImage, error) {
setter := &NoteImageSetter{
DeletorID: omitnull.From(user1.ID),
}
err := noteImage0.Update(ctx, exec, setter)
if err != nil {
return nil, fmt.Errorf("attachNoteImageDeletorUser0: %w", err)
}
return noteImage0, nil
}
func (noteImage0 *NoteImage) InsertDeletorUser(ctx context.Context, exec bob.Executor, related *UserSetter) error {
var err error
user1, err := Users.Insert(related).One(ctx, exec)
if err != nil {
return fmt.Errorf("inserting related objects: %w", err)
}
_, err = attachNoteImageDeletorUser0(ctx, exec, 1, noteImage0, user1)
if err != nil {
return err
}
noteImage0.R.DeletorUser = user1
user1.R.DeletorNoteImages = append(user1.R.DeletorNoteImages, noteImage0)
return nil
}
func (noteImage0 *NoteImage) AttachDeletorUser(ctx context.Context, exec bob.Executor, user1 *User) error {
var err error
_, err = attachNoteImageDeletorUser0(ctx, exec, 1, noteImage0, user1)
if err != nil {
return err
}
noteImage0.R.DeletorUser = user1
user1.R.DeletorNoteImages = append(user1.R.DeletorNoteImages, noteImage0)
return nil
}
func attachNoteImageOrganization0(ctx context.Context, exec bob.Executor, count int, noteImage0 *NoteImage, organization1 *Organization) (*NoteImage, error) {
setter := &NoteImageSetter{
OrganizationID: omit.From(organization1.ID),
}
err := noteImage0.Update(ctx, exec, setter)
if err != nil {
return nil, fmt.Errorf("attachNoteImageOrganization0: %w", err)
}
return noteImage0, nil
}
func (noteImage0 *NoteImage) 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 = attachNoteImageOrganization0(ctx, exec, 1, noteImage0, organization1)
if err != nil {
return err
}
noteImage0.R.Organization = organization1
organization1.R.NoteImages = append(organization1.R.NoteImages, noteImage0)
return nil
}
func (noteImage0 *NoteImage) AttachOrganization(ctx context.Context, exec bob.Executor, organization1 *Organization) error {
var err error
_, err = attachNoteImageOrganization0(ctx, exec, 1, noteImage0, organization1)
if err != nil {
return err
}
noteImage0.R.Organization = organization1
organization1.R.NoteImages = append(organization1.R.NoteImages, noteImage0)
return nil
}
func insertNoteImageNoteImageBreadcrumbs0(ctx context.Context, exec bob.Executor, noteImageBreadcrumbs1 []*NoteImageBreadcrumbSetter, noteImage0 *NoteImage) (NoteImageBreadcrumbSlice, error) {
for i := range noteImageBreadcrumbs1 {
noteImageBreadcrumbs1[i].NoteImageVersion = omit.From(noteImage0.Version)
noteImageBreadcrumbs1[i].NoteImageUUID = omit.From(noteImage0.UUID)
}
ret, err := NoteImageBreadcrumbs.Insert(bob.ToMods(noteImageBreadcrumbs1...)).All(ctx, exec)
if err != nil {
return ret, fmt.Errorf("insertNoteImageNoteImageBreadcrumbs0: %w", err)
}
return ret, nil
}
func attachNoteImageNoteImageBreadcrumbs0(ctx context.Context, exec bob.Executor, count int, noteImageBreadcrumbs1 NoteImageBreadcrumbSlice, noteImage0 *NoteImage) (NoteImageBreadcrumbSlice, error) {
setter := &NoteImageBreadcrumbSetter{
NoteImageVersion: omit.From(noteImage0.Version),
NoteImageUUID: omit.From(noteImage0.UUID),
}
err := noteImageBreadcrumbs1.UpdateAll(ctx, exec, *setter)
if err != nil {
return nil, fmt.Errorf("attachNoteImageNoteImageBreadcrumbs0: %w", err)
}
return noteImageBreadcrumbs1, nil
}
func (noteImage0 *NoteImage) InsertNoteImageBreadcrumbs(ctx context.Context, exec bob.Executor, related ...*NoteImageBreadcrumbSetter) error {
if len(related) == 0 {
return nil
}
var err error
noteImageBreadcrumbs1, err := insertNoteImageNoteImageBreadcrumbs0(ctx, exec, related, noteImage0)
if err != nil {
return err
}
noteImage0.R.NoteImageBreadcrumbs = append(noteImage0.R.NoteImageBreadcrumbs, noteImageBreadcrumbs1...)
for _, rel := range noteImageBreadcrumbs1 {
rel.R.NoteImage = noteImage0
}
return nil
}
func (noteImage0 *NoteImage) AttachNoteImageBreadcrumbs(ctx context.Context, exec bob.Executor, related ...*NoteImageBreadcrumb) error {
if len(related) == 0 {
return nil
}
var err error
noteImageBreadcrumbs1 := NoteImageBreadcrumbSlice(related)
_, err = attachNoteImageNoteImageBreadcrumbs0(ctx, exec, len(related), noteImageBreadcrumbs1, noteImage0)
if err != nil {
return err
}
noteImage0.R.NoteImageBreadcrumbs = append(noteImage0.R.NoteImageBreadcrumbs, noteImageBreadcrumbs1...)
for _, rel := range related {
rel.R.NoteImage = noteImage0
}
return nil
}
func insertNoteImageNoteImageData0(ctx context.Context, exec bob.Executor, noteImageData1 []*NoteImageDatumSetter, noteImage0 *NoteImage) (NoteImageDatumSlice, error) {
for i := range noteImageData1 {
noteImageData1[i].NoteImageVersion = omit.From(noteImage0.Version)
noteImageData1[i].NoteImageUUID = omit.From(noteImage0.UUID)
}
ret, err := NoteImageData.Insert(bob.ToMods(noteImageData1...)).All(ctx, exec)
if err != nil {
return ret, fmt.Errorf("insertNoteImageNoteImageData0: %w", err)
}
return ret, nil
}
func attachNoteImageNoteImageData0(ctx context.Context, exec bob.Executor, count int, noteImageData1 NoteImageDatumSlice, noteImage0 *NoteImage) (NoteImageDatumSlice, error) {
setter := &NoteImageDatumSetter{
NoteImageVersion: omit.From(noteImage0.Version),
NoteImageUUID: omit.From(noteImage0.UUID),
}
err := noteImageData1.UpdateAll(ctx, exec, *setter)
if err != nil {
return nil, fmt.Errorf("attachNoteImageNoteImageData0: %w", err)
}
return noteImageData1, nil
}
func (noteImage0 *NoteImage) InsertNoteImageData(ctx context.Context, exec bob.Executor, related ...*NoteImageDatumSetter) error {
if len(related) == 0 {
return nil
}
var err error
noteImageData1, err := insertNoteImageNoteImageData0(ctx, exec, related, noteImage0)
if err != nil {
return err
}
noteImage0.R.NoteImageData = append(noteImage0.R.NoteImageData, noteImageData1...)
for _, rel := range noteImageData1 {
rel.R.NoteImage = noteImage0
}
return nil
}
func (noteImage0 *NoteImage) AttachNoteImageData(ctx context.Context, exec bob.Executor, related ...*NoteImageDatum) error {
if len(related) == 0 {
return nil
}
var err error
noteImageData1 := NoteImageDatumSlice(related)
_, err = attachNoteImageNoteImageData0(ctx, exec, len(related), noteImageData1, noteImage0)
if err != nil {
return err
}
noteImage0.R.NoteImageData = append(noteImage0.R.NoteImageData, noteImageData1...)
for _, rel := range related {
rel.R.NoteImage = noteImage0
}
return nil
}
type noteImageWhere[Q psql.Filterable] struct {
Created psql.WhereMod[Q, time.Time]
CreatorID psql.WhereMod[Q, int32]
Deleted psql.WhereNullMod[Q, time.Time]
DeletorID psql.WhereNullMod[Q, int32]
OrganizationID psql.WhereMod[Q, int32]
Version psql.WhereMod[Q, int32]
UUID psql.WhereMod[Q, uuid.UUID]
}
func (noteImageWhere[Q]) AliasedAs(alias string) noteImageWhere[Q] {
return buildNoteImageWhere[Q](buildNoteImageColumns(alias))
}
func buildNoteImageWhere[Q psql.Filterable](cols noteImageColumns) noteImageWhere[Q] {
return noteImageWhere[Q]{
Created: psql.Where[Q, time.Time](cols.Created),
CreatorID: psql.Where[Q, int32](cols.CreatorID),
Deleted: psql.WhereNull[Q, time.Time](cols.Deleted),
DeletorID: psql.WhereNull[Q, int32](cols.DeletorID),
OrganizationID: psql.Where[Q, int32](cols.OrganizationID),
Version: psql.Where[Q, int32](cols.Version),
UUID: psql.Where[Q, uuid.UUID](cols.UUID),
}
}
func (o *NoteImage) Preload(name string, retrieved any) error {
if o == nil {
return nil
}
switch name {
case "CreatorUser":
rel, ok := retrieved.(*User)
if !ok {
return fmt.Errorf("noteImage cannot load %T as %q", retrieved, name)
}
o.R.CreatorUser = rel
if rel != nil {
rel.R.CreatorNoteImages = NoteImageSlice{o}
}
return nil
case "DeletorUser":
rel, ok := retrieved.(*User)
if !ok {
return fmt.Errorf("noteImage cannot load %T as %q", retrieved, name)
}
o.R.DeletorUser = rel
if rel != nil {
rel.R.DeletorNoteImages = NoteImageSlice{o}
}
return nil
case "Organization":
rel, ok := retrieved.(*Organization)
if !ok {
return fmt.Errorf("noteImage cannot load %T as %q", retrieved, name)
}
o.R.Organization = rel
if rel != nil {
rel.R.NoteImages = NoteImageSlice{o}
}
return nil
case "NoteImageBreadcrumbs":
rels, ok := retrieved.(NoteImageBreadcrumbSlice)
if !ok {
return fmt.Errorf("noteImage cannot load %T as %q", retrieved, name)
}
o.R.NoteImageBreadcrumbs = rels
for _, rel := range rels {
if rel != nil {
rel.R.NoteImage = o
}
}
return nil
case "NoteImageData":
rels, ok := retrieved.(NoteImageDatumSlice)
if !ok {
return fmt.Errorf("noteImage cannot load %T as %q", retrieved, name)
}
o.R.NoteImageData = rels
for _, rel := range rels {
if rel != nil {
rel.R.NoteImage = o
}
}
return nil
default:
return fmt.Errorf("noteImage has no relationship %q", name)
}
}
type noteImagePreloader struct {
CreatorUser func(...psql.PreloadOption) psql.Preloader
DeletorUser func(...psql.PreloadOption) psql.Preloader
Organization func(...psql.PreloadOption) psql.Preloader
}
func buildNoteImagePreloader() noteImagePreloader {
return noteImagePreloader{
CreatorUser: func(opts ...psql.PreloadOption) psql.Preloader {
return psql.Preload[*User, UserSlice](psql.PreloadRel{
Name: "CreatorUser",
Sides: []psql.PreloadSide{
{
From: NoteImages,
To: Users,
FromColumns: []string{"creator_id"},
ToColumns: []string{"id"},
},
},
}, Users.Columns.Names(), opts...)
},
DeletorUser: func(opts ...psql.PreloadOption) psql.Preloader {
return psql.Preload[*User, UserSlice](psql.PreloadRel{
Name: "DeletorUser",
Sides: []psql.PreloadSide{
{
From: NoteImages,
To: Users,
FromColumns: []string{"deletor_id"},
ToColumns: []string{"id"},
},
},
}, Users.Columns.Names(), opts...)
},
Organization: func(opts ...psql.PreloadOption) psql.Preloader {
return psql.Preload[*Organization, OrganizationSlice](psql.PreloadRel{
Name: "Organization",
Sides: []psql.PreloadSide{
{
From: NoteImages,
To: Organizations,
FromColumns: []string{"organization_id"},
ToColumns: []string{"id"},
},
},
}, Organizations.Columns.Names(), opts...)
},
}
}
type noteImageThenLoader[Q orm.Loadable] struct {
CreatorUser func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
DeletorUser func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
Organization func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
NoteImageBreadcrumbs func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
NoteImageData func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q]
}
func buildNoteImageThenLoader[Q orm.Loadable]() noteImageThenLoader[Q] {
type CreatorUserLoadInterface interface {
LoadCreatorUser(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
}
type DeletorUserLoadInterface interface {
LoadDeletorUser(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
}
type OrganizationLoadInterface interface {
LoadOrganization(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
}
type NoteImageBreadcrumbsLoadInterface interface {
LoadNoteImageBreadcrumbs(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
}
type NoteImageDataLoadInterface interface {
LoadNoteImageData(context.Context, bob.Executor, ...bob.Mod[*dialect.SelectQuery]) error
}
return noteImageThenLoader[Q]{
CreatorUser: thenLoadBuilder[Q](
"CreatorUser",
func(ctx context.Context, exec bob.Executor, retrieved CreatorUserLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
return retrieved.LoadCreatorUser(ctx, exec, mods...)
},
),
DeletorUser: thenLoadBuilder[Q](
"DeletorUser",
func(ctx context.Context, exec bob.Executor, retrieved DeletorUserLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
return retrieved.LoadDeletorUser(ctx, exec, mods...)
},
),
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...)
},
),
NoteImageBreadcrumbs: thenLoadBuilder[Q](
"NoteImageBreadcrumbs",
func(ctx context.Context, exec bob.Executor, retrieved NoteImageBreadcrumbsLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
return retrieved.LoadNoteImageBreadcrumbs(ctx, exec, mods...)
},
),
NoteImageData: thenLoadBuilder[Q](
"NoteImageData",
func(ctx context.Context, exec bob.Executor, retrieved NoteImageDataLoadInterface, mods ...bob.Mod[*dialect.SelectQuery]) error {
return retrieved.LoadNoteImageData(ctx, exec, mods...)
},
),
}
}
// LoadCreatorUser loads the noteImage's CreatorUser into the .R struct
func (o *NoteImage) LoadCreatorUser(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if o == nil {
return nil
}
// Reset the relationship
o.R.CreatorUser = nil
related, err := o.CreatorUser(mods...).One(ctx, exec)
if err != nil {
return err
}
related.R.CreatorNoteImages = NoteImageSlice{o}
o.R.CreatorUser = related
return nil
}
// LoadCreatorUser loads the noteImage's CreatorUser into the .R struct
func (os NoteImageSlice) LoadCreatorUser(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if len(os) == 0 {
return nil
}
users, err := os.CreatorUser(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, o := range os {
if o == nil {
continue
}
for _, rel := range users {
if !(o.CreatorID == rel.ID) {
continue
}
rel.R.CreatorNoteImages = append(rel.R.CreatorNoteImages, o)
o.R.CreatorUser = rel
break
}
}
return nil
}
// LoadDeletorUser loads the noteImage's DeletorUser into the .R struct
func (o *NoteImage) LoadDeletorUser(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if o == nil {
return nil
}
// Reset the relationship
o.R.DeletorUser = nil
related, err := o.DeletorUser(mods...).One(ctx, exec)
if err != nil {
return err
}
related.R.DeletorNoteImages = NoteImageSlice{o}
o.R.DeletorUser = related
return nil
}
// LoadDeletorUser loads the noteImage's DeletorUser into the .R struct
func (os NoteImageSlice) LoadDeletorUser(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if len(os) == 0 {
return nil
}
users, err := os.DeletorUser(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, o := range os {
if o == nil {
continue
}
for _, rel := range users {
if !o.DeletorID.IsValue() {
continue
}
if !(o.DeletorID.IsValue() && o.DeletorID.MustGet() == rel.ID) {
continue
}
rel.R.DeletorNoteImages = append(rel.R.DeletorNoteImages, o)
o.R.DeletorUser = rel
break
}
}
return nil
}
// LoadOrganization loads the noteImage's Organization into the .R struct
func (o *NoteImage) 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.NoteImages = NoteImageSlice{o}
o.R.Organization = related
return nil
}
// LoadOrganization loads the noteImage's Organization into the .R struct
func (os NoteImageSlice) 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.NoteImages = append(rel.R.NoteImages, o)
o.R.Organization = rel
break
}
}
return nil
}
// LoadNoteImageBreadcrumbs loads the noteImage's NoteImageBreadcrumbs into the .R struct
func (o *NoteImage) LoadNoteImageBreadcrumbs(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if o == nil {
return nil
}
// Reset the relationship
o.R.NoteImageBreadcrumbs = nil
related, err := o.NoteImageBreadcrumbs(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, rel := range related {
rel.R.NoteImage = o
}
o.R.NoteImageBreadcrumbs = related
return nil
}
// LoadNoteImageBreadcrumbs loads the noteImage's NoteImageBreadcrumbs into the .R struct
func (os NoteImageSlice) LoadNoteImageBreadcrumbs(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if len(os) == 0 {
return nil
}
noteImageBreadcrumbs, err := os.NoteImageBreadcrumbs(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, o := range os {
if o == nil {
continue
}
o.R.NoteImageBreadcrumbs = nil
}
for _, o := range os {
if o == nil {
continue
}
for _, rel := range noteImageBreadcrumbs {
if !(o.Version == rel.NoteImageVersion) {
continue
}
if !(o.UUID == rel.NoteImageUUID) {
continue
}
rel.R.NoteImage = o
o.R.NoteImageBreadcrumbs = append(o.R.NoteImageBreadcrumbs, rel)
}
}
return nil
}
// LoadNoteImageData loads the noteImage's NoteImageData into the .R struct
func (o *NoteImage) LoadNoteImageData(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if o == nil {
return nil
}
// Reset the relationship
o.R.NoteImageData = nil
related, err := o.NoteImageData(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, rel := range related {
rel.R.NoteImage = o
}
o.R.NoteImageData = related
return nil
}
// LoadNoteImageData loads the noteImage's NoteImageData into the .R struct
func (os NoteImageSlice) LoadNoteImageData(ctx context.Context, exec bob.Executor, mods ...bob.Mod[*dialect.SelectQuery]) error {
if len(os) == 0 {
return nil
}
noteImageData, err := os.NoteImageData(mods...).All(ctx, exec)
if err != nil {
return err
}
for _, o := range os {
if o == nil {
continue
}
o.R.NoteImageData = nil
}
for _, o := range os {
if o == nil {
continue
}
for _, rel := range noteImageData {
if !(o.Version == rel.NoteImageVersion) {
continue
}
if !(o.UUID == rel.NoteImageUUID) {
continue
}
rel.R.NoteImage = o
o.R.NoteImageData = append(o.R.NoteImageData, rel)
}
}
return nil
}
type noteImageJoins[Q dialect.Joinable] struct {
typ string
CreatorUser modAs[Q, userColumns]
DeletorUser modAs[Q, userColumns]
Organization modAs[Q, organizationColumns]
NoteImageBreadcrumbs modAs[Q, noteImageBreadcrumbColumns]
NoteImageData modAs[Q, noteImageDatumColumns]
}
func (j noteImageJoins[Q]) aliasedAs(alias string) noteImageJoins[Q] {
return buildNoteImageJoins[Q](buildNoteImageColumns(alias), j.typ)
}
func buildNoteImageJoins[Q dialect.Joinable](cols noteImageColumns, typ string) noteImageJoins[Q] {
return noteImageJoins[Q]{
typ: typ,
CreatorUser: modAs[Q, userColumns]{
c: Users.Columns,
f: func(to userColumns) bob.Mod[Q] {
mods := make(mods.QueryMods[Q], 0, 1)
{
mods = append(mods, dialect.Join[Q](typ, Users.Name().As(to.Alias())).On(
to.ID.EQ(cols.CreatorID),
))
}
return mods
},
},
DeletorUser: modAs[Q, userColumns]{
c: Users.Columns,
f: func(to userColumns) bob.Mod[Q] {
mods := make(mods.QueryMods[Q], 0, 1)
{
mods = append(mods, dialect.Join[Q](typ, Users.Name().As(to.Alias())).On(
to.ID.EQ(cols.DeletorID),
))
}
return mods
},
},
Organization: modAs[Q, organizationColumns]{
c: Organizations.Columns,
f: func(to organizationColumns) bob.Mod[Q] {
mods := make(mods.QueryMods[Q], 0, 1)
{
mods = append(mods, dialect.Join[Q](typ, Organizations.Name().As(to.Alias())).On(
to.ID.EQ(cols.OrganizationID),
))
}
return mods
},
},
NoteImageBreadcrumbs: modAs[Q, noteImageBreadcrumbColumns]{
c: NoteImageBreadcrumbs.Columns,
f: func(to noteImageBreadcrumbColumns) bob.Mod[Q] {
mods := make(mods.QueryMods[Q], 0, 1)
{
mods = append(mods, dialect.Join[Q](typ, NoteImageBreadcrumbs.Name().As(to.Alias())).On(
to.NoteImageVersion.EQ(cols.Version), to.NoteImageUUID.EQ(cols.UUID),
))
}
return mods
},
},
NoteImageData: modAs[Q, noteImageDatumColumns]{
c: NoteImageData.Columns,
f: func(to noteImageDatumColumns) bob.Mod[Q] {
mods := make(mods.QueryMods[Q], 0, 1)
{
mods = append(mods, dialect.Join[Q](typ, NoteImageData.Name().As(to.Alias())).On(
to.NoteImageVersion.EQ(cols.Version), to.NoteImageUUID.EQ(cols.UUID),
))
}
return mods
},
},
}
}