Share appointment
# Share Appointment (`shareAppointment`)
Esta mutación permite generar un enlace único de acceso compartido para una cita específica. Adicionalmente, expone un parámetro de seguridad ajustable que permite condicionar el acceso de terceros mediante un código PIN dinámico generado por el sistema.
### Autenticación
> **Tipo:** API Key**
Header:** `x-jwt-token`
**Ubicación:** Header HTTP_
Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...`
## Referencia de la API
### Parámetros de Entrada (Variables)
| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| councilId | Identificador único de la cita a la que se desea permitir el acceso. | SI | Integer |
| requirePin | Parámetro de seguridad para el nivel de acceso: <br>`0` -> Acceso directo sin autenticación adicional. <br>`1` -> Requiere PIN de seguridad (se generará en la respuesta). | SI | Integer |
### Campos de Respuesta (Payload)
La mutación devuelve un objeto `shareAppointment` con el enlace securizado:
| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| shareAppointment | Objeto raíz con los datos del enlace compartido generado. | Object |
| shareAppointment.**url** | Enlace único de acceso directo para auditar la cita. | String |
| shareAppointment.**pin** | Código numérico secreto de acceso. Este campo solo se devolverá si $requirePin fue enviado con valor 1. | Integer |
## Ejemplos de Código y Peticiones
### 1\. Mutación GraphQL
``` graphql
mutation ShareAppointment($councilId: ID!, $requirePin: Int) {
shareAppointment(councilId: $councilId, requirePin: $requirePin) {
url
pin
}
}
```
### 2\. Variables de la Petición (JSON Payload)
``` json
{
"councilId": 64767,
"requirePin": 1
}
```
### 3\. Ejemplo de comando cURL
``` bash
curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"mutation ShareAppointment ($councilId: ID!, $requirePin: Int){ shareAppointment(councilId: $councilId, requirePin: $requirePin) { url pin } }","variables":{"councilId":64767,"requirePin":1}}'
```
### 4\. Respuesta Esperada (200 OK)
``` json
{
"data": {
"shareAppointment": {
"url": "https://l.councilbox.com/to/82e520fb",
"pin": 18065
}
}
}
```
> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/shareappointment` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.
