-- Create system_settings table for storing application configuration CREATE TABLE IF NOT EXISTS system_settings ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), key VARCHAR(255) NOT NULL UNIQUE, value TEXT, category VARCHAR(100) NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Create index on key for faster lookups CREATE INDEX IF NOT EXISTS idx_system_settings_key ON system_settings(key); -- Create index on category for filtering CREATE INDEX IF NOT EXISTS idx_system_settings_category ON system_settings(category); -- Insert default settings INSERT INTO system_settings (key, value, category) VALUES -- SMTP Settings ('smtp_host', NULL, 'email'), ('smtp_port', NULL, 'email'), ('smtp_user', NULL, 'email'), ('smtp_password', NULL, 'email'), ('smtp_from_email', NULL, 'email'), ('smtp_from_name', NULL, 'email'), -- Site Settings ('site_name', NULL, 'site'), ('site_domain', NULL, 'site'), ('site_api_domain', NULL, 'site'), ('site_protocol', NULL, 'site'), ('site_environment', NULL, 'site'), -- Payment Settings ('currency', 'CAD', 'payment'), ('tax_rate', '0', 'payment'), -- Shipping Settings ('shipping_flat_rate', '10.00', 'shipping'), ('shipping_free_threshold', '50.00', 'shipping'), ('shipping_enabled', 'true', 'shipping') ON CONFLICT (key) DO NOTHING;