# Arsenal Nexora 1.6.8 - Catalog Operations & Readiness

## Objetivo

Completar la administración a escala del catálogo después de Bulk Catalog 1.6.6 y Bulk Publish 1.6.7. Esta fase añade mantenimiento masivo, presets guardados, validación integral y rollback controlado sin modificar la compra pública ni la codificación del ítem.

## 1. Edición masiva

Desde `AdminCP -> Arsenal Nexora -> Catálogo` se pueden seleccionar hasta 500 configuraciones y cambiar únicamente los campos activados:

- precio normal;
- stock;
- límite histórico por cuenta;
- categoría;
- orden;
- destacado;
- promoción: conservar, quitar o establecer precio/fechas.

No modifica `Section:Index`, nivel, Excellent, Ancient, Harmony, Socket, 380, dimensiones, artwork ni estado Publicado/Oculto.

La edición utiliza dos pasos:

1. `Previsualizar cambios`: calcula el diff por configuración y valida el estado comercial resultante.
2. `Aplicar`: vuelve a validar con filas bloqueadas en SQL, crea el snapshot de rollback y actualiza el lote dentro de la misma transacción.

Si una configuración produciría un estado inválido, el lote no se aplica parcialmente.

## 2. Presets personalizados

La pantalla `Carga masiva` puede guardar configuraciones reutilizables por reino. Cada preset conserva:

- preset técnico base;
- precio;
- stock;
- límite por cuenta;
- orden;
- categoría forzada opcional.

La selección de ítems no se guarda dentro del preset.

La categoría forzada es opcional. Vacía conserva la categoría automática por Section.

## 3. Readiness del catálogo

Nueva sección:

`AdminCP -> Arsenal Nexora -> Operaciones`

El inspector revisa todas las configuraciones del reino activo contra el catálogo técnico y Smart Options. Separa:

- Bloqueos: configuración técnicamente inválida.
- Advertencias: por ejemplo stock 0 o media configurada ausente.
- Advisories: situaciones válidas que conviene revisar, como promociones vencidas o varios productos compartiendo el mismo `Section:Index`.

El validador no cambia datos.

## 4. Rollback de operaciones masivas

1.6.8 crea snapshots solo para campos que una operación masiva realmente modifica.

Operaciones cubiertas:

- publicar/ocultar seleccionados;
- publicar todos los ocultos;
- edición masiva comercial.

El rollback usa control de concurrencia:

- guarda estado `before` y `after` por fila;
- al revertir compara el valor actual con `after`;
- si la fila cambió después, no la pisa y la reporta como conflicto;
- las filas que siguen coincidiendo se restauran dentro de una transacción.

No existe rollback de compras ni de entregas históricas.

## 5. Tablas administrativas nuevas

Se crean por reino:

- `NEXORA_ITEMSHOP_PRESETS`
- `NEXORA_ITEMSHOP_BULK_HISTORY`

No alteran `NEXORA_ITEMSHOP_ITEMS` ni `NEXORA_ITEMSHOP_ORDERS`.

Después del PATCH, ejecutar una vez en Legado y Seasonal:

`AdminCP -> Arsenal Nexora -> Configuración -> Instalar / validar tablas`

El diagnóstico `Operaciones, presets y rollback 1.6.8` debe quedar en verde.

## 6. Seguridad

- continúa usando CSRF central del AdminCP;
- operaciones limitadas al realm operativo activo;
- IDs normalizados server-side;
- edición masiva limitada a 500 configuraciones;
- publicación seleccionada conserva límite de 2.000 IDs;
- rollback no sobrescribe filas modificadas después de la operación original;
- auditoría registra `itemshop.bulk_edit`, `itemshop.bulk_visibility`, `itemshop.bulk_rollback`, `itemshop.preset_save` y `itemshop.preset_delete`.

## Sin cambios

Las funciones críticas permanecen idénticas a 1.6.7:

- `purchase()`
- `encodeItem()`
- `saveItem()`
- `deleteItem()`

Tampoco cambia el JavaScript público de Arsenal, Warehouse, seriales ni encoder DbVersion 3 0-511.
