gendesign/tradein-mvp/backend/data/sql/007_estimate_photos.sql
TradeIn Deploy 5413cce953 feat(tradein): backend загрузки фото квартиры (#394)
Фото квартиры прикрепляются к оценке, хранятся в Postgres (bytea) —
без отдельного файлового тома, уезжают вместе с бэкапом БД.

- data/sql/007_estimate_photos.sql — таблица estimate_photos
  (FK на trade_in_estimates, ON DELETE CASCADE).
- POST /estimate/{id}/photos — multipart-загрузка (image/*, ≤10 МБ,
  ≤12 фото на оценку).
- GET  /estimate/{id}/photos — список метаданных.
- GET  /estimate/{id}/photos/{photo_id} — отдать содержимое.
- python-multipart добавлен в зависимости (FastAPI UploadFile).

Фронтенд (file-drop в форме) — отдельным PR.
2026-05-22 11:05:35 +05:00

23 lines
978 B
PL/PgSQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Trade-In MVP — фото квартиры, прикреплённые к оценке (#394).
-- Хранение в bytea (без отдельного файлового тома): фото идут в PDF-отчёт
-- и путешествуют вместе с бэкапом БД (#397). Привязка к trade_in_estimates.
BEGIN;
CREATE TABLE IF NOT EXISTS estimate_photos (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
estimate_id uuid NOT NULL REFERENCES trade_in_estimates(id) ON DELETE CASCADE,
filename text,
content_type text NOT NULL,
content bytea NOT NULL,
size_bytes int,
uploaded_at timestamptz NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS estimate_photos_estimate_idx
ON estimate_photos (estimate_id, uploaded_at);
COMMENT ON TABLE estimate_photos IS
'#394 — фото квартиры, привязанные к trade_in_estimates. Хранение в bytea.';
COMMIT;