---
title: Права (entitlements)
description: Права наполняют тариф и используются как гейты в коде приложения.
---

# Права (entitlements)

**Entitlement** — право на фичу. Оно **не продаётся само по себе**: продаётся **тариф**, а права к нему привязаны.

В коде после покупки проверяйте **коды прав**, не название тарифа:

```ts
await platform.hasEntitlement("cloud_sync");
```

Так одна фича может входить в несколько тарифов без смены клиентского кода.

## Роль в модели

```text
Тариф (главный)
  └── права тарифа  ← справочник entitlements + plan_entitlements
```

Админка: сначала заводите права (справочник), потом собираете из них тарифы.  
Интеграция: думайте «какой тариф купили → какие права он дал».

## Поля

| Поле | Обязательно | Заметки |
| --- | --- | --- |
| `code` | да | `hasEntitlement('code')` |
| `name` | да | Для админки / UI |
| `description` | нет | Опционально |

## Примеры кодов

```text
premium_feature
cloud_sync
export_hd
```

## Runtime

```ts
const ok = await platform.hasEntitlement("premium_feature");
```

```dart
final ok = await platform.hasEntitlement('premium_feature');
```

`GET .../entitlements/me` → `codes[]` + строки с `source`, `starts_at`, `expires_at`, `is_lifetime` (срок зеркалит подписку/тариф).

## Правила

- Free-локальные фичи обычно **без** серверного entitlement.
- Платные фичи — entitlement на **платном тарифе**.
- Не плодите право на каждый прайс — право на capability, тарифы разные.
