# Booking Endpoint

This endpoint will trigger when booking, accommodation or reservations have been created / modified.

* Booking is Added
* Booking is Updated
* Booking is Deleted
* Booking Session is Added
* Booking Session is Updated
* Booking Session is Deleted
* Booking Accommodation is Added
* Booking Accommodation is Updated
* Booking Accommodation is Deleted
* Booking Room Reservation is Added
* Booking Room Reservation is Updated
* Booking Room Reservation is Deleted
* Booking Note is Added
* Booking Note is Updated
* Booking Note is Deleted
* Booking Moved *- A special notification to handle when a booking in iVvy has been moved.*
* Space Blockout is Added
* Space Blockout is Updated
* Space Blockout is Deleted
* Document is Generated
* Document is Deleted
* BEO is Generated
* BEO is Deleted

## Booking is Added

### Subject

BookingAdded

### Body

```json
{
    "data": {... JSON Response from getBooking API }
}
```

## Booking is Updated

### Subject

BookingUpdated

### Body

```json
{
    "data": {... JSON Response from getBooking API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking is Moved

### Subject

BookingMoved

### Body

```json
{
    "data": {... JSON Response from getBooking API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking is Deleted

### Subject

BookingDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "bookingStatus": 2,
    "accommodationIds": [567, 789],
    "roomReservationIds": [],
    "sessionIds": [789, 567]
}
```

## Booking Session is Added

### Subject

BookingSessionAdded

### Body

```json
{
    "data": {... JSON Response from getBookingSessionList API }
}
```

## Booking Session is Updated

### Subject

BookingSessionUpdated

### Body

```json
{
    "data": {... JSON Response from getBookingSessionList API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking Session is Deleted

### Subject

BookingSessionDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "sessionId": 567
}
```

## Booking Accommodation is Added

### Subject

BookingAccommodationAdded

### Body

```json
{
    "data": {... JSON Response from getBookingAccommodationList API }
}
```

## Booking Accommodation is Updated

### Subject

BookingAccommodationUpdated

### Body

```json
{
    "data": {... JSON Response from getBookingAccommodationList API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking Accommodation is Deleted

### Subject

BookingAccommodationDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "bookingStatus": 2,
    "accommodationId": 567,
}
```

## Booking Room Reservation is Added

### Subject

BookingRoomReservationAdded

### Body

```json
{
    "data": {... JSON Response from getBookingRoomReservationList API }
}
```

## Booking Room Reservation is Updated

### Subject

BookingRoomReservationUpdated

### Body

```json
{
    "data": {... JSON Response from getBookingRoomReservationList API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking Room Reservation is Deleted

### Subject

BookingRoomReservationDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "bookingStatus": 2,
    "reservationId": 567,
    "roomIds": [123, 456]
}
```

## Booking Note is Added

### Subject

BookingNoteAdded

### Body

```json
{
    "data": {... JSON Response from getBookingNoteList API }
}
```

## Booking Note is Updated

### Subject

BookingNoteUpdated

### Body

```json
{
    "data": {... JSON Response from getBookingNoteList API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Booking Note is Deleted

### Subject

BookingNoteDeleted

### Body

```json
{
    "noteId": 123,
}
```

## Space Blockout is Added

### Subject

SpaceBlockoutAdded

### Body

```json
{
    "data": {... JSON Response from getSpaceBlockoutList API }
}
```

## Space Blockout is Updated

### Subject

SpaceBlockoutUpdated

### Body

```json
{
    "data": {... JSON Response from getSpaceBlockoutList API },
    "previousData": {... Previous Data in JSON which has been just updated }
}
```

## Space Blockout is Deleted

### Subject

SpaceBlockoutDeleted

### Body

```json
{
    "venueId": 123,
    "spaceBlockoutId": 234,
}
```

## Document is Generated

### Subject

BookingDocumentGenerated

### Body

```json
{
    "data": {... JSON Response from getBookingDocumentList API },
    "previousData": {}
}
```

## Document is Deleted

### Subject

BookingDocumentDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "documentId": 345,
}
```

## BEO is Generated

### Subject

BookingBeoGenerated

### Body

```json
{
    "data": {... JSON Response from getBookingBeoList API },
    "previousData": {}
}
```

## BEO is Deleted

### Subject

BookingBeoDeleted

### Body

```json
{
    "venueId": 123,
    "bookingId": 234,
    "beoId": 345,
}
```
