- testGeminiVertexAi() 메서드 추가
- getVertexAiAccessToken() OAuth 토큰 획득 메서드 추가
- 모달에서 Vertex AI 파라미터 전송하도록 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 공통코드/카테고리 테넌트→글로벌 체크박스 벌크 복사 기능 추가
- 이미 대상에 존재하는 항목 체크박스 disabled 처리 (양방향)
- 공통코드 토글 크기 카테고리와 동일하게 축소
- 동기화 환경설정 모달을 공통 partial로 분리
- 동기화 리스트에서 불필요한 타입 컬럼 제거
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- labs-menu.blade.php: S/A 탭 구조 유지 (원격 버전)
- routes/web.php: ManagementController + AIController 모두 포함, SalesCommissionController 구현 유지
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TenantProspectController에 modalShow, modalEdit 메서드 추가
- prospects 라우트에 modal-show, modal-edit 엔드포인트 추가
- index.blade.php에 모달 컨테이너 및 JavaScript 추가
- partials/show-modal.blade.php, edit-modal.blade.php 신규 생성
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- user_roles, department_user 삭제
- sales_partners, sales_manager_documents 삭제
- 하위 사용자의 parent_id 해제
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
[모델]
- SalesCommission: 영업수수료 정산 모델
- SalesCommissionDetail: 상품별 수당 내역 모델
- SalesTenantManagement: 입금 정보 필드 추가
[서비스/컨트롤러]
- SalesCommissionService: 수당 생성, 승인, 지급 처리 로직
- SalesCommissionController: 정산 관리 CRUD
[뷰]
- 본사 정산 관리 화면 (필터, 통계, 테이블)
- 입금 등록 모달
- 상세 보기 모달
- 영업파트너 대시보드 수당 카드
[라우트]
- /finance/sales-commissions/* 라우트 추가
- 기존 sales-commission 리다이렉트 호환
[메뉴]
- SalesCommissionMenuSeeder: 정산관리 > 영업수수료정산 메뉴 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SalesContractController: 계약 상품 저장/조회 API
- product-selection.blade.php: 상품 선택 UI 컴포넌트
- scenario-step.blade.php: 6단계에서 상품 선택 컴포넌트 표시
- routes/web.php: /sales/contracts/* 라우트 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- scenario-step: $totalSteps 명시적 계산으로 다음 단계 버튼 표시 수정
- scenario-step: 완료 버튼 클릭 시 scenario-completed 이벤트 발송
- scenario-modal: completeAndRefresh 함수 추가 (테넌트 리스트 새로고침)
- SalesDashboardController: refreshTenantList 메서드 추가
- routes/web.php: salesmanagement.dashboard.tenants 라우트 추가
- tenant-list: id="tenant-list-container" 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SalesTenantManagement 모델에 본사 진행 상태 7단계 추가
(대기, 검토, 기획안작성, 개발코드작성, 개발테스트, 개발완료, 통합테스트, 인계)
- 수당 지급 상태 3단계 추가 (대기, 지급대상, 지급완료)
- tenant-list.blade.php에 본사 진행 상태 스텝 인디케이터 추가
- 매니저 100% 완료 시 본사 진행 활성화
- 수당 지급 상태 배지 표시
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SalesScenarioChecklist: getSimpleProgress(), getTenantProgress() 메서드 추가
- tenant-list: 진행률 컬럼 추가 (영업/매니저 각각 프로그레스 바)
- 레이아웃 재조정: 버튼 compact화, 컬럼 비율 조정
- 오른쪽 빈 공간 활용하여 정보 밀도 향상
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- config/gcs.php 추가: 환경변수 기반 설정
- GoogleCloudStorageService 우선순위 변경:
1. DB 설정 (UI 오버라이드용)
2. 환경변수 (.env) - 기본
3. 레거시 파일 (fallback)
- .env.example에 GCS 설정 추가
- 서버 배포 시 .env만 설정하면 DB 설정 불필요
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AI 설정과 스토리지 설정을 탭으로 구분
- GCS 버킷 이름, 서비스 계정 (JSON 직접입력/파일경로) 설정 가능
- GCS 연결 테스트 기능 추가
- GoogleCloudStorageService가 DB 설정 우선 사용 (fallback: 레거시 파일)
- AiConfig 모델에 gcs provider 및 관련 메서드 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- GoogleCloudStorageService 생성 (레거시 방식 JWT 인증)
- 10MB 이상 파일은 Google Cloud Storage에 백업 (본사 연구용)
- 오디오/파일 다운로드 라우트 추가
- voice-recorder.blade.php 인라인 x-data로 변경 (HTMX 호환)
- SalesConsultation 모델에 gcs_uri 필드 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SalesScenarioChecklist::toggle()에서 user_id 설정 추가 (DB NOT NULL 오류 해결)
- scenario-modal.blade.php에서 @scenario-modal-closed.window 이벤트 리스너 제거 (무한 루프 해결)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 HQ 사용자 → 내가 유치한 하위 영업파트너만 표시
- User.php children() 관계 활용
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 기존: 로그인 사용자의 모든 테넌트 표시 (HQ 제외)
- 변경: 가망고객(tenant_prospects)에서 전환된 테넌트만 표시
- TenantProspect.STATUS_CONVERTED 상태의 tenant_id만 조회
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 모델 추가: SalesPartner, SalesTenantManagement, SalesScenarioChecklist, SalesConsultation
- 모델 위치 이동: app/Models/ → app/Models/Sales/
- 컨트롤러 수정: 캐시 대신 DB 모델 사용
- 뷰 수정: Eloquent 모델 속성 사용
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 환경 탭 앞에 글로벌/테넌트 토글 버튼 추가
- 글로벌: tenant_id가 NULL인 코드/카테고리만 표시
- 테넌트: 현재 선택된 테넌트의 데이터만 표시
- Push/Pull API에 type 파라미터 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- CommonCodeSyncController, CategorySyncController 생성
- 환경설정은 메뉴 동기화와 공유 (TenantSetting)
- Export/Import API 추가 (/common-code-sync, /category-sync)
- Push(로컬→원격), Pull(원격→로컬) 양방향 동기화
- 동일 코드 존재 시 체크박스 비활성화 (충돌 방지)
- 글로벌 + 테넌트 코드 모두 동기화 가능
- 공통코드/카테고리 관리 페이지에 동기화 버튼 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Document 관련 모델 4개 생성 (Document, DocumentApproval, DocumentData, DocumentAttachment)
- DocumentController 생성 (목록/생성/상세/수정 페이지)
- DocumentApiController 생성 (AJAX CRUD 처리)
- 문서 관리 뷰 3개 생성 (index, edit, show)
- 웹/API 라우트 등록
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 영업/매니저 시나리오 모달 구현 (6단계 체크리스트)
- 상담 기록 기능 (텍스트, 음성, 첨부파일)
- 음성 녹음 + Speech-to-Text 변환
- 첨부파일 Drag & Drop 업로드
- 매니저 지정 드롭다운
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- registered_by로 현재 로그인 사용자가 등록한 테넌트만 조회
- 영업 진행 버튼 → 영업실적 등록 페이지 연결
- 상세계약 설정 버튼 → 테넌트 편집 페이지 연결
- 매니저 진행 버튼 → 영업담당자 관리 페이지 연결
- 삭제 버튼에 확인 다이얼로그 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 테넌트 목록 표시 (업체명, 담당자, 등록일)
- 계약관리 버튼 (영업 진행, 상세계약 설정, 매니저 진행)
- 행 클릭 시 상세 정보 토글
- 신규 테넌트 등록 버튼 제외 (가망고객 관리에서 처리)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 분류: CommonCode → DocumentTemplate에서 group by 조회
- 분류 입력: select → input + datalist (자유입력 + 자동완성)
- 회사정보 입력 필드 제거 (tenant에서 자동 조회)
- 미리보기: tenant 회사명 자동 표시
Co-Authored-By: Claude <noreply@anthropic.com>
- CreditUsageController: 조회회수 집계 컨트롤러 신규 생성
- credit/usage/index.blade.php: 집계 화면 (월별/연간/기간별)
- 과금 정책: 월 5건 무료, 추가건당 2,000원
- 본사(tenant_id=1)는 전체 테넌트 조회 가능
- CreditInquiry 모델에 tenant_id 필드 추가
- 신용평가 조회 시 tenant_id 저장하도록 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AutoLoginViaRemember: 세션 만료 시 remember_token으로 자동 로그인
- HQ 소속/활성 상태 검증
- API 토큰 자동 재발급
- web 미들웨어 그룹에 등록
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TenantProspectController: business_card_image_data (Base64) validation 및 처리 추가
- TenantProspectService: saveBase64Image 메서드 추가로 Base64 이미지 저장 지원
- OCR로 인식한 명함 이미지가 DB에 정상 저장되도록 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>