Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum EventType {
- StartedRegistration = "StartedRegistration",
- Registered = "Registered",
- UploadedDocuments = "UploadedDocuments",
- OfferSigned = "OfferSigned",
- ContractSigned = "ContractSigned",
- FirstOrderPlaced = "FirstOrderPlaced",
- FirstOrderDelivered = "FirstOrderDelivered",
- }
- // Базовый контракт события
- interface BaseEvent {
- // тип события
- type: EventType,
- // будет во всех унаследованных событиях
- principalId: number,
- // опциональное поле, будет доступно после подписания договора, контракт из Лозона
- contractId: number | null,
- // Время по UTC, когда событие произошло. Формат iso 8601
- occurredOnUtc: string
- }
- // 0. Принципал начал регистрацию/открыл форму регистрации
- interface StartedRegistrationEvent extends BaseEvent {
- type: EventType.StartedRegistration,
- contractId: null,
- payload: {
- // опциональное поле, первое время будет приходить пустая строка
- phone: string | null,
- }
- }
- // 1. В Битрикс24 передать персональную информацию клиента, который зарегистрировался в личном кабинете (ШАГ 2)
- interface RegisteredEvent extends BaseEvent {
- type: EventType.Registered,
- contractId: null,
- payload: {
- name: string,
- phone: string,
- email: string,
- legalName: string,
- // инн
- tin: string
- }
- }
- // 2. Клиент загрузил документы на проверку
- interface UploadedDocumentsEvent extends BaseEvent {
- type: EventType.UploadedDocuments,
- contractId: null,
- }
- // 3. Клиент подписал оферту
- interface SignedOfferEvent extends BaseEvent {
- type: EventType.OfferSigned
- contractId: null,
- }
- // 4. Договор согласован (при получениии события из кафки от метазона, при переводе в статус ReviewPassed)
- // Присвоен ID контракта, также передать ID Контракта в Битрикс24. +
- // Зарегистрирован «боевой» личный кабинет\интеграция с клиентом произведена (ответственный менеджер по интеграции) +
- // Настройка личного кабинета произведена (ответственный саппорт-менеджер)
- interface ContractSignedEvent extends BaseEvent {
- type: EventType.ContractSigned
- contractId: number, // Лозоновский
- }
- // 5. Клиент разместил первый манифест (примечание: правильный термин заказ)
- interface FirstOrderPlacedEvent extends BaseEvent {
- type: EventType.FirstOrderPlaced
- contractId: number
- }
- // 6. По клиенту доставлен первый заказ.
- interface FirstOrderDeliveredEvent extends BaseEvent {
- type: EventType.FirstOrderDelivered
- contractId: number
- }
Add Comment
Please, Sign In to add comment