# 바로빌 회원사관리 - 레거시 마이그레이션 계획

> 레거시 소스: `sam/sales/barobill/registration/index.php`

## 1. 레거시 분석

### 기술 스택
- Frontend: React 18 + Babel (브라우저 트랜스파일링)
- Backend: PHP + PDO (api.php)
- UI: Tailwind CSS + Lucide Icons

### 데이터베이스 구조 (`barobill_members` 테이블)

| 필드명 | 타입 | 설명 |
|--------|------|------|
| `id` | INT | PK, Auto Increment |
| `biz_no` | VARCHAR | 사업자번호 (Unique) |
| `corp_name` | VARCHAR | 상호명 |
| `ceo_name` | VARCHAR | 대표자명 |
| `addr` | VARCHAR | 주소 |
| `biz_type` | VARCHAR | 업태 |
| `biz_class` | VARCHAR | 종목 |
| `barobill_id` | VARCHAR | 바로빌 아이디 |
| `barobill_pwd` | VARCHAR | 바로빌 비밀번호 (해시) |
| `manager_name` | VARCHAR | 담당자명 |
| `manager_email` | VARCHAR | 담당자 이메일 |
| `manager_hp` | VARCHAR | 담당자 전화번호 |
| `created_at` | TIMESTAMP | 생성일시 |

### API 엔드포인트 (레거시)

| Method | Endpoint | 설명 |
|--------|----------|------|
| GET | `api.php` | 전체 목록 조회 |
| GET | `api.php?id={id}` | 단일 조회 |
| POST | `api.php` | 신규 등록 (사업자번호 중복 체크) |
| PUT | `api.php` | 정보 수정 |
| DELETE | `api.php?id={id}` | 삭제 |

### UI 기능

1. **통계 카드 (4개)**
   - 연동 회원사 수 (DB 실시간)
   - API 키 상태
   - 트래픽 상태
   - 서버 상태

2. **탭 네비게이션**
   - 목록 조회
   - 신규 등록

3. **목록 테이블 컬럼**
   - 사업자번호
   - 상호 / 대표자
   - 바로빌 ID
   - 담당자 정보
   - 작업 (수정/삭제)

4. **등록 폼 필드**
   - 사업자번호 (필수)
   - 상호명 (필수)
   - 대표자명 (필수)
   - 업태
   - 종목
   - 주소
   - 바로빌 아이디 (필수, 등록 시만)
   - 비밀번호 (필수, 등록 시만)
   - 담당자명
   - 담당자 HP
   - 담당자 이메일
   - **자동완성 버튼** (테스트 데이터 입력)

5. **수정 모달**
   - 등록 폼과 동일 (아이디/비밀번호 제외)

---

## 2. Laravel 마이그레이션 계획

### 생성할 파일 목록

#### Model & Migration
```
app/Models/BarobillMember.php
database/migrations/xxxx_create_barobill_members_table.php
```

#### Controller
```
app/Http/Controllers/Barobill/BarobillController.php  (이미 생성됨)
app/Http/Controllers/Api/Admin/BarobillController.php (API용)
```

#### Views
```
resources/views/barobill/members/index.blade.php  (이미 생성됨 - 업데이트 필요)
resources/views/barobill/members/partials/table.blade.php
resources/views/barobill/members/partials/form.blade.php
resources/views/barobill/members/partials/modal-edit.blade.php
```

#### Routes
```php
// Web Routes (이미 추가됨)
Route::prefix('barobill')->name('barobill.')->group(function () {
    Route::get('/members', [BarobillController::class, 'members'])->name('members.index');
});

// API Routes (추가 필요)
Route::prefix('barobill')->name('barobill.')->group(function () {
    Route::get('/members', [BarobillApiController::class, 'index']);
    Route::get('/members/{id}', [BarobillApiController::class, 'show']);
    Route::post('/members', [BarobillApiController::class, 'store']);
    Route::put('/members/{id}', [BarobillApiController::class, 'update']);
    Route::delete('/members/{id}', [BarobillApiController::class, 'destroy']);
});
```

### 구현 순서

1. [ ] Migration 생성 및 실행
2. [ ] Model 생성 (fillable, casts 설정)
3. [ ] API Controller 생성 (CRUD)
4. [ ] API Routes 추가
5. [ ] View 업데이트 (HTMX + Blade)
   - 통계 카드
   - 탭 (목록/등록)
   - 테이블 (HTMX 로드)
   - 등록 폼
   - 수정 모달
6. [ ] 테스트

---

## 3. 참고 사항

### 레거시 코드 위치
- Frontend: `sam/sales/barobill/registration/index.php`
- Backend API: `sam/sales/barobill/registration/api.php`

### 주의 사항
- 사업자번호 중복 체크 로직 필요
- 비밀번호는 해시 저장 (password_hash)
- 바로빌 API 연동은 별도 Service 클래스로 분리 권장
