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

## Interface MegogoService

-     public interface MegogoService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abortUnsubscribe(int contractSubscribeId)` Отмена отключения подписки или перехода на другую подписку.
    `java.util.List<MegogoContractSubscription>` | `contractSubscriptionList(int contractId, int serviceId, java.util.Date date)` Получение списка подписок для договора.
    `int` | `deleteContractSubscription(int contractServiceId)` Удаление услуги с договора.
    `int` | `deleteTryAndBuy(int id)`
    `MegogoContractCredentials` | `getContractCredentials(int contractId)` Получить текущие учетные данные договора в системе Megogo
    `java.util.List<MegogoContractSubRequestLog>` | `getContractRequestLog(int contractId)` Получить лог запросов к мегаго от данного договора.
    `java.util.List<MegogoContractSubscription>` | `getContractSubscriptionListByType(int contractId, int type, Period period)` Получить список подписок конкретного типа.
    `java.util.List<MegogoContractSubscriptionStatusPeriod>` | `getContractSubscriptionStatusPeriodList(int idSub, int status, Period period)` Получить список статусов для конкретной подписки.
    `java.util.List<MegogoContractTryAndBuy>` | `getContractTryAndBuyList(int contractId, Period period)` Получить список Try&Buy конкретного договора.
    `java.lang.String` | `getRedirectUrl(int contratId)` Вроде по новому api это не обязательно.
    `MegogoSubscription` | `getSubscriptionByServiceId(int serviceId)` Получить подписку по коду услуги Код услуги и подписки соотносятся один к одному.
    `java.util.List<MegogoTryAndBuy>` | `getTryAndBuyList(boolean onlyUsed)` Получить список Try&Buy.
    `MapHolder<java.lang.Integer,MegogoTryAndBuy>` | `getTryAndBuyMap(boolean onlyUsed)` Получить Map Try&Buy.
    `void` | `recalculate(java.util.Date date, java.util.Set<java.lang.Integer> contractSet)`
    `MegogoContractCredentials` | `requestCredentials(int contractId, java.lang.String login, java.lang.String pwd)` Запрос к Megogo на установку учетных данных.
    `void` | `resume(int contractSubscribeId)` Возобновление подписки.
    `void` | `subscribe(int contractId, int serviceId)` Добавлиение/переход на подписку.
    `java.util.List<MegogoSubscription>` | `subscriptionList(java.lang.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)` Обновление или создание try&buy

- - ### Method Detail

    - #### updateContractSubscription

          int updateContractSubscription(MegogoContractSubscription contractSub,
                                         boolean sendToMegogo)
                                  throws ru.bitel.bgbilling.common.BGException,
                                         ru.bitel.bgbilling.common.BGMessageException

      Создание/обновление подписки у договора. Производит запрос в Megogo, если дата активации с текущей. Если это оснавная подпика, а на договоре уже есть основная подписка. Произведет все нужные проверки на пересечения.
      Parameters:
        `contractService` - - подписка
        `sendToMegogo` - - если false, то запрос к Megogo отправляться не будет( при этом не дает гарантии, что этого не сделает планировщик )
      Returns:
        - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### deleteContractSubscription

          int deleteContractSubscription(int contractServiceId)
                                  throws ru.bitel.bgbilling.common.BGException,
                                         ru.bitel.bgbilling.common.BGMessageException

      Удаление услуги с договора.
      Parameters:
        `contractServiceId` -
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### contractSubscriptionList

          java.util.List<MegogoContractSubscription> contractSubscriptionList(int contractId,
                                                                              int serviceId,
                                                                              java.util.Date date)
                                                                       throws ru.bitel.bgbilling.common.BGException,
                                                                              ru.bitel.bgbilling.common.BGMessageException

      Получение списка подписок для договора.
      Parameters:
        `contractId` - - код договора.
        `serviceId` - - код услуги, если < 0, то все.
        `date` - - активные на дату, если null, то все
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### getContractSubscriptionListByType

          java.util.List<MegogoContractSubscription> getContractSubscriptionListByType(int contractId,
                                                                                       int type,
                                                                                       Period period)
                                                                                throws ru.bitel.bgbilling.common.BGException

      Получить список подписок конкретного типа.
      Parameters:
        `contractId` - - код договора
        `type` - - тип подписки( 1- Основной, 2- дополнительный)
        `period` - - за какой промежуток, если == null, то за весь период, если одна из дат == null, то считаетя в бесконечность.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getContractSubscriptionStatusPeriodList

          java.util.List<MegogoContractSubscriptionStatusPeriod> getContractSubscriptionStatusPeriodList(int idSub,
                                                                                                         int status,
                                                                                                         Period period)
                                                                                                  throws ru.bitel.bgbilling.common.BGException

      Получить список статусов для конкретной подписки.
      Parameters:
        `idSub` - - код подписки, обязательный параметр.
        `status` - - код статуса.
        `period` - - за какой период.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### subscribe

          void subscribe(int contractId,
                         int serviceId)
                  throws ru.bitel.bgbilling.common.BGException

      Добавлиение/переход на подписку. Метод для WEB !
      Parameters:
        `contractId` - - код договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### unsubscribe

          void unsubscribe(int contractSubscribeId)
                    throws ru.bitel.bgbilling.common.BGException

      Отказ от подписки. Метод для WEB !
      Parameters:
        `contractSubscribeId` - - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### abortUnsubscribe

          void abortUnsubscribe(int contractSubscribeId)
                         throws ru.bitel.bgbilling.common.BGException

      Отмена отключения подписки или перехода на другую подписку. Метод для WEB !
      Parameters:
        `contractSubscribeId` - - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### suspend

          void suspend(int contractSubscribeId)
                throws ru.bitel.bgbilling.common.BGException

      Приостановка подписки.
      Parameters:
        `contractSubscribeId` - - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### resume

          void resume(int contractSubscribeId)
               throws ru.bitel.bgbilling.common.BGException

      Возобновление подписки.
      Parameters:
        `contractSubscribeId` - - код подписки
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateSubscription

          int updateSubscription(MegogoSubscription subscription)
                          throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### subscriptionList

          java.util.List<MegogoSubscription> subscriptionList(java.lang.Boolean used,
                                                              int type)
                                                       throws ru.bitel.bgbilling.common.BGException

      Получить список подписок.
      Parameters:
        `used` - - если true - то только используемые, false - не используемые, null - все.
        `type` - - тип услуги. 1- основные, 2 - дополнительные независемые, -1 - все.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getSubscriptionByServiceId

          MegogoSubscription getSubscriptionByServiceId(int serviceId)
                                                 throws ru.bitel.bgbilling.common.BGException

      Получить подписку по коду услуги
      Код услуги и подписки соотносятся один к одному.
      Parameters:
        `serviceId` - - код услуги модуля
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTryAndBuyList

          java.util.List<MegogoTryAndBuy> getTryAndBuyList(boolean onlyUsed)
                                                    throws ru.bitel.bgbilling.common.BGException

      Получить список Try&Buy.
      Parameters:
        `onlyUsed` - - если true, то только используемые.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTryAndBuyMap

          MapHolder<java.lang.Integer,MegogoTryAndBuy> getTryAndBuyMap(boolean onlyUsed)
                                                                throws ru.bitel.bgbilling.common.BGException

      Получить Map Try&Buy.
      Parameters:
        `onlyUsed` - - если true, то только используемые.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateTryAndBuy

          int updateTryAndBuy(MegogoTryAndBuy megogoTryAndBuy)
                       throws ru.bitel.bgbilling.common.BGException

      Обновление или создание try&buy
      Parameters:
        `megogoTryAndBuy` -
      Returns:
        - id
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteTryAndBuy

          int deleteTryAndBuy(int id)
                       throws ru.bitel.bgbilling.common.BGException

      Parameters:
        `id` - - идентификатор Try&Buy
      Returns:
        - кол-во удаленных записей
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getContractTryAndBuyList

          java.util.List<MegogoContractTryAndBuy> getContractTryAndBuyList(int contractId,
                                                                           Period period)
                                                                    throws ru.bitel.bgbilling.common.BGException,
                                                                           ru.bitel.bgbilling.common.BGMessageException

      Получить список Try&Buy конкретного договора.
      Parameters:
        `contractId` - - код договора
        `period` - - период за который хотим получить. То есть вернет всякий try&buy пересекающий данный период.
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### getContractRequestLog

          java.util.List<MegogoContractSubRequestLog> getContractRequestLog(int contractId)
                                                                     throws ru.bitel.bgbilling.common.BGException,
                                                                            ru.bitel.bgbilling.common.BGMessageException

      Получить лог запросов к мегаго от данного договора.
      Parameters:
        `contractId` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### requestCredentials

          MegogoContractCredentials requestCredentials(int contractId,
                                                       java.lang.String login,
                                                       java.lang.String pwd)
                                                throws ru.bitel.bgbilling.common.BGException

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

    - #### getContractCredentials

          MegogoContractCredentials getContractCredentials(int contractId)
                                                    throws ru.bitel.bgbilling.common.BGException,
                                                           ru.bitel.bgbilling.common.BGMessageException

      Получить текущие учетные данные договора в системе Megogo
      Parameters:
        `contractId` - - код договора
      Returns:
        null, если учетных данных нет.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### getRedirectUrl

          java.lang.String getRedirectUrl(int contratId)
                                   throws ru.bitel.bgbilling.common.BGException

      Вроде по новому api это не обязательно. Получить url для редиректа абонента для просмотра на megogo.
      Parameters:
        `contratId` - - код договора
      Returns:
        - url
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### recalculate

          void recalculate(java.util.Date date,
                           java.util.Set<java.lang.Integer> contractSet)
                    throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`