# add_product_services

Add one or more services to a product. Each service requires a service ID and an offering type (INCLUDED or OPTIONAL).
Services must belong to the same building as the product and not already be assigned.

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `productId` | `string` | Yes | The ID of the product to add services to |
| `services` | `ServiceToAdd[]` | Yes | Array of services to add with their offering types - [ServiceToAdd](#servicetoadd) |

### ServiceToAdd

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `serviceId` | `string` | Yes | The ID of the service to add |
| `serviceOffering` | `ServiceOffering` | Yes | Whether the service is INCLUDED in the product price or OPTIONAL for the guest - [ServiceOffering](#serviceoffering) |

### ServiceOffering

| Value | Description |
| --- | --- |
| `INCLUDED` | Service is bundled into the product price (charged automatically) |
| `OPTIONAL` | Service is optional and the guest can add it at booking time |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
