/ db / migrations / 110-messages-scan-optin-unique.sql
110-messages-scan-optin-unique.sql
1  -- Migration 110: unique index for scan_optin messages
2  -- Prevents duplicate inbound nurture records when poll-free-scans runs repeatedly.
3  -- Only applies to scan_optin message_type — other types are unaffected.
4  
5  CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_scan_optin_dedup
6      ON messages (site_id, contact_uri, message_type)
7      WHERE message_type = 'scan_optin';