API Prenotazioni
Endpoint per la gestione completa del ciclo di vita delle prenotazioni: dalla creazione alla gestione degli ospiti associati.
Lista Prenotazioni (Calendario)
Restituisce tutte le prenotazioni in formato compatibile con i componenti calendario (FullCalendar).
GET /api/prenotazioni
Risposta
[
{
"id": 142,
"title": "Mario Rossi",
"start": "2026-07-20",
"end": "2026-07-25",
"url": "/prenotazioni/142"
},
{
"id": 143,
"title": "John Smith",
"start": "2026-07-22",
"end": "2026-07-28",
"url": "/prenotazioni/143"
}
]
Campi della Risposta
| Campo | Tipo | Descrizione |
|---|---|---|
id |
number |
ID univoco della prenotazione |
title |
string |
Nome e cognome dell’ospite principale |
start |
string |
Data di check-in (formato YYYY-MM-DD) |
end |
string |
Data di check-out (formato YYYY-MM-DD) |
url |
string |
Percorso relativo alla pagina di dettaglio |
Lista Prenotazioni (RESTful)
Restituisce l’elenco completo delle prenotazioni in formato RESTful con tutti i campi.
GET /api/v1/prenotazioni
Risposta
{
"data": [
{
"id": 142,
"nome_cognome": "Mario Rossi",
"lingua": "IT",
"email": "mario.rossi@email.com",
"telefono": "+39 333 1234567",
"paese_id": 380,
"check_in": "2026-07-20",
"check_out": "2026-07-25",
"numero_notti": 5,
"numero_ospiti": 2,
"idf_gen": "ABC123",
"created_at": "2026-07-10T14:30:00Z",
"updated_at": "2026-07-10T14:30:00Z"
}
]
}
Dettaglio Prenotazione
Restituisce i dettagli completi di una singola prenotazione, inclusi i dati degli ospiti associati.
GET /api/v1/prenotazioni/:id
Parametri URL
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id |
number |
✅ | ID della prenotazione |
Esempio di Richiesta
GET /api/v1/prenotazioni/142
Risposta
{
"data": {
"id": 142,
"nome_cognome": "Mario Rossi",
"lingua": "IT",
"email": "mario.rossi@email.com",
"telefono": "+39 333 1234567",
"paese_id": 380,
"check_in": "2026-07-20",
"check_out": "2026-07-25",
"numero_notti": 5,
"numero_ospiti": 2,
"idf_gen": "ABC123",
"ospiti": [
{
"id": 1,
"nome": "Mario",
"cognome": "Rossi",
"sesso": "M",
"data_nascita": "1985-03-15",
"tipo_documento": "PASOR",
"numero_documento": "YA1234567"
}
],
"created_at": "2026-07-10T14:30:00Z",
"updated_at": "2026-07-10T14:30:00Z"
}
}
Crea Prenotazione
Crea una nuova prenotazione. È possibile specificare la durata del soggiorno tramite check_out oppure numero_notti (se entrambi sono presenti, check_out ha la priorità).
POST /api/v1/prenotazioni
Parametri Body
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
nome_cognome |
string |
✅ | Nome e cognome dell’ospite principale |
lingua |
string |
✅ | Codice lingua (es. IT, EN, DE, FR) |
email |
string |
❌ | Indirizzo email |
telefono |
string |
❌ | Numero di telefono |
paese_id |
number |
✅ | ID del paese di provenienza |
check_in |
string |
✅ | Data di arrivo (YYYY-MM-DD) |
check_out |
string |
❌* | Data di partenza (YYYY-MM-DD) |
numero_notti |
number |
❌* | Numero di notti di soggiorno |
numero_ospiti |
number |
✅ | Numero totale di ospiti |
idf_gen |
string |
❌ | Identificativo generato (codice prenotazione esterno) |
[!NOTE]
*È necessario specificare almeno uno tracheck_outenumero_notti. Se viene fornitonumero_notti, la data di check-out viene calcolata automaticamente.
Esempio di Richiesta
{
"nome_cognome": "Maria Bianchi",
"lingua": "IT",
"email": "maria.bianchi@email.com",
"telefono": "+39 340 9876543",
"paese_id": 380,
"check_in": "2026-08-01",
"numero_notti": 7,
"numero_ospiti": 3,
"idf_gen": "BK-2026-001"
}
Risposta (201 Created)
{
"data": {
"id": 144,
"nome_cognome": "Maria Bianchi",
"lingua": "IT",
"email": "maria.bianchi@email.com",
"telefono": "+39 340 9876543",
"paese_id": 380,
"check_in": "2026-08-01",
"check_out": "2026-08-08",
"numero_notti": 7,
"numero_ospiti": 3,
"idf_gen": "BK-2026-001",
"created_at": "2026-07-15T10:00:00Z"
},
"status": 201
}
Aggiorna Prenotazione
Aggiorna i dati di una prenotazione esistente. Vengono modificati solo i campi specificati nel body.
PUT /api/v1/prenotazioni/:id
Parametri URL
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id |
number |
✅ | ID della prenotazione da aggiornare |
Parametri Body
Tutti i parametri della creazione sono accettati. Solo i campi inclusi nel body verranno aggiornati.
Esempio di Richiesta
PUT /api/v1/prenotazioni/144
{
"numero_ospiti": 4,
"check_out": "2026-08-10"
}
Risposta
{
"data": {
"id": 144,
"nome_cognome": "Maria Bianchi",
"numero_ospiti": 4,
"check_in": "2026-08-01",
"check_out": "2026-08-10",
"numero_notti": 9,
"updated_at": "2026-07-15T12:00:00Z"
},
"status": 200
}
Eliminazione in Blocco
Elimina più prenotazioni contemporaneamente.
POST /api/v1/prenotazioni/delete-bulk
Parametri Body
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
ids |
number[] |
✅ | Array di ID delle prenotazioni da eliminare |
Esempio di Richiesta
{
"ids": [140, 141, 143]
}
Risposta
{
"message": "3 prenotazioni eliminate con successo",
"deleted": [140, 141, 143],
"status": 200
}
[!WARNING]
L’eliminazione è permanente e non reversibile. Tutti i dati associati alla prenotazione (ospiti, documenti, lettere) verranno eliminati.
Salva Dati Ospiti
Salva o aggiorna i dati degli ospiti associati a una prenotazione.
POST /api/saveOspiti
Parametri Body
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
prenotazione_id |
number |
✅ | ID della prenotazione a cui associare gli ospiti |
dati |
object[] |
✅ | Array di oggetti con i dati di ciascun ospite |
Struttura Oggetto Ospite (dati)
| Campo | Tipo | Descrizione |
|---|---|---|
nome |
string |
Nome dell’ospite |
cognome |
string |
Cognome dell’ospite |
sesso |
string |
Sesso (M o F) |
data_nascita |
string |
Data di nascita (YYYY-MM-DD) |
luogo_nascita |
string |
Luogo di nascita |
cittadinanza |
string |
Codice cittadinanza |
tipo_documento |
string |
Codice tipo documento |
numero_documento |
string |
Numero del documento |
luogo_rilascio |
string |
Luogo di rilascio del documento |
Esempio di Richiesta
{
"prenotazione_id": 142,
"dati": [
{
"nome": "Mario",
"cognome": "Rossi",
"sesso": "M",
"data_nascita": "1985-03-15",
"luogo_nascita": "Roma",
"cittadinanza": "100000100",
"tipo_documento": "PASOR",
"numero_documento": "YA1234567",
"luogo_rilascio": "411004"
},
{
"nome": "Laura",
"cognome": "Rossi",
"sesso": "F",
"data_nascita": "1987-09-22",
"luogo_nascita": "Roma",
"cittadinanza": "100000100",
"tipo_documento": "IDELE",
"numero_documento": "CA12345AB",
"luogo_rilascio": "411004"
}
]
}
Risposta
{
"message": "Ospiti salvati con successo",
"count": 2,
"status": 200
}