brand-master/backend/migrations/007_enhance_contact_messages.sql
dvirlabs 437fe72e48
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Manage contact us messages
2026-05-08 18:40:12 +03:00

32 lines
1.6 KiB
SQL

-- Migration: Enhance contact_message table
-- Date: 2026-05-08
-- Description: Add phone, is_read, status, admin_notes columns and rename name to full_name
-- Rename name column to full_name
ALTER TABLE contact_message RENAME COLUMN name TO full_name;
-- Add new columns
ALTER TABLE contact_message ADD COLUMN IF NOT EXISTS phone VARCHAR(50);
ALTER TABLE contact_message ADD COLUMN IF NOT EXISTS is_read BOOLEAN DEFAULT FALSE;
ALTER TABLE contact_message ADD COLUMN IF NOT EXISTS status VARCHAR(20) DEFAULT 'new';
ALTER TABLE contact_message ADD COLUMN IF NOT EXISTS admin_notes TEXT;
-- Update existing records to have default values
UPDATE contact_message SET is_read = FALSE WHERE is_read IS NULL;
UPDATE contact_message SET status = 'new' WHERE status IS NULL;
-- Add constraints to ensure valid status values
ALTER TABLE contact_message ADD CONSTRAINT check_status CHECK (status IN ('new', 'read', 'replied'));
-- Add comments
COMMENT ON COLUMN contact_message.full_name IS 'Customer full name';
COMMENT ON COLUMN contact_message.phone IS 'Customer phone number (optional)';
COMMENT ON COLUMN contact_message.is_read IS 'Whether admin has read this message';
COMMENT ON COLUMN contact_message.status IS 'Message status: new, read, or replied';
COMMENT ON COLUMN contact_message.admin_notes IS 'Internal notes from admin';
-- Create index on status for faster filtering
CREATE INDEX IF NOT EXISTS idx_contact_message_status ON contact_message(status);
CREATE INDEX IF NOT EXISTS idx_contact_message_is_read ON contact_message(is_read);
CREATE INDEX IF NOT EXISTS idx_contact_message_created_at ON contact_message(created_at DESC);