Creación de reservas automáticas de comedor
Última modificación: 15/12/2023
Reservas
Los usuarios de las aplicaciones móviles de Bookker tienen un alcance, dentro de su organización, que está limitado por los grupos a los que pertenece dicho usuario.
Siendo así, cada usuario tendrá la capacidad de reservar los diferentes recursos que estén asociados a alguno de los grupos del usuario.
Crear reserva de comedor
La reserva de comedor no tiene posibilidad de recurrencia.
No se tienen en cuenta las reglas normales de los recursos (espacios y puestos). En vez de estas, se utilizan unas reglas que se configuran a nivel de edificio. Dentro de estas reglas, podemos encontrar varios parámetros que tendremos que tener en cuenta a la hora de reservar:
- allowMoreThanOneBooking: Booleano que indica si los usuarios pueden tener más de una reserva de comedor por día en el mismo edificio.
- choiceOfPlace: Booleano que indica si en el edificio están permitidas las reservas seleccionando la plaza de comedor o, por el contrario, deben ser reservas automáticas.
- shifts: Son los turnos de reserva que dispone el edificio. Se deberá elegir uno de ellos para poder hacer la reserva.
Acceso al edificio
Dentro de la información de la reserva hay un campo llamado “buildingAccessStatus”, que indica si se ha concedido al usuario acceso al edificio para esa reserva.
Este campo tiene tres posibles valores:
- PENDING: La reserva está pendiente de la aprobación o denegación de acceso.
- GRANTED: Se le ha concedido acceso al edificio.
- DENIED: Se ha rechazado el acceso al edificio.
Request
HTTP request
POST /api/v1/users/me/bookings/dinningareaseats/automatic
POST /api/v1/users/{userId}/bookings/dinningareaseats/automatic
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MT… | true |
Body
En el cuerpo de la solicitud, proporcione una representación JSON del objeto CreateAutomaticDinningAreaBooking.
| Property | Type | Description | Required |
|---|---|---|---|
| Booking | CreateAutomaticDinningAreaBooking | Request con la información para reservar | true |
Response
Si se han conseguido crear las reserva, se devuelve un código 201 con la información de las mismas.
Workstation
HTTPS/1.1 200 OK
Content-type: application/json
{
"bookings": [
{
"id": "a4210d83-1c8b-4cb1-b1a2-87678f131266",
"multipleBookingId": "2dfde059-da65-49c9-8db3-dccc4f329245",
"startDate": 1602424800000,
"endDate": 1602428400000,
"duration": 3600000,
"status": "PENDING",
"accessControlType": "ORGANIZER",
"creator": {
"id": "304a9cba-ad72-49a1-8782-9ac9a36cd8e7",
"name": "Aitor",
"surname": "Jupiter",
"alias": "072919a68fbd42aead115dbee1b02620",
"email": "aitor.gil@bookkercorp.com",
"organization": {
"id": "8aee218a-fce2-4900-9410-00f485a2729e"
},
"userRule": {
"id": "304a9cba-ad72-49a1-8782-9ac9a36cd8e7"
},
"mobileRole": {
"id": "1dfde059-da65-49c9-8db3-dccc4f3292e4"
},
"canBeSearched": false,
"type": "BOOKKER_INTERNAL",
"userLanguage": "es"
},
"organizer": {
"id": "304a9cba-ad72-49a1-8782-9ac9a36cd8e7",
"name": "Aitor",
"surname": "Jupiter",
"alias": "072919a68fbd42aead115dbee1b02620",
"email": "aitor.gil@bookkercorp.com",
"organization": {
"id": "8aee218a-fce2-4900-9410-00f485a2729e"
},
"userRule": {
"id": "304a9cba-ad72-49a1-8782-9ac9a36cd8e7"
},
"mobileRole": {
"id": "1dfde059-da65-49c9-8db3-dccc4f3292e4"
},
"canBeSearched": false,
"type": "BOOKKER_INTERNAL",
"userLanguage": "es"
},
"resource": {
"id": "729ec5ec-76df-41a7-bf82-9c6b8296b237",
"name": "B-P1-COMEDOR-10",
"posterCode": "B-P1-COMEDOR-10",
"image": "https://api.develop.bookkercorp.com/api/v1/bookker/download/organizations/8aee218a-fce2-4900-9410-00f485a2729e/users/5432a51ff76e4e349a0fcd6759eeaa0a.jpeg",
"approachable": false,
"floor": {
"id": "14ab4017-1261-46ff-af05-eadf5d3d69e8"
},
"subcategory": {
"id": "ddbf3210-e907-45eb-8b33-efb649b00b02",
"name": "Plaza de comedor",
"category": "DINNING_AREA",
"organization": {
"id": "8aee218a-fce2-4900-9410-00f485a2729e"
},
"deleteHistorial": false,
"hideBookings": false,
"canBeSearched": true,
"shifts": false
},
"visible": true
},
"resourceType": "DINNING_AREA",
"buildingAccessStatus": "PENDING",
"dinningAreaRuleShift": {
"id": "e5e5db75-be33-4d27-b36b-48b3a32fa731",
"dinningAreaRuleId": "758a81f3-f171-404b-b48c-c922828aed49",
"startMs": 57600000,
"endMs": 61200000
}
}
]
}
DinningAreaBooking
{
"bookingDays": [
{
"startDate": 1602409184000
}
],
"dinningAreaRuleShiftId": "e5e5db75-be33-4d27-b36b-48b3a32fa731",
"buildingId": "758a81f3-f171-404b-b48c-c922828aed49",
"floorId": "758a81f3-f171-404b-b48c-c922828aed49", // El uso de floorId será obligatorio en futuras versiones
"maxCostPerHour": 3.99 // Opcional
}