from maxo.enums.chat_admin_permission import ChatAdminPermission
from maxo.errors import AttributeIsEmptyError
from maxo.omit import Omittable, Omitted, is_defined
from maxo.types.base import MaxoType
[документация]
class ChatAdmin(MaxoType):
"""
Args:
alias: Описание роли, которое будет отображаться на клиентском устройстве в настройках чата или канала рядом с именем пользователя
Если пользователь администратор или владелец и ему не установлено это название, то поле не передаётся, клиентское устройство на своей стороне подменит значение на соответствующее: "владелец" или "админ"
permissions: Перечень прав доступа пользователя или бота, который назначается администратором группового чата или канала. Если право назначается действующему администратору, то его текущие права будут обновлены в соответствии с переданным списком. Ниже приведено краткое описание всех прав - подробнее читайте [в разделе «Доступные права администратора»](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins)
**Краткое описание доступных прав администратора**:
- `read_all_messages` - читать все сообщения в канале или групповом чате
- `edit` - редактировать посты в каналах (для групповых чатов недоступно). Ранее вместо `edit` в API использовалось `edit_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `edit`
- `delete` - удалять посты (для групповых чатов недоступно). Ранее вместо `delete` в API использовалось `delete_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `delete`
- `write` - редактировать и удалять сообщения в групповых чатах, а также писать посты в каналах. Ранее вместо `write` в API использовалось `post_edit_delete_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `write`
- `pin_message` - закреплять сообщение
- `change_chat_info` - изменять информацию о канале или групповом чате
- `add_remove_members` - добавлять и удалять участников группового чата или подписчиков канала
- `add_admins` - добавлять и удалять администраторов группового чата или канала
- `edit_link` - изменять ссылку на групповой чат (для каналов недоступно)
- `can_call` - звонить в групповом чате (для каналов недоступно)
- `view_stats` - видеть количество просмотров постов в каналах (для групповых чатов недоступно). Право есть только у пользователей - боты не могут посмотреть статистику
user_id: Идентификатор пользователя-участника группового чата или канала, который назначается администратором
Максимум - 50 администраторов в чате
"""
permissions: list[ChatAdminPermission]
"""
Перечень прав доступа пользователя или бота, который назначается администратором группового чата или канала. Если право назначается действующему администратору, то его текущие права будут обновлены в соответствии с переданным списком. Ниже приведено краткое описание всех прав - подробнее читайте [в разделе «Доступные права администратора»](https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins)
**Краткое описание доступных прав администратора**:
- `read_all_messages` - читать все сообщения в канале или групповом чате
- `edit` - редактировать посты в каналах (для групповых чатов недоступно). Ранее вместо `edit` в API использовалось `edit_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `edit`
- `delete` - удалять посты (для групповых чатов недоступно). Ранее вместо `delete` в API использовалось `delete_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `delete`
- `write` - редактировать и удалять сообщения в групповых чатах, а также писать посты в каналах. Ранее вместо `write` в API использовалось `post_edit_delete_message` - в ответе могут возвращаться оба значения, однако при назначении новых прав администраторам используйте `write`
- `pin_message` - закреплять сообщение
- `change_chat_info` - изменять информацию о канале или групповом чате
- `add_remove_members` - добавлять и удалять участников группового чата или подписчиков канала
- `add_admins` - добавлять и удалять администраторов группового чата или канала
- `edit_link` - изменять ссылку на групповой чат (для каналов недоступно)
- `can_call` - звонить в групповом чате (для каналов недоступно)
- `view_stats` - видеть количество просмотров постов в каналах (для групповых чатов недоступно). Право есть только у пользователей - боты не могут посмотреть статистику
"""
user_id: int
"""
Идентификатор пользователя-участника группового чата или канала, который назначается администратором
Максимум - 50 администраторов в чате
"""
alias: Omittable[str] = Omitted()
"""
Описание роли, которое будет отображаться на клиентском устройстве в настройках чата или канала рядом с именем пользователя
Если пользователь администратор или владелец и ему не установлено это название, то поле не передаётся, клиентское устройство на своей стороне подменит значение на соответствующее: "владелец" или "админ"
"""
@property
def unsafe_alias(self) -> str:
if is_defined(self.alias):
return self.alias
raise AttributeIsEmptyError(
obj=self,
attr="alias",
)