From ff4ef299ad16283fe48cc0f8e70b8dd565b156c3 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 6 May 2026 01:35:19 +0900 Subject: [PATCH] =?UTF-8?q?feat(packs-lab):=20Supabase=20pack=5Ffiles=20DD?= =?UTF-8?q?L=20+=20=ED=99=9C=EC=84=B1/=EC=82=AD=EC=A0=9C=20=EC=9D=B8?= =?UTF-8?q?=EB=8D=B1=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packs-lab/supabase/pack_files.sql | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 packs-lab/supabase/pack_files.sql diff --git a/packs-lab/supabase/pack_files.sql b/packs-lab/supabase/pack_files.sql new file mode 100644 index 0000000..c8f5417 --- /dev/null +++ b/packs-lab/supabase/pack_files.sql @@ -0,0 +1,23 @@ +-- pack_files: NAS에 저장된 다운로드 가능한 패키지 파일 메타 +-- 운영 적용: Supabase Dashboard → SQL editor에서 실행 +create table if not exists public.pack_files ( + id uuid primary key default gen_random_uuid(), + min_tier text not null check (min_tier in ('starter','pro','master')), + label text not null, + file_path text not null unique, + filename text not null, + size_bytes bigint not null check (size_bytes > 0), + sort_order integer not null default 0, + uploaded_at timestamptz not null default now(), + deleted_at timestamptz +); + +-- list 라우트 hot path: deleted_at IS NULL + tier/order 정렬 +create index if not exists pack_files_active_idx + on public.pack_files (min_tier, sort_order) + where deleted_at is null; + +-- soft-deleted 통계 / cleanup 잡 대비 +create index if not exists pack_files_deleted_at_idx + on public.pack_files (deleted_at) + where deleted_at is not null;