2024-07-17 19:30:16 -04:00
|
|
|
-- name: GetTalkgroupsWithAnyTags :many
|
2024-11-03 08:44:34 -05:00
|
|
|
SELECT sqlc.embed(talkgroups) FROM talkgroups
|
2024-07-17 19:30:16 -04:00
|
|
|
WHERE tags @> ARRAY[$1];
|
|
|
|
|
|
|
|
-- name: GetTalkgroupsWithAllTags :many
|
2024-11-03 08:44:34 -05:00
|
|
|
SELECT sqlc.embed(talkgroups) 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
|
2024-11-15 11:34:54 -05:00
|
|
|
WHERE (tags @> ARRAY[@any_tags])
|
|
|
|
AND (tags && ARRAY[@all_tags])
|
|
|
|
AND NOT (tags @> ARRAY[@not_tags]);
|
2024-08-06 11:19:30 -04:00
|
|
|
|
2024-07-17 19:30:16 -04:00
|
|
|
-- name: GetTalkgroupTags :one
|
2024-07-28 23:07:04 -04:00
|
|
|
SELECT tags FROM talkgroups
|
2024-11-15 10:37:58 -05:00
|
|
|
WHERE system_id = @system_id AND tgid = @tg_id;
|
2024-07-17 19:30:16 -04:00
|
|
|
|
|
|
|
-- name: SetTalkgroupTags :exec
|
2024-11-15 10:37:58 -05:00
|
|
|
UPDATE talkgroups SET tags = @tags
|
|
|
|
WHERE system_id = @system_id AND tgid = @tg_id;
|
2024-08-16 14:54:50 -04:00
|
|
|
|
|
|
|
-- name: GetTalkgroup :one
|
2024-11-03 08:44:34 -05:00
|
|
|
SELECT sqlc.embed(talkgroups) FROM talkgroups
|
2024-11-15 10:37:58 -05:00
|
|
|
WHERE (system_id, tgid) = (@system_id, @tg_id);
|
2024-10-23 08:55:19 -04:00
|
|
|
|
2024-08-16 16:47:39 -04:00
|
|
|
-- name: GetTalkgroupWithLearned :one
|
|
|
|
SELECT
|
2024-11-17 21:46:10 -05:00
|
|
|
sqlc.embed(tg), sqlc.embed(sys)
|
2024-08-16 16:47:39 -04:00
|
|
|
FROM talkgroups tg
|
2024-08-20 08:17:02 -04:00
|
|
|
JOIN systems sys ON tg.system_id = sys.id
|
2024-11-20 19:59:24 -05:00
|
|
|
WHERE (tg.system_id, tg.tgid) = (@system_id, @tgid);
|
2024-10-31 00:10:53 -04:00
|
|
|
|
2024-11-04 23:41:52 -05:00
|
|
|
-- name: GetTalkgroupsWithLearnedBySystem :many
|
|
|
|
SELECT
|
2024-11-17 21:46:10 -05:00
|
|
|
sqlc.embed(tg), sqlc.embed(sys)
|
2024-11-04 23:41:52 -05:00
|
|
|
FROM talkgroups tg
|
|
|
|
JOIN systems sys ON tg.system_id = sys.id
|
2024-11-20 19:59:24 -05:00
|
|
|
WHERE tg.system_id = @system;
|
2024-11-04 23:41:52 -05:00
|
|
|
|
|
|
|
-- name: GetTalkgroupsWithLearned :many
|
|
|
|
SELECT
|
2024-11-17 21:46:10 -05:00
|
|
|
sqlc.embed(tg), sqlc.embed(sys)
|
2024-11-04 23:41:52 -05:00
|
|
|
FROM talkgroups tg
|
|
|
|
JOIN systems sys ON tg.system_id = sys.id
|
|
|
|
WHERE ignored IS NOT TRUE;
|
|
|
|
|
2024-10-31 00:10:53 -04:00
|
|
|
-- name: GetSystemName :one
|
2024-11-15 10:37:58 -05:00
|
|
|
SELECT name FROM systems WHERE id = @system_id;
|
2024-11-10 10:13:38 -05:00
|
|
|
|
|
|
|
-- name: UpdateTalkgroup :one
|
|
|
|
UPDATE talkgroups
|
|
|
|
SET
|
|
|
|
name = COALESCE(sqlc.narg('name'), name),
|
|
|
|
alpha_tag = COALESCE(sqlc.narg('alpha_tag'), alpha_tag),
|
|
|
|
tg_group = COALESCE(sqlc.narg('tg_group'), tg_group),
|
|
|
|
frequency = COALESCE(sqlc.narg('frequency'), frequency),
|
|
|
|
metadata = COALESCE(sqlc.narg('metadata'), metadata),
|
|
|
|
tags = COALESCE(sqlc.narg('tags'), tags),
|
|
|
|
alert = COALESCE(sqlc.narg('alert'), alert),
|
|
|
|
alert_config = COALESCE(sqlc.narg('alert_config'), alert_config),
|
2024-11-20 07:26:59 -05:00
|
|
|
weight = COALESCE(sqlc.narg('weight'), weight),
|
|
|
|
learned = COALESCE(sqlc.narg('learned'), learned)
|
2024-11-14 08:37:19 -05:00
|
|
|
WHERE id = sqlc.narg('id') OR (system_id = sqlc.narg('system_id') AND tgid = sqlc.narg('tgid'))
|
2024-11-10 10:13:38 -05:00
|
|
|
RETURNING *;
|
2024-11-17 21:46:10 -05:00
|
|
|
|
2024-11-20 09:37:57 -05:00
|
|
|
-- name: UpsertTalkgroup :batchone
|
2024-11-20 07:26:59 -05:00
|
|
|
INSERT INTO talkgroups AS tg (
|
|
|
|
system_id, tgid, name, alpha_tag, tg_group, frequency, metadata, tags, alert, alert_config, weight, learned
|
|
|
|
) VALUES (
|
|
|
|
@system_id,
|
2024-11-20 09:37:57 -05:00
|
|
|
@tgid,
|
2024-11-20 07:26:59 -05:00
|
|
|
sqlc.narg('name'),
|
|
|
|
sqlc.narg('alpha_tag'),
|
|
|
|
sqlc.narg('tg_group'),
|
|
|
|
sqlc.narg('frequency'),
|
|
|
|
sqlc.narg('metadata'),
|
|
|
|
sqlc.narg('tags'),
|
|
|
|
sqlc.narg('alert'),
|
|
|
|
sqlc.narg('alert_config'),
|
|
|
|
sqlc.narg('weight'),
|
|
|
|
sqlc.narg('learned')
|
|
|
|
)
|
|
|
|
ON CONFLICT (system_id, tgid) DO UPDATE
|
|
|
|
SET
|
|
|
|
name = COALESCE(sqlc.narg('name'), tg.name),
|
|
|
|
alpha_tag = COALESCE(sqlc.narg('alpha_tag'), tg.alpha_tag),
|
|
|
|
tg_group = COALESCE(sqlc.narg('tg_group'), tg.tg_group),
|
|
|
|
frequency = COALESCE(sqlc.narg('frequency'), tg.frequency),
|
|
|
|
metadata = COALESCE(sqlc.narg('metadata'), tg.metadata),
|
|
|
|
tags = COALESCE(sqlc.narg('tags'), tg.tags),
|
|
|
|
alert = COALESCE(sqlc.narg('alert'), tg.alert),
|
|
|
|
alert_config = COALESCE(sqlc.narg('alert_config'), tg.alert_config),
|
|
|
|
weight = COALESCE(sqlc.narg('weight'), tg.weight),
|
|
|
|
learned = COALESCE(sqlc.narg('learned'), tg.learned)
|
|
|
|
RETURNING *;
|
|
|
|
|
2024-11-20 19:15:26 -05:00
|
|
|
-- name: StoreTGVersion :batchexec
|
|
|
|
INSERT INTO talkgroup_versions(time, created_by,
|
|
|
|
system_id,
|
|
|
|
tgid,
|
|
|
|
name,
|
|
|
|
alpha_tag,
|
|
|
|
tg_group,
|
|
|
|
frequency,
|
|
|
|
metadata,
|
|
|
|
tags,
|
|
|
|
alert,
|
|
|
|
alert_config,
|
|
|
|
weight,
|
|
|
|
learned
|
|
|
|
) SELECT NOW(), @submitter,
|
|
|
|
tg.system_id,
|
|
|
|
tg.tgid,
|
|
|
|
tg.name,
|
|
|
|
tg.alpha_tag,
|
|
|
|
tg.tg_group,
|
|
|
|
tg.frequency,
|
|
|
|
tg.metadata,
|
|
|
|
tg.tags,
|
|
|
|
tg.alert,
|
|
|
|
tg.alert_config,
|
|
|
|
tg.weight,
|
|
|
|
tg.learned
|
|
|
|
FROM talkgroups tg WHERE tg.system_id = @system_id AND tg.tgid = @tgid;
|
|
|
|
|
2024-11-17 21:46:10 -05:00
|
|
|
-- name: AddLearnedTalkgroup :one
|
2024-11-20 22:13:23 -05:00
|
|
|
INSERT INTO talkgroups(
|
2024-11-17 21:46:10 -05:00
|
|
|
system_id,
|
|
|
|
tgid,
|
2024-11-20 22:13:23 -05:00
|
|
|
learned,
|
2024-11-17 21:46:10 -05:00
|
|
|
name,
|
|
|
|
alpha_tag,
|
|
|
|
tg_group
|
|
|
|
) VALUES (
|
|
|
|
@system_id,
|
|
|
|
@tgid,
|
2024-11-20 22:13:23 -05:00
|
|
|
TRUE,
|
2024-11-17 21:46:10 -05:00
|
|
|
sqlc.narg('name'),
|
|
|
|
sqlc.narg('alpha_tag'),
|
|
|
|
sqlc.narg('tg_group')
|
2024-11-20 22:13:23 -05:00
|
|
|
) RETURNING *;
|
2024-11-21 07:44:08 -05:00
|
|
|
|
|
|
|
-- name: RestoreTalkgroupVersion :one
|
|
|
|
INSERT INTO talkgroups(
|
|
|
|
system_id,
|
|
|
|
tgid,
|
|
|
|
name,
|
|
|
|
alpha_tag,
|
|
|
|
tg_group,
|
|
|
|
frequency,
|
|
|
|
metadata,
|
|
|
|
tags,
|
|
|
|
alert,
|
|
|
|
alert_config,
|
|
|
|
weight,
|
|
|
|
learned,
|
|
|
|
ignored
|
|
|
|
)
|
|
|
|
SELECT
|
|
|
|
system_id,
|
|
|
|
tgid,
|
|
|
|
name,
|
|
|
|
alpha_tag,
|
|
|
|
tg_group,
|
|
|
|
frequency,
|
|
|
|
metadata,
|
|
|
|
tags,
|
|
|
|
alert,
|
|
|
|
alert_config,
|
|
|
|
weight,
|
|
|
|
learned,
|
|
|
|
ignored
|
|
|
|
FROM talkgroup_versions tgv ON CONFLICT (system_id, tgid) DO UPDATE SET
|
|
|
|
name = excluded.name,
|
|
|
|
alpha_tag = excluded.alpha_tag,
|
|
|
|
tg_group = excluded.tg_group,
|
|
|
|
metadata = excluded.metadata,
|
|
|
|
tags = excluded.tags,
|
|
|
|
alert = excluded.alert,
|
|
|
|
alert_config = excluded.alert_config,
|
|
|
|
weight = excluded.weight,
|
|
|
|
learned = excluded.learner,
|
|
|
|
ignored = excluded.ignored
|
|
|
|
WHERE tgv.id = ANY(@version_ids)
|
|
|
|
RETURNING *;
|