#!/usr/bin/env python
"""
Fix Document Settings in Production
This script ensures document settings are created with the correct 'document' category
"""

import os
import sys
import django

# Setup Django environment
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'branch_system.settings_production')
django.setup()

from utils.models import SystemSetting

def fix_document_settings():
    """Fix document settings to ensure they have the correct category"""
    print("🔧 Fixing document settings...")
    
    # Document settings that should exist
    document_settings = [
        {
            'key': 'max_file_size_mb',
            'value': '10',
            'category': 'document',
            'description': 'Maximum file upload size in MB'
        },
        {
            'key': 'allowed_file_types',
            'value': '.pdf,.doc,.docx,.jpg,.jpeg,.png',
            'category': 'document',
            'description': 'Allowed file types for uploads'
        },
        {
            'key': 'require_kyc_documents',
            'value': 'true',
            'category': 'document',
            'description': 'Whether KYC documents are required'
        }
    ]
    
    # Delete any document settings that are in the wrong category
    SystemSetting.objects.filter(
        key__in=['max_file_size_mb', 'allowed_file_types', 'require_kyc_documents'],
        category='system'
    ).delete()
    
    # Create or update document settings with correct category
    created_count = 0
    for setting_data in document_settings:
        setting, created = SystemSetting.objects.get_or_create(
            key=setting_data['key'],
            defaults=setting_data
        )
        if created:
            created_count += 1
        else:
            # Update category if it's wrong
            if setting.category != 'document':
                setting.category = 'document'
                setting.description = setting_data['description']
                setting.save()
                print(f"✓ Updated {setting.key} to document category")
    
    print(f"✓ Created {created_count} new document settings")
    
    # Verify document settings
    doc_settings = SystemSetting.objects.filter(category='document')
    print(f"\n📄 Document settings in database:")
    for setting in doc_settings:
        print(f"   • {setting.key}: {setting.value}")
    
    print("\n✅ Document settings fixed successfully!")

if __name__ == '__main__':
    fix_document_settings() 