# 바로빌 회원사관리 - 레거시 마이그레이션 계획 > 레거시 소스: `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 클래스로 분리 권장