DROP TABLE IF EXISTS ticket_messages; DROP TABLE IF EXISTS tickets; CREATE TABLE tickets ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, subject VARCHAR(255) NOT NULL, status VARCHAR(50) NOT NULL DEFAULT 'open', -- open, in_progress, closed priority VARCHAR(50) NOT NULL DEFAULT 'medium', -- low, medium, high created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_tickets_user_id ON tickets(user_id); CREATE INDEX idx_tickets_status ON tickets(status); CREATE TABLE ticket_messages ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), ticket_id UUID NOT NULL REFERENCES tickets(id) ON DELETE CASCADE, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, -- Sender message TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_ticket_messages_ticket_id ON ticket_messages(ticket_id);