diff --git a/supabase/migrations/2026-06-12-products-extend.sql b/supabase/migrations/2026-06-12-products-extend.sql new file mode 100644 index 0000000..363b64a --- /dev/null +++ b/supabase/migrations/2026-06-12-products-extend.sql @@ -0,0 +1,20 @@ +-- 2026-06-12 Phase 2: products 범용 제품 시스템 확장 +-- (1) products 컬럼 확장 +ALTER TABLE products ADD COLUMN IF NOT EXISTS description_long text; +ALTER TABLE products ADD COLUMN IF NOT EXISTS features jsonb; -- string[] 형태 +ALTER TABLE products ADD COLUMN IF NOT EXISTS pay_method text NOT NULL DEFAULT 'bank_transfer'; +ALTER TABLE products ADD COLUMN IF NOT EXISTS is_listed boolean NOT NULL DEFAULT false; -- /products 카탈로그 노출 +ALTER TABLE products ADD COLUMN IF NOT EXISTS sort_order integer NOT NULL DEFAULT 0; + +-- (2) 음악 팩 제품 시드 (다운로드 권한 매핑용 — 카탈로그 비노출 is_listed=false) +INSERT INTO products (id, name, description, price, category, is_active, is_listed) +VALUES + ('music_starter', 'AI 음악 생성 개발 가이드 (입문)', '음악 팩 입문 — 레거시', 39000, 'software', true, false), + ('music_pro', 'AI 음악 생성 개발 가이드 (프로)', '음악 팩 프로 — 레거시', 99000, 'software', true, false), + ('music_master', 'AI 음악 생성 개발 가이드 (마스터)', '음악 팩 마스터 — 레거시', 149000, 'software', true, false) +ON CONFLICT (id) DO NOTHING; + +-- (3) pack_files → 제품 연결 +ALTER TABLE pack_files ADD COLUMN IF NOT EXISTS product_id text REFERENCES products(id); +UPDATE pack_files SET product_id = 'music_' || min_tier WHERE product_id IS NULL; +CREATE INDEX IF NOT EXISTS idx_pack_files_product ON pack_files (product_id) WHERE deleted_at IS NULL;