# API administrativa: zonas de farmacias

## Catálogo

`pharmacy_zones` es el catálogo normalizado de zonas. Expone UUID público, nombre visible y estado; nunca IDs internos ni el nombre normalizado. Inicialmente el seeder idempotente registra **Zona 1** y **Zona 2** sin alterar UUIDs, relaciones ni estados ya existentes.

## Endpoint

| Método | Ruta | Permisos |
| --- | --- | --- |
| `GET` | `/api/v1/admin/pharmacy-zones` | `pharmacies.view_any`, `pharmacies.create` o `pharmacies.update` |

Por defecto devuelve solo zonas activas por nombre. Acepta opcionalmente `search` y `status=active|inactive|all`.

```json
{
  "data": [{ "id": "uuid-publico", "name": "Zona 1", "is_active": true }]
}
```

## Uso en farmacias

Las respuestas administrativas de farmacia incluyen `zone`, con `{ "id", "name" }`, o `null` para un registro histórico aún sin asignar. El listado acepta `zone_id` (UUID público) y `zone=unassigned`.

`zone_id` es obligatorio al crear y editar, debe identificar una zona activa y se envía como UUID público. La columna interna permanece nullable durante la transición: las farmacias históricas sin zona muestran `zone: null` hasta que un administrador les asigne una al editarlas.
