Commit Graph

11 Commits

Author SHA1 Message Date
e36d7dac6b Fix: Redondear SCAA Score a múltiplos de 0.25
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
PROBLEMA:
El SCAA Score debe moverse en steps de 0.25 (no aceptar
cualquier valor decimal racional).

SOLUCIÓN:

1. Nueva función en catacion.ts:
   - redondearA025(): Redondea al múltiplo de 0.25 más cercano
   - Math.round(valor / 0.25) * 0.25

2. Aplicado en todas las funciones de SCAA:
   - calcularSCAA(): redondea el resultado final
   - sumatoriaAfectivaASCAA(): redondea la conversión

3. ModalAsignacionRapida.vue:
   - Input step cambiado de 0.01 a 0.25
   - onScaaChange(): redondea el valor ingresado
   - Placeholder actualizado: 58.75-112.00

VALORES VÁLIDOS:
Ahora el SCAA Score solo puede tener valores como:
- 85.00, 85.25, 85.50, 85.75, 86.00, etc.
- Nunca valores como 85.17 o 85.33

La visualización con .toFixed(2) sigue mostrando 2 decimales
correctamente.
2025-10-19 02:37:35 -06:00
58751467cf Feat: Implementar SCAA Score y conversión bidireccional
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
CAMBIOS PRINCIPALES:

1. Nueva fórmula de SCAA Score:
   - S = 0.65625 × Σhᵢ + 52.75 - 2u - 4d
   - Donde hᵢ = puntaje afectivo (1-9)
   - u = tazas no uniformes, d = tazas defectuosas

2. Funciones de cálculo (catacion.ts):
   - calcularSumatoriaAfectiva(): suma de valores afectivos
   - calcularSCAA(): calcula SCAA Score con penalizaciones
   - scaaASumatoriaAfectiva(): conversión inversa (sin penalizaciones)
   - sumatoriaAfectivaASCAA(): conversión directa (sin penalizaciones)

3. FormularioMuestra.vue:
   - Mostrar ambos scores en el acordeón
   - "Sumatoria Afectiva" (entero, suma de afectivos)
   - "SCAA Score" (decimal, con 2 decimales)

4. ModalAsignacionRapida.vue:
   - Doble input: Sumatoria Afectiva + SCAA Score
   - Sincronización bidireccional automática
   - Al modificar Sumatoria → actualiza SCAA
   - Al modificar SCAA → calcula Sumatoria más cercana
   - Validación y redondeo para mantener enteros válidos
   - Rango: Sumatoria 9-90, SCAA 58.65-112.00

NOTAS:
- En asignación rápida no se toman en cuenta penalizaciones
- SCAA Score acepta decimales, Sumatoria solo enteros
- Múltiples SCAA Scores pueden apuntar al mismo entero
2025-10-19 02:26:37 -06:00
e5275d223e Fix: Corregir escalas de intensidad y cálculo de puntaje final
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
CAMBIOS CRÍTICOS EN ESCALAS:
- Escala descriptiva: 1-10 → 1-15
- Escala afectiva: 1-15 → 1-9
- Puntaje final: suma de afectivos (no descriptivos)
- Rango puntaje final: 9-90 (8 categorías × 1-9 afectivo)

Iconos de selección en SelectorFamilia:
- Fragancia/Aroma: i-heroicons-check-circle-solid
- Sabor: i-heroicons-check-badge-solid
- Eliminar textos de títulos para interfaz más limpia

Actualizar calcularPuntajeFinal (catacion.ts):
- Cambiar suma de descriptivos a afectivos
- Actualizar comentarios JSDoc

Actualizar SelectorIntensidad:
- Máximo descriptiva: 10 → 15
- Máximo afectiva: 15 → 9
- Actualizar comentarios y tipos

Actualizar ModalAsignacionRapida:
- Rango de entrada: 8-80 → 9-90
- Modificar valores afectivos (no descriptivos)
- Valor por defecto: 40 → 45
- Actualizar validaciones de rango

Actualizar FormularioMuestra:
- aplicarAsignacionRapida usa tipo 'afectiva'
- Texto: "Suma de valores afectivos"

IMPORTANTE: Estos cambios afectan toda la lógica de puntuación
2025-10-19 01:52:08 -06:00
7ba16e99bf Refactor: Mejorar badges y chips de la interfaz
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Reemplazar texto "Target:" por icono de diana (i-lucide-target)
  - Mostrar icono con color primario + puntaje deseado
  - Más visual e intuitivo

- Igualar opacidad de badges descriptivo y afectivo
  - Cambiar todos los badges descriptivos de opacity: 0.4 a 0.7
  - Ahora ambos badges tienen la misma tonalidad/visibilidad
  - Aplica en todas las categorías (Fragancia, Aroma, Sabor, etc.)

- Hacer badges de filtro rectangulares
  - Cambiar border-radius de subcategoria-chip de 9999px a 0.375rem
  - Consistencia visual con el resto de badges y botones rectangulares
  - Aplica a filtros de subcategorías debajo de tabs
