feat: add email settings with database overrides for admin and vendor
Platform Email Settings (Admin): - Add GET/PUT/DELETE /admin/settings/email/* endpoints - Settings stored in admin_settings table override .env values - Support all providers: SMTP, SendGrid, Mailgun, Amazon SES - Edit mode UI with provider-specific configuration forms - Reset to .env defaults functionality - Test email to verify configuration Vendor Email Settings: - Add VendorEmailSettings model with one-to-one vendor relationship - Migration: v0a1b2c3d4e5_add_vendor_email_settings.py - Service: vendor_email_settings_service.py with tier validation - API endpoints: /vendor/email-settings/* (CRUD, status, verify) - Email tab in vendor settings page with full configuration - Warning banner until email is configured (like billing warnings) - Premium providers (SendGrid, Mailgun, SES) tier-gated to Business+ Email Service Updates: - get_platform_email_config(db) checks DB first, then .env - Configurable provider classes accept config dict - EmailService uses database-aware providers - Vendor emails use vendor's own SMTP (Wizamart doesn't pay) - "Powered by Wizamart" footer for Essential/Professional tiers - White-label (no footer) for Business/Enterprise tiers Other: - Add scripts/install.py for first-time platform setup - Add make install target - Update init-prod to include email template seeding 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
57
Makefile
57
Makefile
@@ -97,21 +97,30 @@ migrate-status:
|
||||
init-prod:
|
||||
@echo "🔧 Initializing production database..."
|
||||
@echo ""
|
||||
@echo "Step 1/4: Creating admin user and platform alerts..."
|
||||
@echo "Step 1/5: Creating admin user and platform settings..."
|
||||
$(PYTHON) scripts/init_production.py
|
||||
@echo ""
|
||||
@echo "Step 2/4: Initializing log settings..."
|
||||
@echo "Step 2/5: Initializing log settings..."
|
||||
$(PYTHON) scripts/init_log_settings.py
|
||||
@echo ""
|
||||
@echo "Step 3/4: Creating default CMS content pages..."
|
||||
@echo "Step 3/5: Creating default CMS content pages..."
|
||||
$(PYTHON) scripts/create_default_content_pages.py
|
||||
@echo ""
|
||||
@echo "Step 4/4: Creating platform pages and landing..."
|
||||
@echo "Step 4/5: Creating platform pages and landing..."
|
||||
$(PYTHON) scripts/create_platform_pages.py
|
||||
@echo ""
|
||||
@echo "Step 5/5: Seeding email templates..."
|
||||
$(PYTHON) scripts/seed_email_templates.py
|
||||
@echo ""
|
||||
@echo "✅ Production initialization completed"
|
||||
@echo "✨ Platform is ready for production OR development"
|
||||
|
||||
# First-time installation - Complete setup with configuration validation
|
||||
install:
|
||||
@echo "🚀 WIZAMART PLATFORM INSTALLATION"
|
||||
@echo "=================================="
|
||||
$(PYTHON) scripts/install.py
|
||||
|
||||
# Demo data seeding - Cross-platform using Python to set environment
|
||||
seed-demo:
|
||||
@echo "🎪 Seeding demo data (normal mode)..."
|
||||
@@ -423,7 +432,8 @@ help:
|
||||
@echo " migrate-up - Apply pending migrations"
|
||||
@echo " migrate-down - Rollback last migration"
|
||||
@echo " migrate-status - Show migration status"
|
||||
@echo " init-prod - Initialize platform (admin, logging, CMS, pages)"
|
||||
@echo " install - First-time setup (validates config + migrate + init)"
|
||||
@echo " init-prod - Initialize platform (admin, CMS, pages, emails)"
|
||||
@echo " seed-demo - Seed demo data (3 companies + vendors)"
|
||||
@echo " seed-demo-minimal - Seed minimal demo (1 company + vendor)"
|
||||
@echo " seed-demo-reset - DELETE ALL demo data and reseed"
|
||||
@@ -483,13 +493,23 @@ help-db:
|
||||
@echo " migrate-down - Rollback last migration"
|
||||
@echo " migrate-status - Show current status and history"
|
||||
@echo ""
|
||||
@echo "FIRST-TIME INSTALLATION:"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " install - Complete installation wizard:"
|
||||
@echo " - Validates .env configuration"
|
||||
@echo " - Checks Stripe, Email, Security settings"
|
||||
@echo " - Runs database migrations"
|
||||
@echo " - Initializes all platform data"
|
||||
@echo " - Provides configuration report"
|
||||
@echo ""
|
||||
@echo "PLATFORM INITIALIZATION (Production + Development):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " init-prod - Complete platform setup (4 steps):"
|
||||
@echo " 1. Create admin user + alerts"
|
||||
@echo " init-prod - Complete platform setup (5 steps):"
|
||||
@echo " 1. Create admin user + settings"
|
||||
@echo " 2. Initialize log settings"
|
||||
@echo " 3. Create CMS defaults"
|
||||
@echo " 4. Create platform pages"
|
||||
@echo " 5. Seed email templates"
|
||||
@echo ""
|
||||
@echo "DEMO DATA (Development Only - NEVER in production):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@@ -510,17 +530,18 @@ help-db:
|
||||
@echo ""
|
||||
@echo "TYPICAL FIRST-TIME SETUP (Development):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " 1. make migrate-up # Apply database schema"
|
||||
@echo " 2. make init-prod # Initialize platform (admin, CMS, logging, pages)"
|
||||
@echo " 3. make seed-demo # Add demo data (companies, vendors, products)"
|
||||
@echo " 4. make dev # Start development server"
|
||||
@echo ""
|
||||
@echo " OR simply: make db-setup # Does all the above!"
|
||||
@echo " 1. cp .env.example .env # Configure environment"
|
||||
@echo " 2. make install # Validates config + initializes platform"
|
||||
@echo " 3. make seed-demo # Add demo data (optional)"
|
||||
@echo " 4. make dev # Start development server"
|
||||
@echo ""
|
||||
@echo "PRODUCTION SETUP:"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " 1. Set ENV=production or ENVIRONMENT=production"
|
||||
@echo " 2. make migrate-up # Apply database schema"
|
||||
@echo " 3. make init-prod # Initialize platform (with .env credentials)"
|
||||
@echo " 4. Create companies via admin panel"
|
||||
@echo " 5. DO NOT run seed-demo in production!"
|
||||
@echo " 1. Configure .env with production values:"
|
||||
@echo " - DATABASE_URL (PostgreSQL recommended)"
|
||||
@echo " - JWT_SECRET_KEY (use: openssl rand -hex 32)"
|
||||
@echo " - STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY"
|
||||
@echo " - Email provider settings (SMTP/SendGrid/Mailgun/SES)"
|
||||
@echo " - ADMIN_PASSWORD (strong password)"
|
||||
@echo " 2. make install # Validates + initializes"
|
||||
@echo " 3. DO NOT run seed-demo in production!"
|
||||
Reference in New Issue
Block a user