# AWC v000 고정 설계 결정

## 1. 시스템 경계
- 기존 운영 시스템: `/var/www/html/api/__yc/`
- 신규 AWC: `/var/www/html/api/_awc/`
- AIWK 공통 엔진: 기존 `AIWK_COMMON` 재사용
- `_awc`가 안정화되기 전까지 `__yc`는 그대로 유지한다.

## 2. AWC의 정체성
AWC는 기존 `rec_chart` 메뉴를 예쁘게 다시 만드는 프로젝트가 아니다.
**AIWK 독립 창을 조합하는 통합 데이터 분석/연구/대시보드 Workbench**다.
각 창은 서로 다른 데이터소스, 농가, 필드, 기간, 차트 종류를 가질 수 있다.

## 3. 고정 규칙과 자유 영역
고정:
- 권한 3단계
- Data Source Registry
- CSV Field Registry 의미
- 모니터 판별 규칙
- API 보안
- legacy adapter
- 개인 localStorage / 공용 server workspace 분리

자유:
- 데이터소스 선택
- 농가/대상 선택
- 필드 선택
- 기간/집계 간격
- 차트 종류
- 창 위치/크기
- Linked group
- 필요 시 축 범위/표시 옵션 override

## 4. 필드 메타데이터
기존 CSV를 AWC Field Registry의 중요한 기준으로 사용한다.
현재 확인된 핵심 열:
- Field Name
- Field Title
- SHM Type
- SHM Name
- SHM Index
- Multiplier
- 단위
- 소수점 이하
- y축 min_max
- SQL_EXPR
- 선택적 색상 열

`y축 min_max`가 유효한 `숫자_숫자` 형식이면 fixed scale 기본값으로 사용한다.
잘못된 값/누락은 임의 추정하지 않는다. 사용자가 명시적으로 Auto scale을 선택하거나 관리자가 메타를 수정해야 한다.

## 5. 모니터 의미형 필드 — 절대 고정
새 AWC의 판정 기준은 **한글 Field Title에 `모니터` 포함** 하나다.
- 포함: 상태/제어 의미형 필드
- 미포함: 일반 수치 필드
- 영문 `Mon`만으로 판정 금지
- JSON 존재만으로 판정 금지

모니터 필드:
- Alias JSON을 사용한다.
- 툴팁: `원시값 + 설명문`
- 기본 curve: stepline
- Alias가 없는 값은 원시값을 보이되 `alias_missing` 상태를 함께 표시한다. 설명을 만들어내지 않는다.

## 6. 권한
서버 역할:
- `super_admin`
- `manager`
- `viewer`

AIWK 표시 역할 매핑:
- `super_admin -> dev / AIWK1_ADMIN`
- `manager -> editor / AIWK1_USER`
- `viewer -> guest`
- `host`는 사람 역할이 아닌 서비스/호스트 역할

권한 정본은 서버 세션/API다.

## 7. 배치 저장
- drag/resize/collapse/개인 창 상태: 기존 AIWK localStorage
- 공용 Workspace 저장: 서버
- viewer는 개인 위치를 자유롭게 바꿔도 공용 배치는 변경할 수 없다.
- manager/super_admin만 공용 Workspace 생성·수정·삭제 가능

## 8. 데이터 통합
DB를 물리적으로 합치지 않는다.
`source_id`로 논리 통합한다.
브라우저는 raw DB/table/SQL을 지정할 수 없다.

## 9. 기존 설정 자산
그대로 유지:
- `/api/__yc/_rec/cfg_rec_fds/idxNNN/*.php`
- `*.php_def.php`
- `.bak`
- `/api/__yc/_rec/csv/.../_def_rec.csv`
- `/api/__yc/_rec/csv/.../{FieldName}.json`

AWC는 read/import adapter로만 접근한다.

## 10. 차트 엔진
현재 원본에서 확인된 운영 기준:
- 일반 chart/rec_chart: ApexCharts 5.10.6 CDN
- radar/trend: ECharts 6.1.0 CDN
- 3D 엔진은 실제 구현 Stage에서 기존 서버 자산을 다시 검색한 뒤 결정한다. 발견되지 않으면 Plotly 또는 ECharts-GL 후보를 비교하고 사용자 승인 후 고정한다.
- 서로 다른 ApexCharts 버전을 한 화면에 동시에 로드하지 않는다.

## 11. 통계
상관분석의 첫 기능은 두 변수 Pairwise 분석이다.
- scatter
- Pearson r
- 선형 회귀선
- n
- 농가/관측 단위 tooltip
항상 scatter와 r을 같이 보여준다.
관측 단위(farm/farm-week/farm-stage 등)를 명시하지 않고 반복시계열을 섞어 상관계수를 계산하지 않는다.

## 12. 아직 실제 스키마 확인이 필요한 항목
다음은 설계상 기능은 확정됐지만 실제 테이블/필드명은 추측 금지다.
- 생산량/출하량 실제 AWC source descriptor
- StressIndex 실제 저장 위치/계산식
- WEB 로그인 세션의 실제 user key
- 서버에서 AIWK_COMMON의 실제 공개 URL/파일 경로
- 최종 3D 라이브러리
이 항목은 해당 Stage에서 원본/서버 정보를 확인하고 고정한다.
