from django.db import migrations


def seed_catalog(apps, schema_editor):
    Category = apps.get_model("core", "Category")
    Product = apps.get_model("core", "Product")

    categories = {
        "trauringe": Category.objects.update_or_create(
            slug="trauringe",
            defaults={
                "name": "Trauringe",
                "description": "Beratung für Trauringe, Materialien, Oberflächen und Gravuren.",
                "sort_order": 1,
            },
        )[0],
        "schmuck": Category.objects.update_or_create(
            slug="schmuck",
            defaults={
                "name": "Schmuck",
                "description": "Ringe, Ohrschmuck und Perlenstücke für besondere Momente.",
                "sort_order": 2,
            },
        )[0],
        "uhren": Category.objects.update_or_create(
            slug="uhren",
            defaults={
                "name": "Uhren",
                "description": "Ausgewählte Uhren mit persönlicher Beratung und Service.",
                "sort_order": 3,
            },
        )[0],
        "service": Category.objects.update_or_create(
            slug="service",
            defaults={
                "name": "Services",
                "description": "Goldschmiedearbeiten, Reparaturen, Reinigung und Extras.",
                "sort_order": 4,
            },
        )[0],
    }

    products = [
        {
            "slug": "signature-trauringe",
            "category": categories["trauringe"],
            "name": "Signature Trauringe",
            "short_description": "Warme Goldtöne, klare Linien und Platz für Ihre persönliche Gravur.",
            "description": "Diese Beispielkollektion steht für die Trauring-Beratung von Juwelier Thelen: verschiedene Legierungen, angenehme Profile und eine ruhige, persönliche Auswahl im Geschäft.",
            "material": "Gelb- oder Roségold",
            "price_from": "1290.00",
            "collection_note": "Gravur und Größenanpassung möglich",
            "is_featured": True,
        },
        {
            "slug": "perlen-ohrschmuck-edit",
            "category": categories["schmuck"],
            "name": "Perlen & Ohrschmuck Edit",
            "short_description": "Leichte, elegante Schmuckstücke mit klassischer Note und moderner Wirkung.",
            "description": "Inspiriert von den Serviceleistungen rund um Perlen und Ohrlochstechen: eine kuratierte Auswahl an Ohrschmuck und Perlendesigns für Alltag und Anlass.",
            "material": "Perlen, Gold, Silber",
            "price_from": "149.00",
            "collection_note": "Ideal für Geschenkberatung",
            "is_featured": True,
        },
        {
            "slug": "atelier-automatik-uhr",
            "category": categories["uhren"],
            "name": "Atelier Automatik Uhr",
            "short_description": "Zeitloses Zifferblatt, ausgewogenes Gehäuse und Beratung zu Pflege & Revision.",
            "description": "Die neue Katalogstrecke macht Uhrenpräsentation und Service greifbarer: ausgewählte Modelle, klare Preisindikationen und direkter Kontakt für Rückfragen.",
            "material": "Edelstahl",
            "price_from": "895.00",
            "collection_note": "Revision und Armbandservice auf Anfrage",
            "is_featured": True,
        },
        {
            "slug": "goldschmiede-service-paket",
            "category": categories["service"],
            "name": "Goldschmiede Servicepaket",
            "short_description": "Ringweiten, Reinigung, Umarbeitung und Reparatur – digital angefragt, persönlich umgesetzt.",
            "description": "Auch ohne Checkout bleibt der Ablauf komplett: Leistung entdecken, Kontakt aufnehmen und den Auftrag im Geschäft besprechen. Dieses Beispiel zeigt den Service-Fokus der Website.",
            "material": "Service & Beratung",
            "price_from": None,
            "collection_note": "Preis nach Sichtprüfung",
            "is_featured": True,
        },
    ]

    for item in products:
        Product.objects.update_or_create(
            slug=item["slug"],
            defaults=item,
        )


def unseed_catalog(apps, schema_editor):
    Product = apps.get_model("core", "Product")
    Category = apps.get_model("core", "Category")

    Product.objects.filter(
        slug__in=[
            "signature-trauringe",
            "perlen-ohrschmuck-edit",
            "atelier-automatik-uhr",
            "goldschmiede-service-paket",
        ]
    ).delete()
    Category.objects.filter(slug__in=["trauringe", "schmuck", "uhren", "service"]).delete()


class Migration(migrations.Migration):

    dependencies = [
        ("core", "0001_initial"),
    ]

    operations = [
        migrations.RunPython(seed_catalog, unseed_catalog),
    ]
