> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arzguard.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Темы, сообщения и опросы

> Поля, типы и условия видимости объектов: Thread, Post, Poll, ThreadPrefix, ThreadField.

Схемы объектов, возвращаемых методами Guard Forum. Таблицы описывают возможные поля: состав конкретного ответа зависит от прав, контекста, детализации и запрошенных связанных объектов. Отсутствующее поле не следует подменять нулём или пустой строкой.

Имена полей и регистр сохраняются: например, `User` и `user_id` — разные поля. Обозначения типов и пагинация описаны в [обзоре схем](/guard-forum/models).

## Thread

| Поле | Тип | Условия | Описание |
| - | - | - | - |
| `username` | `string` | По контексту объекта | Имя автора или пользователя объекта |
| `is_watching` | `boolean` | Условно | Подписан ли текущий пользователь на тему |
| `visitor_post_count` | `integer` | Условно | Число сообщений текущего пользователя в теме |
| `is_unread` | `boolean` | Условно | Есть ли непрочитанное для текущего пользователя |
| `custom_fields` | `object` | По контексту объекта | Значения дополнительных полей; для конфигурации раздела — определения полей |
| `tags` | `array` | По контексту объекта | Теги темы |
| `prefix` | `string` | Условно | Отображаемое название префикса, если он есть |
| `can_edit` | `boolean` | По контексту объекта | Может ли текущий пользователь редактировать объект |
| `can_edit_tags` | `boolean` | По контексту объекта | Может ли пользователь менять теги |
| `can_reply` | `boolean` | По контексту объекта | Может ли текущий пользователь ответить |
| `can_soft_delete` | `boolean` | По контексту объекта | Можно ли выполнить мягкое удаление |
| `can_hard_delete` | `boolean` | По контексту объекта | Можно ли удалить объект безвозвратно |
| `can_view_attachments` | `boolean` | По контексту объекта | Может ли текущий пользователь видеть вложения |
| `view_url` | `string` | По контексту объекта | URL объекта на форуме |
| `is_first_post_pinned` | `boolean` | По контексту объекта | Закреплено ли первое сообщение темы |
| `highlighted_post_ids` | `array` | По контексту объекта | ID выделенных сообщений |
| `Forum` | `Node` | Условно | Раздел темы в формате Node; включается по контексту |
| `vote_score` | `integer` | По контексту объекта | Суммарный балл голосования за содержимое |
| `can_content_vote` | `boolean` | По контексту объекта | Может ли текущий пользователь голосовать за содержимое |
| `allowed_content_vote_types` | `string[]` | По контексту объекта | Допустимые направления голосования за содержимое |
| `is_content_voted` | `boolean` | По контексту объекта | Голосовал ли пользователь за содержимое |
| `visitor_content_vote` | `string` | По контексту объекта | Выбор текущего пользователя: up или down, если голос есть |
| `thread_id` | `integer` | По контексту объекта | ID темы |
| `node_id` | `integer` | По контексту объекта | ID раздела |
| `title` | `string` | По контексту объекта | Название или заголовок |
| `reply_count` | `integer` | По контексту объекта | Число ответов |
| `view_count` | `integer` | По контексту объекта | Число просмотров |
| `user_id` | `integer` | По контексту объекта | ID пользователя или автора |
| `post_date` | `integer` | По контексту объекта | Дата публикации, Unix timestamp в секундах |
| `sticky` | `boolean` | По контексту объекта | Закреплена ли тема в разделе |
| `discussion_state` | `string` | По контексту объекта | Состояние темы |
| `discussion_open` | `boolean` | По контексту объекта | Открыта ли тема для ответов |
| `discussion_type` | `string` | По контексту объекта | Тип темы, определяющий её поведение |
| `first_post_id` | `integer` | По контексту объекта | ID первого сообщения |
| `last_post_date` | `integer` | По контексту объекта | Дата последнего сообщения, Unix timestamp в секундах |
| `last_post_id` | `integer` | По контексту объекта | ID последнего сообщения |
| `last_post_user_id` | `integer` | По контексту объекта | ID автора последнего сообщения |
| `last_post_username` | `string` | По контексту объекта | Имя автора последнего сообщения |
| `first_post_reaction_score` | `integer` | По контексту объекта | Балл реакций первого сообщения |
| `prefix_id` | `integer` | По контексту объекта | ID основного префикса |
| `User` | `User` | По контексту объекта | Объект пользователя или автора |
| `sv_prefix_ids` | `integer[]` | По контексту объекта | Массив ID префиксов темы в MultiPrefix |

## Post

