# Generated by Django 5.2.7 on 2025-10-11 20:57

from django.db import migrations, models

import django_seo_audit.mixins


class Migration(migrations.Migration):
    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name="BlogPost",
            fields=[
                ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
                ("title", models.CharField(max_length=200)),
                ("slug", models.SlugField(unique=True)),
                ("content", models.TextField()),
                ("excerpt", models.TextField(blank=True, max_length=300)),
                ("seo_title", models.CharField(blank=True, help_text="Optimal: 50-60 characters", max_length=60)),
                (
                    "meta_description",
                    models.CharField(blank=True, help_text="Optimal: 150-160 characters", max_length=160),
                ),
                ("h1_tag", models.CharField(blank=True, help_text="Main heading tag", max_length=100)),
                (
                    "focus_keyphrase",
                    models.CharField(blank=True, help_text="Primary keyword to target", max_length=100),
                ),
                (
                    "secondary_keywords",
                    models.CharField(blank=True, help_text="Comma-separated keywords", max_length=255),
                ),
                ("canonical_url", models.URLField(blank=True, help_text="Canonical URL for this content")),
                ("og_title", models.CharField(blank=True, help_text="OpenGraph title (up to 95 chars)", max_length=95)),
                ("og_description", models.CharField(blank=True, help_text="OpenGraph description", max_length=200)),
                ("og_image", models.URLField(blank=True, help_text="OpenGraph image URL")),
                ("og_type", models.CharField(default="article", max_length=20)),
                ("twitter_title", models.CharField(blank=True, help_text="Twitter Card title", max_length=70)),
                (
                    "twitter_description",
                    models.CharField(blank=True, help_text="Twitter Card description", max_length=200),
                ),
                ("twitter_image", models.URLField(blank=True, help_text="Twitter Card image URL")),
                ("twitter_card_type", models.CharField(default="summary_large_image", max_length=20)),
                ("robots_directive", models.CharField(default="index,follow", max_length=50)),
                ("schema_type", models.CharField(default="BlogPosting", max_length=50)),
                ("schema_data", models.JSONField(blank=True, help_text="Additional structured data", null=True)),
                ("breadcrumb_title", models.CharField(blank=True, max_length=100)),
                ("is_published", models.BooleanField(default=False)),
                ("published_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Blog Post",
                "verbose_name_plural": "Blog Posts",
                "ordering": ["-created_at"],
            },
            bases=(django_seo_audit.mixins.SEOAuditableMixin, models.Model),
        ),
        migrations.CreateModel(
            name="Page",
            fields=[
                ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
                ("title", models.CharField(max_length=200)),
                ("slug", models.SlugField(unique=True)),
                ("content", models.TextField()),
                ("page_title", models.CharField(blank=True, help_text="Browser tab title", max_length=60)),
                ("meta_desc", models.CharField(blank=True, help_text="Meta description", max_length=160)),
                ("primary_keyword", models.CharField(blank=True, max_length=100)),
                ("is_published", models.BooleanField(default=False)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Page",
                "verbose_name_plural": "Pages",
                "ordering": ["title"],
            },
        ),
        migrations.CreateModel(
            name="Product",
            fields=[
                ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
                ("name", models.CharField(max_length=200)),
                ("slug", models.SlugField(unique=True)),
                ("description", models.TextField()),
                ("short_description", models.CharField(blank=True, max_length=200)),
                ("seo_title", models.CharField(blank=True, max_length=60)),
                ("meta_description", models.CharField(blank=True, max_length=160)),
                ("price", models.DecimalField(decimal_places=2, max_digits=10)),
                ("sku", models.CharField(max_length=50, unique=True)),
                ("in_stock", models.BooleanField(default=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Product",
                "verbose_name_plural": "Products",
                "ordering": ["name"],
            },
            bases=(django_seo_audit.mixins.SEOAuditableMixin, models.Model),
        ),
    ]
