o2o-site-AEO/postgres-init/migrations/0011_place_itineraries.sql

30 lines
1.5 KiB
SQL

-- 0011 · LLM 여행 일정 저장 표
--
-- 일정은 지금까지 저장하지 않고 빌드마다 즉석 계산했다(services/itinerary.py).
-- LLM 생성으로 바꾸면서 호출이 건당 20~50초·유료가 되어 매 빌드 재생성이 불가능하다 —
-- 업장·기간당 한 번 만들어 두고 그대로 쓴다.
-- ★ area_contents 에 넣지 않는다: 그 표의 유일성 근거는 지역·출처 기준이고 이 값은 업장에 붙는다.
--
-- ★ 0010 을 비워 두고 0011 로 붙였다. 같은 시기 FAQ 작업 브랜치가 0009 를 이미 썼고
-- (dev DB 의 schema_migrations 에 0009_faq_catalog_columns 가 기록돼 있다) 합칠 때
-- 번호가 부딪히지 않게 여지를 남긴 것이다.
CREATE TABLE IF NOT EXISTS public.place_itineraries (
place_itinerary_id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
place_id uuid NOT NULL,
duration VARCHAR(20) NOT NULL,
body JSONB NOT NULL,
generated_by SMALLINT NOT NULL,
model VARCHAR(100) NULL,
generated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
deleted BOOLEAN NOT NULL DEFAULT FALSE
);
CREATE INDEX IF NOT EXISTS ix_place_itineraries_place ON public.place_itineraries (place_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_place_itineraries
ON public.place_itineraries (place_id, duration)
WHERE deleted = FALSE;