Перейти к основному содержимому

crm → lms

Зачем нужно

CRM выдаёт коммерческие права доступа (entitlements) и сообщает LMS, какие учебные subjects имеют право учиться по каким продуктам. Покупатель/плательщик и получатель продукта не обязаны совпадать.

Стороны

  • источник: crm
  • потребитель: lms
  • вид: event-driven

События

messageTypeКогда
crm.entitlement.activatedправо доступа активно
crm.entitlement.suspendedвременно приостановлено
crm.entitlement.resumedвозобновлено
crm.entitlement.expiredсрок истёк
crm.entitlement.revokedотозвано (рефанд, ручная отмена)

Payload crm.entitlement.activated

{
"entitlementId": "uuid",
"accountId": "uuid",
"purchaserUserId": "uuid?",
"beneficiary": {
"type": "student_profile|user|family_group|organization|manual",
"ref": "uuid?"
},
"enrollmentSubject": {
"type": "student_profile|user|organization_student|manual",
"ref": "uuid"
},
"productRef": "string",
"productRunId": "uuid?",
"targetDomain": "lms",
"scope": {
"courseRef": "string?",
"groupId": "uuid?",
"topicRefs": ["string"]
},
"startsAt": "ISO 8601",
"endsAt": "ISO 8601?",
"limits": {
"sessionsTotal": 12,
"sessionsRemaining": 12
},
"reason": "purchase|gift|manual|migration",
"idempotencyKey": "string"
}

Поведение LMS

  1. По активации — создать или обновить lms_enrollment для enrollmentSubject.
  2. По suspended/resumed — менять статус enrollment.
  3. По revoked/expired — закрывать enrollment, не удаляя историю.
  4. Учебные данные (прогресс, evidence) сохраняются.

Идемпотентность

  • по entitlementId + messageVersion;
  • idempotencyKey гарантирует дубль не приведёт к двум enrollments.

Ошибки

СценарийПоведение
LMS не находит пользователяretry с backoff; после N — DLQ + алерт
productRef неизвестен LMSDLQ + операционный алерт
user заблокированenrollment в статусе blocked

Права и scopes

  • CRM публикует как сервис;
  • LMS подписан с consumer group lms-api.

Retention

  • события 90 дней (финансово-связанные);
  • enrollment в LMS — пока активен и 6 месяцев после revoke (затем агрегируется в audit).

Связанные ADR

Связанные документы