- 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>
- max-w-4xl mx-auto 제거 → space-y-6 (전체 너비, 왼쪽 정렬)
- 다른 관리자 페이지와 동일한 레이아웃 패턴 적용
- 탭 네비게이션 중복 마진 제거
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>
- HTMX 로드 시 script 태그 미실행 문제 해결
- tenantListManager 함수를 인라인 x-data로 이동
- toggle-detail 버튼에 @click 핸들러 추가
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>
- @push('scripts') 대신 인라인 x-data로 변경 (HTMX 호환)
- x-collapse 플러그인 의존성 제거, x-transition 사용
- $parent 참조 대신 window 이벤트(CustomEvent) 사용
- 체크리스트 토글, 진행률 업데이트, 단계 이동 정상화
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 HQ 사용자 → 내가 유치한 하위 영업파트너만 표시
- User.php children() 관계 활용
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 별도 스크립트 함수 대신 x-data 인라인 정의
- @click.away를 @click.outside로 수정 (올바른 Alpine 문법)
- 스크립트 로드 순서 문제 해결
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>
- 영업/매니저 시나리오 모달 구현 (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>
- sidebar-expanded-only 클래스가 hidden을 오버라이드하는 문제 해결
- !important로 hidden 클래스 우선순위 보장
- 사이드바 접힌 상태에서 검색창 숨김 처리
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 헤더에 검색 아이콘 추가 (클릭 시 검색창 토글)
- 실시간 메뉴 필터링 (검색어 입력 시 즉시 반영)
- 검색어 하이라이트 표시
- X 버튼으로 검색 모드 종료
- Ctrl+K / Cmd+K 단축키 지원
- ESC 키로 검색 닫기
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 그룹 헤더: text-sm font-semibold (기존 text-xs font-bold uppercase)
- 하위 메뉴: font-normal (기존 font-medium)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>