Package ru.bitel.bgbilling.modules.megogo.common.service

# Interface MegogoService

public interface MegogoService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `abortUnsubscribe(int contractSubscribeId)`
  Отмена отключения подписки или перехода на другую подписку.
  `List<MegogoContractSubscription>`
  `contractSubscriptionList(int contractId, int serviceId, Date date)`
  Получение списка подписок для договора.
  `int`
  `deleteContractSubscription(int contractServiceId)`
  Удаление услуги с договора.
  `int`
  `deleteTryAndBuy(int id)`
  `MegogoContractCredentials`
  `getContractCredentials(int contractId)`
  Получить текущие учетные данные договора в системе Megogo
  `List<MegogoContractSubRequestLog>`
  `getContractRequestLog(int contractId)`
  Получить лог запросов к мегаго от данного договора.
  `List<MegogoContractSubscription>`
  `getContractSubscriptionListByType(int contractId, int type, Period period)`
  Получить список подписок конкретного типа.
  `List<MegogoContractSubscriptionStatusPeriod>`
  `getContractSubscriptionStatusPeriodList(int idSub, int status, Period period)`
  Получить список статусов для конкретной подписки.
  `List<MegogoContractTryAndBuy>`
  `getContractTryAndBuyList(int contractId, Period period)`
  Получить список Tryinvalid input: '&Buy' конкретного договора.
  `String`
  `getRedirectUrl(int contratId)`
  Вроде по новому api это не обязательно.
  `MegogoSubscription`
  `getSubscriptionByServiceId(int serviceId)`
  Получить подписку по коду услуги
  Код услуги и подписки соотносятся один к одному.
  `List<MegogoTryAndBuy>`
  `getTryAndBuyList(boolean onlyUsed)`
  Получить список Tryinvalid input: '&Buy'.
  `MapHolder<Integer,MegogoTryAndBuy>`
  `getTryAndBuyMap(boolean onlyUsed)`
  Получить Map Tryinvalid input: '&Buy'.
  `void`
  `recalculate(Date date, Set<Integer> contractSet)`
  `MegogoContractCredentials`
  `requestCredentials(int contractId, String login, String pwd)`
  Запрос к Megogo на установку учетных данных.
  `void`
  `resume(int contractSubscribeId)`
  Возобновление подписки.
  `void`
  `subscribe(int contractId, int serviceId)`
  Добавлиение/переход на подписку.
  `List<MegogoSubscription>`
  `subscriptionList(Boolean used, int type)`
  Получить список подписок.
  `void`
  `suspend(int contractSubscribeId)`
  Приостановка подписки.
  `void`
  `unsubscribe(int contractSubscribeId)`
  Отказ от подписки.
  `int`
  `updateContractSubscription(MegogoContractSubscription contractSub, boolean sendToMegogo)`
  Создание/обновление подписки у договора.
  `int`
  `updateSubscription(MegogoSubscription subscription)`
  `int`
  `updateTryAndBuy(MegogoTryAndBuy megogoTryAndBuy)`
  Обновление или создание tryinvalid input: '&buy'

