gendesign/tradein-mvp/backend/data/sql/044_external_valuations_link.sql
lekss361 5e90797a9f
Some checks failed
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been cancelled
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) (#464)
2026-05-23 13:30:22 +00:00

37 lines
1.6 KiB
PL/PgSQL

-- 044_external_valuations_link.sql
-- Purpose: Link external_valuations to canonical entities (house/listing) + add
-- sale band columns (low/high) per Cross_Source_Matching sec 13.1.
-- Table base in 026 + 029. Existing UNIQUE (source, cache_key) preserved.
-- Dependencies: 026_external_valuations.sql, 029_extend_matching_valuation_dynamics.sql,
-- 009_houses.sql, 002_core_tables.sql (listings)
BEGIN;
ALTER TABLE external_valuations
ADD COLUMN IF NOT EXISTS house_id bigint REFERENCES houses(id) ON DELETE CASCADE,
ADD COLUMN IF NOT EXISTS listing_id bigint REFERENCES listings(id) ON DELETE CASCADE,
ADD COLUMN IF NOT EXISTS low_price bigint,
ADD COLUMN IF NOT EXISTS high_price bigint;
CREATE INDEX IF NOT EXISTS external_valuations_house_idx
ON external_valuations (house_id)
WHERE house_id IS NOT NULL;
CREATE INDEX IF NOT EXISTS external_valuations_listing_idx
ON external_valuations (listing_id)
WHERE listing_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS external_valuations_canonical_uniq_idx
ON external_valuations (source, house_id, listing_id)
WHERE house_id IS NOT NULL AND listing_id IS NOT NULL;
COMMENT ON COLUMN external_valuations.house_id IS
'FK to canonical house (post-matching). NULL for pre-matching cache rows keyed by cache_key.';
COMMENT ON COLUMN external_valuations.listing_id IS
'FK to canonical listing (post-matching). NULL for house-level estimates.';
COMMENT ON COLUMN external_valuations.low_price IS
'Lower bound of sale band (Cian sometimes returns; NULL for Avito IMV).';
COMMENT ON COLUMN external_valuations.high_price IS
'Upper bound of sale band.';
COMMIT;