Closes #51 Reviewed-on: phoenix/textsender-api#52 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
44 lines
1.3 KiB
SQL
44 lines
1.3 KiB
SQL
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
|
|
DROP TABLE IF EXISTS contacts CASCADE;
|
|
DROP TABLE IF EXISTS messages CASCADE;
|
|
DROP TABLE IF EXISTS scheduled_messages CASCADE;
|
|
DROP TABLE IF EXISTS scheduled_message_events CASCADE;
|
|
DROP TABLE IF EXISTS message_event_responses CASCADE;
|
|
|
|
CREATE TABLE IF NOT EXISTS contacts (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
phone_number TEXT NOT NULL,
|
|
user_id UUID NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS messages (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
content TEXT NOT NULL,
|
|
user_id UUID NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS scheduled_messages (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
scheduled timestamptz NOT NULL,
|
|
created timestamptz DEFAULT now(),
|
|
status TEXT CHECK (status IN ('PENDING', 'READY', 'PROCESSING', 'DONE')),
|
|
user_id UUID NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS scheduled_message_events (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
recipient_id UUID NOT NULL,
|
|
message_id UUID NOT NULL,
|
|
scheduled_message_id UUID NOT NULL,
|
|
created timestamptz DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS message_event_responses (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
scheduled_message_event_id UUID NULL,
|
|
response JSONB NOT NULL,
|
|
user_id UUID NOT NULL,
|
|
sent timestamptz NOT NULL
|
|
);
|