Files
OverCooked-Installer/s-migrations/000029_support_attachments.up.sql
T

16 lines
922 B
SQL

CREATE TABLE support_attachments (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
ticket_id uuid REFERENCES tickets(id) ON DELETE CASCADE,
media_feedback_id uuid REFERENCES media_feedback(id) ON DELETE CASCADE,
uploader_user_id uuid NOT NULL REFERENCES users(id) ON DELETE CASCADE,
filename text NOT NULL CHECK (length(filename) BETWEEN 1 AND 255),
mime_type text NOT NULL CHECK (length(mime_type) BETWEEN 1 AND 128),
size_bytes bigint NOT NULL CHECK (size_bytes BETWEEN 1 AND 8388608),
content bytea NOT NULL,
created_at timestamptz NOT NULL DEFAULT now(),
CHECK ((ticket_id IS NOT NULL)::int + (media_feedback_id IS NOT NULL)::int = 1)
);
CREATE INDEX support_attachments_ticket_idx ON support_attachments(ticket_id,created_at,id) WHERE ticket_id IS NOT NULL;
CREATE INDEX support_attachments_feedback_idx ON support_attachments(media_feedback_id,created_at,id) WHERE media_feedback_id IS NOT NULL;