[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / BookingService

# Class: BookingService

Booking Service - Business logic layer for booking operations

Provides booking management functionality with validation and
business rule enforcement.

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/bookingservice#constructor)


### Methods

- [getAll](/sdk-reference/classes/bookingservice#getall)
- [getByUser](/sdk-reference/classes/bookingservice#getbyuser)
- [getByBusiness](/sdk-reference/classes/bookingservice#getbybusiness)
- [getById](/sdk-reference/classes/bookingservice#getbyid)
- [create](/sdk-reference/classes/bookingservice#create)
- [update](/sdk-reference/classes/bookingservice#update)
- [delete](/sdk-reference/classes/bookingservice#delete)
- [hasValidBooking](/sdk-reference/classes/bookingservice#hasvalidbooking)


## Constructors

### constructor

• **new BookingService**(`bookingApi`): [`BookingService`](/sdk-reference/classes/bookingservice)

#### Parameters

| Name | Type |
|  --- | --- |
| `bookingApi` | [`BookingApi`](/sdk-reference/classes/bookingapi) |


#### Returns

[`BookingService`](/sdk-reference/classes/bookingservice)

#### Defined in

[booking/services/booking-service.ts:17](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L17)

## Methods

### getAll

▸ **getAll**(`options?`): `Promise`<`BookingDTO`[]>

Get all bookings with optional filters

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | [`BookingQueryOptions`](/sdk-reference/interfaces/bookingqueryoptions) | Filter options |


#### Returns

`Promise`<`BookingDTO`[]>

Promise resolving to array of bookings

#### Defined in

[booking/services/booking-service.ts:25](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L25)

### getByUser

▸ **getByUser**(`userId`, `status?`): `Promise`<`BookingDTO`[]>

Get bookings for a specific user

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `userId` | `string` | User ID to filter by |
| `status?` | `BookingStatus` | Optional status filter |


#### Returns

`Promise`<`BookingDTO`[]>

Promise resolving to user's bookings

#### Defined in

[booking/services/booking-service.ts:36](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L36)

### getByBusiness

▸ **getByBusiness**(`businessId`, `status?`): `Promise`<`BookingDTO`[]>

Get bookings for a specific business

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `businessId` | `string` | Business ID to filter by |
| `status?` | `BookingStatus` | Optional status filter |


#### Returns

`Promise`<`BookingDTO`[]>

Promise resolving to business's bookings

#### Defined in

[booking/services/booking-service.ts:47](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L47)

### getById

▸ **getById**(`id`): `Promise`<`BookingDTO`>

Get a single booking by ID

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `id` | `string` | Booking UUID |


#### Returns

`Promise`<`BookingDTO`>

Promise resolving to booking data

#### Defined in

[booking/services/booking-service.ts:57](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L57)

### create

▸ **create**(`data`): `Promise`<`BookingDTO`>

Create a new booking

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `data` | `CreateBookingDTO` | Booking creation data |


#### Returns

`Promise`<`BookingDTO`>

Promise resolving to created booking

#### Defined in

[booking/services/booking-service.ts:67](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L67)

### update

▸ **update**(`id`, `data`): `Promise`<`BookingDTO`>

Update an existing booking

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `id` | `string` | Booking UUID |
| `data` | `UpdateBookingDTO` | Booking update data |


#### Returns

`Promise`<`BookingDTO`>

Promise resolving to updated booking

#### Defined in

[booking/services/booking-service.ts:87](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L87)

### delete

▸ **delete**(`id`): `Promise`<{ `success`: `boolean`  }>

Delete a booking

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `id` | `string` | Booking UUID |


#### Returns

`Promise`<{ `success`: `boolean`  }>

Promise resolving to success status

#### Defined in

[booking/services/booking-service.ts:106](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L106)

### hasValidBooking

▸ **hasValidBooking**(`userId`, `options?`): `Promise`<`boolean`>

Check if a user has an active or future booking

Useful for eligibility checks on redemptions.

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `userId` | `string` | User ID to check |
| `options?` | [`BookingValidationOptions`](/sdk-reference/interfaces/bookingvalidationoptions) | Validation options (status filter, business filter) |


#### Returns

`Promise`<`boolean`>

Promise resolving to true if user has valid booking

#### Defined in

[booking/services/booking-service.ts:119](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/booking/services/booking-service.ts#L119)