nidus-sync/db/sql/texts_by_senders.bob.go
Eli Ribble a68b8781e7
Add ability to make LLM agent forget the conversation history
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.
2026-01-27 18:44:02 +00:00

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)
}