crm → competitions
Зачем нужно
CRM выдаёт коммерческие entitlements на участие в платных олимпиадах и конкурсах. Competitions проверяет наличие entitlement и активирует регистрацию участника.
Стороны
- источник: crm
- потребитель: competitions
- вид: event-driven
События
| messageType | Когда |
|---|---|
crm.entitlement.activated (с targetDomain = competitions) | право участия активно |
crm.entitlement.revoked | отозвано |
Формат payload — общий с crm--lms.md, различается значение targetDomain и scope:
"scope": {
"competitionEventRef": "olympiad-spring-2026",
"competitionTrackRef": "junior-online",
"tourRefs": ["tour-1","tour-2"]
}
Поведение competitions
- Получив активацию, разрешает регистрацию
competition_registrationна указанное событие/трек. - Если регистрация уже создана — обновляет статус оплаты.
- По revoke — статус регистрации
payment_revoked.
Идемпотентность
- по
entitlementId.
Ошибки
| Сценарий | Поведение |
|---|---|
| competitionEventRef неизвестен | DLQ + алерт |
| регистрация уже завершена | игнор |
| участник без identity | competitions использует competition_participant без userId |
Scopes
| Scope | Для чего |
|---|---|
service:crm.entitlements.read | проверить entitlement для регистрации |
service:crm.entitlements.events.consume | принимать entitlement events от CRM |
Retention
- события 7 лет.