Veikedo

bitrix24

Jun 8th, 2021 (edited)
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. enum EventType {
  2.   Registered = "Registered",
  3.   UploadedDocuments = "UploadedDocuments",
  4.   OfferSigned = "OfferSigned",
  5.   ContractSigned = "ContractSigned",
  6.   ContractApproved = "ContractApproved",
  7.   FirstOrderPlaced = "FirstOrderPlaced",
  8.   FirstOrderDelivered = "FirstOrderDelivered",
  9. }
  10.  
  11. // Базовый контракт события
  12. interface BaseEvent {
  13.   // тип события
  14.   type: EventType,
  15.   // будет во всех унаследованных событиях
  16.   principalId: number,
  17.   // опциональное поле, будет доступно после подписания договора
  18.   contractId: number | null,
  19.   // Время по UTC, когда событие произошло. Формат iso 8601
  20.   occurredOnUtc: string
  21. }
  22.  
  23. // 1. В Битрикс24 передать персональную информацию клиента, который зарегистрировался в личном кабинете
  24. interface RegisteredEvent extends BaseEvent {
  25.   type: EventType.Registered,
  26.   contractId:  null,
  27.   payload: {
  28.     principalId: number,
  29.     name: string,
  30.     phone: string,
  31.     email: string,
  32.     legalName: string,
  33.     tin: string
  34.   }
  35. }
  36.  
  37. // 2. Клиент загрузил документы на проверку
  38. interface UploadedDocumentsEvent extends BaseEvent {
  39.   type: EventType.UploadedDocuments,
  40.   contractId:  null,
  41. }
  42.  
  43. // 3. Клиент подписал оферту;
  44. interface SignedOfferEvent extends BaseEvent {
  45.   type: EventType.OfferSigned
  46.   contractId:  null,
  47. }
  48.  
  49. // 4. Договор согласован
  50. interface ContractApprovedEvent extends BaseEvent {
  51.   type: EventType.ContractApproved
  52.   contractId:  null,
  53. }
  54.  
  55. // 5. Договор согласован +
  56. // Присвоен ID контракта, также передать ID Контракта в Битрикс24. +
  57. // Зарегистрирован «боевой» личный кабинет\интеграция с клиентом произведена (ответственный менеджер по интеграции) +
  58. // Настройка личного кабинета произведена (ответственный саппорт-менеджер)
  59. interface ContractSignedEvent extends BaseEvent {
  60.   type: EventType.ContractSigned
  61.   contractId: number,
  62. }
  63.  
  64. // 6. Клиент разместил первый манифест (примечание: правильный термин заказ)
  65. interface FirstOrderPlacedEvent extends BaseEvent {
  66.   type: EventType.FirstOrderPlaced
  67.   contractId: number
  68. }
  69.  
  70. // 7. По клиенту доставлен первый заказ.
  71. interface FirstOrderDeliveredEvent extends BaseEvent {
  72.   type: EventType.FirstOrderDelivered
  73.   contractId: number
  74. }
Add Comment
Please, Sign In to add comment