mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-08 01:16:45 +08:00
Comment owner routing loaded every task row on an issue, including context/result payloads, before selecting the current thread owners. Filter by issue and root comment in SQL and return one agent/squad pair per owner. Closes #8711
52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: conversation_root.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
const listConversationRootOwners = `-- name: ListConversationRootOwners :many
|
|
SELECT DISTINCT ON (agent_id) agent_id, squad_id
|
|
FROM agent_task_queue
|
|
WHERE issue_id = $1 AND trigger_comment_id = $2 AND agent_id IS NOT NULL
|
|
ORDER BY agent_id, (squad_id IS NOT NULL) DESC, created_at DESC, id DESC
|
|
`
|
|
|
|
type ListConversationRootOwnersParams struct {
|
|
IssueID pgtype.UUID `json:"issue_id"`
|
|
TriggerCommentID pgtype.UUID `json:"trigger_comment_id"`
|
|
}
|
|
|
|
type ListConversationRootOwnersRow struct {
|
|
AgentID pgtype.UUID `json:"agent_id"`
|
|
SquadID pgtype.UUID `json:"squad_id"`
|
|
}
|
|
|
|
// Preserve the newest non-null squad per agent, including terminal tasks.
|
|
// Routing does not need execution context, results, or other issue threads.
|
|
func (q *Queries) ListConversationRootOwners(ctx context.Context, arg ListConversationRootOwnersParams) ([]ListConversationRootOwnersRow, error) {
|
|
rows, err := q.db.Query(ctx, listConversationRootOwners, arg.IssueID, arg.TriggerCommentID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []ListConversationRootOwnersRow{}
|
|
for rows.Next() {
|
|
var i ListConversationRootOwnersRow
|
|
if err := rows.Scan(&i.AgentID, &i.SquadID); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|