Rewrites the internal/db/queries comments to rule 32 and regenerates dbq, whose doc comments and embedded SQL carry them. The bugs behind the tiered mixes, the md5 order seed, the score bands and the round-robin arms are restated as the constraint each one enforces; counts from one library and stale cross-references are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
142 lines
3.1 KiB
Go
142 lines
3.1 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: audit_log.sql
|
|
|
|
package dbq
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
const countAuditLogByActions = `-- name: CountAuditLogByActions :one
|
|
SELECT count(*)::bigint FROM audit_log
|
|
WHERE action = ANY($1::text[])
|
|
AND (NOT $2::boolean OR actor_id IS NULL)
|
|
`
|
|
|
|
type CountAuditLogByActionsParams struct {
|
|
Actions []string
|
|
SystemOnly bool
|
|
}
|
|
|
|
// System actions carry no actor; system_only narrows to them.
|
|
func (q *Queries) CountAuditLogByActions(ctx context.Context, arg CountAuditLogByActionsParams) (int64, error) {
|
|
row := q.db.QueryRow(ctx, countAuditLogByActions, arg.Actions, arg.SystemOnly)
|
|
var column_1 int64
|
|
err := row.Scan(&column_1)
|
|
return column_1, err
|
|
}
|
|
|
|
const listAuditLog = `-- name: ListAuditLog :many
|
|
SELECT id, actor_id, target_id, action, metadata, created_at FROM audit_log
|
|
ORDER BY created_at DESC
|
|
LIMIT $1 OFFSET $2
|
|
`
|
|
|
|
type ListAuditLogParams struct {
|
|
Limit int32
|
|
Offset int32
|
|
}
|
|
|
|
func (q *Queries) ListAuditLog(ctx context.Context, arg ListAuditLogParams) ([]AuditLog, error) {
|
|
rows, err := q.db.Query(ctx, listAuditLog, arg.Limit, arg.Offset)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []AuditLog
|
|
for rows.Next() {
|
|
var i AuditLog
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ActorID,
|
|
&i.TargetID,
|
|
&i.Action,
|
|
&i.Metadata,
|
|
&i.CreatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listAuditLogByActions = `-- name: ListAuditLogByActions :many
|
|
SELECT id, actor_id, target_id, action, metadata, created_at FROM audit_log
|
|
WHERE action = ANY($1::text[])
|
|
AND (NOT $2::boolean OR actor_id IS NULL)
|
|
ORDER BY created_at DESC, id
|
|
LIMIT $4 OFFSET $3
|
|
`
|
|
|
|
type ListAuditLogByActionsParams struct {
|
|
Actions []string
|
|
SystemOnly bool
|
|
PageOffset int32
|
|
PageLimit int32
|
|
}
|
|
|
|
// One page of the given actions, newest first: the duplicates report's
|
|
// "resolved automatically" activity reads the resolver's merges from
|
|
// here.
|
|
func (q *Queries) ListAuditLogByActions(ctx context.Context, arg ListAuditLogByActionsParams) ([]AuditLog, error) {
|
|
rows, err := q.db.Query(ctx, listAuditLogByActions,
|
|
arg.Actions,
|
|
arg.SystemOnly,
|
|
arg.PageOffset,
|
|
arg.PageLimit,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []AuditLog
|
|
for rows.Next() {
|
|
var i AuditLog
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ActorID,
|
|
&i.TargetID,
|
|
&i.Action,
|
|
&i.Metadata,
|
|
&i.CreatedAt,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const writeAuditLog = `-- name: WriteAuditLog :exec
|
|
INSERT INTO audit_log (actor_id, target_id, action, metadata)
|
|
VALUES ($1, $2, $3, $4)
|
|
`
|
|
|
|
type WriteAuditLogParams struct {
|
|
ActorID pgtype.UUID
|
|
TargetID pgtype.UUID
|
|
Action string
|
|
Metadata []byte
|
|
}
|
|
|
|
func (q *Queries) WriteAuditLog(ctx context.Context, arg WriteAuditLogParams) error {
|
|
_, err := q.db.Exec(ctx, writeAuditLog,
|
|
arg.ActorID,
|
|
arg.TargetID,
|
|
arg.Action,
|
|
arg.Metadata,
|
|
)
|
|
return err
|
|
}
|