-- studyqa-seed.sql — '문서 Q&A·스터디 관리' 데모용 시드 데이터 (관계형 앱 테이블)
-- 멱등(idempotent): 여러 번 실행해도 중복되지 않는다 (고정 id + ON CONFLICT DO NOTHING).
-- 로컬 PostgreSQL 적재:  psql "$DATABASE_URL" -f studyqa-seed.sql
-- 비우기(빈 상태 토글):  아래 맨 끝 TRUNCATE 블록 주석 해제 후 실행, 또는 npm run seed:reset

CREATE TABLE IF NOT EXISTS users(
  id text PRIMARY KEY, email text UNIQUE, name text,
  role text NOT NULL DEFAULT 'member',          -- 'admin' | 'member'  (07 권한 시연)
  provider text DEFAULT 'jwt', created_at timestamptz DEFAULT now());

CREATE TABLE IF NOT EXISTS studies(
  id text PRIMARY KEY, title text, description text,
  owner_id text REFERENCES users(id), created_at timestamptz DEFAULT now());

CREATE TABLE IF NOT EXISTS study_members(
  study_id text REFERENCES studies(id) ON DELETE CASCADE,
  user_id  text REFERENCES users(id)   ON DELETE CASCADE,
  role text DEFAULT 'member', PRIMARY KEY(study_id, user_id));

-- 회원: 관리자 1 + 일반 3 (07 권한 시연용)
INSERT INTO users(id,email,name,role,provider) VALUES
 ('u_admin','admin@studyqa.dev','관리자 박지훈','admin','jwt'),
 ('u_member1','minji@studyqa.dev','이민지','member','oauth'),
 ('u_member2','seojun@studyqa.dev','김서준','member','oauth'),
 ('u_member3','hayoon@studyqa.dev','최하윤','member','jwt')
ON CONFLICT(id) DO NOTHING;

-- 스터디 12개 (01 목록/02 되돌리기 시연용)
INSERT INTO studies(id,title,description,owner_id) VALUES
 ('s_k8s','쿠버네티스 입문','컨테이너 오케스트레이션 기초를 함께 읽는 스터디','u_admin'),
 ('s_rag','RAG 실전','검색 증강 생성으로 문서 Q&A 만들기','u_member1'),
 ('s_embed','임베딩과 벡터검색','문장을 벡터로 바꿔 검색하기','u_member1'),
 ('s_db','DB 안전하게 다루기','마이그레이션/트랜잭션/되돌리기','u_member2'),
 ('s_auth','인증과 권한','JWT/OAuth와 인가 설계','u_admin'),
 ('s_cicd','CI/CD 파이프라인','올리면 자동 배포되는 흐름','u_member2'),
 ('s_a11y','웹 접근성','모두를 위한 화면 만들기','u_member3'),
 ('s_obs','관측가능성','로그/지표로 장애 잡기','u_member3'),
 ('s_docker','도커로 환경 통일','컨테이너 이미지 다루기','u_member1'),
 ('s_bg','백그라운드 작업','비동기 큐와 진행 상태','u_member2'),
 ('s_prompt','프롬프트 엔지니어링','지시문 설계와 검증','u_admin'),
 ('s_finetune','파인튜닝 스터디','언제 미세조정이 답인가','u_member3')
ON CONFLICT(id) DO NOTHING;

-- 멤버십 (스터디별 참여자)
INSERT INTO study_members(study_id,user_id,role) VALUES
 ('s_k8s','u_admin','owner'),('s_k8s','u_member1','member'),('s_k8s','u_member2','member'),
 ('s_rag','u_member1','owner'),('s_rag','u_member3','member'),
 ('s_db','u_member2','owner'),('s_db','u_admin','member'),
 ('s_auth','u_admin','owner'),('s_auth','u_member1','member'),
 ('s_a11y','u_member3','owner'),('s_a11y','u_member2','member')
ON CONFLICT DO NOTHING;

-- ── 빈 상태 토글(06/03 시연)용 — 필요할 때만 주석 해제해서 실행 ─────────────
-- TRUNCATE study_members, studies, document_chunks, documents, users RESTART IDENTITY CASCADE;
