gendesign/data/sql/119_parcel_user_status.sql
lekss361 57676d5299 feat(sf-b1): GET /parcels/by-bbox — map entry endpoint + parcel_user_status table
Добавляет bbox-поиск участков для карты Site Finder (issue #307):
- GET /api/v1/parcels/by-bbox с query params min_lat/min_lon/max_lat/max_lon/limit/user_id
- Overlay статуса из parcel_user_status (user_id опционален)
- Pydantic schemas: ParcelMapMarker, ParcelBboxResponse в app/schemas/parcel.py
- SQL-миграция 119_parcel_user_status.sql (CREATE TABLE IF NOT EXISTS + индексы)
- 4 unit-теста: valid bbox / invalid bbox (400) / status overlay / no-user-id null status
2026-05-18 00:17:40 +03:00

21 lines
648 B
PL/PgSQL

BEGIN;
CREATE TABLE IF NOT EXISTS parcel_user_status (
user_id text NOT NULL,
cad_num text NOT NULL,
status text NOT NULL CHECK (status IN ('in_work', 'favorite', 'dismissed')),
notes text,
updated_at timestamptz NOT NULL DEFAULT NOW(),
PRIMARY KEY (user_id, cad_num)
);
CREATE INDEX IF NOT EXISTS parcel_user_status_cad_idx
ON parcel_user_status (cad_num);
CREATE INDEX IF NOT EXISTS parcel_user_status_user_idx
ON parcel_user_status (user_id, status);
COMMENT ON TABLE parcel_user_status
IS '#307 SF-B1 user-marked parcels (in_work/favorite/dismissed) для карты.';
COMMIT;