Files
pipu-music/services/api/AGENTS.md
T
mrleo1nid e158558da3
ci / module boundaries / boundaries (push) Successful in 6s
ci / api / api (push) Successful in 47s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m2s
ci / db / db (push) Successful in 1m4s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m30s
ci / ts / ts (packages + web) (push) Successful in 2m54s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m14s
refactor: isolate playback and upload use cases
2026-10-22 13:52:16 +03:00

1.4 KiB

Go API

  • Сборка зависимостей: cmd/api/main.go; маршрутизация: internal/server/router.go. Конкретные адаптеры здесь допустимы.
  • HTTP-типы: internal/api/gen; исходный контракт: корневой api/openapi.yaml. Генерация: go generate ./....
  • Области: auth, library, uploads, playback, wave, search, genius. Начинай с handler → операция → store затронутого сценария.
  • SQL и pgx-транзакции принадлежат persistence-адаптерам. Смена статуса upload, reviewer metadata и квота должны сохранять атомарность. Read-проекции могут объединять таблицы модулей.
  • Целевая проверка: go test ./internal/<module>/...; перед сдачей Go-рефакторинга: go test ./..., go vet ./....
  • PostgreSQL integration: TEST_DATABASE_URL и go test -tags integration ./internal/dbtest ./internal/playback. E2E API: go test -tags integration ./cmd/api (проверь заголовок теста/переменные окружения).
  • Сканер работает внутри процесса; upload jobs используют статусы PostgreSQL и worker loops. River/sqlc сейчас не используются.