Repository navigation
Doc Glossary
TravelAgency edited this page Oct 19, 2026
·
2 revisions
Термины проекта в том виде, в каком они есть в коде сейчас. Планируемые термины описаны на страницах этапов (Дорожная карта).
Менеджер собрал тур «Неделя в Стамбуле» с двумя предложениями тура (июль за 900 USD, август за 1000 USD) и опубликовал его. Пользователь оставил заявку. Менеджер отправил ему предложение со снимком тура по цене 900 USD. Пользователь подтвердил предложение, заявка перешла в Confirmed.
| Термин | В коде | Что это |
|---|---|---|
| Тур |
Tour, Catalog |
поездка: тексты, программа по дням, включено и не включено, питание, проживание, фото, предложения. Статусы Draft, Published, Unpublished
|
| Направление |
Direction, Catalog |
страна или регион для фильтра каталога |
| Предложение тура |
TourOffer, Catalog |
тур на конкретные даты: ValidFrom, ValidTo, цена за человека, валюта, места. Раньше называлось TourPrice
|
| Обложка | TourImage.IsCover |
главное фото тура, одно на тур, ширина от 1280 px |
| Проверка публикации | TourPublishRequirementCodes |
список условий, без которых тур нельзя опубликовать; ответ 422 с кодами в missing
|
| Заявка |
Booking, Booking |
запрос пользователя на тур. Статусы ниже |
| Предложение |
Proposal, Booking |
ответ менеджера по заявке со снимком тура. У заявки может быть несколько, подтверждается одно |
| Снимок тура |
TourSnapshot, Booking |
копия названия, описания, цены, валюты и длительности на момент предложения; не меняется, если тур в каталоге изменили |
| Ответственный менеджер |
AssignedManagerId, Booking |
менеджер, назначенный на заявку. Пишет в чат заявки вместе с клиентом и админом. Пустое значение: заявка в общей очереди. Смены хранятся в BookingAssignmentHistory
|
| Общая очередь |
assigned=queue, Booking |
заявки без ответственного менеджера; менеджер берёт заявку через take
|
| Закреплённый менеджер клиента |
GetPreferredManagerIdAsync, Booking |
ответственный последней заявки клиента, где менеджер назначен; сразу назначается на новую заявку, если у него роль Manager |
| Избранное |
Favorite, Booking |
туры, сохранённые пользователем |
| Сообщение чата |
ChatMessage, Chat |
сообщение в переписке по заявке |
| Медиафайл |
MediaFile, Media |
загруженный файл с превью и флагом IsPublic
|
«Предложение» и «предложение тура» разные вещи: первое живёт в Booking и относится к заявке, второе в Catalog и относится к туру.
| Статус | Число | Кто переводит |
|---|---|---|
New |
0 | создаётся пользователем |
InProgress |
1 | менеджер |
ProposalSent |
2 | менеджер, если есть хотя бы одно предложение |
Confirmed |
3 | пользователь через confirm (менеджер и админ тоже могут) |
Closed |
4 | менеджер |
Cancelled |
5 | пользователь (только свою заявку) или менеджер |
Переходы: Booking.
| Роль | Кто | Что может |
|---|---|---|
Client |
пользователь сайта | каталог, заявки, избранное, чат по своим заявкам, профиль |
Manager |
менеджер | все заявки, статусы, предложения, взять заявку и назначить менеджера, чтение чата по любой заявке, запись в чат только своих заявок, свои туры в конструкторе |
Admin |
администратор | всё, что Manager, плюс любые туры и любые файлы. Отдельного управления пользователями пока нет |
Роль хранится в Identity и передаётся в JWT. Доступ проверяется по ролям на Gateway и в сервисах.
| Термин | Что это |
|---|---|
| Gateway | единая точка входа API: маршруты, проверка JWT и ролей, лимиты запросов. См. Gateway |
| Сессия | пара cookie с access- и refresh-токеном, недоступная JavaScript. См. Вход и сессия |
| ETag, If-Match | версия тура в ответе и проверка этой версии при записи; защищает от затирания чужих правок |
| gRPC | внутренние вызовы между сервисами на порту 8081 с сервисным токеном. См. Межсервисные контракты |
| Outbox | таблица событий, которые пишутся в одной транзакции с изменением. В Booking события пишутся, но пока не отправляются |
| ProblemDetails | формат ошибок API (RFC 7807): type, title, status, detail и расширения |
| Сидер | код, который заполняет базу демо-данными при старте в Development |
| Сокращение | Расшифровка |
|---|---|
| API | Application Programming Interface |
| RBAC | Role-Based Access Control, доступ по ролям |
| JWT | JSON Web Token |
| PII | персональные данные; в логах Identity маскируются (PiiMaskingDestructuringPolicy) |
| SPA | одностраничное приложение (фронтенд) |
Система
API
Сервисы
Как реализовано
Справочное