from django.core.management.base import BaseCommand
from invoice_discounting.models import Invoice
from datetime import datetime

class Command(BaseCommand):
    help = 'Fix date fields in Invoice model'
    
    def handle(self, *args, **options):
        invoices = Invoice.objects.all()
        fixed_count = 0
        
        for invoice in invoices:
            try:
                if isinstance(invoice.invoice_date, str):
                    invoice.invoice_date = datetime.strptime(invoice.invoice_date, '%Y-%m-%d').date()
                    fixed_count += 1
                
                if isinstance(invoice.due_date, str):
                    invoice.due_date = datetime.strptime(invoice.due_date, '%Y-%m-%d').date()
                    fixed_count += 1
                
                invoice.save()
            except:
                pass
        
        self.stdout.write(self.style.SUCCESS(f"Fixed {fixed_count} date fields"))