
from django.core.management.base import BaseCommand
from django.db import transaction
from settings.models import Shop, Theme

class Command(BaseCommand):
    help = 'Initialize settings with default values'

    def handle(self, *args, **options):
        try:
            with transaction.atomic():
                # Create default shop if it doesn't exist
                if not Shop.objects.exists():
                    shop = Shop.objects.create(
                        name="POS 254",
                        address="Nairobi, Kenya",
                        phone="+254700000000",
                        email="info@pos254.com"
                    )
                    self.stdout.write(
                        self.style.SUCCESS(f'Successfully created default shop: {shop.name}')
                    )
                else:
                    self.stdout.write(
                        self.style.SUCCESS('Shop already exists')
                    )

                # Create default theme if it doesn't exist
                if not Theme.objects.exists():
                    theme = Theme.objects.create(
                        mode='light',
                        primary_color='#28a745'
                    )
                    self.stdout.write(
                        self.style.SUCCESS(f'Successfully created default theme: {theme.mode}')
                    )
                else:
                    self.stdout.write(
                        self.style.SUCCESS('Theme already exists')
                    )

        except Exception as e:
            self.stdout.write(
                self.style.ERROR(f'Error initializing settings: {e}')
            )
