50 lines
1.6 KiB
SQL
50 lines
1.6 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,
|
|
-- first_name TEXT NULL,
|
|
-- last_name TEXT NULL,
|
|
-- nickname TEXT 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(),
|
|
-- contact_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,
|
|
-- contact_id UUID NULL,
|
|
-- message_id UUID NULL,
|
|
-- status TEXT CHECK (status IN ('INSTANT', 'SCHEDULED'))
|
|
-- );
|