Make reseed_demo environment-aware for demo domain

- Use settings.DEBUG to detect production vs local environment
- Production: demo.smoothschedule.com (https)
- Local: demo.lvh.me:5173 (http)
- Update existing domain if it doesn't match expected environment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-17 20:14:06 -05:00
parent 92019aac7e
commit 40067a3aa5

View File

@@ -20,6 +20,7 @@ import random
from datetime import timedelta
from decimal import Decimal
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.core.management.base import BaseCommand
from django.db import connection
@@ -44,6 +45,20 @@ from smoothschedule.scheduling.schedule.models import (
class Command(BaseCommand):
help = "Reseed demo tenant with fresh salon/spa data for sales demonstrations"
def get_demo_domain(self):
"""Get the appropriate demo domain based on environment."""
# Check if running in production
if hasattr(settings, 'DEBUG') and not settings.DEBUG:
return "demo.smoothschedule.com"
return "demo.lvh.me"
def get_demo_url(self):
"""Get the full demo URL based on environment."""
domain = self.get_demo_domain()
if "smoothschedule.com" in domain:
return f"https://{domain}"
return f"http://{domain}:5173"
def add_arguments(self, parser):
parser.add_argument(
"--quiet",
@@ -109,7 +124,7 @@ class Command(BaseCommand):
self.stdout.write("\n" + "=" * 70)
self.stdout.write(self.style.SUCCESS(" DEMO RESEED COMPLETE!"))
self.stdout.write("=" * 70)
self.stdout.write("\nAccess URL: http://demo.lvh.me:5173")
self.stdout.write(f"\nAccess URL: {self.get_demo_url()}")
self.stdout.write("All passwords: test123\n")
def setup_tenant(self):
@@ -140,13 +155,24 @@ class Command(BaseCommand):
if not self.quiet:
self.stdout.write(f" {self.style.SUCCESS('CREATED')} Demo tenant")
# Create domain
domain, created = Domain.objects.get_or_create(
domain="demo.lvh.me",
defaults={"tenant": tenant, "is_primary": True},
# Create/update domain based on environment
demo_domain = self.get_demo_domain()
# First, check if there's an existing primary domain that needs updating
existing_primary = Domain.objects.filter(tenant=tenant, is_primary=True).first()
if existing_primary and existing_primary.domain != demo_domain:
existing_primary.domain = demo_domain
existing_primary.save()
if not self.quiet:
self.stdout.write(f" {self.style.WARNING('UPDATED')} Domain: {demo_domain}")
elif not existing_primary:
Domain.objects.create(
domain=demo_domain,
tenant=tenant,
is_primary=True,
)
if created and not self.quiet:
self.stdout.write(f" {self.style.SUCCESS('CREATED')} Domain: demo.lvh.me")
if not self.quiet:
self.stdout.write(f" {self.style.SUCCESS('CREATED')} Domain: {demo_domain}")
return tenant