2025-10-19 01:31:35 -06:00
fd0de74c2e Feat: Personalizar backdrop del modal y agregar puntaje target en footer
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Cambiar color del backdrop/overlay del modal
  - Usar color de fondo del usuario (var(--cata-bg))
  - Aplicar opacidad de 0.85
  - Mantener blur de 4px para efecto de profundidad

- Agregar puntaje target en footer del paso 2
  - Mostrar "Target: [puntaje]" alineado a la izquierda
  - Botones (Cancelar/Aplicar) alineados a la derecha
  - Usar justify-between para distribución espaciada

- Mejorar experiencia visual con colores personalizados del usuario
2025-10-19 01:25:30 -06:00
5049e54d37 Refactor: Simplificar botón de asignación rápida y arreglar estilos del modal
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Eliminar componente BotonNubeCaustica.vue (ya no necesario)
- Reemplazar botón especial por botón estándar con clase cata-button
- Arreglar estilos del modal para respetar colores personalizados del usuario
  - Aplicar clases cata-bg a content, header, body y footer
  - Aplicar clase cata-text al título mediante slot personalizado
  - Aplicar clase cata-outline-box al content para bordes consistentes
  - Agregar backdrop-blur-sm al overlay
- Mantener consistencia visual con el resto de la aplicación
2025-10-19 01:21:00 -06:00
7bb531056c Fix: Asegurar inicialización correcta del valor por defecto en modal
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Agregar watcher que resetea el estado cuando el modal se abre
- Asegurar que puntajeDeseado siempre inicie en 40
- Eliminar setTimeout del método cerrar() (ya no necesario)
- Soluciona problema donde el botón Continuar no funcionaba con valor 40
2025-10-19 01:15:01 -06:00
f7fea29437 Refactor: Simplificar modal de asignación rápida eliminando textos explicativos
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Eliminar descripción del modal
- Simplificar paso 1: solo input sin textos explicativos
- Simplificar paso 2: subtítulo compacto con [icono] + "Sobresale"/"Palidece" + x/t
- Eliminar texto de contador duplicado
- Eliminar sección de resumen de distribución
- Interfaz más limpia y directa
2025-10-19 01:12:43 -06:00
0a8ad036c4 Feat: Usar flechas contextuales en selección de categorías
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Categorías que sobresalen: flecha arriba (i-heroicons-arrow-up-circle-solid)
- Categorías que palidecen: flecha abajo (i-heroicons-arrow-down-circle-solid)
- Mantener color del icono según el color de cada categoría
2025-10-19 01:07:15 -06:00
6c9ad356b1 Fix: Actualizar modal a sintaxis Nuxt UI v4 y aplicar estilos consistentes
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
- Actualizar ModalAsignacionRapida a sintaxis correcta de Nuxt UI v4
  - Usar v-model:open en lugar de v-model
  - Usar slots #body y #footer directamente
  - Eliminar UCard (deprecado)

- Aplicar clases cata-* para mantener consistencia con el resto de la app
  - Usar cata-text para textos
  - Usar cata-button para botones
  - Usar cata-input para inputs
  - Usar cata-outline-box para bordes

- Respetar colores personalizados del usuario mediante variables CSS
  - selected-category usa var(--cata-primary)
  - Soporte para modo oscuro con efectos de sombra

- Eliminar icono de estrella/rayo del BotonNubeCaustica
  - Simplificar diseño dejando solo la nube con patrones cáusticos
  - Eliminar animación sparkle asociada

- Integrar modal correctamente en FormularioMuestra
  - Mover botón dentro del slot por defecto del modal
  - Eliminar modal duplicado del template
2025-10-19 01:01:55 -06:00
f6dc2c3bce Feat: Implementar asignación rápida de puntajes con botón de nube cáustica
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Crear ModalAsignacionRapida.vue con lógica de distribución por múltiplos de 8
  - Input numérico (8-80) para puntaje total deseado
  - Cálculo automático del múltiplo de 8 más cercano
  - Si múltiplo < valor: permite seleccionar categorías que sobresalen (+1)
  - Si múltiplo > valor: permite seleccionar categorías que palidecen (-1)
  - Si múltiplo = valor: asignación directa sin ajustes

- Crear BotonNubeCaustica.vue con diseño especial
  - Forma de nube usando SVG path
  - Animación de patrones de luz cáustica con gradientes animados
  - Efectos de brillo y ondas al hacer hover
  - Icono de rayo mágico con animación sparkle

- Integrar funcionalidad en FormularioMuestra.vue
  - Ubicar botón en esquina superior izquierda de sección Descriptiva/Afectiva
  - Aplicar puntajes calculados a todas las categorías descriptivas
  - Actualizar puntaje final automáticamente

- Corregir comentario: "Suma de valores descriptivos" (era "afectivos")
2025-10-19 00:56:20 -06:00