2024-07-17 19:30:16 -04:00
|
|
|
-- name: GetTalkgroupsWithAnyTags :many
|
2024-07-28 23:07:04 -04:00
|
|
|
SELECT * FROM talkgroups
|
2024-07-17 19:30:16 -04:00
|
|
|
WHERE tags @> ARRAY[$1];
|
|
|
|
|
|
|
|
-- name: GetTalkgroupsWithAllTags :many
|
2024-07-28 23:07:04 -04:00
|
|
|
SELECT * FROM talkgroups
|
2024-07-17 19:30:16 -04:00
|
|
|
WHERE tags && ARRAY[$1];
|
|
|
|
|
2024-08-06 11:19:30 -04:00
|
|
|
-- name: GetTalkgroupIDsByTags :many
|
|
|
|
SELECT system_id, tgid FROM talkgroups
|
|
|
|
WHERE (tags @> ARRAY[sqlc.arg(anyTags)])
|
|
|
|
AND (tags && ARRAY[sqlc.arg(allTags)])
|
|
|
|
AND NOT (tags @> ARRAY[sqlc.arg(notTags)]);
|
|
|
|
|
2024-07-17 19:30:16 -04:00
|
|
|
-- name: GetTalkgroupTags :one
|
2024-07-28 23:07:04 -04:00
|
|
|
SELECT tags FROM talkgroups
|
2024-08-06 11:19:30 -04:00
|
|
|
WHERE id = systg2id($1, $2);
|
2024-07-17 19:30:16 -04:00
|
|
|
|
|
|
|
-- name: SetTalkgroupTags :exec
|
2024-08-06 11:19:30 -04:00
|
|
|
UPDATE talkgroups SET tags = $3
|
|
|
|
WHERE id = systg2id($1, $2);
|
|
|
|
|
|
|
|
-- name: BulkSetTalkgroupTags :exec
|
|
|
|
UPDATE talkgroups SET tags = $2
|
|
|
|
WHERE id = ANY($1);
|
2024-08-16 14:54:50 -04:00
|
|
|
|
|
|
|
-- name: GetTalkgroup :one
|
2024-08-16 16:47:39 -04:00
|
|
|
SELECT * FROM talkgroups
|
|
|
|
WHERE id = systg2id(sqlc.arg(system_id), sqlc.arg(tgid));
|
|
|
|
|
|
|
|
-- name: GetTalkgroupWithLearned :one
|
|
|
|
SELECT
|
2024-08-20 08:17:02 -04:00
|
|
|
tg.id, tg.system_id, sys.name system_name, tg.tgid, tg.name,
|
2024-08-23 14:28:47 -04:00
|
|
|
tg.tg_group, tg.frequency, tg.metadata, tg.tags, tg.alpha_tag,
|
2024-08-16 16:47:39 -04:00
|
|
|
FALSE learned
|
|
|
|
FROM talkgroups tg
|
2024-08-20 08:17:02 -04:00
|
|
|
JOIN systems sys ON tg.system_id = sys.id
|
|
|
|
WHERE tg.id = systg2id(sqlc.arg(system_id), sqlc.arg(tgid))
|
2024-08-16 16:47:39 -04:00
|
|
|
UNION
|
|
|
|
SELECT
|
2024-08-20 08:17:02 -04:00
|
|
|
tgl.id::INT8, tgl.system_id::INT4, sys.name system_name, tgl.tgid::INT4, tgl.name,
|
2024-08-17 11:52:53 -04:00
|
|
|
tgl.group_tag, NULL::INTEGER, NULL::JSONB,
|
2024-08-23 14:28:47 -04:00
|
|
|
CASE WHEN tgl.group_tag IS NULL THEN NULL ELSE ARRAY[tgl.group_tag] END, tgl.alpha_tag,
|
2024-08-16 16:47:39 -04:00
|
|
|
TRUE learned
|
|
|
|
FROM talkgroups_learned tgl
|
2024-08-20 08:17:02 -04:00
|
|
|
JOIN systems sys ON tgl.system_id = sys.id
|
|
|
|
WHERE tgl.system_id = sqlc.arg(system_id) AND tgl.tgid = sqlc.arg(tgid) AND ignored IS NOT TRUE;
|