Commit Graph

38 Commits

Author SHA1 Message Date
김보곤
2a45b6bfe8 feat: [interview] 카테고리 계층 구조(대분류/중분류) 지원
- InterviewCategory 모델에 parent/children 관계 추가
- Service: getTree, getProjectTree 루트+children eager loading
- Service: createCategory에 parent_id 지원
- Service: cloneMaster 2단계 계층 복제
- Controller: storeCategory validation에 parent_id 추가
- UI: CategorySidebar/DomainSidebar 트리 뷰 렌더링
- UI: findCategory 헬퍼로 트리 내 카테고리 검색
2026-02-28 21:23:30 +09:00
김보곤
7ba438b41b feat: [interview] 인터뷰 시나리오 고도화 Phase 1 구현
- InterviewProject/Attachment/Knowledge 모델 3개 신규
- 기존 모델 확장 (Question, Answer, Session, Category)
- 서비스 확장: 프로젝트 CRUD, 첨부파일, 지식 관리
- 컨트롤러 확장: 프로젝트/첨부/지식 API 엔드포인트
- 라우트 20개 추가 (프로젝트, 첨부, 지식)
- InterviewQuestionMasterSeeder: 8개 도메인 80개 질문
- UI 확장: 프로젝트 모드/기존 모드 전환
  - 프로젝트 선택 바, 상태 바, 도메인 사이드바
  - 탭 구조 (질문편집/인터뷰/첨부파일/추출지식)
  - 구조화 답변 입력 (테이블, 수식, 다중선택 등)
  - 첨부파일 업로드/관리
  - 지식 수동 추가/검증/필터링
