# Respaldos y mantenimiento

## Paso a paso

Las tareas más comunes, resumidas. El detalle de cada una está en las secciones numeradas.

### Hacer un respaldo ahora

1. En el menú lateral abre **⚙️ Configuración → Respaldos**.
2. Pulsa **💾 Respaldar Ahora**.

Ver sección 4.

### Regresar el sistema a un respaldo anterior

1. Asegúrate de que en la caja no estén cobrando (el sistema te avisa si hay alguien conectado).
2. En **⚙️ Configuración → Respaldos**, pulsa **♻️ Restaurar** en el respaldo que quieres.
3. Lee el aviso, acepta y escribe tu PIN de administrador.
4. Espera unos segundos a que termine.

Si te equivocaste de respaldo, restaura el que dice `antes-de-restaurar`. Ver sección 5.

## 1. ¿Qué es Respaldos y Mantenimiento?

Es la sección donde se protege toda la información del negocio: copias de seguridad de la base de datos y restauración ante un problema. Se abre desde el menú lateral en **⚙️ Configuración → Respaldos**.

**Quién puede usarlo:** exclusivo de **administrador**. Restaurar un respaldo además pide confirmar y **reconfirmar el PIN del administrador**, porque reemplaza los datos en pantalla.

**Nada se borra a mano:** desde esta pantalla no se pueden eliminar respaldos ni reiniciar el sistema a valores de fábrica. Así nadie puede perder la información del negocio por accidente (o a propósito). La limpieza de respaldos viejos la hace el sistema solo (sección 6).

## 2. Respaldos automáticos (sin hacer nada)

El sistema ya se respalda solo, sin intervención:

