Establecer la base de datos PostgreSQL con la extensión PostGIS en el entorno local de desarrollo.
Esta tarea configura la infraestructura para almacenar datos geográficos del campus:
Building (Edificio completo - polígono grande)
├─ id, name, geometry (MultiPolygon), campus, num_floors
├─ departments: Department[]
└─ pois: POI[] (baños, agua, etc del edificio)
Department (Departamento dentro de edificio - puede solaparse)
├─ id, name, geometry (MultiPolygon), building_id (FK), campus
└─ pois: POI[] (baños, oficinas del depto)
Category (Tipo de POI - dinámico para escalar)
├─ id, name (único: "Baño", "Agua", "Comida", etc)
├─ color (para renderizar en mapa: "#FF5733")
└─ pois: POI[]
POI (Punto de Interés)
├─ id, name, description, image_url (Cloudflare R2)
├─ geometry (Point - coordenada única)
├─ floor (número de piso, nullable si está afuera)
├─ campus (cc, jose_miguel, san_joaquin, concepcion, etc)
├─ category_id (FK - dinámico)
├─ building_id (FK - nullable, para puntos sueltos)
└─ department_id (FK - nullable, no todos están en depto)
NOTA: Departamentos y Edificios NO son POI, son tablas separadas.
Las categorías son para los PUNTOS específicos dentro del campus.
Descripción del Objetivo
Establecer la base de datos PostgreSQL con la extensión PostGIS en el entorno local de desarrollo.
Esta tarea configura la infraestructura para almacenar datos geográficos del campus:
Listado de subtareas
mapa_usm_cccon extensión PostGIS habilitada.enven la raíz con credencialesprisma/schema.prismacon 4 modelos:prisma/seed.tscon las 14 categorías base/migrationspara versionado de schemascripts/init-db.sh) que automatice todoNotas y Referencias
Nota importante:
El import del GeoJSON (polígonos de edificios/departamentos y puntos de POI) se realiza en FASE 4 - Cartografía.
Estructura de datos:
Validaciones:
14 Categorías base (seed.ts):
NOTA: Departamentos y Edificios NO son POI, son tablas separadas.
Las categorías son para los PUNTOS específicos dentro del campus.
Recomendación para desarrollo:
Usa Docker para hacer portable el proyecto.
Así todos en el equipo tienen BD igual sin instalar software local.
Referencias útiles: