# 코드 채번 규칙 컴포넌트

## 개요

시스템에서 자동으로 코드를 생성하는 규칙을 설정하고 관리하는 관리자 전용 컴포넌트입니다.

## 주요 기능

- **좌우 분할 레이아웃**: 좌측에서 규칙 목록, 우측에서 편집
- **동적 파트 시스템**: 최대 6개의 파트를 자유롭게 조합
- **실시간 미리보기**: 설정 즉시 생성될 코드 확인
- **다양한 파트 유형**: 접두사, 순번, 날짜, 연도, 월, 커스텀

## 생성 코드 예시

- 제품 코드: `PROD-20251104-0001`
- 프로젝트 코드: `PRJ-2025-001`
- 거래처 코드: `CUST-A-0001`

## 파트 유형

### 1. 접두사 (prefix)
고정된 문자열을 코드 앞에 추가합니다.
- 예: `PROD`, `PRJ`, `CUST`

### 2. 순번 (sequence)
자동으로 증가하는 번호를 생성합니다.
- 자릿수 설정 가능 (1-10)
- 시작 번호 설정 가능
- 예: `0001`, `00001`

### 3. 날짜 (date)
현재 날짜를 다양한 형식으로 추가합니다.
- YYYY: 2025
- YYYYMMDD: 20251104
- YYMMDD: 251104

### 4. 연도 (year)
현재 연도를 추가합니다.
- YYYY: 2025
- YY: 25

### 5. 월 (month)
현재 월을 2자리로 추가합니다.
- 예: 01, 02, ..., 12

### 6. 사용자 정의 (custom)
원하는 값을 직접 입력합니다.

## 생성 방식

### 자동 생성 (auto)
시스템이 자동으로 값을 생성합니다.

### 직접 입력 (manual)
사용자가 값을 직접 입력합니다.

## 설정 옵션

| 옵션 | 타입 | 기본값 | 설명 |
|------|------|--------|------|
| `maxRules` | number | 6 | 최대 파트 개수 |
| `readonly` | boolean | false | 읽기 전용 모드 |
| `showPreview` | boolean | true | 미리보기 표시 |
| `showRuleList` | boolean | true | 규칙 목록 표시 |
| `cardLayout` | "vertical" \| "horizontal" | "vertical" | 카드 배치 방향 |

## 사용 예시

```typescript
<NumberingRuleDesigner
  maxRules={6}
  isPreview={false}
  className="h-full"
/>
```

## 데이터베이스 구조

### numbering_rules (마스터 테이블)
- 규칙 ID, 규칙명, 구분자
- 초기화 주기, 현재 시퀀스
- 적용 대상 테이블/컬럼

### numbering_rule_parts (파트 테이블)
- 파트 순서, 파트 유형
- 생성 방식, 설정 (JSONB)

## API 엔드포인트

- `GET /api/numbering-rules` - 규칙 목록 조회
- `POST /api/numbering-rules` - 규칙 생성
- `PUT /api/numbering-rules/:ruleId` - 규칙 수정
- `DELETE /api/numbering-rules/:ruleId` - 규칙 삭제
- `POST /api/numbering-rules/:ruleId/generate` - 코드 생성

## 버전 정보

- **버전**: 1.0.0
- **작성일**: 2025-11-04
- **작성자**: 개발팀

