FKEY constraint prevents alerts on learned talkgroups #34
5 changed files with 16 additions and 13 deletions
|
@ -36,7 +36,8 @@ func (a *Alert) ToAddAlertParams() database.AddAlertParams {
|
|||
return database.AddAlertParams{
|
||||
ID: a.ID,
|
||||
Time: pgtype.Timestamptz{Time: a.Timestamp, Valid: true},
|
||||
PackedTg: a.Score.ID.Pack(),
|
||||
SystemID: int(a.Score.ID.System),
|
||||
Tgid: int(a.Score.ID.Talkgroup),
|
||||
Weight: &a.Weight,
|
||||
Score: &f32score,
|
||||
OrigScore: origScore,
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
)
|
||||
|
||||
const addAlert = `-- name: AddAlert :exec
|
||||
INSERT INTO alerts (id, time, talkgroup, weight, score, orig_score, notified, metadata)
|
||||
INSERT INTO alerts (id, time, tgid, system_id, weight, score, orig_score, notified, metadata)
|
||||
VALUES
|
||||
(
|
||||
$1,
|
||||
|
@ -23,14 +23,16 @@ VALUES
|
|||
$5,
|
||||
$6,
|
||||
$7,
|
||||
$8
|
||||
$8,
|
||||
$9
|
||||
)
|
||||
`
|
||||
|
||||
type AddAlertParams struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
Time pgtype.Timestamptz `json:"time"`
|
||||
PackedTg int64 `json:"packed_tg"`
|
||||
Tgid int `json:"tgid"`
|
||||
SystemID int `json:"system_id"`
|
||||
Weight *float32 `json:"weight"`
|
||||
Score *float32 `json:"score"`
|
||||
OrigScore *float32 `json:"orig_score"`
|
||||
|
@ -42,7 +44,8 @@ func (q *Queries) AddAlert(ctx context.Context, arg AddAlertParams) error {
|
|||
_, err := q.db.Exec(ctx, addAlert,
|
||||
arg.ID,
|
||||
arg.Time,
|
||||
arg.PackedTg,
|
||||
arg.Tgid,
|
||||
arg.SystemID,
|
||||
arg.Weight,
|
||||
arg.Score,
|
||||
arg.OrigScore,
|
||||
|
|
|
@ -15,9 +15,8 @@ import (
|
|||
type Alert struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
Time pgtype.Timestamptz `json:"time"`
|
||||
Talkgroup int64 `json:"talkgroup"`
|
||||
SystemID int32 `json:"system_id"`
|
||||
Tgid int32 `json:"tgid"`
|
||||
Tgid int `json:"tgid"`
|
||||
SystemID int `json:"system_id"`
|
||||
Weight *float32 `json:"weight"`
|
||||
Score *float32 `json:"score"`
|
||||
OrigScore *float32 `json:"orig_score"`
|
||||
|
|
|
@ -74,9 +74,8 @@ CREATE TABLE IF NOT EXISTS talkgroups_learned(
|
|||
CREATE TABLE IF NOT EXISTS alerts(
|
||||
id UUID PRIMARY KEY,
|
||||
time TIMESTAMPTZ NOT NULL,
|
||||
talkgroup INT8 REFERENCES talkgroups(id) NOT NULL,
|
||||
system_id INT4 REFERENCES systems(id) NOT NULL GENERATED ALWAYS AS (talkgroup >> 32) STORED,
|
||||
tgid INT4 NOT NULL GENERATED ALWAYS AS (talkgroup & x'ffffffff'::BIGINT) STORED,
|
||||
tgid INTEGER NOT NULL,
|
||||
system_id INTEGER REFERENCES systems(id) NOT NULL,
|
||||
weight REAL,
|
||||
score REAL,
|
||||
orig_score REAL,
|
||||
|
|
|
@ -41,12 +41,13 @@ source
|
|||
UPDATE calls SET transcript = $2 WHERE id = $1;
|
||||
|
||||
-- name: AddAlert :exec
|
||||
INSERT INTO alerts (id, time, talkgroup, weight, score, orig_score, notified, metadata)
|
||||
INSERT INTO alerts (id, time, tgid, system_id, weight, score, orig_score, notified, metadata)
|
||||
VALUES
|
||||
(
|
||||
sqlc.arg(id),
|
||||
sqlc.arg(time),
|
||||
sqlc.arg(packed_tg),
|
||||
sqlc.arg(tgid),
|
||||
sqlc.arg(system_id),
|
||||
sqlc.arg(weight),
|
||||
sqlc.arg(score),
|
||||
sqlc.arg(orig_score),
|
||||
|
|
Loading…
Reference in a new issue