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

# Alertes — règles & périmètre

> Le modèle de règle basé sur les étiquettes (niveau de vérification, inclure/exclure), la portée du périmètre, et les types de déclenchement.

## Règles

Les `rules` d'une alerte décident quelles entités la déclenchent, par **étiquette**.

```json theme={null}
"rules": {
  "operator": "AND",
  "tagRules": [
    { "tagId": "<uuid>", "mode": "INCLUDE" },
    { "tagId": "<uuid>", "mode": "EXCLUDE" }
  ],
  "checkLevel": "PRODUCT"
}
```

| Champ        | Signification                                                                                                                                                   |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operator`   | `AND` (toutes les règles d'étiquette doivent tenir) ou `OR` (n'importe laquelle).                                                                               |
| `tagRules`   | Une ou plusieurs entrées `{ tagId, mode }` ; au moins une requise.                                                                                              |
| `mode`       | `INCLUDE` (l'étiquette doit être présente) ou `EXCLUDE` (doit être absente).                                                                                    |
| `checkLevel` | *(optionnel)* Le niveau auquel les règles sont évaluées : `SHOP`, `BRAND`, `PRODUCT`, `VARIANT`, `INVENTORY_ITEM`. À omettre pour aucune restriction de niveau. |

Pour alerter sur un seuil de métrique, créez d'abord une [règle de tagging](/fr/developers/tagging-rules/overview)
qui étiquette les entités correspondantes, puis référencez cette étiquette ici avec `mode: "INCLUDE"`.

## Périmètre (scope)

`scope` rétrécit quelle partie du catalogue l'alerte couvre. Chaque dimension est optionnelle ;
une dimension absente/vide signifie « pas de restriction ».

```json theme={null}
"scope": {
  "storesIds": ["<uuid>"],
  "brandIds": ["<uuid>"],
  "productIds": [],
  "taxonomies": [ { "type": "SIZE", "values": ["S", "M"] } ],
  "collections": ["<uuid>"]
}
```

| Champ         | Restreint à                                                                   |
| ------------- | ----------------------------------------------------------------------------- |
| `storesIds`   | Magasins spécifiques.                                                         |
| `brandIds`    | Marques spécifiques.                                                          |
| `productIds`  | Produits spécifiques.                                                         |
| `taxonomies`  | Valeurs de dimension — chacun `{ type, values }` (ex. SIZE, COLOR, CATEGORY). |
| `collections` | Collections spécifiques.                                                      |

## Types de déclenchement

Quand une instance est levée, elle porte un **type de déclenchement** décrivant pourquoi :

| Type de déclenchement   | Signification                                                                                  |
| ----------------------- | ---------------------------------------------------------------------------------------------- |
| `THRESHOLD_REACHED`     | La condition est satisfaite maintenant.                                                        |
| `THRESHOLD_APPROACHING` | La condition est en cours d'approche (un `approach_percentage` est enregistré sur l'instance). |
| `FORECASTED_THRESHOLD`  | Une prévision prédit que la condition sera satisfaite.                                         |

## Opérateurs de condition (référence)

Les opérateurs de comparaison de métrique — utilisés par les conditions de métrique des règles de tagging qui alimentent
les étiquettes d'alerte — sont : `LOWER_THAN`, `LOWER_OR_EQUAL`, `GREATER_THAN`, `GREATER_OR_EQUAL`,
`EQUAL`, `NOT_EQUAL`, plus les centiles `TOP_PERCENT` / `BOTTOM_PERCENT`. Les opérateurs de centile
sont évalués par la plateforme de données (une fenêtre `percent_rank()` sur la population scoped).

<Note>
  Les opérateurs scalaires s'appliquent au niveau des lignes ; les deux opérateurs de centile n'ont de sens
  qu'à travers une population, donc ils sont résolus sur la plateforme de données.
</Note>
