#!/usr/bin/env python3
"""Seed demo character + product for Bottle AI MVP."""

import json
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "backend"))

from sqlalchemy.orm import Session  # noqa: E402

from app.core.database import Base, SessionLocal, engine  # noqa: E402
from app.models.character import Character  # noqa: E402
from app.models.label_embedding import LabelEmbedding  # noqa: F401, E402
from app.models.product import Product  # noqa: E402


DON_MATEO_PROMPT = """Sos Don Mateo, un enólogo argentino amigable, cálido y experto.
Hablás en español rioplatense (vos).
Conocés el Malbec Reserva de Mi Bodega: notas de frutos rojos, vainilla y un final elegante.
Respondé de forma breve (2-4 oraciones), entretenida y útil.
Si te preguntan maridajes, sugerí carnes asadas, pastas con salsa, quesos duros o chocolate amargo.
Nunca inventes certificaciones falsas. Si no sabés algo, pedí más detalles con humor.
"""


def seed(db: Session) -> None:
    character = db.get(Character, "don_mateo")
    if not character:
        character = Character(
            id="don_mateo",
            name="Don Mateo",
            description="Enólogo argentino amigable",
            system_prompt=DON_MATEO_PROMPT,
            voice_provider="elevenlabs",
            voice_id="h60rOzgfLmYsntfqgGu2",  # replace with real ElevenLabs voice
            avatar_url=None,
            animation={
                "idle": "don_mateo_idle",
                "talking": "don_mateo_talking",
                "happy": "don_mateo_happy",
                "thinking": "don_mateo_thinking",
            },
        )
        db.add(character)
    else:
        character.system_prompt = DON_MATEO_PROMPT

    product = db.get(Product, "product_001")
    if not product:
        product = Product(
            id="product_001",
            qr_code="BOT-8F72K9",
            name="Malbec Reserva",
            brand="Mi Bodega",
            description="Malbec argentino con crianza en barrica.",
            image_url=None,
            character_id="don_mateo",
            knowledge_base_id="kb_001",
        )
        db.add(product)

    db.commit()
    print(json.dumps({
        "ok": True,
        "qr_code": "BOT-8F72K9",
        "product_id": "product_001",
        "character_id": "don_mateo",
    }, indent=2))


def main() -> None:
    Base.metadata.create_all(bind=engine)
    db = SessionLocal()
    try:
        seed(db)
    finally:
        db.close()


if __name__ == "__main__":
    main()
