nidus-sync/db/migrations/00041_text_log_overhaul.sql

50 lines
1.5 KiB
SQL

-- +goose Up
DROP TABLE comms.text_log;
DROP TYPE comms.MessageTypeText;
CREATE TYPE comms.TextOrigin AS ENUM (
'district',
'llm',
'website-action'
);
CREATE TYPE comms.TextJobType AS ENUM (
'report-confirmation'
);
CREATE TABLE comms.text_job (
content TEXT NOT NULL,
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
destination TEXT NOT NULL REFERENCES comms.phone(e164),
id SERIAL NOT NULL,
type_ comms.TextJobType NOT NULL,
PRIMARY KEY(id)
);
COMMENT ON TABLE comms.text_job IS 'Used to track text messages that should be sent later';
CREATE TABLE comms.text_log (
content TEXT NOT NULL,
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
destination TEXT NOT NULL REFERENCES comms.phone(e164),
id SERIAL,
is_welcome BOOLEAN NOT NULL,
origin comms.TextOrigin NOT NULL,
source TEXT NOT NULL REFERENCES comms.phone(e164),
PRIMARY KEY(id)
);
COMMENT ON TABLE comms.text_log IS 'Used to track text messages that were sent.';
-- +goose Down
DROP TABLE comms.text_log;
DROP TABLE comms.text_job;
DROP TYPE comms.TextJobType;
DROP TYPE comms.TextOrigin;
CREATE TYPE comms.MessageTypeText AS ENUM (
'initial-contact',
'report-subscription-confirmation',
'report-status-scheduled',
'report-status-complete'
);
CREATE TABLE comms.text_log (
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
destination TEXT NOT NULL REFERENCES comms.phone(e164),
source TEXT NOT NULL REFERENCES comms.phone(e164),
type comms.MessageTypeText NOT NULL,
PRIMARY KEY (destination, source, type)
);