18 lines
555 B
PL/PgSQL
18 lines
555 B
PL/PgSQL
BEGIN;
|
|||
|
|
|
||
|
|
ALTER TABLE rtc_task
|
||
|
|
ADD COLUMN credential_issued_at timestamptz NOT NULL DEFAULT now(),
|
||
|
|
ADD COLUMN credential_expires_at timestamptz NOT NULL DEFAULT (now() + interval '5 minutes');
|
||
|
|
|
||
|
|
UPDATE rtc_task rt
|
||
|
|
SET credential_issued_at = rt.created_at,
|
||
|
|
credential_expires_at = GREATEST(c.allocation_expires_at, rt.created_at + interval '1 second')
|
||
|
|
FROM conversation c
|
||
|
|
WHERE c.id = rt.conversation_id;
|
||
|
|
|
||
|
|
ALTER TABLE rtc_task
|
||
|
|
ADD CONSTRAINT rtc_credential_expiry_after_issue
|
||
|
|
CHECK (credential_expires_at > credential_issued_at);
|
||
|
|
|
||
|
|
COMMIT;
|