feat: modelado BD con schema, seeds y docker-compose

This commit is contained in:
2026-05-22 19:29:05 -06:00
parent e3f659cac8
commit bc395edf20
164 changed files with 17258 additions and 0 deletions

37
data/colonias-rutas.json Normal file
View File

@@ -0,0 +1,37 @@
[
{
"colonia": "Zona Centro",
"routeId": "RUTA-01",
"horarioEstimado": "Matutino (06:30 - 07:15)"
},
{
"colonia": "Las Arboledas",
"routeId": "RUTA-01",
"horarioEstimado": "Matutino (07:00 - 07:30)"
},
{
"colonia": "Trojes",
"routeId": "RUTA-13",
"horarioEstimado": "Matutino (06:40 - 07:10)"
},
{
"colonia": "San Juanico",
"routeId": "RUTA-03",
"horarioEstimado": "Matutino (06:45 - 07:15)"
},
{
"colonia": "Los Olivos",
"routeId": "RUTA-04",
"horarioEstimado": "Matutino (07:00 - 07:40)"
},
{
"colonia": "Rancho Seco",
"routeId": "RUTA-05",
"horarioEstimado": "Vespertino (14:15 - 15:00)"
},
{
"colonia": "Las Insurgentes",
"routeId": "RUTA-12",
"horarioEstimado": "Matutino (06:35 - 07:10)"
}
]

26
data/notificaciones.json Normal file
View File

@@ -0,0 +1,26 @@
[
{
"triggerEvent": "ROUTE_START",
"condition": "Cuando positionId cambia de 1 a 2",
"pushPayload": {
"title": "¡Ruta Iniciada!",
"body": "El camión recolector ha salido del Relleno Sanitario rumbo a tu sector. Asegúrate de tener listos tus residuos."
}
},
{
"triggerEvent": "TRUCK_PROXIMITY",
"condition": "Cuando positionId llega a 4 (punto previo al destino)",
"pushPayload": {
"title": "Camión Cercano",
"body": "El camión está a menos de 15 minutos de tu domicilio. Es momento de sacar tus bolsas a la acera."
}
},
{
"triggerEvent": "ROUTE_COMPLETED",
"condition": "Cuando positionId llega a 8 (retorno al basurero)",
"pushPayload": {
"title": "Servicio Finalizado",
"body": "El camión de tu sector ha concluido su jornada de recolección diaria."
}
}
]

962
data/rutas.json Normal file
View File

