Документ описывает функциональность, которая должна быть доступна для использования в результате разработки Спринта 1.

Статусы по готовности функционала:

- функционал в работе или тестировании на стороне True Item 

- функционал не разрабатывался на стороне True Item

- функционал не выведен в прод со стороны стороне Zegoal 




  1.  Новый клиент. Предоплата

    1. Циклы клиентов: с даты по дату или с 1 по 1.
    2. Лид на сайте принимает заполняет форму регистрации. Минимальная информация: ФИО, e-mail и название компании.
    3. Zegoal выполняет верификацию аккаунта и выполняет запрос на регистрацию нового абонента в биллинге (Ti-Rate API CreateAccount) передавая внутренний код аккаунта.
    4. Биллинг создает новый аккаунт и привязывает его к соответствующей записи в Zegoal.  
    5. После создания Ti-Rate добавляет клиенту продукт Zegoal Trial с бесплатным триалом на 14 дней.
    6. Лид получает уведомление от Zegoal по указанной электронной почте со ссылкой на приложение. После этого лид переходит в режим onboarding.
    7. За 5, 3, 1 дней до окончания триального периода Zegoal получает уведомления из биллинговой системы о скором окончании тестового периода для клиента. Zegoal ретранслирует оформленное сообщения лиду с предложением указать платежные данные и выбрать тарифный план в личном кабинете продукта. - тут два уведомления сейчас от Zegoal
      1. Клинет или Zegoal обновляет информацию по реквизитам (Ti-Rate должен получить информацию до покупки продукта) -   ◉ Ti-Rate API UpdateAccount или интерфейс 
        1. Нужно определиться с полями реквизитов, которые попадают в счет 
      2. ◉ Тарифный план выбирается в интерфейсе Zegoal (Ti-Rate API AddProduct)
      3. Ti-Rate активирует для клиента выбранный продукт и формирует инвойс на предоплату. Клиент уже получает доступ согласно выбранному продукту.
      4. Zegoal получает инвойс на оплату по клиенту. 
      5. Клиент проводит оплату на протяжении 10 дней. Платеж может быть добавлен через Ti-Rate API AddPayment ◉ . По результату платы - клиент активируется .
    8. После окончания триального периода или в случае отсутствия оплаты выбранного продукта в течении 10 дней:
      1. ◉ при отсутствии выбранного НЕ триального продукта или его оплаты, доступ к функциям продукта блокируется, остается доступ только к личному кабинету, где можно заполнить платежные данные и произвести оплату (Ti-Rate API AddPayment) и активацию подписки❋ 
      2.  ◉ В случае отсутствия оплаты более чем 60 дней с момента окончания триала (или блокирования выбранного продукта)  из биллинга в продукт отправляется информация о блокировке абонента (приводит к удалению учетной записи и базы данных?).
      3. Аналогично, все автоматические процессы можно произвести мануально (активация базы, триал, продление триала, заполнение платежных данных, раз/блокировка) - верификация при ручном создании клиента - на усмотрение Ti-Rate.
  2. Текущий клиент. Предоплата

    1. Обновить личную информацию (◉ Ti-Rate API UpdateAccount)
    2. Изменить продукт (Ti-Rate API AddProduct
    3. ◉ Изменить количество пользователей продукта (увеличение лимитов на продукте) с выставлением счета. Планировали использовать Ti-Rate API UpdateAccount но нет процесса поэтому пока (Ti-Rate API AddProduct
    4. ◉ Получить информацию по статусу клиента, продукту (Ti-Rate API GetAccountInfo) и счетам (Ti-Rate API GetInvoiceData)
    5. ❋ ◉ Оплата счета. Это можно будет делать только после определения Платежной системы - Платежный шлюз
    6. ◉ При создании задачи в Zegoal система всегда обращается к биллингу (Ti-Rate API ProcessEvent)
    7. ◉ При добавлении пользователя в Zegoal система обращается в биллинг за разрешением. Биллинг ведет учет доступных пользователей (Ti-Rate API ProcessEvent)
      1. ❋ Не разрешается добавлять пользователей и задачи если превышен лимит или статус отличный от Active
    8. ◉ В личном кабинете клиент может
      1. Обновить личную информацию (Ti-Rate API UpdateAccount)
      2. Изменить продукт (Ti-Rate API AddProduct)
      3. Изменить количество пользователей продукта с выславлением счета. Планировали использовать Ti-Rate API UpdateAccountBalance  но нет процесса поэтому пока Ti-Rate API AddProduct
      4. Получить информацию по статусу клиента, продукту (Ti-Rate API GetAccountInfo) и счетам (Ti-Rate API GetInvoiceData)
      5. ❋ ◉ Оплата счета. Это можно будет делать только после определения Платежной системы - Платежный шлюз
    9. Первое число нового месяца в электронном виде клиенту направляется счет на предоплату, а также акт за предыдущий месяц.
    10. ❋ Предоплата должна быть внесена до пятого числа текущего месяца. Если до этого дня оплата не поступает, то на 5 число биллинг направляет сообщение Zegoal об образовавшейся задолженности по клиенту. Zegoal ретранслирует оформленное письмо на клиента.
    11. ◉ При отсутствии оплаты до 10 числа текущего месяца клиенту прекращается доступ в систему, все учетные записи блокируются (есть возможность только зайти в рабочий кабинет для производства оплаты).
    12. ◉ При отсутствии оплаты в течении 60 дней с момента блокировки учетная запись и база данных удаляется.
  3. Биллинг

    1. Деньги аккаунта
    2. Таски
    3. Количество пользователей (единиц продукта)
    1. В первом спринте Ti-Rate выполняет учет:
  4. Нотификации

    1. Выставленный счет (1-го числа) 
    2. Выставление счета при продаже нового продукта 
    3. Неоплаченный счет (5, 7, 9 дней)
    4. Смена состояния аккаунта (с любого в любой)
    5. Остаток срока триального периода (5 3 1 день)
    6. ❋ % задач использовано (50, 80, 100)
    7. ❋ % купленных единиц продукта использовано (50, 80, 100)
    8. Активация\Деактивация продукта (любого)
    1. Нотификации непосредственно клиенту выполняет только Zegoal.
    2. Биллинг выполняет нотификацию сервиса Zegoal через REST API через https с ключами в заголовках сообщений.

5. Новый клиент. Постоплата

Пока не предусмотрено смена типа для существующих.

    1. Циклы клиентов: с даты по дату или с 1 по 1.
    2. Лид на сайте принимает заполняет форму регистрации. Минимальная информация: ФИО, e-mail и название компании.
    3. Zegoal выполняет верификацию аккаунта и выполняет запрос на регистрацию нового абонента в биллинге (Ti-Rate API CreateAccount) передавая внутренний код аккаунта и его тип (PostPaid/PrePaid).
    4. Биллинг создает новый аккаунт и привязывает его к соответствующей записи в Zegoal.  
    5. После создания Ti-Rate добавляет клиенту продукт Zegoal Trial с бесплатным триалом на 14 дней.
    6. Лид получает уведомление от Zegoal по указанной электронной почте со ссылкой на приложение. После этого лид переходит в режим onboarding.
    7. За 5, 3, 1 дней до окончания триального периода Zegoal получает уведомления из биллинговой системы о скором окончании тестового периода для клиента. Zegoal ретранслирует оформленное сообщения лиду с предложением указать платежные данные и выбрать тарифный план в личном кабинете продукта. - тут два уведомления сейчас от Zegoal
      1. Клинет или Zegoal обновляет информацию по реквизитам (Ti-Rate должен получить информацию до покупки продукта) -   ◉ ❋Ti-Rate API UpdateAccount или интерфейс 
      2. Тарифный план выбирается в интерфейсе Zegoal (Ti-Rate API AddProduct)
      3. Ti-Rate активирует для клиента выбранный продукт. Клиент получает доступ согласно выбранному продукту.
      4. Клиент НЕ проводит оплату. Аккаунт активируется.
      5. В конце периода (с 1 по 1) формирует инвойс на постоплату. Инвойс формируем согласно активированным пользователям на момент формирования инвойса.
      6. Zegoal получает инвойс на оплату по клиенту. 
      7. У клиента есть 10 дней на оплату, иначе аккаунт блокируется (Suspended)/
    8. После окончания триального периода или в случае отсутствия оплаты выбранного продукта в течении 10 дней:
      1. ◉ при отсутствии выбранного НЕ триального продукта или его оплаты, доступ к функциям продукта блокируется, остается доступ только к личному кабинету, где можно заполнить платежные данные и произвести оплату (Ti-Rate API AddPayment) и активацию подписки. ❋ 
      2.  ◉ В случае отсутствия оплаты более чем 60 дней с момента окончания триала (или блокирования выбранного продукта)  из биллинга в продукт отправляется информация о блокировке абонента (приводит к удалению учетной записи и базы данных?).
      3. Аналогично, все автоматические процессы можно произвести мануально (активация базы, триал, продление триала, заполнение платежных данных, раз/блокировка) - верификация при ручном создании клиента - на усмотрение Ti-Rate.

6. Текущий клиент. Постоплата

    1. Обновить личную информацию ( ❋Ti-Rate API UpdateAccount)
    2. Изменить продукт (Ti-Rate API AddProduct) ◉
    3. ◉ Изменить количество пользователей продукта (увеличение лимитов на продукте) БЕЗ выставления счета. Ti-Rate API UpdateSoldProduct. 
    4. ◉ Получить информацию по статусу клиента, продукту (Ti-Rate API GetAccountInfo) и счетам (Ti-Rate API GetInvoiceData)
    5. ◉ При создании задачи в Zegoal система всегда обращается к биллингу (Ti-Rate API ProcessEvent)
    6. ◉ При добавлении пользователя в Zegoal система обращается в биллинг за разрешением. Биллинг ведет учет доступных пользователей (Ti-Rate API ProcessEvent)
      1. ❋ ◉Не разрешается добавлять пользователей и задачи если превышен лимит или статус отличный от Active
    7. ◉ В личном кабинете клиент может
      1. Обновить личную информацию (Ti-Rate API UpdateAccount)
      2. Изменить продукт (Ti-Rate API AddProduct)
      3. Изменить количество пользователей продукта с выславлением счета. Планировали использовать Ti-Rate API UpdateAccountBalance ❋ но нет процесса поэтому пока Ti-Rate API AddProduct
      4. Получить информацию по статусу клиента, продукту (Ti-Rate API GetAccountInfo) и счетам (Ti-Rate API GetInvoiceData)
    8. Первое число нового месяца в электронном виде клиенту направляется счет на ПОСТоплату. В счет включаем количество купленных пользователей на момент наступления первого числа.
    9. ❋ Предоплата должна быть внесена до пятого числа текущего месяца. Если до этого дня оплата не поступает, то на 5 число биллинг направляет сообщение Zegoal об образовавшейся задолженности по клиенту. Zegoal ретранслирует оформленное письмо на клиента.
    10. ◉ При отсутствии оплаты до 10 числа текущего месяца клиенту прекращается доступ в систему, все учетные записи блокируются (есть возможность только зайти в рабочий кабинет для производства оплаты).
    11. ◉ При отсутствии оплаты в течении 60 дней с момента блокировки учетная запись и база данных удаляется.

7. Перевод абонента на PostPaid.