from django.core.management.base import BaseCommand
from apps.permissions.models import Permission

class Command(BaseCommand):
    help = 'Create basic permissions'

    def handle(self, *args, **options):
        permissions = [
            # Dashboard
            ('View BDC Dashboard', 'view_bdc_dashboard'),
            ('View service Dashboard', 'view_service_dashboard'),
            ('View advisor Dashboard', 'view_advisor_dashboard'),
            ('Dealership Group View Dashboard', 'dealership_group_view_dashboard'),

            #Users
            ('View Users', 'view_users'),
            ('Create Users', 'create_users'),
            ('Edit Users', 'edit_users'),
            ('Delete Users', 'delete_users'),
            ('Manage Users', 'manage_users'),

            #Dealership Groups
            ('Dealership Group View Dealerships', 'dealership_group_view_dealerships'),
            ('Dealership Group Create Dealerships', 'dealership_group_create_dealerships'),


            # Roles
            ('View Roles', 'view_roles'),
            ('Create Roles', 'create_roles'),
            ('Edit Roles', 'edit_roles'),
            ('Delete Roles', 'delete_roles'),

            # Permissions
            ('View Permissions', 'view_permissions'),
            ('Assign Roles', 'assign_roles'),

            #Company
            ('View Company', 'view_company'),
            ('Create Company', 'create_company'),
            ('Edit Company', 'edit_company'),
            ('Delete Company', 'delete_company'),

            #Calls
            ('View Service Calls', 'view_service_calls'),
            ('View BDC Calls', 'view_bdc_calls'),
            ('View Self Service Calls', 'view_self_service_calls'),
            ('View Tony Calls', 'view_tony_calls'),
            ('Dealership Group View Calls', 'dealership_group_view_calls'),

            #Reports
            ('View Reports', 'view_reports'),
            ('View Analytics', 'view_analytics'),

            ('View Profile', 'view_profile'),
            ('Edit Profile', 'edit_profile'),
            ('View Other Profiles', 'view_other_profiles'),

            #Customers
            ('View Customers', 'view_customers'),

            #Settings
            ('View Holidays', 'view_holidays'),
            ('Edit Holidays', 'edit_holidays'),
            ('View Company Bots', 'view_company_bots'),
            ('Edit Company Bots', 'edit_company_bots'),
            ('View Officehours', 'view_officehours'),
            ('Edit Officehours', 'edit_officehours'),
            ('View Salestime', 'view_salestime'),
            ('Edit Salestime', 'edit_salestime'),
            ('View CatchPhrase', 'view_catchphrase'),
            ('View Audit Log', 'view_audit_log'),
            ('Edit CatchPhrase', 'edit_catchphrase'),

            # Bookings
            ('View Calendar', 'view_calendar'),
        ]
        
        created_count = 0
        for name, codename in permissions:
            permission, created = Permission.objects.get_or_create(
                codename=codename,
                defaults={'name': name}
            )
            if created:
                created_count += 1
                self.stdout.write(f"Created: {name}")
        
        self.stdout.write(
            self.style.SUCCESS(f'Successfully created {created_count} permissions!')
        ) 