-- 0010 · LLM 여행 일정 저장 표 -- -- 일정은 지금까지 저장하지 않고 빌드마다 즉석 계산했다(services/itinerary.py). -- LLM 생성으로 바꾸면서 호출이 건당 20~50초·유료가 되어 매 빌드 재생성이 불가능하다 — -- 업장·기간당 한 번 만들어 두고 그대로 쓴다. -- ★ area_contents 에 넣지 않는다: 그 표의 유일성 근거는 지역·출처 기준이고 이 값은 업장에 붙는다. -- -- ★ 2026-09-11 기준 dev DB 에는 아직 적용하지 않았다. 그 DB 의 schema_migrations 에는 -- 다른 브랜치의 0009_faq_catalog_columns 가 기록돼 있어, migrate.py 가 이 브랜치의 -- 0009_align_with_init_sql 까지 함께 적용하려 든다 — 번호 정리가 먼저다. 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;