# Solicitud de baja de usuario

Base URL: **`/api`**. Endpoint **público**, no requiere JWT.

---

## Endpoint

```http
POST /api/unsubscribe
Content-Type: application/json
```

### Body

| Campo | Tipo | Requerido | Descripción |
|-------|------|-----------|-------------|
| `email` | string | Sí | Email del usuario que quiere darse de baja. |
| `dni` | string | Sí | DNI del usuario (máx. 20 caracteres). |
| `reason` | string | Sí | Código del motivo (ver tabla abajo). |
| `comment` | string | No | Comentario adicional libre (máx. 1000 caracteres). |
| `confirm` | boolean | Sí | Debe ser `true` para confirmar la solicitud. |

### Motivos (`reason`)

| Valor | Descripción |
|-------|-------------|
| `no_use` | No lo utilizo |
| `price` | El precio es muy alto |
| `moving` | Me mudé o cambié de zona |
| `health` | Motivos de salud |
| `other_gym` | Me cambié a otro gimnasio |
| `other` | Otro motivo |

> Si se envía un valor de `reason` no listado, se mostrará tal cual en el mail al admin.

---

## Ejemplo de request

```json
{
  "email": "ejemplo@correo.com",
  "dni": "12345678",
  "reason": "no_use",
  "comment": "Comentario adicional opcional sobre los motivos.",
  "confirm": true
}
```

```bash
curl -X POST https://tu-dominio.com/api/unsubscribe \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ejemplo@correo.com",
    "dni": "12345678",
    "reason": "no_use",
    "comment": "Comentario adicional opcional.",
    "confirm": true
  }'
```

---

## Respuestas

### 200 — Solicitud recibida

```json
{
  "message": "Tu solicitud fue recibida. Te enviaremos una confirmación por email en hasta 48 horas hábiles."
}
```

### 422 — Validación fallida

```json
{
  "message": "El email es obligatorio.",
  "errors": {
    "email": ["El email es obligatorio."],
    "confirm": ["Debés confirmar la solicitud."]
  }
}
```

---

## Comportamiento

Al recibir la solicitud el sistema envía **2 emails**:

1. **Al usuario** (`email` del body): confirma que la solicitud fue recibida y que puede tardar hasta 48 horas hábiles.
2. **Al admin** (`ukraine.gym@gmail.com`): incluye email, DNI, motivo y comentario para que procese la baja manualmente.

> La baja **no se procesa automáticamente**. El equipo de Ukraine la gestiona de forma manual a partir del mail recibido.
