Skip to content

Repository files navigation

Otelier — backend

API информационной системы управления гостиницей. Мультиарендность: изоляция данных по tenant_id на уровне приложения, идентификатор арендатора берётся из сессии и подставляется в запросы автоматически.

Стек

FastAPI · Dishka (внедрение зависимостей) · asyncpg (raw SQL, без ORM) · Pydantic v2 · PostgreSQL. Управление зависимостями — uv.

Структура

  • app/internal/routes — HTTP-слой (тонкий, без бизнес-логики).
  • app/internal/services — бизнес-логика.
  • app/internal/repository — доступ к данным (SQL).
  • app/pkg/models — модели, перечисления, исключения.
  • app/configuration — DI-контейнер, жизненный цикл, сервер.
  • migrations — последовательные SQL-миграции (0001…, 19 шагов).

Запуск

cp .env.example .env
uv sync
uv run python -m app

Весь стек (postgres, миграции, backend, mailer, nginx) поднимается из infra/:

docker compose -f ../infra/docker-compose.yml up --build

Liveness — GET /health, readiness — GET /health/ready (проверка пула БД). Документация API доступна при SERVER__DOCS_ENABLED=true.

Форматтеры

uv run ruff check . && uv run black --check . && uv run mypy app && uv run pytest -q

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages