46 lines
No EOL
1.5 KiB
SQL
46 lines
No EOL
1.5 KiB
SQL
-- 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
|
|
('stripe_public_key', NULL, 'payment'),
|
|
('stripe_secret_key', NULL, 'payment'),
|
|
('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; |