This is extremely useful for testing. In order to do this I needed to actually deploy the migration to a bob fork so I could start to add support for behaviors I really want. Specifically the ability to search for ids in a slice.
137 lines
4 KiB
Go
137 lines
4 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 sql
|
|
|
|
import (
|
|
"context"
|
|
_ "embed"
|
|
"io"
|
|
"iter"
|
|
"time"
|
|
|
|
"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/orm"
|
|
enums "github.com/Gleipnir-Technology/nidus-sync/db/enums"
|
|
"github.com/stephenafamo/scan"
|
|
)
|
|
|
|
//go:embed texts_by_senders.bob.sql
|
|
var formattedQueries_texts_by_senders string
|
|
|
|
var textsBySendersSQL = formattedQueries_texts_by_senders[152:416]
|
|
|
|
type TextsBySendersQuery = orm.ModQuery[*dialect.SelectQuery, textsBySenders, TextsBySendersRow, []TextsBySendersRow, textsBySendersTransformer]
|
|
|
|
func TextsBySenders(Destination string, Source string) *TextsBySendersQuery {
|
|
var expressionTypArgs textsBySenders
|
|
|
|
expressionTypArgs.Destination = psql.Arg(Destination)
|
|
expressionTypArgs.Source = psql.Arg(Source)
|
|
|
|
return &TextsBySendersQuery{
|
|
Query: orm.Query[textsBySenders, TextsBySendersRow, []TextsBySendersRow, textsBySendersTransformer]{
|
|
ExecQuery: orm.ExecQuery[textsBySenders]{
|
|
BaseQuery: bob.BaseQuery[textsBySenders]{
|
|
Expression: expressionTypArgs,
|
|
Dialect: dialect.Dialect,
|
|
QueryType: bob.QueryTypeSelect,
|
|
},
|
|
},
|
|
Scanner: func(context.Context, []string) (func(*scan.Row) (any, error), func(any) (TextsBySendersRow, error)) {
|
|
return func(row *scan.Row) (any, error) {
|
|
var t TextsBySendersRow
|
|
row.ScheduleScanByIndex(0, &t.ID)
|
|
row.ScheduleScanByIndex(1, &t.Content)
|
|
row.ScheduleScanByIndex(2, &t.Created)
|
|
row.ScheduleScanByIndex(3, &t.Source)
|
|
row.ScheduleScanByIndex(4, &t.Destination)
|
|
row.ScheduleScanByIndex(5, &t.IsVisibleToLLM)
|
|
row.ScheduleScanByIndex(6, &t.IsWelcome)
|
|
row.ScheduleScanByIndex(7, &t.Origin)
|
|
return &t, nil
|
|
}, func(v any) (TextsBySendersRow, error) {
|
|
return *(v.(*TextsBySendersRow)), nil
|
|
}
|
|
},
|
|
},
|
|
Mod: bob.ModFunc[*dialect.SelectQuery](func(q *dialect.SelectQuery) {
|
|
q.AppendSelect(expressionTypArgs.subExpr(12, 120))
|
|
q.SetTable(expressionTypArgs.subExpr(131, 145))
|
|
q.AppendWhere(expressionTypArgs.subExpr(158, 237))
|
|
q.CombinedOrder.AppendOrder(expressionTypArgs.subExpr(253, 264))
|
|
}),
|
|
}
|
|
}
|
|
|
|
type TextsBySendersRow = struct {
|
|
ID int32 `db:"id"`
|
|
Content string `db:"content"`
|
|
Created time.Time `db:"created"`
|
|
Source string `db:"source"`
|
|
Destination string `db:"destination"`
|
|
IsVisibleToLLM bool `db:"is_visible_to_llm"`
|
|
IsWelcome bool `db:"is_welcome"`
|
|
Origin enums.CommsTextorigin `db:"origin"`
|
|
}
|
|
|
|
type textsBySendersTransformer = bob.SliceTransformer[TextsBySendersRow, []TextsBySendersRow]
|
|
|
|
type textsBySenders struct {
|
|
Destination bob.Expression
|
|
Source bob.Expression
|
|
}
|
|
|
|
func (o textsBySenders) args() iter.Seq[orm.ArgWithPosition] {
|
|
return func(yield func(arg orm.ArgWithPosition) bool) {
|
|
if !yield(orm.ArgWithPosition{
|
|
Name: "destination",
|
|
Start: 167,
|
|
Stop: 169,
|
|
Expression: o.Destination,
|
|
}) {
|
|
return
|
|
}
|
|
|
|
if !yield(orm.ArgWithPosition{
|
|
Name: "source",
|
|
Start: 188,
|
|
Stop: 190,
|
|
Expression: o.Source,
|
|
}) {
|
|
return
|
|
}
|
|
|
|
if !yield(orm.ArgWithPosition{
|
|
Name: "source",
|
|
Start: 214,
|
|
Stop: 216,
|
|
Expression: o.Source,
|
|
}) {
|
|
return
|
|
}
|
|
|
|
if !yield(orm.ArgWithPosition{
|
|
Name: "destination",
|
|
Start: 235,
|
|
Stop: 237,
|
|
Expression: o.Destination,
|
|
}) {
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
func (o textsBySenders) raw(from, to int) string {
|
|
return textsBySendersSQL[from:to]
|
|
}
|
|
|
|
func (o textsBySenders) subExpr(from, to int) bob.Expression {
|
|
return orm.ArgsToExpression(textsBySendersSQL, from, to, o.args())
|
|
}
|
|
|
|
func (o textsBySenders) WriteSQL(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) {
|
|
return o.subExpr(0, len(textsBySendersSQL)).WriteSQL(ctx, w, d, start)
|
|
}
|