stillbox/sql/postgres/queries/talkgroups.sql

45 lines
1.2 KiB
MySQL
Raw Normal View History

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
tg.id, tg.system_id, tg.tgid, tg.name,
tg.tg_group, tg.frequency, tg.metadata, tg.tags,
FALSE learned
FROM talkgroups tg
WHERE id = systg2id(sqlc.arg(system_id), sqlc.arg(tgid))
UNION
SELECT
tgl.id::INT8, tgl.system_id::INT4, tgl.tgid::INT4, tgl.name,
tgl.group_tag, NULL::INTEGER, NULL::JSONB, ARRAY[group_tag],
TRUE learned
FROM talkgroups_learned tgl
WHERE system_id = sqlc.arg(system_id) AND tgid = sqlc.arg(tgid) AND ignored IS NOT TRUE;