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 NOT NULL, response JSONB NOT NULL, user_id UUID NOT NULL, sent timestamptz NOT NULL );