# ContactCondition

Type: object

## Properties

## Discriminator

Use `type` with one of `searchText`, `archiveStatus`, `createdAt`, `firstSeen`, `lastInteraction`, `chatCount`, `customFieldText`, `customFieldDate`, `hasAnyTag`, `hasAnyChannel`.

## Variants

### SearchTextCondition

Discriminator value: `searchText`

Required fields: `type`, `text`

- `type` (enum, required)
- `text` (string, required)

```json
{
  "type": "searchText",
  "text": "string"
}
```

### ArchiveStatusCondition

Discriminator value: `archiveStatus`

Required fields: `type`, `status`

- `type` (enum, required)
- `status` (ArchiveStatus, required)

```json
{
  "type": "archiveStatus",
  "status": "active"
}
```

### CreatedAtCondition

Discriminator value: `createdAt`

Required fields: `type`, `operator`

- `type` (enum, required)
- `operator` (enum, required)
- `start` (string, optional)
- `end` (string, optional)
- `days` (integer, optional)

```json
{
  "type": "createdAt",
  "operator": "before",
  "start": "string",
  "end": "string",
  "days": 0
}
```

### FirstSeenCondition

Discriminator value: `firstSeen`

Required fields: `type`, `operator`

- `type` (enum, required)
- `operator` (enum, required)
- `start` (string, optional)
- `end` (string, optional)
- `days` (integer, optional)

```json
{
  "type": "firstSeen",
  "operator": "before",
  "start": "string",
  "end": "string",
  "days": 0
}
```

### LastInteractionCondition

Discriminator value: `lastInteraction`

Required fields: `type`, `operator`

- `type` (enum, required)
- `operator` (enum, required)
- `start` (string, optional)
- `end` (string, optional)
- `days` (integer, optional)

```json
{
  "type": "lastInteraction",
  "operator": "before",
  "start": "string",
  "end": "string",
  "days": 0
}
```

### ChatCountCondition

Discriminator value: `chatCount`

Required fields: `type`, `operator`, `window`

- `type` (enum, required)
- `operator` (enum, required)
- `min` (integer, optional)
- `max` (integer, optional)
- `window` (EngagementWindow, required)

```json
{
  "type": "chatCount",
  "operator": "atLeast",
  "min": 0,
  "max": 0,
  "window": {
    "type": "lifetime",
    "days": 0
  }
}
```

### CustomFieldTextCondition

Discriminator value: `customFieldText`

Required fields: `type`, `fieldId`, `operator`

- `type` (enum, required)
- `fieldId` (string, required)
- `operator` (enum, required)
- `value` (string, optional)
- `values` (array<string>, optional)

```json
{
  "type": "customFieldText",
  "fieldId": "string",
  "operator": "equals",
  "value": "string",
  "values": [
    "string"
  ]
}
```

### CustomFieldDateCondition

Discriminator value: `customFieldDate`

Required fields: `type`, `fieldId`, `operator`

- `type` (enum, required)
- `fieldId` (string, required)
- `operator` (enum, required)
- `start` (string, optional)
- `end` (string, optional)
- `days` (integer, optional)

```json
{
  "type": "customFieldDate",
  "fieldId": "string",
  "operator": "before",
  "start": "string",
  "end": "string",
  "days": 0
}
```

### HasAnyTagCondition

Discriminator value: `hasAnyTag`

Required fields: `type`, `tagIds`

- `type` (enum, required)
- `tagIds` (array<string>, required)

```json
{
  "type": "hasAnyTag",
  "tagIds": [
    "string"
  ]
}
```

### HasAnyChannelCondition

Discriminator value: `hasAnyChannel`

Required fields: `type`, `channels`

- `type` (enum, required)
- `channels` (array<ContactChannel>, required)

```json
{
  "type": "hasAnyChannel",
  "channels": [
    "whatsapp"
  ]
}
```