@@ -0,0 +1,962 @@
[
{
"routeId": "RUTA-01",
"name": "Zona Centro - Las Arboledas",
"truckId": 101,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:00:00Z"
},
{
"positionId": 2,
"lat": 20.5185,
"lng": -100.845,
"speed": 45,
"timestamp": "2026-05-22T06:12:00Z"
},
{
"positionId": 3,
"lat": 20.5215,
"lng": -100.8142,
"speed": 22,
"timestamp": "2026-05-22T06:25:00Z"
},
{
"positionId": 4,
"lat": 20.5212,
"lng": -100.8175,
"speed": 15,
"timestamp": "2026-05-22T06:38:00Z"
},
{
"positionId": 5,
"lat": 20.521,
"lng": -100.821,
"speed": 0,
"timestamp": "2026-05-22T06:50:00Z"
},
{
"positionId": 6,
"lat": 20.5235,
"lng": -100.8212,
"speed": 18,
"timestamp": "2026-05-22T07:05:00Z"
},
{
"positionId": 7,
"lat": 20.526,
"lng": -100.8215,
"speed": 20,
"timestamp": "2026-05-22T07:18:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 40,
"timestamp": "2026-05-22T07:40:00Z"
}
]
},
{
"routeId": "RUTA-02",
"name": "Sector Norte - Av. Tecnológico",
"truckId": 102,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:05:00Z"
},
{
"positionId": 2,
"lat": 20.528,
"lng": -100.8135,
"speed": 38,
"timestamp": "2026-05-22T06:18:00Z"
},
{
"positionId": 3,
"lat": 20.541,
"lng": -100.813,
"speed": 25,
"timestamp": "2026-05-22T06:30:00Z"
},
{
"positionId": 4,
"lat": 20.5445,
"lng": -100.8132,
"speed": 12,
"timestamp": "2026-05-22T06:45:00Z"
},
{
"positionId": 5,
"lat": 20.548,
"lng": -100.8135,
"speed": 0,
"timestamp": "2026-05-22T06:58:00Z"
},
{
"positionId": 6,
"lat": 20.5515,
"lng": -100.8138,
"speed": 15,
"timestamp": "2026-05-22T07:10:00Z"
},
{
"positionId": 7,
"lat": 20.554,
"lng": -100.811,
"speed": 22,
"timestamp": "2026-05-22T07:25:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 45,
"timestamp": "2026-05-22T07:50:00Z"
}
]
},
{
"routeId": "RUTA-03",
"name": "Sector Poniente - San Juanico",
"truckId": 103,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:10:00Z"
},
{
"positionId": 2,
"lat": 20.525,
"lng": -100.851,
"speed": 42,
"timestamp": "2026-05-22T06:20:00Z"
},
{
"positionId": 3,
"lat": 20.529,
"lng": -100.832,
"speed": 20,
"timestamp": "2026-05-22T06:35:00Z"
},
{
"positionId": 4,
"lat": 20.5315,
"lng": -100.8355,
"speed": 15,
"timestamp": "2026-05-22T06:48:00Z"
},
{
"positionId": 5,
"lat": 20.534,
"lng": -100.839,
"speed": 0,
"timestamp": "2026-05-22T07:00:00Z"
},
{
"positionId": 6,
"lat": 20.5362,
"lng": -100.8425,
"speed": 10,
"timestamp": "2026-05-22T07:15:00Z"
},
{
"positionId": 7,
"lat": 20.533,
"lng": -100.843,
"speed": 18,
"timestamp": "2026-05-22T07:28:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 35,
"timestamp": "2026-05-22T07:45:00Z"
}
]
},
{
"routeId": "RUTA-04",
"name": "Oriente - Los Olivos",
"truckId": 104,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:15:00Z"
},
{
"positionId": 2,
"lat": 20.526,
"lng": -100.801,
"speed": 45,
"timestamp": "2026-05-22T06:30:00Z"
},
{
"positionId": 3,
"lat": 20.5295,
"lng": -100.789,
"speed": 24,
"timestamp": "2026-05-22T06:45:00Z"
},
{
"positionId": 4,
"lat": 20.532,
"lng": -100.785,
"speed": 12,
"timestamp": "2026-05-22T06:58:00Z"
},
{
"positionId": 5,
"lat": 20.535,
"lng": -100.779,
"speed": 0,
"timestamp": "2026-05-22T07:12:00Z"
},
{
"positionId": 6,
"lat": 20.531,
"lng": -100.776,
"speed": 15,
"timestamp": "2026-05-22T07:25:00Z"
},
{
"positionId": 7,
"lat": 20.527,
"lng": -100.782,
"speed": 26,
"timestamp": "2026-05-22T07:38:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 48,
"timestamp": "2026-05-22T07:58:00Z"
}
]
},
{
"routeId": "RUTA-05",
"name": "Sector Sur - Rancho Seco",
"truckId": 105,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:20:00Z"
},
{
"positionId": 2,
"lat": 20.505,
"lng": -100.862,
"speed": 35,
"timestamp": "2026-05-22T06:32:00Z"
},
{
"positionId": 3,
"lat": 20.502,
"lng": -100.835,
"speed": 22,
"timestamp": "2026-05-22T06:45:00Z"
},
{
"positionId": 4,
"lat": 20.4995,
"lng": -100.821,
"speed": 14,
"timestamp": "2026-05-22T06:58:00Z"
},
{
"positionId": 5,
"lat": 20.497,
"lng": -100.815,
"speed": 0,
"timestamp": "2026-05-22T07:10:00Z"
},
{
"positionId": 6,
"lat": 20.501,
"lng": -100.812,
"speed": 16,
"timestamp": "2026-05-22T07:22:00Z"
},
{
"positionId": 7,
"lat": 20.506,
"lng": -100.816,
"speed": 25,
"timestamp": "2026-05-22T07:35:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 40,
"timestamp": "2026-05-22T07:55:00Z"
}
]
},
{
"routeId": "RUTA-06",
"name": "Norte Extremo - Rumbos de Roque",
"truckId": 106,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:00:00Z"
},
{
"positionId": 2,
"lat": 20.538,
"lng": -100.838,
"speed": 40,
"timestamp": "2026-05-22T06:15:00Z"
},
{
"positionId": 3,
"lat": 20.561,
"lng": -100.837,
"speed": 30,
"timestamp": "2026-05-22T06:30:00Z"
},
{
"positionId": 4,
"lat": 20.575,
"lng": -100.836,
"speed": 15,
"timestamp": "2026-05-22T06:45:00Z"
},
{
"positionId": 5,
"lat": 20.582,
"lng": -100.835,
"speed": 0,
"timestamp": "2026-05-22T07:00:00Z"
},
{
"positionId": 6,
"lat": 20.578,
"lng": -100.831,
"speed": 20,
"timestamp": "2026-05-22T07:15:00Z"
},
{
"positionId": 7,
"lat": 20.565,
"lng": -100.832,
"speed": 28,
"timestamp": "2026-05-22T07:30:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 45,
"timestamp": "2026-05-22T07:55:00Z"
}
]
},
{
"routeId": "RUTA-07",
"name": "Nororiente - Ciudad Industrial",
"truckId": 107,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:10:00Z"
},
{
"positionId": 2,
"lat": 20.535,
"lng": -100.805,
"speed": 44,
"timestamp": "2026-05-22T06:24:00Z"
},
{
"positionId": 3,
"lat": 20.545,
"lng": -100.795,
"speed": 25,
"timestamp": "2026-05-22T06:38:00Z"
},
{
"positionId": 4,
"lat": 20.548,
"lng": -100.785,
"speed": 18,
"timestamp": "2026-05-22T06:52:00Z"
},
{
"positionId": 5,
"lat": 20.551,
"lng": -100.775,
"speed": 0,
"timestamp": "2026-05-22T07:05:00Z"
},
{
"positionId": 6,
"lat": 20.546,
"lng": -100.772,
"speed": 12,
"timestamp": "2026-05-22T07:18:00Z"
},
{
"positionId": 7,
"lat": 20.539,
"lng": -100.782,
"speed": 30,
"timestamp": "2026-05-22T07:30:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 42,
"timestamp": "2026-05-22T07:52:00Z"
}
]
},
{
"routeId": "RUTA-08",
"name": "Suroriente - Universidad Latina",
"truckId": 108,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:15:00Z"
},
{
"positionId": 2,
"lat": 20.518,
"lng": -100.831,
"speed": 38,
"timestamp": "2026-05-22T06:28:00Z"
},
{
"positionId": 3,
"lat": 20.5245,
"lng": -100.798,
"speed": 30,
"timestamp": "2026-05-22T06:42:00Z"
},
{
"positionId": 4,
"lat": 20.521,
"lng": -100.7995,
"speed": 14,
"timestamp": "2026-05-22T06:55:00Z"
},
{
"positionId": 5,
"lat": 20.5175,
"lng": -100.801,
"speed": 0,
"timestamp": "2026-05-22T07:08:00Z"
},
{
"positionId": 6,
"lat": 20.514,
"lng": -100.803,
"speed": 18,
"timestamp": "2026-05-22T07:20:00Z"
},
{
"positionId": 7,
"lat": 20.511,
"lng": -100.8055,
"speed": 22,
"timestamp": "2026-05-22T07:32:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 40,
"timestamp": "2026-05-22T07:54:00Z"
}
]
},
{
"routeId": "RUTA-09",
"name": "Poniente - Hospital General",
"truckId": 109,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:02:00Z"
},
{
"positionId": 2,
"lat": 20.521,
"lng": -100.865,
"speed": 45,
"timestamp": "2026-05-22T06:12:00Z"
},
{
"positionId": 3,
"lat": 20.526,
"lng": -100.852,
"speed": 26,
"timestamp": "2026-05-22T06:24:00Z"
},
{
"positionId": 4,
"lat": 20.5275,
"lng": -100.849,
"speed": 12,
"timestamp": "2026-05-22T06:36:00Z"
},
{
"positionId": 5,
"lat": 20.5285,
"lng": -100.846,
"speed": 0,
"timestamp": "2026-05-22T06:48:00Z"
},
{
"positionId": 6,
"lat": 20.525,
"lng": -100.847,
"speed": 15,
"timestamp": "2026-05-22T07:00:00Z"
},
{
"positionId": 7,
"lat": 20.522,
"lng": -100.855,
"speed": 32,
"timestamp": "2026-05-22T07:12:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 44,
"timestamp": "2026-05-22T07:30:00Z"
}
]
},
{
"routeId": "RUTA-10",
"name": "Eje Juan Pablo II - Sede UG Sur",
"truckId": 110,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:22:00Z"
},
{
"positionId": 2,
"lat": 20.5015,
"lng": -100.852,
"speed": 40,
"timestamp": "2026-05-22T06:34:00Z"
},
{
"positionId": 3,
"lat": 20.499,
"lng": -100.839,
"speed": 28,
"timestamp": "2026-05-22T06:46:00Z"
},
{
"positionId": 4,
"lat": 20.495,
"lng": -100.832,
"speed": 18,
"timestamp": "2026-05-22T06:58:00Z"
},
{
"positionId": 5,
"lat": 20.492,
"lng": -100.828,
"speed": 0,
"timestamp": "2026-05-22T07:10:00Z"
},
{
"positionId": 6,
"lat": 20.4945,
"lng": -100.824,
"speed": 14,
"timestamp": "2026-05-22T07:22:00Z"
},
{
"positionId": 7,
"lat": 20.498,
"lng": -100.83,
"speed": 30,
"timestamp": "2026-05-22T07:34:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 38,
"timestamp": "2026-05-22T07:52:00Z"
}
]
},
{
"routeId": "RUTA-11",
"name": "Zona de Oro - Torres Landa",
"truckId": 111,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:04:00Z"
},
{
"positionId": 2,
"lat": 20.524,
"lng": -100.835,
"speed": 36,
"timestamp": "2026-05-22T06:16:00Z"
},
{
"positionId": 3,
"lat": 20.528,
"lng": -100.825,
"speed": 22,
"timestamp": "2026-05-22T06:29:00Z"
},
{
"positionId": 4,
"lat": 20.5295,
"lng": -100.821,
"speed": 10,
"timestamp": "2026-05-22T06:42:00Z"
},
{
"positionId": 5,
"lat": 20.531,
"lng": -100.817,
"speed": 0,
"timestamp": "2026-05-22T06:55:00Z"
},
{
"positionId": 6,
"lat": 20.529,
"lng": -100.814,
"speed": 16,
"timestamp": "2026-05-22T07:08:00Z"
},
{
"positionId": 7,
"lat": 20.526,
"lng": -100.822,
"speed": 28,
"timestamp": "2026-05-22T07:21:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 42,
"timestamp": "2026-05-22T07:42:00Z"
}
]
},
{
"routeId": "RUTA-12",
"name": "Nororiente - Las Insurgentes",
"truckId": 112,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:08:00Z"
},
{
"positionId": 2,
"lat": 20.528,
"lng": -100.808,
"speed": 40,
"timestamp": "2026-05-22T06:22:00Z"
},
{
"positionId": 3,
"lat": 20.532,
"lng": -100.798,
"speed": 24,
"timestamp": "2026-05-22T06:35:00Z"
},
{
"positionId": 4,
"lat": 20.534,
"lng": -100.794,
"speed": 15,
"timestamp": "2026-05-22T06:48:00Z"
},
{
"positionId": 5,
"lat": 20.536,
"lng": -100.79,
"speed": 0,
"timestamp": "2026-05-22T07:00:00Z"
},
{
"positionId": 6,
"lat": 20.531,
"lng": -100.792,
"speed": 12,
"timestamp": "2026-05-22T07:12:00Z"
},
{
"positionId": 7,
"lat": 20.527,
"lng": -100.802,
"speed": 26,
"timestamp": "2026-05-22T07:25:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 44,
"timestamp": "2026-05-22T07:48:00Z"
}
]
},
{
"routeId": "RUTA-13",
"name": "Sector Norte - Trojes e Irrigación",
"truckId": 113,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:12:00Z"
},
{
"positionId": 2,
"lat": 20.536,
"lng": -100.819,
"speed": 35,
"timestamp": "2026-05-22T06:26:00Z"
},
{
"positionId": 3,
"lat": 20.542,
"lng": -100.808,
"speed": 28,
"timestamp": "2026-05-22T06:40:00Z"
},
{
"positionId": 4,
"lat": 20.544,
"lng": -100.804,
"speed": 14,
"timestamp": "2026-05-22T06:54:00Z"
},
{
"positionId": 5,
"lat": 20.546,
"lng": -100.8,
"speed": 0,
"timestamp": "2026-05-22T07:06:00Z"
},
{
"positionId": 6,
"lat": 20.541,
"lng": -100.802,
"speed": 18,
"timestamp": "2026-05-22T07:18:00Z"
},
{
"positionId": 7,
"lat": 20.537,
"lng": -100.812,
"speed": 25,
"timestamp": "2026-05-22T07:30:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 39,
"timestamp": "2026-05-22T07:54:00Z"
}
]
},
{
"routeId": "RUTA-14",
"name": "Sur Poniente - La Toscana",
"truckId": 114,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:16:00Z"
},
{
"positionId": 2,
"lat": 20.515,
"lng": -100.858,
"speed": 42,
"timestamp": "2026-05-22T06:28:00Z"
},
{
"positionId": 3,
"lat": 20.514,
"lng": -100.839,
"speed": 26,
"timestamp": "2026-05-22T06:41:00Z"
},
{
"positionId": 4,
"lat": 20.5125,
"lng": -100.831,
"speed": 16,
"timestamp": "2026-05-22T06:54:00Z"
},
{
"positionId": 5,
"lat": 20.511,
"lng": -100.825,
"speed": 0,
"timestamp": "2026-05-22T07:06:00Z"
},
{
"positionId": 6,
"lat": 20.5135,
"lng": -100.828,
"speed": 12,
"timestamp": "2026-05-22T07:18:00Z"
},
{
"positionId": 7,
"lat": 20.516,
"lng": -100.842,
"speed": 32,
"timestamp": "2026-05-22T07:30:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 45,
"timestamp": "2026-05-22T07:51:00Z"
}
]
},
{
"routeId": "RUTA-15",
"name": "Norponiente - Camino a San José de Celaya",
"truckId": 115,
"status": "EN_RUTA",
"positions": [
{
"positionId": 1,
"lat": 20.5111,
"lng": -100.9037,
"speed": 0,
"timestamp": "2026-05-22T06:18:00Z"
},
{
"positionId": 2,
"lat": 20.532,
"lng": -100.859,
"speed": 38,
"timestamp": "2026-05-22T06:31:00Z"
},
{
"positionId": 3,
"lat": 20.539,
"lng": -100.848,
"speed": 24,
"timestamp": "2026-05-22T06:44:00Z"
},
{
"positionId": 4,
"lat": 20.542,
"lng": -100.844,
"speed": 15,
"timestamp": "2026-05-22T06:57:00Z"
},
{
"positionId": 5,
"lat": 20.545,
"lng": -100.841,
"speed": 0,
"timestamp": "2026-05-22T07:09:00Z"
},
{
"positionId": 6,
"lat": 20.541,
"lng": -100.843,
"speed": 14,
"timestamp": "2026-05-22T07:21:00Z"
},
{
"positionId": 7,
"lat": 20.536,
"lng": -100.852,
"speed": 28,
"timestamp": "2026-05-22T07:33:00Z"
},
{
"positionId": 8,
"lat": 20.5111,
"lng": -100.9037,
"speed": 41,
"timestamp": "2026-05-22T07:54:00Z"
}
]
}
]