"""
Guía de separación de residuos - endpoint cacheado
"""
from fastapi import APIRouter
from app.core.cache import cached

router = APIRouter()

# Guía de separación (cache por 24 horas)
RECYCLING_GUIDE = {
    "categories": [
        {
            "name": "Orgánico",
            "color": "#4CAF50",
            "icon": "leaf",
            "items": [
                "Restos de comida",
                "Cáscaras de fruta",
                "Hojas y césped",
                "Cáscaras de huevo",
                "Café y filtros de papel",
                "Servilletas de papel",
                "Restos de poda"
            ]
        },
        {
            "name": "Reciclable",
            "color": "#2196F3",
            "icon": "recycle",
            "items": [
                "Plástico (PET, HDPE, PP)",
                "Vidrio (botellas, frascos)",
                "Papel y cartón (limpio y seco)",
                "Latas de aluminio",
                "Envases Tetra Pak",
                "Periódicos y revistas"
            ]
        },
        {
            "name": "Sanitario",
            "color": "#9C27B0",
            "icon": "medical-services",
            "items": [
                "Pañales desechables",
                "Toallas sanitarias",
                "Papel higiénico usado",
                "Algodón y gasas",
                "Cubrebocas",
                "Jeringas (en contenedor especial)"
            ]
        },
        {
            "name": "Peligroso",
            "color": "#F44336",
            "icon": "warning",
            "items": [
                "Pilas y baterías",
                "Aceite de cocina usado",
                "Pinturas y solventes",
                "Químicos de limpieza",
                "Medicamentos caducados",
                "Focos y fluorescentes",
                "Electrónicos"
            ]
        }
    ],
    "tips": [
        "Lava los envases reciclables antes de desecharlos",
        "No mezcles residuos peligrosos con la basura común",
        "Los residuos sanitarios deben ir en bolsa aparte",
        "El aceite de cocina debe almacenarse en botella cerrada"
    ]
}

@router.get("/recycling-guide")
@cached(prefix="guide", ttl=86400)  # 24 horas de caché
async def get_recycling_guide():
    """
    Guía de separación de residuos.
    Funciona offline en el cliente (cacheable por 24 horas).
    """
    return RECYCLING_GUIDE