# Generated by Django 4.2.23 on 2026-04-03 19:56

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('cms', '0999_add_performance_indexes'),
    ]

    operations = [
        migrations.CreateModel(
            name='SeoAdvance',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(help_text='Title of the SEO task or configuration', max_length=200)),
                ('description', models.TextField(blank=True, help_text='Detailed description of the SEO task')),
                ('target_keywords', models.TextField(blank=True, help_text='Target keywords (comma-separated)')),
                ('target_url', models.URLField(blank=True, help_text='Target URL for this SEO task')),
                ('canonical_url', models.URLField(blank=True, help_text='Canonical URL if different')),
                ('schema_markup', models.TextField(blank=True, help_text='JSON-LD schema markup code')),
                ('custom_meta_tags', models.TextField(blank=True, help_text='Custom meta tags (HTML format)')),
                ('robots_meta', models.CharField(blank=True, default='index, follow', help_text="Robots meta tag content (e.g., 'index, follow', 'noindex, nofollow')", max_length=200)),
                ('hreflang_tags', models.TextField(blank=True, help_text='Hreflang tags for international SEO (one per line)')),
                ('og_title', models.CharField(blank=True, help_text='Open Graph title', max_length=200)),
                ('og_description', models.TextField(blank=True, help_text='Open Graph description', max_length=300)),
                ('og_image', models.ImageField(blank=True, help_text='Open Graph image (1200x630px recommended)', null=True, upload_to='seo/og_images/')),
                ('twitter_card_type', models.CharField(blank=True, default='summary_large_image', help_text='Twitter card type', max_length=50)),
                ('priority', models.CharField(choices=[('low', 'Low'), ('medium', 'Medium'), ('high', 'High'), ('critical', 'Critical')], default='medium', help_text='Priority level for this SEO task', max_length=20)),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('in_progress', 'In Progress'), ('completed', 'Completed'), ('archived', 'Archived')], default='pending', help_text='Current status of this SEO task', max_length=20)),
                ('target_traffic', models.PositiveIntegerField(blank=True, help_text='Target monthly traffic goal', null=True)),
                ('current_ranking', models.PositiveIntegerField(blank=True, help_text='Current search ranking position', null=True)),
                ('target_ranking', models.PositiveIntegerField(blank=True, help_text='Target search ranking position', null=True)),
                ('implementation_notes', models.TextField(blank=True, help_text='Implementation notes and instructions')),
                ('results_notes', models.TextField(blank=True, help_text='Results and observations after implementation')),
                ('is_active', models.BooleanField(default=True, help_text='Is this SEO configuration active?')),
                ('due_date', models.DateField(blank=True, help_text='Due date for completion', null=True)),
                ('completed_date', models.DateField(blank=True, help_text='Date when task was completed', null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'SEO Advance',
                'verbose_name_plural': 'SEO Advances',
                'ordering': ['-priority', '-created_at'],
            },
        ),
        migrations.RemoveIndex(
            model_name='blogpost',
            name='blog_pub_date_idx',
        ),
        migrations.RemoveIndex(
            model_name='certification',
            name='cert_pub_order_idx',
        ),
        migrations.RemoveIndex(
            model_name='herosection',
            name='hero_active_idx',
        ),
        migrations.RemoveIndex(
            model_name='keydifferentiator',
            name='keydiff_pub_order_idx',
        ),
        migrations.RemoveIndex(
            model_name='project',
            name='project_pub_idx',
        ),
        migrations.RemoveIndex(
            model_name='region',
            name='region_active_def_idx',
        ),
        migrations.RemoveIndex(
            model_name='region',
            name='region_code_idx',
        ),
        migrations.RemoveIndex(
            model_name='service',
            name='service_pub_order_idx',
        ),
        migrations.RemoveIndex(
            model_name='service',
            name='service_type_pub_idx',
        ),
        migrations.RemoveIndex(
            model_name='testimonial',
            name='testimonial_pub_idx',
        ),
        migrations.RemoveIndex(
            model_name='whychoosesection',
            name='whychoose_active_idx',
        ),
        migrations.AddField(
            model_name='seoadvance',
            name='regions',
            field=models.ManyToManyField(blank=True, help_text='Regions this SEO task applies to (empty = all regions)', related_name='seo_advances', to='cms.region'),
        ),
        migrations.AddIndex(
            model_name='seoadvance',
            index=models.Index(fields=['status', 'priority'], name='cms_seoadva_status_b67810_idx'),
        ),
        migrations.AddIndex(
            model_name='seoadvance',
            index=models.Index(fields=['is_active'], name='cms_seoadva_is_acti_d4c219_idx'),
        ),
        migrations.AddIndex(
            model_name='seoadvance',
            index=models.Index(fields=['created_at'], name='cms_seoadva_created_61ceb7_idx'),
        ),
    ]
