MVP 1 Domain and Data - PlutoGr/TravelAgency GitHub Wiki

MVP-1 Domain and Data

Основные агрегаты

Агрегат Сервис
User Identity
Tour Catalog
Booking Booking
Favorite Booking
ChatMessage Chat (если chat включён)

Ключевые правила

Статусная модель заявки:

New → InProgress → ProposalSent → Confirmed → Closed / Cancelled

  • Нельзя переводить Closed / Cancelled обратно в активные статусы.
  • Для статуса ProposalSent должна быть минимум одна запись Proposal.
  • Для Confirmed выбирается финальное предложение.

Хранение

  • Database per service: у каждого сервиса своя БД (или своя схема при общем инстансе Postgres).
  • Снимок тура (snapshot) сохраняется в предложении заявки в Booking, чтобы не зависеть от последующих изменений в каталоге.

См. также: Архитектура MVP-1 · Дорожная карта