2026-02-28 20:02:47 +09:00
김보곤
84fe893a5b feat: [business-cards] 처리완료 삭제 기능 추가 및 기본 매수 500매로 변경
- 관리자 화면 처리완료 카드에 삭제 버튼 추가
- processed 상태만 삭제 가능 (서비스 검증)
- 파트너 명함신청 기본 매수 100매 → 500매 변경
2026-02-26 13:56:59 +09:00
김보곤
9a7c548246 style: Pint 포맷팅 적용 2026-02-25 11:45:01 +09:00
김보곤
85c7a55d00 feat: [business-card] 3단계 워크플로우 구현 (요청→제작의뢰→처리완료)
- 모델: STATUS_ORDERED 추가, markAsOrdered() 헬퍼
- 서비스: order(), getOrderedRequests() 추가
- 컨트롤러: order() 액션 추가
- 관리자 뷰: 좌측 신규요청 + 우측 제작중 + 하단 처리완료
- 파트너 뷰: 제작중(파란) 상태 뱃지 추가
- 라우트: POST business-cards/{id}/order 추가
2026-02-25 05:41:34 +09:00
김보곤
089a60231d feat: [business-card] 명함신청 기능 구현
- 모델: BusinessCardRequest (pending/processed 상태 관리)
- 서비스: 신청/처리/통계/뱃지 카운트
- 컨트롤러: 관리자 2분할 뷰, 파트너 신청폼+이력
- 뷰: admin-index (대기/처리완료 2분할), partner-index (신청폼+이력)
- 라우트: GET/POST /sales/business-cards, POST /{id}/process
- 뱃지: ViewServiceProvider에 대기 건수 연동
2026-02-24 21:45:08 +09:00
김보곤
5a1fcb4140 feat:영업파트너 수정 모달에 개인/단체 유형 변경 기능 추가
- 승인 전(pending): 라디오 버튼으로 개인/단체 변경 가능
- 승인 후(approved): 읽기 전용 뱃지로 표시
- 유형 변경 시 수당률 자동 설정 (단체 30%, 개인 초기화)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:26:13 +09:00
김보곤
dab54b992c feat:영업파트너 리스트에 개인/단체 유형 열 추가
salesPartner 관계를 eager load하여 partner_type 표시
개인: 하늘색 뱃지, 단체: 주황색 뱃지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:23:16 +09:00
김보곤
f1f31d5f70 feat:단체(그룹) 수당 체계 통합 (단체 30%, 유치 3%, 매니저 0%)
- SalesPartner: referrer_partner_id, referrer/referredGroups 관계, isGroup() 헬퍼
- SalesCommission: 유치수당 필드, referrerPartner 관계, 지급 추적 메서드
- SalesCommissionService: 단체/개인 분기 수당 계산 로직
- SalesManagerService: 단체 등록 시 수당률 자동 설정
- SalesManagerController: 유형 선택 및 유치 파트너 지정 기능
- 대시보드: 유치수당 카드 표시 및 합산
- UI: purple 색상 처리 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:42:51 +09:00
김보곤
29b40ad2bc fix:사업자 정보 미입력 시 불필요한 SalesPartner 레코드 생성 방지
- 기존 레코드가 있거나 실제 값이 입력된 경우에만 저장
- SoftDelete 스코프 충돌 방지를 위해 where 쿼리로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:56:40 +09:00
김보곤
0eb4baffef fix:updateSalesPartner의 partner_type도 'individual'로 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:17:24 +09:00
김보곤
c9e8ae5dd4 fix:SalesPartner partner_type을 enum 유효값 'individual'로 수정
- 'sales'는 enum('individual','corporate')에 없는 값이라 DB 저장 실패
- create/update 모두 'individual'로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:15:59 +09:00
김보곤
7e9dec8bd3 feat:영업파트너 등록/수정에 사업자 정보(상호, 사업자등록번호, 주소) 필드 추가
- 컨트롤러 store/update 유효성 검사에 3개 필드 추가
- 서비스 create/update에서 SalesPartner 레코드 생성/업데이트
- 등록 폼(create.blade.php)에 사업자 정보 섹션 추가
- 수정 모달(edit-modal.blade.php)에 사업자 정보 섹션 추가
- 테스트 데이터 자동입력에 사업자 정보 포함

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:11:32 +09:00
김보곤
32cbef9ae3 feat:인터뷰 시나리오 MD 파일 업로드 일괄 생성 기능
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 21:42:14 +09:00
김보곤
a507f7dc69 feat:인터뷰 시나리오 관리 기능 추가
- InterviewScenarioController: 카테고리/항목/질문 CRUD + 세션 관리 API
- InterviewScenarioService: 비즈니스 로직 (트리 조회, 세션 시작/토글/완료)
- MNG 모델 5개: InterviewCategory, InterviewTemplate, InterviewQuestion, InterviewSession, InterviewAnswer
- React 뷰: 2-패널 레이아웃 (카테고리 사이드바 + 항목/질문 관리)
- 인터뷰 실시 모달: 카테고리 선택 → 체크리스트 → 완료
- 인터뷰 기록 모달: 기록 목록 + 상세 보기
- InterviewMenuSeeder: 영업관리 > 인터뷰 시나리오 메뉴 추가
- 라우트 18개 추가 (sales/interviews/api/*)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 21:01:35 +09:00
김보곤
ced9110f3b refactor:영업파트너 역할 2개로 단순화 (recruiter 제거)
- 역할: sales(영업파트너), manager(상담매니저) 2개만 유지
- recruiter(유치담당) 역할 완전 제거
- 역할 레이블 변경: 영업→영업파트너, 매니저→상담매니저
- 통계, 필터, 역할관리 UI 모두 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 16:43:02 +09:00
김보곤
a830fa7969 fix:영업파트너 관리에서 비활성 파트너도 목록에 표시
- is_active 필수 조건 제거 (관리 목적으로 비활성 파트너도 표시)
- is_active 필터 옵션 추가 (필요 시 활성 상태로 필터링 가능)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:33:03 +09:00
김보곤
06a0146b12 fix:영업파트너 목록에서 비활성화된 사용자 제외
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 09:26:16 +09:00
김보곤
7830c0b38f fix:개발 승인 화면 영업/매니저 이름 표시 개선
- 가망고객(prospect) 모드에서 영업담당자 이름이 나오도록 수정
- tenantProspect.registeredBy 관계 eager loading 추가
- 매니저가 없으면 영업담당자 이름으로 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:58:50 +09:00
김보곤
d17b1de03d fix:개발 승인 화면에서 가망고객 정보 매핑 지원
- tenantProspect 관계 eager loading 추가
- tenant가 없으면 tenantProspect에서 정보 가져오기
  - 업체명: company_name
  - 사업자번호: business_number
  - 대표자: ceo_name (prospect) / representative_name (tenant)
  - 연락처: contact_phone (prospect) / phone (tenant)
  - 주소: address
- pending/progress/completed/detail 모든 화면 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:54:50 +09:00
김보곤
28f129393d feat:개발 진행중 → 승인대기로 이동 기능 추가
- revertToPending 서비스 메서드 추가
- revertToPending 컨트롤러 액션 추가
- /approvals/{id}/revert-pending 라우트 추가
- progress-list에 "승인대기로" 버튼 추가
- JavaScript revertToPending 함수 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:33:44 +09:00
김보곤
e993eb5a0a fix:개발 승인 화면 데이터 매핑 수정
- salesPartner.user eager loading 추가로 영업자명 표시
- 대표자명(representative_name) 정보 추가 표시
- pending/progress/completed 목록 모두 동일하게 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:31:11 +09:00
김보곤
f83d2a1333 feat:개발 승인 메뉴 구현
- 영업관리 하위에 "개발 승인" 메뉴 추가
- 영업/매니저 100% 완료 고객의 개발 진행 상태 관리
- 3분할 레이아웃: 승인대기 / 개발진행중 / 완료
- 7단계 진행 상태: 대기→검토→기획안작성→개발코드작성→개발테스트→개발완료→통합테스트→인계
- 승인/반려/상태변경 기능 구현
- 통계 카드 및 상세 모달 지원

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 20:15:03 +09:00
pro
9eaf13b950 fix:역할 동기화 시 unique 제약조건 충돌 해결
- soft delete된 레코드가 있을 때 새 레코드 생성 대신 복원
- withTrashed()로 기존 레코드 확인 후 처리
- 불필요한 역할만 선별적으로 삭제

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:54:45 +09:00
pro
d2ab0d6659 feat:영업파트너 승인 페이지 추가 (본사 관리자 전용)
- 승인 대기 목록 페이지 (/sales/managers/approvals)
- isAdmin() 권한 체크: admin 또는 super_admin만 접근 가능
- 승인/반려 기능 (AJAX 지원)
- 상세 보기 모달
- 승인 대기 통계 (오늘 승인/반려 수)
- DB 메뉴 추가: 영업관리 > 영업파트너 승인

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:27:06 +09:00
pro
9ba1fa2db1 fix:영업파트너관리 목록에서 본인이 유치한 파트너만 표시되도록 수정
- parent_id 필터를 현재 로그인 사용자 ID로 강제 설정
- 통계(stats)도 현재 사용자 기준으로 조회하도록 변경
- getSalesPartners()에 parent_id 필터 처리 추가
- getStats()에 parentId 파라미터 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:26:51 +09:00
pro
23c50c5051 feat:영업파트너 등록 시 영업팀 부서 자동 할당
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 20:57:54 +09:00
pro
c20624ad0d fix:테넌트 전환 시 user_tenants에 자동 연결
- 전환한 사용자를 새 테넌트에 자동 연결
- 대시보드에서 관리 테넌트로 표시되도록 함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:54:39 +09:00
pro
e960e0c0e1 fix:테넌트 전환 시 고유 코드 자동 생성
- code 필드 추가 (T + 날짜 + 랜덤 4자리)
- 예: T260128ABC1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:34:25 +09:00
pro
f874acdaff fix:테넌트 전환 시 tenant_type을 STD로 수정
- customer → STD (ENUM 허용값에 맞게 수정)
- created_by 필드 제거 (테이블에 없는 컬럼)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:33:01 +09:00
pro
45aa0f9c72 fix:명함 OCR 이미지 저장 안되던 버그 수정
- TenantProspectController: business_card_image_data (Base64) validation 및 처리 추가
- TenantProspectService: saveBase64Image 메서드 추가로 Base64 이미지 저장 지원
- OCR로 인식한 명함 이미지가 DB에 정상 저장되도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:31:10 +09:00
pro
8d73cc3f79 fix:쿨다운 → 재등록 대기 기간으로 용어 변경
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:42:40 +09:00
pro
e5b054ea0a feat:영업권 수정 페이지 첨부 이미지 삭제 기능 추가 2026-01-28 10:21:03 +09:00
pro
1642aa249a fix:영업권 수정 시 신분증/통장사본 첨부파일 저장 기능 추가 2026-01-28 09:41:02 +09:00
pro
e04cbcf1e0 feat:영업권(명함등록) 시스템 구현
- TenantProspect 모델, 서비스, 컨트롤러 추가
- 명함 등록 시 2개월 영업권 부여
- 만료 후 1개월 쿨다운 기간 적용
- 테넌트 전환 기능 구현
- 사업자번호 중복 체크 API 추가
- 명함 이미지 업로드 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 22:39:42 +09:00
pro
9411871655 fix:추천인 자동 설정 (등록자가 parent로 자동 지정) 2026-01-27 21:28:59 +09:00
pro
69ab30873a feat:영업파트너 역할 위임 기능 및 용어 정리
- 역할 위임/부여/제거 기능 추가 (delegateRole, assignRole, removeRole)
- '상위 관리자' → '추천인(유치자)' 용어 변경
- 역할 코드 변경: sales_operator/sales_admin/sales_manager → sales/manager/recruiter
- 뷰 파일 전면 수정 (영업파트너 구조 반영)
- 역할 관리 UI 추가 (show.blade.php)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:20:33 +09:00
pro
c6f509c78c feat:영업담당자 User 모듈 통합 및 승인 시스템 구현
- SalesManagerController: User 시스템 기반으로 재구현
- SalesManagerService: 영업담당자 CRUD, 승인/반려 로직
- SalesManagerDocument: 멀티파일 업로드 모델
- User 모델에 parent, approval 관계 및 메서드 추가
- SalesRoleSeeder: 영업 역할 시더 (sales_operator, sales_admin, sales_manager)
- 뷰 파일 전면 수정 (역할 체크박스, 멀티파일 업로드, 승인/반려 UI)
- 라우트 추가 (approve, reject, documents)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 20:06:51 +09:00