- ## Method Details

  - ### updateContractSubscription

    int updateContractSubscription(MegogoContractSubscription contractSub, boolean sendToMegogo) throws Exception
    Создание/обновление подписки у договора. Производит запрос в Megogo, если дата активации с текущей. Если это оснавная подпика, а на договоре уже есть основная подписка. Произведет все нужные проверки на пересечения.
    Parameters:
      `sendToMegogo` - - если false, то запрос к Megogo отправляться не будет( при этом не дает гарантии, что этого не сделает планировщик )
      `contractService` - - подписка
    Returns:
      - код подписки
    Throws:
      `Exception`

  - ### deleteContractSubscription

    int deleteContractSubscription(int contractServiceId) throws Exception
    Удаление услуги с договора.
    Parameters:
      `contractServiceId` -
    Throws:
      `Exception`

  - ### contractSubscriptionList

    List<MegogoContractSubscription> contractSubscriptionList(int contractId, int serviceId, Date date) throws Exception
    Получение списка подписок для договора.
    Parameters:
      `contractId` - - код договора.
      `serviceId` - - код услуги, если invalid input: '<' 0, то все.
      `date` - - активные на дату, если null, то все
    Throws:
      `Exception`

  - ### getContractSubscriptionListByType

    List<MegogoContractSubscription> getContractSubscriptionListByType(int contractId, int type, Period period) throws Exception
    Получить список подписок конкретного типа.
    Parameters:
      `contractId` - - код договора
      `type` - - тип подписки( 1- Основной, 2- дополнительный)
      `period` - - за какой промежуток, если == null, то за весь период, если одна из дат == null, то считаетя в бесконечность.
    Throws:
      `Exception`

  - ### getContractSubscriptionStatusPeriodList

    List<MegogoContractSubscriptionStatusPeriod> getContractSubscriptionStatusPeriodList(int idSub, int status, Period period) throws Exception
    Получить список статусов для конкретной подписки.
    Parameters:
      `idSub` - - код подписки, обязательный параметр.
      `status` - - код статуса.
      `period` - - за какой период.
    Throws:
      `Exception`

  - ### subscribe

    void subscribe(int contractId, int serviceId) throws Exception
    Добавлиение/переход на подписку. Метод для WEB !
    Parameters:
      `contractId` - - код договора
    Throws:
      `Exception`

  - ### unsubscribe

    void unsubscribe(int contractSubscribeId) throws Exception
    Отказ от подписки. Метод для WEB !
    Parameters:
      `contractSubscribeId` - - код подписки
    Throws:
      `Exception`

  - ### abortUnsubscribe

    void abortUnsubscribe(int contractSubscribeId) throws Exception
    Отмена отключения подписки или перехода на другую подписку. Метод для WEB !
    Parameters:
      `contractSubscribeId` - - код подписки
    Throws:
      `Exception`

  - ### suspend

    void suspend(int contractSubscribeId) throws Exception
    Приостановка подписки.
    Parameters:
      `contractSubscribeId` - - код подписки
    Throws:
      `Exception`

  - ### resume

    void resume(int contractSubscribeId) throws Exception
    Возобновление подписки.
    Parameters:
      `contractSubscribeId` - - код подписки
    Throws:
      `Exception`

  - ### updateSubscription

    int updateSubscription(MegogoSubscription subscription) throws Exception
    Throws:
      `Exception`

  - ### subscriptionList

    List<MegogoSubscription> subscriptionList(Boolean used, int type) throws Exception
    Получить список подписок.
    Parameters:
      `used` - - если true - то только используемые, false - не используемые, null - все.
      `type` - - тип услуги. 1- основные, 2 - дополнительные независемые, -1 - все.
    Returns:
    Throws:
      `Exception`

  - ### getSubscriptionByServiceId

    MegogoSubscription getSubscriptionByServiceId(int serviceId) throws Exception
    Получить подписку по коду услуги
    Код услуги и подписки соотносятся один к одному.
    Parameters:
      `serviceId` - - код услуги модуля
    Returns:
    Throws:
      `Exception`

  - ### getTryAndBuyList

    List<MegogoTryAndBuy> getTryAndBuyList(boolean onlyUsed) throws Exception
    Получить список Tryinvalid input: '&Buy'.
    Parameters:
      `onlyUsed` - - если true, то только используемые.
    Returns:
    Throws:
      `Exception`

  - ### getTryAndBuyMap

    MapHolder<Integer,MegogoTryAndBuy> getTryAndBuyMap(boolean onlyUsed) throws Exception
    Получить Map Tryinvalid input: '&Buy'.
    Parameters:
      `onlyUsed` - - если true, то только используемые.
    Returns:
    Throws:
      `Exception`

  - ### updateTryAndBuy

    int updateTryAndBuy(MegogoTryAndBuy megogoTryAndBuy) throws Exception
    Обновление или создание tryinvalid input: '&buy'
    Parameters:
      `megogoTryAndBuy` -
    Returns:
      - id
    Throws:
      `Exception`

  - ### deleteTryAndBuy

    int deleteTryAndBuy(int id) throws Exception
    Parameters:
      `id` - - идентификатор Tryinvalid input: '&Buy'
    Returns:
      - кол-во удаленных записей
    Throws:
      `Exception`

  - ### getContractTryAndBuyList

    List<MegogoContractTryAndBuy> getContractTryAndBuyList(int contractId, Period period) throws Exception
    Получить список Tryinvalid input: '&Buy' конкретного договора.
    Parameters:
      `contractId` - - код договора
      `period` - - период за который хотим получить. То есть вернет всякий tryinvalid input: '&buy' пересекающий данный период.
    Returns:
    Throws:
      `Exception`

  - ### getContractRequestLog

    List<MegogoContractSubRequestLog> getContractRequestLog(int contractId) throws Exception
    Получить лог запросов к мегаго от данного договора.
    Parameters:
      `contractId` -
    Returns:
    Throws:
      `Exception`

  - ### requestCredentials

    MegogoContractCredentials requestCredentials(int contractId, String login, String pwd) throws Exception
    Запрос к Megogo на установку учетных данных. Логина и пароля в системе Megogo. Если это именно создание и учетных данных еще нет, то будет проверена уникальность login-a.
    Parameters:
      `contractId` -
      `login` - - логин(может быть null), будет применен, только если учетных данных еще нет, иначе будет запрошено текущее значение у Megogo и оно передано для установки пароля, то есть фактически будет произведена замена пароля и обновление логина( если он изменился на стороне Megogo )
      `pwd` - - пароль.Может быть null, тогда будет создан биллингом.
    Throws:
      `Exception`

  - ### getContractCredentials

    MegogoContractCredentials getContractCredentials(int contractId) throws Exception
    Получить текущие учетные данные договора в системе Megogo
    Parameters:
      `contractId` - - код договора
    Returns:
      null, если учетных данных нет.
    Throws:
      `Exception`

  - ### getRedirectUrl

    String getRedirectUrl(int contratId) throws Exception
    Вроде по новому api это не обязательно. Получить url для редиректа абонента для просмотра на megogo.
    Parameters:
      `contratId` - - код договора
    Returns:
      - url
    Throws:
      `Exception`

  - ### recalculate

    void recalculate(Date date, Set<Integer> contractSet) throws Exception
    Throws:
      `Exception`