from enum import IntEnum


class UserPermissions(IntEnum):
    """
    Список прав получается побитовым сложением (x | y) каждого права.
    https://vk.com/dev/permissions
    """

    #: Пользователь разрешил отправлять ему уведомления
    notify = 1

    #: Доступ к друзьям.
    friend = 2

    #: Доступ к фотографиям.
    photos = 2 ** 2

    #: Доступ к аудиозаписям.
    #: При отсутствии доступа к закрытому API аудиозаписей это право позволяет
    #: только загрузку аудио.
    audio = 2 ** 3

    #: Доступ к видеозаписям.
    video = 2 ** 4

    #: Доступ к историям.
    stories = 2 ** 6

    #: Доступ к wiki-страницам.
    pages = 2 ** 7

    #: Добавление ссылки на приложение в меню слева.
    add_link = 2 ** 8

    #: Доступ к статусу пользователя.
    status = 2 ** 10

    #: Доступ к заметкам пользователя.
    notes = 2 ** 11

    #: Доступ к расширенным методам работы с сообщениями.
    messages = 2 ** 12

    #: Доступ к обычным и расширенным методам работы со стеной.
    wall = 2 ** 13

    #: Доступ к расширенным методам работы с рекламным API.
    ads = 2 ** 15

    #: Доступ к API в любое время. Рекомендуется при работе с этой библиотекой.
    offline = 2 ** 16

    #: Доступ к документам.
    docs = 2 ** 17

    #: Доступ к группам пользователя.
    groups = 2 ** 18

    #: Доступ к оповещениям об ответах пользователю.
    notifications = 2 ** 19

    #: Доступ к статистике групп и приложений пользователя, администратором которых он является.
    stats = 2 ** 20

    #: Доступ к email пользователя.
    email = 2 ** 22

    #: Доступ к товарам.
    market = 2 ** 27
