[LOGIC / BUSINESS] F-06.2 — Detalle, Crear y Editar Código de Error
Épica: EPIC-06 — Catálogo de Códigos de Error (CRUD)
🏷️ Categoría
Categoría: Logic / BusinessSecundaria: DataImpacta en: Equipo Fullstack (Livewire + Laravel + Base de Datos)
📦 Dependencias
Backlogs que deben estar completados antes de implementar esta feature.
| Backlog | Motivo |
|---|---|
| F-06.1 | Listado de error codes funcional; el detalle/edición es su continuación directa |
| F-00.2 | Tabla error_codes con constraint UNIQUE (code, application_id) en BD |
Prioridad: Must
Descripción: Como administrador del sistema Quiero poder crear nuevos códigos de error, editar los existentes y borrarlos Para mantener actualizado el catálogo de errores conocidos del sistema
Criterios de Aceptación (Checklist):
- [ ] Escenario 1 (Crear error code): Dado que relleno el formulario de creación (Código, Aplicación, Nombre, Descripción opcional, Fichero opcional, Línea opcional) y pulso "Guardar", cuando el formulario es válido, entonces se crea el registro en
error_codesy se redirige al detalle del nuevo código con un flash message de confirmación. - [ ] Escenario 2 (Validación clave compuesta): Dado que intento crear un error code con la misma combinación
(code, application_id)que ya existe, cuando se envía el formulario, entonces se muestra un error de validación "Ya existe un código con este ID para esta aplicación" y no se duplica. - [ ] Escenario 3 (Editar error code): Dado que estoy en la vista de detalle de un error code y pulso "Editar", cuando se activa el modo edición, entonces los campos se vuelven editables. Al guardar, se actualiza el registro y se muestra confirmación.
- [ ] Escenario 4 (Borrar error code): Dado que pulso "Borrar" en el detalle de un error code, cuando confirmo el modal (Alpine.js), entonces se borra el registro de
error_codes(yerror_code_commentsen cascade) y se redirige al listado. - [ ] Escenario 5 (Validaciones de campos):
code: requerido, max 50.application_id: requerido, FK válida a tablaapplications(select).name: requerido, max 200.description: opcional, max 5000.file: opcional, max 255.line: opcional, entero positivo. - [ ] Requisito Técnico: Componente Livewire
ErrorCodeFormcon dos modos: create y edit. RutaGET /error-codes/createpara crear yGET /error-codes/{id}para detalle/editar.ErrorCodeController@storeyErrorCodeController@updateconFormRequest ErrorCodeRequest. Unique rule en validación:Rule::unique('error_codes')->where('application_id', $this->application_id)->ignore($this->errorCodeId).
MoSCoW: MUSTSprint: Sprint 2
Notas:
- La clave compuesta
(code, application_id)es la clave de negocio que identifica de forma única un tipo de error dentro de una aplicación. El campoapplication_ides un FK a la tablaapplications; en el formulario se muestra un<select>conApplication::orderBy('name')->pluck('name', 'id'). - El campo
linees orientativo — puede cambiar entre versiones del código. No es obligatorio. - El borrado en cascade garantiza que al eliminar un error code, también se eliminan sus comentarios.