feat(subscriptions): migrate subscription management to merchant level and seed tiers

Move subscription create/edit from store detail (broken endpoint) to merchant
detail page with proper modal UI. Seed 4 subscription tiers (Essential,
Professional, Business, Enterprise) in init_production.py. Also includes
cross-module dependency declarations, store domain platform_id migration,
platform context middleware, CMS route fixes, and migration backups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-09 21:04:04 +01:00
parent 7feacd5af8
commit 68493dc6cb
97 changed files with 13286 additions and 77 deletions

View File

@@ -101,27 +101,35 @@ migrate-squash:
init-prod:
@echo "🔧 Initializing production database..."
@echo ""
@echo "Step 0/5: Ensuring database exists (running migrations)..."
@$(PYTHON) -m alembic upgrade head
@echo "Step 0/6: Ensuring database exists (running migrations)..."
@$(PYTHON) -m alembic upgrade heads
@echo ""
@echo "Step 1/5: Creating admin user and platform settings..."
@echo "Step 1/6: Creating admin user and platform settings..."
$(PYTHON) scripts/init_production.py
@echo ""
@echo "Step 2/5: Initializing log settings..."
@echo "Step 2/6: Initializing log settings..."
$(PYTHON) scripts/init_log_settings.py
@echo ""
@echo "Step 3/5: Creating default CMS content pages..."
@echo "Step 3/6: Creating default CMS content pages..."
$(PYTHON) scripts/create_default_content_pages.py
@echo ""
@echo "Step 4/5: Creating platform pages and landing..."
@echo "Step 4/6: Creating platform pages and landing..."
$(PYTHON) scripts/create_platform_pages.py
@echo ""
@echo "Step 5/5: Seeding email templates..."
@echo "Step 5/6: Seeding email templates..."
$(PYTHON) scripts/seed_email_templates.py
@echo ""
@echo "Step 6/6: Seeding subscription tiers..."
@echo " (Handled by init_production.py Step 6)"
@echo ""
@echo "✅ Production initialization completed"
@echo "✨ Platform is ready for production OR development"
seed-tiers:
@echo "🏷️ Seeding subscription tiers..."
$(PYTHON) -c "from scripts.init_production import *; from app.core.database import SessionLocal; from sqlalchemy import select; db = SessionLocal(); oms = db.execute(select(Platform).where(Platform.code == 'oms')).scalar_one_or_none(); create_subscription_tiers(db, oms) if oms else print('OMS platform not found'); db.commit(); db.close()"
@echo "✅ Subscription tiers seeded"
# First-time installation - Complete setup with configuration validation
platform-install:
@echo "🚀 WIZAMART PLATFORM INSTALLATION"
@@ -497,6 +505,9 @@ urls-dev:
urls-prod:
@$(PYTHON) scripts/show_urls.py --prod
urls-check:
@$(PYTHON) scripts/show_urls.py --check
check-env:
@echo "Checking Python environment..."
@echo "Detected OS: $(DETECTED_OS)"
@@ -541,7 +552,8 @@ help:
@echo " migrate-down - Rollback last migration"
@echo " migrate-status - Show migration status"
@echo " platform-install - First-time setup (validates config + migrate + init)"
@echo " init-prod - Initialize platform (admin, CMS, pages, emails)"
@echo " init-prod - Initialize platform (admin, CMS, pages, emails, tiers)"
@echo " seed-tiers - Seed subscription tiers only"
@echo " seed-demo - Seed demo data (3 merchants + stores)"
@echo " seed-demo-minimal - Seed minimal demo (1 merchant + store)"
@echo " seed-demo-reset - DELETE ALL demo data and reseed"
@@ -600,6 +612,7 @@ help:
@echo " urls - Show all platform/store/storefront URLs"
@echo " urls-dev - Show development URLs only"
@echo " urls-prod - Show production URLs only"
@echo " urls-check - Check dev URLs with curl (server must be running)"
@echo " clean - Clean build artifacts"
@echo " check-env - Check Python environment and OS"
@echo ""
@@ -631,12 +644,13 @@ help-db:
@echo ""
@echo "PLATFORM INITIALIZATION (Production + Development):"
@echo "──────────────────────────────────────────────────────────"
@echo " init-prod - Complete platform setup (5 steps):"
@echo " init-prod - Complete platform setup (6 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 " 6. Seed subscription tiers"
@echo ""
@echo "DEMO DATA (Development Only - NEVER in production):"
@echo "──────────────────────────────────────────────────────────"