82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
"""
|
|
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 |