> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiinsurance.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Manage coverage limit presets for your company

## Overview

Configuration presets define the available coverage limit options for each coverage type. Each preset specifies a set of named limits (e.g., "Per Occurrence", "Aggregate") with their amounts, and can include additional settings for deductibles, defense costs, retroactive dates, and waiting periods.

Presets are stored in the `coverage_limit_presets` table and are scoped to a company via `company_id`. Each preset references a coverage type via `coverageTypeKey`.

## Key Concepts

* **coverageTypeKey**: The string key of an existing coverage type (global or company-specific). Must exist in the `coverage_types` table.
* **limits**: An object containing an array of named limit amounts and an optional `allowLimitEdits` flag controlling whether users can modify amounts on quotes.
* **isDefault**: Whether this preset is the default for its coverage type. Multiple presets per coverage type are allowed, but only one can be the default. When creating a preset with `isDefault: true`, any existing default for the same coverage type is automatically set to non-default.
* **defenseInsideLimit**: Whether defense costs count inside or outside the limit (`"inside"` or `"outside"`).
* **Settings fields**: Optional JSONB configuration for deductibles, limits, retroactive dates, waiting periods, and prior/pending litigation dates. These are opaque blobs passed through to the rating engine.

## API Endpoints

| Method | Endpoint                            | Description                         |
| ------ | ----------------------------------- | ----------------------------------- |
| GET    | `/configuration/presets`            | List coverage limit presets         |
| POST   | `/configuration/presets`            | Create a new coverage limit preset  |
| DELETE | `/configuration/presets/{presetId}` | Soft-delete a coverage limit preset |

## Permissions

| Action        | Permission       |
| ------------- | ---------------- |
| List presets  | `company:read`   |
| Create preset | `company:update` |
| Delete preset | `company:update` |

## Request Properties

| Property                           | Type    | Required | Description                                            |
| ---------------------------------- | ------- | -------- | ------------------------------------------------------ |
| coverageTypeKey                    | string  | Yes      | Coverage type key (must exist)                         |
| setName                            | string  | Yes      | Display name for the preset                            |
| limits                             | object  | Yes      | Limit definitions (see below)                          |
| isDefault                          | boolean | No       | Whether this is the default preset (defaults to false) |
| defenseInsideLimit                 | string  | No       | `"inside"` or `"outside"`                              |
| deductible                         | number  | No       | Deductible amount in dollars                           |
| retroactiveDate                    | string  | No       | ISO date (YYYY-MM-DD)                                  |
| waitingPeriodSettings              | object  | No       | Waiting period configuration                           |
| deductibleSettings                 | object  | No       | Deductible default amount configuration                |
| limitSettings                      | object  | No       | Limit default amounts configuration                    |
| retroactiveDateSettings            | object  | No       | Retroactive date default amount configuration          |
| priorPendingLitigationDateSettings | object  | No       | Prior/pending litigation date configuration            |

### Limits Object

| Property         | Type             | Required | Description                                                                                      |
| ---------------- | ---------------- | -------- | ------------------------------------------------------------------------------------------------ |
| limits           | array            | Yes      | Array of limit definitions                                                                       |
| limits\[].id     | string           | Yes      | Unique identifier for this limit                                                                 |
| limits\[].name   | string           | Yes      | Display name (e.g., "Per Occurrence")                                                            |
| limits\[].amount | number \| string | No       | Limit amount — a number (e.g. 1000000) or a string (e.g. "100%", "-"). Omit when not applicable. |
| allowLimitEdits  | boolean          | No       | Whether users can edit limit amounts on quotes                                                   |

## Response Properties (GET)

The list endpoint returns `{ items, totalCount }` where each item includes all request properties plus:

| Property  | Type           | Description        |
| --------- | -------------- | ------------------ |
| id        | string (UUID)  | Preset identifier  |
| createdAt | string \| null | ISO 8601 timestamp |
| updatedAt | string \| null | ISO 8601 timestamp |

Nullable fields (`defenseInsideLimit`, `deductible`, `retroactiveDate`, and all settings) return `null` when not set.
