feat: add backend FastAPI structure and Supabase schema
This commit is contained in:
82
server/app/api/routes/guide_router.py
Normal file
82
server/app/api/routes/guide_router.py
Normal file
@@ -0,0 +1,82 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user