"""
seed_servicios — Carga inicial de servicios y horarios
=========================================================
Uso: python manage.py seed_servicios
"""

from datetime import time

from django.core.management.base import BaseCommand

from apps.appointments.models import HorarioDoctora, Servicio


SERVICIOS = [
    {
        "nombre": "Consulta Ginecologica",
        "descripcion": "Evaluacion ginecologica completa, orientacion y tratamiento.",
        "duracion_minutos": 30,
        "precio": 0,
        "orden": 1,
    },
    {
        "nombre": "Control Prenatal",
        "descripcion": "Seguimiento del embarazo con monitoreo de salud materno-fetal.",
        "duracion_minutos": 45,
        "precio": 0,
        "orden": 2,
    },
    {
        "nombre": "Ecografias Ginecologicas",
        "descripcion": "Ecografia pelvica, transvaginal u obstetrica.",
        "duracion_minutos": 30,
        "precio": 0,
        "orden": 3,
    },
    {
        "nombre": "Laboratorio Clinico",
        "descripcion": "Solicitud e interpretacion de examenes de laboratorio.",
        "duracion_minutos": 20,
        "precio": 0,
        "orden": 4,
    },
    {
        "nombre": "Procedimientos Ginecologicos",
        "descripcion": "Procedimientos ginecologicos menores en consultorio.",
        "duracion_minutos": 60,
        "precio": 0,
        "orden": 5,
    },
]

HORARIOS = [
    # Lunes a Viernes, 08:00 - 17:00
    {"dia_semana": 0, "hora_inicio": time(8, 0), "hora_fin": time(17, 0)},
    {"dia_semana": 1, "hora_inicio": time(8, 0), "hora_fin": time(17, 0)},
    {"dia_semana": 2, "hora_inicio": time(8, 0), "hora_fin": time(17, 0)},
    {"dia_semana": 3, "hora_inicio": time(8, 0), "hora_fin": time(17, 0)},
    {"dia_semana": 4, "hora_inicio": time(8, 0), "hora_fin": time(17, 0)},
]


class Command(BaseCommand):
    help = "Carga servicios y horarios iniciales de la Dra. Mariela."

    def handle(self, *args, **options):
        # Servicios
        for data in SERVICIOS:
            obj, created = Servicio.objects.get_or_create(
                nombre=data["nombre"],
                defaults=data,
            )
            status = "CREADO" if created else "ya existe"
            self.stdout.write(f"  Servicio: {obj.nombre} — {status}")

        # Horarios
        for data in HORARIOS:
            obj, created = HorarioDoctora.objects.get_or_create(
                dia_semana=data["dia_semana"],
                defaults=data,
            )
            status = "CREADO" if created else "ya existe"
            self.stdout.write(f"  Horario: {obj} — {status}")

        self.stdout.write(self.style.SUCCESS("\nDatos iniciales cargados correctamente."))
