Administración completa de contactos con acceso basado en roles, fotos y vínculo multi-entidad.
contact_roles. Solo ves los contactos asignados a tu entidad activa.
El Gestor de Contactos administra contactos, clientes y miembros de equipo a través de distintas entidades de negocio. Provee:
contact_roles (user_id, entity_id, role).Después de iniciar sesión, el sistema usa tu selección activa de business_entities. Todo contacto mostrado pertenece a esa entidad.
La tabla muestra foto, nombre, correo, teléfono, rol y estado. Filtra por nombre/correo/teléfono, estado, género o rol.
Llena nombre, apellido, correo (obligatorio), opcionalmente foto y rol. Los contactos nuevos se vinculan a tu entidad vía contact_roles.
Borrar solo quita el contacto de tu entidad — el contacto en sí solo se borra por completo si ya no le queda ninguna otra asociación de entidad.
Agregar un contacto cuyo correo/RFC/CURP ya existe no crea un duplicado — vincula el contacto existente a tu entidad.
| Característica | Descripción |
|---|---|
| 📤 Foto/Avatar | PNG/JPG, guardadas en /media/platform/img/users/ con nombres basados en el username. |
| 🪪 Validación RFC/CURP | Unicidad reforzada a nivel de aplicación — evita IDs oficiales duplicados entre entidades. |
| 🏢 Arquitectura multi-entidad | Un contacto puede pertenecer a varias entidades, con un rol distinto en cada una, vía contact_roles. |
| 🔑 Hash de contraseña | Los contactos nuevos reciben una contraseña con hash (password_hash()). Editar nunca la muestra ni la resetea por accidente. |
| 📊 Estadísticas en vivo | Conteos agregados (activos/verificados/principales) delimitados a la entidad activa. |
| 🔍 Filtrado dinámico | Búsqueda combinada por nombre/correo/teléfono/apodo más estado/género/rol. |
Todas las acciones requieren una sesión autenticada y una entidad activa.
?action=getContactos paginados con filtros, delimitados a la entidad activa vía contact_roles.
?action=get&id=123Detalles de un contacto (solo si pertenece a tu entidad activa).
?action=statsEstadísticas delimitadas a la entidad: total, activos, verificados, principales.
Valida nombre/correo, revisa si el contacto ya existe, y vincula el rol.
Actualiza campos, procesa una foto nueva, actualiza el rol en esa entidad.
Quita el vínculo en contact_roles; solo borra el contacto si no le queda ninguna otra asociación.
contacts (datos personales, foto, is_active), contact_roles (user_id, entity_id, role), business_entities (contexto de entidad).
contact_roles delimitada al entity_id activo — no puedes ver ni editar contactos de otra entidad.password_hash() — nunca texto plano.contact_roles tenga una fila que vincule tu usuario a esa entidad.business_entities. Normalmente se crea automáticamente al registrarte — si falta, contacta a un administrador.contact_roles para tu entidad.