from django.db import migrations

TEMPLATES = [
    {
        'name': 'Classic Corporate',
        'category': 'corporate',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'free',
    },
    {
        'name': 'Minimal Mono',
        'category': 'minimal',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'free',
    },
    {
        'name': 'Modern Gradient',
        'category': 'modern',
        'price': 100,
        'usage_limit': 5,
        'min_tier_required': 'pay_as_you_go',
    },
    {
        'name': 'Creative Bold',
        'category': 'creative',
        'price': 150,
        'usage_limit': 5,
        'min_tier_required': 'pay_as_you_go',
    },
    {
        'name': 'Legal Formal',
        'category': 'legal',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'standard',
    },
    {
        'name': 'Consulting Pro',
        'category': 'consulting',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'pro',
    },
    {
        'name': 'Luxury Gold',
        'category': 'luxury',
        'price': 300,
        'usage_limit': 10,
        'min_tier_required': 'pay_as_you_go',
    },
    {
        'name': 'Church Community',
        'category': 'church',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'free',
    },
    {
        'name': 'Photography Showcase',
        'category': 'photography',
        'price': 150,
        'usage_limit': 5,
        'min_tier_required': 'pay_as_you_go',
    },
    {
        'name': 'Construction Rugged',
        'category': 'construction',
        'price': 0,
        'usage_limit': None,
        'min_tier_required': 'standard',
    },
]


def seed_templates(apps, schema_editor):
    InvoiceTemplate = apps.get_model('templates', 'InvoiceTemplate')
    for data in TEMPLATES:
        InvoiceTemplate.objects.get_or_create(name=data['name'], defaults=data)


def remove_templates(apps, schema_editor):
    InvoiceTemplate = apps.get_model('templates', 'InvoiceTemplate')
    InvoiceTemplate.objects.filter(name__in=[t['name'] for t in TEMPLATES]).delete()


class Migration(migrations.Migration):
    dependencies = [
        ('templates', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(seed_templates, remove_templates),
    ]
