// 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/expr" "github.com/Gleipnir-Technology/bob/orm" "github.com/aarondl/opt/null" "github.com/google/uuid" "github.com/stephenafamo/scan" ) //go:embed trapcount_by_location_id.bob.sql var formattedQueries_trapcount_by_location_id string var trapCountByLocationIDSQL = formattedQueries_trapcount_by_location_id[159:609] type TrapCountByLocationIDQuery = orm.ModQuery[*dialect.SelectQuery, trapCountByLocationID, TrapCountByLocationIDRow, []TrapCountByLocationIDRow, trapCountByLocationIDTransformer] func TrapCountByLocationID(OrganizationID int32, LocID []uuid.UUID) *TrapCountByLocationIDQuery { var expressionTypArgs trapCountByLocationID expressionTypArgs.OrganizationID = psql.Arg(OrganizationID) expressionTypArgs.LocID = expr.ToArgs(LocID...) return &TrapCountByLocationIDQuery{ Query: orm.Query[trapCountByLocationID, TrapCountByLocationIDRow, []TrapCountByLocationIDRow, trapCountByLocationIDTransformer]{ ExecQuery: orm.ExecQuery[trapCountByLocationID]{ BaseQuery: bob.BaseQuery[trapCountByLocationID]{ Expression: expressionTypArgs, Dialect: dialect.Dialect, QueryType: bob.QueryTypeSelect, }, }, Scanner: func(context.Context, []string) (func(*scan.Row) (any, error), func(any) (TrapCountByLocationIDRow, error)) { return func(row *scan.Row) (any, error) { var t TrapCountByLocationIDRow row.ScheduleScanByIndex(0, &t.TrapdataGlobalid) row.ScheduleScanByIndex(1, &t.TrapdataEnddate) row.ScheduleScanByIndex(2, &t.TotalFemales) row.ScheduleScanByIndex(3, &t.TotalMales) row.ScheduleScanByIndex(4, &t.Total) return &t, nil }, func(v any) (TrapCountByLocationIDRow, error) { return *(v.(*TrapCountByLocationIDRow)), nil } }, }, Mod: bob.ModFunc[*dialect.SelectQuery](func(q *dialect.SelectQuery) { q.AppendSelect(expressionTypArgs.subExpr(12, 223)) q.SetTable(expressionTypArgs.subExpr(234, 336)) q.AppendWhere(expressionTypArgs.subExpr(348, 397)) q.AppendGroup(expressionTypArgs.subExpr(412, 450)) }), } } type TrapCountByLocationIDRow = struct { TrapdataGlobalid uuid.UUID `db:"trapdata_globalid"` TrapdataEnddate null.Val[time.Time] `db:"trapdata_enddate"` TotalFemales int64 `db:"total_females"` TotalMales int64 `db:"total_males"` Total int64 `db:"total"` } type trapCountByLocationIDTransformer = bob.SliceTransformer[TrapCountByLocationIDRow, []TrapCountByLocationIDRow] type trapCountByLocationID struct { OrganizationID bob.Expression LocID bob.Expression } func (o trapCountByLocationID) args() iter.Seq[orm.ArgWithPosition] { return func(yield func(arg orm.ArgWithPosition) bool) { if !yield(orm.ArgWithPosition{ Name: "organizationID", Start: 369, Stop: 371, Expression: o.OrganizationID, }) { return } if !yield(orm.ArgWithPosition{ Name: "locID", Start: 394, Stop: 396, Expression: o.LocID, }) { return } } } func (o trapCountByLocationID) raw(from, to int) string { return trapCountByLocationIDSQL[from:to] } func (o trapCountByLocationID) subExpr(from, to int) bob.Expression { return orm.ArgsToExpression(trapCountByLocationIDSQL, from, to, o.args()) } func (o trapCountByLocationID) WriteSQL(ctx context.Context, w io.StringWriter, d bob.Dialect, start int) ([]any, error) { return o.subExpr(0, len(trapCountByLocationIDSQL)).WriteSQL(ctx, w, d, start) }