mirror of
https://github.com/multica-ai/multica.git
synced 2026-06-17 11:48:42 +02:00
45 lines
1.3 KiB
SQL
45 lines
1.3 KiB
SQL
-- name: ListActivitiesForIssue :many
|
|
-- All activities for an issue in chronological order, capped at $2 (DB safety
|
|
-- net to bound the response).
|
|
SELECT * FROM activity_log
|
|
WHERE issue_id = $1
|
|
ORDER BY created_at ASC, id ASC
|
|
LIMIT $2;
|
|
|
|
-- name: GetActivity :one
|
|
SELECT * FROM activity_log
|
|
WHERE id = $1;
|
|
|
|
-- name: CreateActivity :one
|
|
INSERT INTO activity_log (
|
|
workspace_id, issue_id, actor_type, actor_id, action, details
|
|
) VALUES ($1, $2, $3, $4, $5, $6)
|
|
RETURNING *;
|
|
|
|
-- name: HasSquadLeaderNoActionEvaluationForTask :one
|
|
SELECT EXISTS (
|
|
SELECT 1
|
|
FROM activity_log
|
|
WHERE issue_id = @issue_id
|
|
AND actor_type = 'agent'
|
|
AND actor_id = @agent_id
|
|
AND action = 'squad_leader_evaluated'
|
|
AND details->>'outcome' = 'no_action'
|
|
AND details->>'task_id' = @task_id::text
|
|
) AS exists;
|
|
|
|
-- name: CountAssigneeChangesByActor :many
|
|
-- Count how many times a user assigned each target via assignee_changed activities.
|
|
SELECT
|
|
details->>'to_type' as assignee_type,
|
|
details->>'to_id' as assignee_id,
|
|
COUNT(*)::bigint as frequency
|
|
FROM activity_log
|
|
WHERE workspace_id = $1
|
|
AND actor_id = $2
|
|
AND actor_type = 'member'
|
|
AND action = 'assignee_changed'
|
|
AND details->>'to_type' IS NOT NULL
|
|
AND details->>'to_id' IS NOT NULL
|
|
GROUP BY details->>'to_type', details->>'to_id';
|