- parent_id 필터를 현재 로그인 사용자 ID로 강제 설정
- 통계(stats)도 현재 사용자 기준으로 조회하도록 변경
- getSalesPartners()에 parent_id 필터 처리 추가
- getStats()에 parentId 파라미터 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AppVersion 모델, Service, Controller
- 버전 등록 폼 (APK 업로드, 강제 업데이트 설정)
- 버전 목록 테이블 (활성 토글, 다운로드 수, 삭제)
- /app-versions 라우트 추가
- app_releases 스토리지 디스크 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- CorporateCard 모델 추가
- CorporateCardController API 추가 (CRUD)
- 라우트 추가 (list, store, update, deactivate, destroy)
- React 컴포넌트 API 연동 (fetch 호출)
- 로딩 상태 UI 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- push_urgent → push_vendor_register (거래처등록)
- push_payment → push_approval_request (결재요청)
- push_income 신규 추가 (입금)
- config/fcm.php 전체 7개 채널 등록
- FcmController validation 및 Blade select 옵션 반영
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 매뉴제작 협업수당 → 협업지원금으로 명칭 변경
- 협업지원금 산출 기준: 메뉴당 2,000원
- 지급 대상: 계약자 기준 2단계 상위 파트너 (할아버지)
- 지급 시점: 가입비 완납 시
- 다단계법 준수를 위한 구조 설명 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 총 가입비, 총 수당, 지급 완료 비율 등 실제 계산
- 판매자(20%) / 매니저(5%) 역할별 수당 상세
- 영업파트너로서의 수당 + 매니저로서의 수당 모두 집계
- 테넌트 통계 (관리 테넌트 수, 누적 수당, 확정 수당)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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>
[모델]
- 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>
- 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>
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 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>
- TenantProspectController: business_card_image_data (Base64) validation 및 처리 추가
- TenantProspectService: saveBase64Image 메서드 추가로 Base64 이미지 저장 지원
- OCR로 인식한 명함 이미지가 DB에 정상 저장되도록 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>