-- 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;