Appearance
Opciones de Campo (FieldOptions)
Modulo: CRM Tipo: Resource Estado: Implementado Fecha: 2026-02-02
Descripcion
El recurso FieldOptions (Opciones de Campo) define los valores posibles para campos personalizados de tipo seleccion. Permite crear listas desplegables con opciones predefinidas, ordenadas y etiquetadas de manera amigable para el usuario.
Valor de negocio:
- Estandariza las opciones disponibles para campos de seleccion
- Permite ordenamiento logico de opciones
- Facilita el mantenimiento de catalogos internos del CRM
- Soporta eliminacion logica para mantener integridad historica
- Separa el valor almacenado de la etiqueta visible
Ejemplos de uso:
- Estados de llamada (Contactado, Sin contacto, Ocupado)
- Tipos de consulta (Precio, Stock, Garantia)
- Prioridades (Alta, Media, Baja)
- Motivos de interes (Publicidad, Referido, Web)
Frontend (Perspectiva de Usuario)
Vistas
Listado de Opciones por Campo
- Muestra las opciones configuradas para un campo de seleccion
- Indica valor, etiqueta y orden
- Opciones activas e inactivas diferenciadas
Formulario de Alta/Modificacion de Opcion
- Ingreso de valor numerico
- Ingreso de etiqueta descriptiva
- Definicion de orden de visualizacion
Selector en Formularios de Registro
- Las opciones aparecen en el dropdown del campo
- Se muestran ordenadas segun el campo orden
- Solo se muestran opciones activas
Interacciones del Usuario
| Accion | Descripcion |
|---|---|
| Agregar opcion | El administrador agrega una nueva opcion al campo |
| Editar opcion | El administrador modifica etiqueta u orden |
| Eliminar opcion | El administrador elimina logicamente una opcion |
| Seleccionar opcion | El usuario operador elige una opcion en el registro |
| Reordenar opciones | El administrador cambia el orden de visualizacion |
Permisos
- Visualizar opciones (usuarios del CRM)
- Configurar opciones (administradores)
- Eliminar opciones (administradores)
Estados de UI
| Estado | Descripcion |
|---|---|
| Opcion activa | Disponible para seleccion en formularios |
| Opcion inactiva | No aparece en selectores pero existe en historico |
| Cargando opciones | Indicador mientras se obtienen las opciones |
Backend (Perspectiva de Datos de Negocio)
Entidad de Negocio: Opcion de Campo
Representa un valor posible para un campo personalizado de tipo seleccion.
Datos Necesarios
| Dato | Descripcion | Requerido | Restricciones |
|---|---|---|---|
| Identificador | Codigo numerico unico de la opcion | Auto | - |
| Campo | Campo al que pertenece la opcion | Si | Referencia valida |
| Valor | Valor numerico almacenado | Si | Entero |
| Orden | Posicion en la lista de opciones | No | Entero |
| Etiqueta | Texto visible para el usuario | Si | 100 caracteres |
| Fecha eliminacion | Marca de eliminacion logica | No | Timestamp |
Relaciones de Negocio
| Relacion | Descripcion |
|---|---|
| Campo | Cada opcion pertenece a un campo especifico |
| Valores de registro | Los registros almacenan el valor de la opcion seleccionada |
Validaciones de Negocio
| Validacion | Descripcion |
|---|---|
| Campo existente | El campo referenciado debe existir |
| Valor numerico | El valor debe ser un numero entero |
| Etiqueta no vacia | La etiqueta es obligatoria |
| Valor unico por campo | No pueden existir dos opciones con mismo valor en un campo |
Reglas de Negocio
RN-OPT-001: Eliminacion Logica
- Condicion: Al eliminar una opcion
- Accion: El sistema marca la opcion con fecha de eliminacion
- Nota: No se elimina fisicamente para mantener integridad de datos historicos
RN-OPT-002: Ordenamiento por Campo Orden
- Condicion: Al listar opciones de un campo
- Accion: Se ordenan por el campo 'orden' de menor a mayor
- Nota: Opciones sin orden definido aparecen al final
RN-OPT-003: Solo Opciones Activas en Seleccion
- Condicion: Al mostrar opciones en un dropdown
- Accion: Solo se muestran opciones sin fecha de eliminacion
- Nota: Las opciones eliminadas no aparecen en nuevas selecciones
RN-OPT-004: Valor Inmutable
- Condicion: La opcion ya fue seleccionada en algun registro
- Accion: El valor numerico no debe modificarse
- Nota: Cambiar el valor romperia la asociacion con registros existentes
RN-OPT-005: Actualizacion Permitida
- Condicion: Al actualizar una opcion
- Accion: Se permite modificar etiqueta y orden
- Nota: Estos cambios no afectan los registros existentes
RN-OPT-006: Gestion Transaccional
- Condicion: Al crear/actualizar campo con opciones
- Accion: Las operaciones de opciones se incluyen en la transaccion del campo
- Nota: Si falla alguna opcion, se revierte toda la operacion
Casos de Uso
Caso 1: Agregar Opcion a Campo Existente
Actor: Administrador del sistema
Precondiciones:
- El campo debe existir y ser de tipo seleccion
- El usuario debe estar autenticado como administrador
Flujo principal:
- El administrador accede a la configuracion del campo
- El administrador presiona "Agregar Opcion"
- El administrador ingresa el valor numerico (ej: 4)
- El administrador ingresa la etiqueta (ej: "Consulta de Financiacion")
- El administrador ingresa el orden (ej: 4)
- El administrador presiona "Guardar"
- El sistema valida que el valor no exista
- El sistema crea la opcion
- El sistema muestra notificacion de exito
Postcondiciones:
- La nueva opcion aparece en el dropdown del campo
- Los usuarios pueden seleccionar la nueva opcion
Caso 2: Eliminar Opcion No Utilizada
Actor: Administrador del sistema
Precondiciones:
- La opcion debe existir
- El usuario debe estar autenticado como administrador
Flujo principal:
- El administrador accede a la configuracion del campo
- El administrador localiza la opcion a eliminar
- El administrador presiona "Eliminar"
- El sistema solicita confirmacion
- El administrador confirma la eliminacion
- El sistema marca la opcion con fecha de eliminacion
- El sistema muestra notificacion de exito
Postcondiciones:
- La opcion ya no aparece en selectores
- Los registros existentes que usaban la opcion mantienen su valor
- La opcion permanece para consultas historicas
Caso 3: Reordenar Opciones
Actor: Administrador del sistema
Precondiciones:
- El campo debe tener multiples opciones
- El usuario debe estar autenticado como administrador
Flujo principal:
- El administrador accede a la configuracion del campo
- El administrador visualiza las opciones con sus ordenes actuales
- El administrador edita cada opcion y cambia el valor de orden
- El sistema actualiza el orden de cada opcion
- Las opciones se reorganizan segun el nuevo orden
Postcondiciones:
- Los selectores muestran las opciones en el nuevo orden
- Los valores almacenados no se modifican
Caso 4: Consultar Opciones de un Campo
Actor: Sistema (frontend)
Precondiciones:
- El campo debe existir
Flujo principal:
- El frontend solicita las opciones del campo
- El sistema obtiene las opciones activas (sin deleted_at)
- El sistema ordena por campo 'orden'
- El sistema retorna la lista de opciones
- El frontend renderiza el dropdown con las opciones
Postcondiciones:
- El dropdown muestra solo opciones activas
- Las opciones aparecen ordenadas correctamente
Consideraciones
Seguridad
- Solo administradores pueden gestionar opciones
- Los usuarios regulares solo pueden seleccionar opciones en formularios
- No se expone informacion sensible en las opciones
Auditoria
- Se registra quien crea cada opcion
- Se registra la fecha de eliminacion logica
- Los cambios en etiquetas deben registrarse
Rendimiento
- Las opciones se cargan junto con el campo
- La cantidad de opciones por campo debe ser razonable (menos de 50)
- Se recomienda cachear opciones en el frontend
Dependencias
Funcionalidades Relacionadas
- Campos Personalizados: Las opciones pertenecen a campos de tipo seleccion
- Registros CRM: Los registros almacenan el valor de la opcion seleccionada
- Valores de Campo: Tabla que almacena los valores seleccionados
Prerequisitos
- Campo personalizado de tipo 'select' creado
- Permisos de administracion
Criterios de Aceptacion
- [ ] AC-001: El administrador puede agregar opciones a un campo de seleccion
- [ ] AC-002: Cada opcion tiene valor numerico, etiqueta y orden
- [ ] AC-003: El sistema rechaza valores duplicados en el mismo campo
- [ ] AC-004: Las opciones se ordenan segun el campo orden
- [ ] AC-005: El administrador puede modificar etiqueta y orden de opciones existentes
- [ ] AC-006: El administrador puede eliminar opciones (eliminacion logica)
- [ ] AC-007: Las opciones eliminadas no aparecen en selectores
- [ ] AC-008: Los registros historicos mantienen referencia a opciones eliminadas
- [ ] AC-009: Solo opciones activas se muestran en formularios
- [ ] AC-010: La creacion de opciones se incluye en transaccion del campo
- [ ] AC-011: El valor numerico no puede modificarse una vez creado
Notas Adicionales
- El valor numerico permite almacenamiento eficiente y reportes numericos
- La etiqueta es lo que ve el usuario, independiente del valor almacenado
- La eliminacion logica preserva la integridad de datos historicos
- El ordenamiento permite control total sobre la presentacion
- Las opciones se gestionan principalmente a traves del endpoint del campo padre
- Los endpoints directos de opciones son para consultas especificas