Relaciones entre módulos¶
Por qué importa¶
Las relaciones son las conexiones entre módulos: un caso "pertenece a" un contacto; un contacto "tiene muchos" casos; una compañía "tiene muchos" contactos y prospectos. Estas conexiones generan las pestañas de relacionados y permiten navegar entre registros.
Tipos de relación¶
- belongsTo — apunta a otro (FK).
- hasMany — tiene varios del otro lado.
- hasOne — tiene exactamente uno.
- belongsToMany — muchos a muchos con tabla intermedia.
- morphTo / morphMany — polimórfica (puede relacionarse con varios tipos).
Crear una relación¶
- Abre el módulo origen → pestaña Relaciones → Agregar.
- Llena: tipo, módulo destino, nombre, etiqueta, llave foránea.
- Guardar.
ZaazCRM crea la columna FK (si belongsTo), genera la pestaña de relacionados, y permite acceder a registros conectados en plantillas y reportes.

Cómo se ven las relaciones en uso¶
En el detalle de un contacto, las pestañas Casos, Prospectos, Facturas son cada una una relación visualizada. ZaazCRM usa el campo display_name para mostrar cada registro.
Modificar o eliminar¶
- Renombrar etiqueta — instantáneo, sin efecto en datos.
- Cambiar tipo de relación — solo si no hay datos.
- Eliminar la relación — la pestaña desaparece pero los datos permanecen.
Patrones comunes en ZaazCRM¶
- Caso
belongsToContacto. - Contacto
hasManyCasos. - Contacto
belongsToCompañía. - Compañía
hasManyContactos. - Prospecto
belongsToContacto. - Presupuesto
belongsToProspecto (cuando aplica).
Ten cuidado con¶
- Las relaciones polimórficas son complejas.
- Llaves foráneas con datos no se cambian.
- Eliminar el padre puede afectar a los hijos (cascade vs restrict).
A dónde sigue¶
- Flujos de trabajo — automatización basada en relaciones.
- Visibilidades — controlar qué se muestra en pestañas relacionadas.