Files
thrilltrack-explorer/supabase/migrations/20251028193251_0c37046b-3d85-4d8a-a6a4-b24d79ce5b3b.sql
2025-10-28 19:36:11 +00:00

31 lines
1.2 KiB
SQL

-- Add archive support columns to contact_submissions
ALTER TABLE contact_submissions
ADD COLUMN archived_at timestamp with time zone,
ADD COLUMN archived_by uuid REFERENCES auth.users(id);
-- Add comments for clarity
COMMENT ON COLUMN contact_submissions.archived_at IS 'Timestamp when submission was archived (soft deleted)';
COMMENT ON COLUMN contact_submissions.archived_by IS 'User who archived this submission';
-- Index for performance on archived queries
CREATE INDEX idx_contact_submissions_archived ON contact_submissions(archived_at)
WHERE archived_at IS NOT NULL;
-- Add FK constraint to ensure email threads are deleted with submission (cascade)
ALTER TABLE contact_email_threads
ADD CONSTRAINT fk_submission_cascade
FOREIGN KEY (submission_id)
REFERENCES contact_submissions(id)
ON DELETE CASCADE;
-- Add comment on constraint
COMMENT ON CONSTRAINT fk_submission_cascade ON contact_email_threads IS
'Cascade delete email threads when parent submission is deleted';
-- Allow moderators to DELETE contact submissions (hard delete with MFA)
CREATE POLICY "Moderators can delete contact submissions" ON contact_submissions
FOR DELETE
TO authenticated
USING (
is_moderator(auth.uid()) AND has_aal2()
);