- **Al arrancar el servidor**: toma un respaldo (`auto`) solo si el último respaldo existente tiene **más de 3 horas** — así, reiniciar el servidor varias veces seguidas no llena la rotación de respaldos inútiles.
- **Cada 6 horas** mientras el servidor está encendido: un respaldo `auto`.
- **Al cerrar el servidor** (Ctrl+C, cierre del proceso o al detener el servicio de Windows): un último respaldo (`cierre`), solo si el último respaldo tiene más de 10 minutos de antigüedad.
- **Al actualizar Anaquelia**: la primera vez que arranca una versión nueva, antes de adaptar la base de datos, toma un respaldo `antes-de-actualizar` de cómo estaba con la versión anterior.
- **Antes de importar datos** (**Configuración → Importar datos**): toma un respaldo `antes-de-importar` justo antes de escribir la importación. Con ese respaldo puedes deshacerla (ver [Migrar desde otro sistema, sección 11](./migrar-desde-otro-sistema.md#11-cómo-deshacer-una-importación)).

Cada respaldo se verifica de inmediato: se abre una copia temporal, se corre una revisión de integridad y se confirma que tenga las tablas esperadas. **Si un respaldo sale dañado, se borra automáticamente y se reporta el error** en vez de dejarlo ahí como si fuera válido.

## 3. La tabla de respaldos

Muestra cada respaldo con: nombre de archivo, fecha y hora, tamaño, y la acción **♻️ Restaurar** — recuperar el sistema al estado de ese respaldo (sección 5).

### 3.1 Copia fuera de esta máquina (opcional, muy recomendada)

Arriba de la tabla está el campo **Carpeta de copia externa**. Escribe la ruta de una carpeta que ya exista en una **USB** o en una carpeta sincronizada con la nube (OneDrive, Google Drive), por ejemplo `E:\Respaldos Anaquelia`, y pulsa **Guardar**. Desde ese momento cada respaldo también se copia ahí. Déjala vacía y guarda para dejar de copiar fuera.

- Al guardar, el sistema comprueba que la carpeta exista y que se pueda escribir en ella. Si es una USB, conéctala antes.
- No uses letras de unidades de red (`Z:` y similares): en una instalación, Anaquelia corre como servicio de Windows y no ve esas unidades.
- También se puede elegir en el asistente de primer arranque, o fijar con la variable `BACKUP_OFFSITE_DIR` (o la línea `BACKUP_OFFSITE_DIR=...` en `C:\ProgramData\Anaquelia\anaquelia.env`). Si viene de ahí tiene prioridad y el campo aparece bloqueado.
- Restaurar un respaldo viejo no cambia la carpeta externa: es configuración de esta computadora.

El aviso arriba del campo indica:

- Si **no hay carpeta**: que los respaldos solo viven en este equipo.
- Si **hay carpeta y funciona**: que cada respaldo también se copia ahí.
- Si **el último intento falló** (USB desconectada, etc.): el error. Esto **nunca** hace fallar el respaldo local, que siempre es el que cuenta para todo lo demás (rotación, restauración, etc.).

Debajo de la tabla se muestra la versión del sistema instalada.

### 3.2 Licencia del equipo

Debajo de la versión está la tarjeta **Licencia del equipo**. Muestra:

- Si la licencia está activa, para qué negocio es y hasta cuándo vale (si tiene fecha de vencimiento).
- Si estás en **prueba gratis**, cuántos días te quedan y hasta qué fecha. La prueba dura 30 días y se empieza con el botón **Empezar prueba gratis de 30 días** (aparece mientras el equipo no tiene licencia válida). Cada equipo tiene una sola prueba.
- El **Código de este equipo**, que se le envía a Anaquelia para emitir una licencia para esta computadora.
- Si el equipo no tiene una licencia válida, el campo **Código de compra** con el botón **Activar con internet** (solo necesita internet esta vez). Debajo está **¿Sin internet? Pega la clave que te enviamos**, para activarla a mano con la clave que te enviaron. Durante la prueba también puedes escribir el código de compra: al activarlo, la prueba se cambia por la licencia comprada y tus datos no se mueven.

Al terminar la prueba, o si el equipo no tiene licencia, el sistema no registra ventas ni compras. Respaldos, consulta de reportes e información siguen funcionando, así que al faltar la licencia tus datos no se borran.

La licencia no afecta los respaldos: puedes respaldar y consultar aunque no esté activa. Lo que se bloquea es registrar ventas, compras y encargos (ver [Punto de Venta, sección 11](./pos.md#11-preguntas-frecuentes)). La tarjeta solo la ve el administrador. Cómo activarla la primera vez está en [Instalación](./instalacion.md#activar-la-licencia-del-equipo).

## 4. Crear un respaldo manual

Clic en **💾 Respaldar Ahora** — crea de inmediato un respaldo etiquetado `manual`. Útil antes de hacer un cambio importante o simplemente para tener un punto de recuperación reciente.

## 5. Restaurar un respaldo

1. Clic en **♻️ Restaurar** en la fila del respaldo deseado.
2. Un diálogo rojo advierte que esto **reemplazará TODOS los datos actuales** (inventario, ventas, devoluciones) por lo que había en ese respaldo, y que se guardará automáticamente un respaldo de seguridad del estado actual antes de proceder, por si hay que deshacerlo.
3. Al aceptar, se pide el **PIN del administrador** para confirmar.
4. Durante la restauración, el sistema entra en **modo mantenimiento**: cualquier otra petición al API (de cualquier usuario) recibe un aviso de "El sistema está restaurando datos. Intenta de nuevo en unos segundos." hasta que termina.

### 5.1 Qué se conserva siempre al restaurar

Restaurar un respaldo **no** trae de vuelta todo tal cual estaba — dos cosas del presente se conservan intencionalmente para no perder trabajo real hecho después de ese respaldo:

- Las **cuentas de empleados actuales** (PIN, roles, altas y bajas) — un respaldo viejo nunca reactiva a alguien dado de baja ni reinstala un PIN antiguo.
- Los **clientes de El Fiado y sus abonos actuales** — son deudas reales de dinero, no datos de catálogo que un respaldo viejo deba poder "revivir".

Todo lo demás (productos, lotes, proveedores, ventas, devoluciones, cortes de caja, movimientos de caja) sí se reemplaza por lo que traía el respaldo elegido.

### 5.2 Si la restauración falla a medias

El sistema primero valida que el archivo elegido sea una base de datos de Anaquelia íntegra antes de tocar nada. Si aun así la copia falla durante el proceso, se **revierte automáticamente** al respaldo de seguridad tomado justo antes de empezar, dejando el sistema como estaba.

## 6. Rotación automática (para no llenar el disco)

No es necesario borrar respaldos manualmente por espacio: el sistema limpia solo, con dos reglas distintas según el tipo de respaldo:

- **Respaldos automáticos** (`auto` y `cierre`): se conservan los **30 más recientes**; los más viejos se eliminan solos.
- **Respaldos protegidos** (`manual`, `antes-de-restaurar`, `antes-de-actualizar`, `antes-de-importar` (ver [Migrar desde otro sistema](./migrar-desde-otro-sistema.md)), y los `antes-de-reset-fabrica` que existan de versiones anteriores): **nunca se borran por antigüedad** — solo hay un tope de seguridad de **100** para no llenar el disco por completo. Un respaldo manual o uno tomado justo antes de una acción destructiva no desaparece solo porque pasen los días.
- Esta misma rotación se aplica también a la copia externa, si hay una carpeta de copia externa configurada, para que esa carpeta tampoco crezca sin límite.

## 7. Preguntas frecuentes

**¿Con qué frecuencia debo hacer un respaldo manual si ya hay automáticos?**
Los automáticos ya cubren el uso normal (cada 6 horas, más uno al cerrar el sistema). Vale la pena uno manual justo antes de una operación importante que no sea una restauración (esa ya se respalda sola), por ejemplo antes de una limpieza masiva de datos.

**Si restauro un respaldo de hace un mes, ¿pierdo a los empleados que di de alta después?**
No. Las cuentas de empleados actuales siempre se conservan al restaurar, sin importar qué tan viejo sea el respaldo elegido.

**¿Puedo deshacer una restauración si me equivoqué de archivo?**
Sí: el sistema toma automáticamente un respaldo (`antes-de-restaurar`) justo antes de restaurar, así que puedes volver a restaurar ese respaldo para regresar al estado inmediatamente anterior.

**¿Por qué me piden mi PIN otra vez si ya inicié sesión como administrador?**
Porque restaurar un respaldo es una acción que **reemplaza datos del negocio de forma irreversible en el momento** (más allá del respaldo de seguridad); reconfirmar el PIN evita que se ejecute por accidente o por una sesión dejada abierta.

**¿Cómo borro respaldos viejos o reinicio el sistema desde cero?**
No se puede desde el sistema, a propósito. Los respaldos automáticos viejos se limpian solos (sección 6). Si de verdad necesitas empezar de cero (por ejemplo, al instalarlo en otra tienda), escríbenos a [contacto@anaquelia.com](mailto:contacto@anaquelia.com).

**¿Qué le pasa a los demás usuarios mientras se restaura un respaldo?**
Durante esos segundos, el sistema completo (para todos, no solo el administrador que lo inició) responde que está en mantenimiento y pide reintentar en un momento; en cuanto termina, vuelve a operar con normalidad.
