# API de participaciones del dependiente

## Definición

Una participación vigente representa una `InvoicePromotionApplication` que:

- pertenece al dependiente autenticado
- tiene `status = applied`
- está ligada a la revisión vigente de la factura
- pertenece a una factura `confirmed`
- no está sustituida
- no está anulada

## Endpoints

| Método | Ruta | Permiso |
|---|---|---|
| GET | `/api/v1/participant/participations` | `participant_participations.view_any` |
| GET | `/api/v1/participant/participations/{participation}` | `participant_participations.view` |

## Listado

`GET /api/v1/participant/participations`

Filtros:

- `page`
- `per_page`
- `promotion_id`
- `status`
- `invoice_number`
- `registered_from`
- `registered_to`
- `sort`: `processed_at`, `tickets_count`, `created_at`
- `direction`

## Contrato mínimo

Cada fila devuelve:

- UUID público de la participación
- promoción resumida
- factura resumida
- número de factura
- fecha de factura
- farmacia resumida
- estado y etiqueta
- cantidad de items aplicables
- boletos válidos
- boletos anulados
- primer número vigente
- último número vigente
- fecha de aplicación

## Detalle

`GET /api/v1/participant/participations/{participation}`

Usa las mismas reglas de propiedad y vigencia del listado.

Si el recurso no debe mostrarse como vigente:

- `404 PARTICIPATION_NOT_FOUND`

## Qué no aparece como vigente

- aplicaciones `superseded`
- aplicaciones `voided`
- aplicaciones de revisiones anteriores
- aplicaciones de otro dependiente
- aplicaciones de facturas anuladas

## Relación con boletos anulados

Los boletos anulados pueden seguir apareciendo por el endpoint de tickets si se filtran por estado, pero eso no convierte una aplicación histórica en participación vigente.
## Sucursal de farmacia

`pharmacy.branch_name` identifica la sucursal conservada por la factura. React debe incluirla en detalles y listados cuando existan códigos repetidos.
