# QC 이슈 추적 앱 — 벌크 데이터 패키지

실습 15(Supabase DB 기반 QC 이슈 추적 앱)의 `qc_issues` 테이블에 넣을 **교육용 합성 데이터 60건**입니다.

> ⚠️ 전부 가공된 교육용 데이터입니다. 실제 환자·검체·기업 내부 정보가 아닙니다.

## 파일 구성

| 파일 | 용도 |
|---|---|
| `qc_issues_schema.sql` | 테이블 생성 + 교육용 RLS 정책 |
| `qc_issues_seed.sql` | 벌크 INSERT 60건 (SQL Editor용) |
| `qc_issues_seed.csv` | 표 임포트용 60건 (Table Editor용) |
| `_gen.py` | 재생성 스크립트 (행 수·분포 조정용) |

## 넣는 방법 — 둘 중 하나

### 방법 A. SQL Editor (권장)
1. Supabase 대시보드 → **SQL Editor**
2. `qc_issues_schema.sql` 붙여넣고 **Run** (테이블+RLS 생성)
3. `qc_issues_seed.sql` 붙여넣고 **Run** (60건 입력)

### 방법 B. Table Editor (CSV 임포트)
1. 먼저 `qc_issues_schema.sql`로 테이블 생성
2. **Table Editor → qc_issues → Insert → Import data from CSV**
3. `qc_issues_seed.csv` 업로드 (헤더가 컬럼과 자동 매칭, `id`·`created_at`은 기본값)

## 데이터 구성 (통계 카드가 의미 있게 분포)

- **총 60건**
- 카테고리: 장비 15 · 시약 15 · 공정 14 · 환경 11 · 문서 5
- 심각도: 낮음 22 · 중간 31 · **높음 7**
- 상태: 접수 17 · 검토중 19 · **조치완료 24**
- → **미해결 36 · 고위험 7 · 완료율 40%** (통계 카드 4종이 모두 0이 아니게 설계)

## 컬럼

`title · description · category · severity · status · assignee · equipment_name · test_item · occurred_at`

- category: 장비 / 시약 / 공정 / 환경 / 문서
- severity: 낮음 / 중간 / 높음
- status: 접수 / 검토중 / 조치완료
- 장비명·시험항목은 과정 도메인과 일치 (DSP-03, OPT-01, 반복성 CV, LoD 등)
- occurred_at: 2026-04 ~ 2026-06 분포

## 재생성

```bash
python _gen.py
```
`random.seed(20260619)` 고정 → 항상 동일. `N`(행 수)·분포 가중치는 스크립트 상단에서 조정.

## 실습 연계 포인트

- **목록 조회**: 60건이 있어 "진짜 운영 화면" 느낌
- **통계 카드**: 미해결/고위험/완료율이 0이 아니라 카드가 살아있음
- **상태 변경**: 접수→검토중→조치완료 전환 실습에 충분한 표본
- **필터·정렬**: 카테고리·심각도·상태별 필터 확장 과제에 활용
