webupdate
This commit is contained in:
36
backend/migrations/009_create_contact_newsletter.sql
Normal file
36
backend/migrations/009_create_contact_newsletter.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- Migration 009: Contact Messages and Newsletter Subscribers
|
||||
-- Description: Tables for contact form submissions and newsletter subscriptions (non-customer)
|
||||
|
||||
-- Contact Messages Table
|
||||
CREATE TABLE IF NOT EXISTS contact_messages (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(255) NOT NULL,
|
||||
subject VARCHAR(500) NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
is_read BOOLEAN DEFAULT FALSE,
|
||||
is_archived BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
read_at TIMESTAMP WITH TIME ZONE,
|
||||
replied_at TIMESTAMP WITH TIME ZONE
|
||||
);
|
||||
|
||||
-- Newsletter Subscribers Table (for non-registered users)
|
||||
CREATE TABLE IF NOT EXISTS newsletter_subscribers (
|
||||
id SERIAL PRIMARY KEY,
|
||||
email VARCHAR(255) UNIQUE NOT NULL,
|
||||
is_active BOOLEAN DEFAULT TRUE,
|
||||
subscribed_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
unsubscribed_at TIMESTAMP WITH TIME ZONE,
|
||||
source VARCHAR(50) DEFAULT 'website' -- 'website', 'blog', 'home', 'footer'
|
||||
);
|
||||
|
||||
-- Indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_contact_messages_created ON contact_messages(created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_contact_messages_unread ON contact_messages(is_read) WHERE is_read = FALSE;
|
||||
CREATE INDEX IF NOT EXISTS idx_newsletter_subscribers_active ON newsletter_subscribers(is_active) WHERE is_active = TRUE;
|
||||
CREATE INDEX IF NOT EXISTS idx_newsletter_subscribers_email ON newsletter_subscribers(email);
|
||||
|
||||
-- Comments
|
||||
COMMENT ON TABLE contact_messages IS 'Contact form submissions from the website';
|
||||
COMMENT ON TABLE newsletter_subscribers IS 'Newsletter subscribers who are not registered customers';
|
||||
Reference in New Issue
Block a user