| Поле | Тип | Условия | Описание |
| - | - | - | - |
| `username` | `string` | По контексту объекта | Имя автора или пользователя объекта |
| `is_first_post` | `boolean` | По контексту объекта | Первое ли это сообщение темы |
| `is_last_post` | `boolean` | По контексту объекта | Последнее ли это сообщение темы |
| `is_unread` | `boolean` | Условно | Есть ли непрочитанное для текущего пользователя |
| `message_parsed` | `string` | По контексту объекта | HTML-представление текста сообщения |
| `can_edit` | `boolean` | По контексту объекта | Может ли текущий пользователь редактировать объект |
| `can_soft_delete` | `boolean` | По контексту объекта | Можно ли выполнить мягкое удаление |
| `can_hard_delete` | `boolean` | По контексту объекта | Можно ли удалить объект безвозвратно |
| `can_react` | `boolean` | По контексту объекта | Может ли текущий пользователь поставить реакцию |
| `can_view_attachments` | `boolean` | По контексту объекта | Может ли текущий пользователь видеть вложения |
| `view_url` | `string` | По контексту объекта | URL объекта на форуме |
| `Thread` | `Thread` | Условно | Связанная тема; включается по контексту ответа |
| `Attachments` | `Attachment[]` | Условно | Вложения объекта, если они включены в ответ |
| `is_reacted_to` | `boolean` | По контексту объекта | Поставил ли текущий пользователь реакцию |
| `visitor_reaction_id` | `integer` | По контексту объекта | ID реакции текущего пользователя |
| `vote_score` | `integer` | По контексту объекта | Суммарный балл голосования за содержимое |
| `can_content_vote` | `boolean` | По контексту объекта | Может ли текущий пользователь голосовать за содержимое |
| `allowed_content_vote_types` | `string[]` | По контексту объекта | Допустимые направления голосования за содержимое |
| `is_content_voted` | `boolean` | По контексту объекта | Голосовал ли пользователь за содержимое |
| `visitor_content_vote` | `string` | По контексту объекта | Выбор текущего пользователя: up или down, если голос есть |
| `post_id` | `integer` | По контексту объекта | ID сообщения темы |
| `thread_id` | `integer` | По контексту объекта | ID темы |
| `user_id` | `integer` | По контексту объекта | ID пользователя или автора |
| `post_date` | `integer` | По контексту объекта | Дата публикации, Unix timestamp в секундах |
| `message` | `string` | По контексту объекта | Исходный текст сообщения |
| `message_state` | `string` | По контексту объекта | Состояние публикации |
| `attach_count` | `integer` | По контексту объекта | Число вложений |
| `warning_message` | `string` | По контексту объекта | Сообщение о предупреждении, связанном с публикацией |
| `position` | `integer` | По контексту объекта | Позиция сообщения в теме |
| `last_edit_date` | `integer` | По контексту объекта | Дата последнего редактирования, Unix timestamp в секундах |
| `reaction_score` | `integer` | По контексту объекта | Суммарный балл реакций |
| `User` | `User` | По контексту объекта | Объект пользователя или автора |

## Poll

`responses` представляет соответствие ID вариантов объектам с `text`, `vote_count` и `visitor_voted_for`. Если результаты скрыты, `vote_count` равен `null`.

| Поле | Тип | Условия | Описание |
| - | - | - | - |
| `can_vote` | `boolean` | По контексту объекта | Может ли текущий пользователь голосовать |
| `has_voted` | `boolean` | По контексту объекта | Голосовал ли текущий пользователь в опросе |
| `responses` | `object` | По контексту объекта | Варианты ответа с текстом, числом голосов и отметкой выбора пользователя |
| `poll_id` | `integer` | По контексту объекта | ID опроса |
| `question` | `string` | По контексту объекта | Вопрос опроса |
| `voter_count` | `integer` | По контексту объекта | Число проголосовавших пользователей |
| `public_votes` | `boolean` | По контексту объекта | Открыта ли информация о проголосовавших |
| `max_votes` | `integer` | По контексту объекта | Максимальное число выбираемых вариантов |
| `close_date` | `integer` | По контексту объекта | Время закрытия опроса; Unix timestamp в секундах, 0 без срока |
| `change_vote` | `boolean` | По контексту объекта | Разрешено ли изменить голос |
| `view_results_unvoted` | `boolean` | По контексту объекта | Можно ли смотреть результаты без голосования |

## ThreadPrefix

| Поле | Тип | Условия | Описание |
| - | - | - | - |
| `prefix_id` | `integer` | По контексту объекта | ID основного префикса |
| `title` | `string` | По контексту объекта | Название или заголовок |
| `description` | `string` | По контексту объекта | Описание |
| `usage_help` | `string` | По контексту объекта | Подсказка по использованию префикса |
| `is_usable` | `boolean` | По контексту объекта | Может ли пользователь выбрать этот префикс |
| `prefix_group_id` | `integer` | По контексту объекта | ID группы префиксов |
| `display_order` | `integer` | По контексту объекта | Порядок отображения |
| `materialized_order` | `integer` | По контексту объекта | Итоговый порядок с учётом порядка группы |

## ThreadField

| Поле | Тип | Условия | Описание |
| - | - | - | - |
| `field_id` | `string` | По контексту объекта | Символьный ID дополнительного поля |
| `title` | `string` | По контексту объекта | Название или заголовок |
| `description` | `string` | По контексту объекта | Описание |
| `display_order` | `integer` | По контексту объекта | Порядок отображения |
| `field_type` | `string` | По контексту объекта | Тип поля |
| `field_choices` | `array` | Условно | Доступные варианты выбора с ключами option и name |
| `match_type` | `string` | По контексту объекта | Тип проверки значения |
| `match_params` | `object` | По контексту объекта | Параметры проверки значения |
| `max_length` | `integer` | По контексту объекта | Максимальная длина значения |
| `required` | `boolean` | По контексту объекта | Обязательно ли поле |
| `display_group` | `string` | Условно | Группа отображения поля |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.