ru.bitel.bgbilling.plugins.dispatch.common.bean

## Class Subscription

- java.lang.Object
- - ru.bitel.common.model.Id
  - - ru.bitel.bgbilling.plugins.dispatch.common.bean.Subscription

- All Implemented Interfaces:
    java.io.Serializable, Contractable, Idable

      public class Subscription
      extends Id
      implements Contractable

  Подписка на рассылку
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class ru.bitel.common.model.Id

      `id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Subscription()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addContact(Contact contact)` Добавление контакта к списку контактов для данной подписки
    `java.lang.String` | `getComment()` Возвращает комментарий к подписке
    `java.lang.String` | `getContactHash(Contact contact)` Получение хэша подписки для определенного контакта.
    `java.util.List<Contact>` | `getContacts()` Возвращает список контактов, которые подписаны на рассылку
    `int` | `getContractId()` Возвращает код договора
    `Dispatch` | `getDispatch()` Возвращает рассылку, на которую осуществлена данная подписка
    `java.lang.String` | `getHumanReadableRepeatTime()`
    `Preferences` | `getPreferences()` Возвращает настройки подписки
    `ScheduleTime` | `getRepeatTime()` Возвращает расписание времени отправки для персональных рассылок
    `java.lang.String` | `getRepeatTimeDaysOfWeek()` Возвращает строку дней недели персональной подписки для отображения в вебе.
    `Period` | `getSubscriptionPeriod()` Возвращает период действия подписки.
    `ScheduleTime` | `getTotalRepeatTime()` Возвращает итоговое расписание, по которому будут приходить сообщения рассылки.
    `boolean` | `isActive()` Активна ли рассылка
    `void` | `setActive(boolean active)` Устанавливает флаг активности подписки.
    `void` | `setComment(java.lang.String comment)` Устанавливает комментарий к подписке
    `void` | `setContacts(java.util.List<Contact> contacts)` Устанавливает список контактов, подписанных на рассылку
    `void` | `setContractId(int contractId)` Устанавливает код договора
    `void` | `setDispatch(Dispatch dispatch)` Устанавливает рассылку, на которую осуществленая данная подписка
    `void` | `setPreferences(Preferences prefs)` Устанавливает настройки подписки
    `void` | `setRepeatTime(ScheduleTime recieveTime)` Устанавливает расписание времени отправки для персоналных рассылок
    `void` | `setSubscriptionPeriod(Period subscriptionPeriod)` Устанавливает период действия подписки.

    - ### Methods inherited from class ru.bitel.common.model.Id

      `equals, getId, hashCode, newIdList, newIdSet, newIdSet, newIdSet, newIdSet, newMap, setId, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Subscription

          public Subscription()

  - ### Method Detail

    - #### getDispatch

          public Dispatch getDispatch()

      Возвращает рассылку, на которую осуществлена данная подписка
      Returns:

    - #### setDispatch

          public void setDispatch(Dispatch dispatch)

      Устанавливает рассылку, на которую осуществленая данная подписка
      Parameters:
        `dispatch` -

    - #### getContacts

          public java.util.List<Contact> getContacts()

      Возвращает список контактов, которые подписаны на рассылку
      Returns:

    - #### setContacts

          public void setContacts(java.util.List<Contact> contacts)

      Устанавливает список контактов, подписанных на рассылку
      Parameters:
        `contacts` -

    - #### addContact

          public void addContact(Contact contact)

      Добавление контакта к списку контактов для данной подписки
      Parameters:
        `contact` - контакт

    - #### setPreferences

          public void setPreferences(Preferences prefs)

      Устанавливает настройки подписки
      Parameters:
        `prefs` -

    - #### getPreferences

          public Preferences getPreferences()

      Возвращает настройки подписки
      Returns:

    - #### getContractId

          public int getContractId()

      Возвращает код договора
      Specified by:
        `getContractId` in interface `Contractable`
      Returns:
        код договора

    - #### setContractId

          public void setContractId(int contractId)

      Устанавливает код договора
      Specified by:
        `setContractId` in interface `Contractable`
      Parameters:
        `contractId` - код договора

    - #### setComment

          public void setComment(java.lang.String comment)

      Устанавливает комментарий к подписке
      Parameters:
        `comment` -

    - #### getComment

          public java.lang.String getComment()

      Возвращает комментарий к подписке
      Returns:

    - #### getRepeatTime

          public ScheduleTime getRepeatTime()

      Возвращает расписание времени отправки для персональных рассылок
      Returns:
        null для подписок на глобальные (т.е. неперсональные) рассылки

    - #### setRepeatTime

          public void setRepeatTime(ScheduleTime recieveTime)

      Устанавливает расписание времени отправки для персоналных рассылок
      Parameters:
        -

    - #### getTotalRepeatTime

          public ScheduleTime getTotalRepeatTime()

      Возвращает итоговое расписание, по которому будут приходить сообщения рассылки. Время отправки берется из расписания рассылки, а остальные составляющие (дни недели, дни и месяцы) - из расписания самой подписки.
      Returns:

    - #### getHumanReadableRepeatTime

          public java.lang.String getHumanReadableRepeatTime()

    - #### getRepeatTimeDaysOfWeek

          public java.lang.String getRepeatTimeDaysOfWeek()

      Возвращает строку дней недели персональной подписки для отображения в вебе. То есть для подписки "по понедельникам и вторникам" вернет "1,2", для подписки "каждый день" вернет "1-7"
      Returns:

    - #### isActive

          public boolean isActive()

      Активна ли рассылка
      Returns:

    - #### setActive

          public void setActive(boolean active)

      Устанавливает флаг активности подписки.
      Parameters:
        `active` - true - подписка активна, false - подписка не активна.

    - #### getSubscriptionPeriod

          public Period getSubscriptionPeriod()

      Возвращает период действия подписки.
      Returns:
        период действия подписки.

    - #### setSubscriptionPeriod

          public void setSubscriptionPeriod(Period subscriptionPeriod)

      Устанавливает период действия подписки.
      Parameters:
        `subscriptionPeriod` - период действия подписки

    - #### getContactHash

          public java.lang.String getContactHash(Contact contact)

      Получение хэша подписки для определенного контакта. Хеш необходим для возможности отписки от рассылки по ссылке в email. Хеш формируется как MD5 от строки "<код подписки>+<код контакта>".
      Parameters:
        `contact` - контакт, для которого необходимо получить хеш
      Returns:
        MD5-хеш в виде строки