Files
thrilltrack-explorer/supabase/migrations/20251009133219_ad66553a-d991-4684-bdc6-5a7548dd12a2.sql
2025-10-09 13:33:11 +00:00

32 lines
1.3 KiB
PL/PgSQL

-- Fix the update trigger to only update updated_at when actual content changes
-- This prevents false "new submission" detection in the moderation queue
-- Drop and recreate the trigger function to add proper change detection
DROP TRIGGER IF EXISTS update_content_submissions_updated_at ON public.content_submissions;
DROP FUNCTION IF EXISTS public.update_content_submissions_updated_at();
CREATE OR REPLACE FUNCTION public.update_content_submissions_updated_at()
RETURNS TRIGGER AS $$
BEGIN
-- Only update updated_at if actual content has changed
-- Ignore changes to: updated_at, assigned_to, assigned_at, locked_until, priority
IF (
NEW.content IS DISTINCT FROM OLD.content OR
NEW.status IS DISTINCT FROM OLD.status OR
NEW.reviewer_id IS DISTINCT FROM OLD.reviewer_id OR
NEW.reviewer_notes IS DISTINCT FROM OLD.reviewer_notes OR
NEW.escalated IS DISTINCT FROM OLD.escalated OR
NEW.escalation_reason IS DISTINCT FROM OLD.escalation_reason OR
NEW.approval_mode IS DISTINCT FROM OLD.approval_mode
) THEN
NEW.updated_at = NOW();
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_content_submissions_updated_at
BEFORE UPDATE ON public.content_submissions
FOR EACH ROW
EXECUTE FUNCTION public.update_content_submissions_updated_at();