feat(event): add address relationship and migration for event locations
This commit is contained in:
@@ -13,6 +13,20 @@ mediante `event_id`. El catálogo `social_media` define las plataformas;
|
||||
`exact_location` guarda opcionalmente un objeto JSON con `latitude` (-90 a 90)
|
||||
y `longitude` (-180 a 180). `location` sigue siendo la dirección legible.
|
||||
|
||||
`events.address_id` es una referencia opcional a `addresses.id`: `Event::address()`
|
||||
obtiene su dirección y `Address::events()` permite reutilizar una dirección en varios
|
||||
eventos. Al borrar una dirección, el vínculo queda en `NULL` y se conserva el evento.
|
||||
|
||||
La migración `2026_09_30_000200_add_address_id_to_events` agrega el vínculo.
|
||||
`2026_09_30_000300_copy_event_locations_to_addresses` copia `location` a
|
||||
`address_text` y las coordenadas de `exact_location` a `latitude` y `longitude`, con
|
||||
el label `Ubicación del evento`. Solo copia eventos sin `address_id` y con texto de
|
||||
ubicación; no modifica los campos ni los timestamps originales, ni vincula la
|
||||
dirección al tenant. Si faltan texto y coordenadas, el vínculo queda en `NULL`.
|
||||
Los datos inválidos, incluidas coordenadas sin texto de dirección, detienen la
|
||||
copia y revierten las inserciones para evitar una migración parcial. Las migraciones
|
||||
deben ejecutarse explícitamente por quien administra la base.
|
||||
|
||||
La migración `2026_09_18_000500_restore_events` crea un evento por cada tenant que
|
||||
tenía datos de evento o fechas, y migra las fechas y redes correspondientes.
|
||||
`2026_09_18_000600_associate_active_event_social_media` copia al evento activo las
|
||||
|
||||
Reference in New Issue
Block a user