Commit Graph

572 Commits

Author SHA1 Message Date
pro
c17108265b fix:카테고리 모달 배경 흐림 효과 및 배경 클릭 시 닫힘 방지 2026-01-29 15:43:45 +09:00
pro
3676f0c59d fix:상품관리 HTMX 부분 로드 시 Alpine.js 오류 수정 (HX-Redirect 적용) 2026-01-29 15:41:39 +09:00
pro
aaaa28c71c refactor:영업/매니저 버튼을 관리 드롭다운 옆으로 이동
- 영업, 매니저 버튼을 왼쪽(관리 드롭다운 옆)으로 이동
- 오른쪽 관리 영역은 설정/삭제 아이콘만 표시
- 그리드 레이아웃 조정 (col-span-4, col-span-4, col-span-1, col-span-3)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:24:51 +09:00
pro
611521b56e refactor:테넌트 목록 레이아웃 개선
- 접기/펼치기 제거, 항상 펼친 상태로 표시
- 업체명 → 관리 드롭다운 순서로 변경
- 업체명 하단에 대표자 | 사업자번호 표시
- 상세정보에 전화번호, 이메일, 주소 아이콘과 함께 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:22:38 +09:00
pro
1d0e4e9f2b fix:관리 드롭다운 위치를 왼쪽(업체명 앞)으로 이동
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:19:48 +09:00
pro
7547a63284 feat:계약 체결 단계에 상품 선택 기능 추가
- 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>
2026-01-29 15:04:26 +09:00
pro
f48d4b036a feat:영업 상품관리 기능 구현
- SalesProductController: CRUD + 카테고리 관리
- Models: SalesProductCategory, SalesProduct, SalesContractProduct
- Views: 상품관리 UI (Tailwind + Alpine.js + HTMX)
- Routes: /sales/products/* 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:02:09 +09:00
pro
7b347aae38 refactor:테넌트 리스트 레이아웃 재구성
- 진행 현황을 2분할 grid로 변경 (영업/매니저 | 본사진행)
- 담당자 드롭다운을 업체명 옆 왼쪽으로 이동 (overflow 방지)
- 모든 @click → x-on:click 변경 (Blade 충돌 방지)
- 본사 진행 비활성화 시 "대기" 간략 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:31:08 +09:00
pro
aa89be21fc fix:테넌트 리스트 UI 개선 및 삭제 권한 제한
- 영업/매니저 프로그레스바를 2행에서 1행으로 변경 (각 50% 너비)
- 삭제 버튼을 본사(HQ) 사용자만 표시하도록 제한
- belongsToHQ() 메서드 활용하여 권한 체크
- @click → x-on:click 변경 (Blade 충돌 방지)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:18:49 +09:00
pro
2fcd9c6724 fix:단계 버튼 로직 완전 재작성
- @click → x-on:click (Blade 지시자 충돌 방지)
- 동적 색상 → 고정 색상 bg-indigo-600 (Tailwind JIT 문제 방지)
- 모든 조건 값을 @php에서 명시적 계산
- 조건 로직 단순화 ($isLastStep 불린 사용)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:59:02 +09:00
pro
20d8c774f6 fix:시나리오 단계 버튼 및 완료 시 진행률 반영
- 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>
2026-01-29 13:02:52 +09:00
pro
b319066330 fix:시나리오 단계 버튼 표시 오류 수정
- $steps 빈 배열 체크를 ?? 에서 empty()로 변경
- null만 체크하던 ?? 연산자로 인해 빈 배열일 때 버튼 미표시 문제 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:55:42 +09:00
pro
ade6ef6375 fix:시나리오 단계 이동 버튼 안전장치 추가
- $steps가 전달되지 않을 경우 config에서 직접 가져오도록 수정
- 제안 및 견적 등 모든 단계에서 다음 단계 버튼 표시 보장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:44:05 +09:00
pro
d124078fd4 feat:본사 진행 상태 및 수당 지급 상태 UI 추가
- SalesTenantManagement 모델에 본사 진행 상태 7단계 추가
  (대기, 검토, 기획안작성, 개발코드작성, 개발테스트, 개발완료, 통합테스트, 인계)
- 수당 지급 상태 3단계 추가 (대기, 지급대상, 지급완료)
- tenant-list.blade.php에 본사 진행 상태 스텝 인디케이터 추가
- 매니저 100% 완료 시 본사 진행 활성화
- 수당 지급 상태 배지 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:39:10 +09:00
pro
f29c056fe8 feat:음성 녹음/첨부파일 자동 저장 UX 개선
음성 녹음:
- 녹음 종료 시 자동 저장 (저장/취소 버튼 제거)
- 저장 중 오버레이 + 프로그레스바 표시
- 저장 완료 후 자동 초기화

첨부파일:
- 파일 선택 즉시 자동 업로드 (업로드 버튼 제거)
- 업로드 중 오버레이 + 프로그레스바 표시
- 최근 업로드 파일 목록 표시 (5개까지)
- 다중 파일 순차 업로드 및 전체 진행률 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:27:21 +09:00
pro
31698ed313 feat:음성 녹음, 첨부파일 컴포넌트에 접기/펼치기 기능 추가
- 음성 녹음: 헤더 클릭으로 접기/펼치기, 녹음 중 상태 배지 표시
- 첨부파일: 헤더 클릭으로 접기/펼치기, 대기 파일 개수 배지 표시
- 기본 접힌 상태로 화면 공간 효율화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:12:08 +09:00
pro
a19ba94ad5 fix:상담 기록 영역 스크롤 문제 수정
- 우측 메인 영역에 min-h-0 추가 (flex 자식 스크롤 활성화)
- overflow-hidden 제거
- 하단 상담 기록 영역에 flex-shrink-0 추가 (축소 방지)
- 아코디언 콘텐츠 max-height: 50vh 인라인 스타일로 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:06:39 +09:00
pro
817be7a4e8 fix:시나리오 단계 이동 버튼이 표시되지 않는 문제 수정
- @include 시 $steps 변수가 전달되지 않아 다음 단계 버튼 미표시
- scenario-step.blade.php에 $steps 변수 명시적 전달 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:02:11 +09:00
pro
2224378b70 refactor:상담 기록 모듈을 모달 레벨로 이동하여 모든 단계에서 공유
- 기존: 각 단계별 독립적인 상담 기록 (step_id 기반)
- 변경: 모달 하단에 고정 배치, 모든 단계에서 동일한 상담 기록 공유
- 탭 전환 시에도 상담 기록 유지
- step_id 파라미터 제거로 통합 관리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:58:38 +09:00
pro
c7d83514b6 feat:상담 기록 및 첨부파일 모듈을 모든 시나리오 단계에서 사용 가능하도록 수정
- 기존: 마지막 단계(계약 체결)에서만 상담 기록/첨부파일 표시
- 변경: 모든 단계에서 접기/펼치기 아코디언으로 공통 모듈 제공
- 단계별 독립적인 상담 기록 컨테이너 ID 사용
- HTMX revealed 트리거로 펼칠 때만 데이터 로드

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:54:56 +09:00
pro
a97edb78ba feat:시나리오 모달 닫을 때 진행률 자동 업데이트
- scenario-modal: close() 시 tenantId 포함한 이벤트 발생
- tenant-list: 이벤트 수신 시 API 호출하여 진행률 업데이트
- 진행률 영역에 ID 부여하여 DOM 직접 업데이트
- 새로고침 없이 실시간 반영

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:46:49 +09:00
pro
9588abb272 feat:테넌트 리스트에 영업/매니저 진행률 표시
- SalesScenarioChecklist: getSimpleProgress(), getTenantProgress() 메서드 추가
- tenant-list: 진행률 컬럼 추가 (영업/매니저 각각 프로그레스 바)
- 레이아웃 재조정: 버튼 compact화, 컬럼 비율 조정
- 오른쪽 빈 공간 활용하여 정보 밀도 향상

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:42:56 +09:00
pro
73a03ba59b feat:상담 기록 텍스트 스크롤 영역 개선
- 실시간 음성 인식: max-h-40 스크롤 영역 + 자동 하단 스크롤
- 음성 인식: 글자 수 표시
- 텍스트 상담 기록: max-h-32 스크롤 영역
- 음성 녹음 transcript: max-h-32 스크롤 영역
- 긴 텍스트(4시간 분량 등) 대응

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:39:19 +09:00
pro
9b62b82d38 fix:음성 인식 초반 텍스트 누락 문제 개선
- 확정된 결과를 인덱스별 배열로 관리하여 중복/덮어쓰기 방지
- 음성 인식 끊김 시 자동 재시작 (녹음 중일 때만)
- no-speech, aborted 에러 무시하고 계속 진행

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:07:04 +09:00
pro
9e39567604 fix:오디오/파일 다운로드 반환 타입 오류 수정
- downloadAudio: Response → BinaryFileResponse|RedirectResponse
- downloadFile: Response → BinaryFileResponse
- GCS 리다이렉트: response()->redirectTo() → redirect()->away()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:00:27 +09:00
pro
f81fd8e8c6 feat:상담 기록에 오디오 재생/다운로드 버튼 추가
- 음성 녹음: 재생 버튼 + 다운로드 버튼 추가
- 첨부파일: 다운로드 버튼 추가
- GCS 백업 여부 표시 (배지)
- 오디오 재생 시 다른 오디오 자동 정지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:53:57 +09:00
pro
fa6e62eba2 docs:AI 및 스토리지 설정 기술문서 추가
- ai_configs 테이블 구조 설명
- 설정 우선순위 (DB → .env → 레거시)
- 관련 파일 목록 및 위치
- 주요 메서드 사용법
- 배포 가이드 및 트러블슈팅

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:42:03 +09:00
pro
6b54e19a42 feat:GCS 환경변수(.env) 기반 설정 지원
- 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>
2026-01-29 09:39:49 +09:00
pro
5f0b221750 fix:AI 설정 페이지 레이아웃 톤앤매너 통일
- max-w-4xl mx-auto 제거 → space-y-6 (전체 너비, 왼쪽 정렬)
- 다른 관리자 페이지와 동일한 레이아웃 패턴 적용
- 탭 네비게이션 중복 마진 제거

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:32:14 +09:00
pro
0d5045d535 fix:AI 설정 페이지 탭 전환 UI 수정
- x-cloak 스타일 추가: Alpine.js 초기화 전 탭 콘텐츠 숨김
- 초기 로드 시 두 탭이 동시에 보이던 문제 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:29:50 +09:00
pro
50becbdd28 feat:AI 설정 페이지에 GCS 스토리지 설정 통합
- AI 설정과 스토리지 설정을 탭으로 구분
- GCS 버킷 이름, 서비스 계정 (JSON 직접입력/파일경로) 설정 가능
- GCS 연결 테스트 기능 추가
- GoogleCloudStorageService가 DB 설정 우선 사용 (fallback: 레거시 파일)
- AiConfig 모델에 gcs provider 및 관련 메서드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:22:12 +09:00
pro
dd86d70503 feat:음성 녹음 GCS 업로드 및 다운로드 기능 추가
- 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>
2026-01-29 09:15:13 +09:00
pro
13418cd3ac fix:tenant-list Alpine.js 인라인 x-data로 변경
- HTMX 로드 시 script 태그 미실행 문제 해결
- tenantListManager 함수를 인라인 x-data로 이동
- toggle-detail 버튼에 @click 핸들러 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:02:33 +09:00
pro
c3afde94c9 fix:시나리오 모달 헤더 그라디에이션 제거
- 그라디에이션으로 우측 텍스트 가독성 저하 문제 해결
- 단색 배경으로 변경 (영업: blue-600, 매니저: green-600)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:57:02 +09:00
pro
bdf00f9c36 fix:체크리스트 토글 checkpoint_index NOT NULL 오류 수정
- 새 레코드 생성 시 checkpoint_index 기본값 0 설정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:53:55 +09:00
pro
5d15acebba fix:시나리오 모달 500 에러 및 무한 루프 수정
- 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>
2026-01-29 08:20:04 +09:00
pro
ae9aa4e91f fix:영업 시나리오 모달 Alpine.js 오류 수정
- @push('scripts') 대신 인라인 x-data로 변경 (HTMX 호환)
- x-collapse 플러그인 의존성 제거, x-transition 사용
- $parent 참조 대신 window 이벤트(CustomEvent) 사용
- 체크리스트 토글, 진행률 업데이트, 단계 이동 정상화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:14:07 +09:00
pro
8c089e54a7 fix:영업파트너 등록 시 본사 관리자도 추천인으로 설정
- 기존: 본사 관리자 등록 시 parent_id = null
- 변경: 누가 등록하든 등록자가 추천인(parent_id)으로 설정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:09:28 +09:00
pro
9f6218bc07 refactor:영업담당자 → 영업파트너 용어 변경 및 드롭다운 로직 수정
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 HQ 사용자 → 내가 유치한 하위 영업파트너만 표시
- User.php children() 관계 활용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:57:30 +09:00
pro
92c4e15273 feat:계약 현황 페이지네이션 추가 (10건 단위)
- 최신 계약이 상단에 표시되도록 정렬
- 10건 초과 시 HTMX 페이지네이션 표시
- 현재 페이지 범위 및 총 건수 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:51:41 +09:00
pro
3ebae96a7f refactor:실적 데이터 섹션 제거, 내 계약 현황으로 통합
- 중복된 실적 데이터 없음 섹션 제거
- 테넌트 목록을 '내 계약 현황'으로 명칭 변경
- 빈 상태 메시지 개선 (가망고객 전환 안내)
- 총 계약 건수 표시 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:44:45 +09:00
pro
6780585f5d refactor:역할별 수당 상세를 모달로 전환
- 확정 수당 카드 클릭 시 모달로 상세 정보 표시
- 대시보드 화면 단순화 (역할별 수당 섹션 제거)
- Alpine.js 모달 트랜지션 효과 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:34:10 +09:00
pro
08d584a53a refactor:대시보드 중복 섹션 통합 (영업 현황 + 테넌트 관리)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:28:53 +09:00
pro
55994ab116 fix:Alpine.js CDN 추가
- 레이아웃에 Alpine.js가 로드되지 않아 x-data 디렉티브가 동작하지 않음
- Alpine.js 3.x CDN 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:23:56 +09:00
pro
92055a6187 fix:매니저 드롭다운을 인라인 Alpine.js로 완전 재작성
- 별도 스크립트 함수 대신 x-data 인라인 정의
- @click.away를 @click.outside로 수정 (올바른 Alpine 문법)
- 스크립트 로드 순서 문제 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:21:01 +09:00
pro
0f38aff96b fix:매니저 드롭다운 버튼 동작 수정
- 버튼에 type="button" 추가 (폼 제출 방지)
- 스크립트를 @push('scripts')로 이동 (중복 정의 방지)
- 디버깅 로그 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:15:14 +09:00
pro
995c0e11b5 fix:매니저 드롭다운 x-cloak 추가로 초기 깜빡임 방지
- Alpine.js 로드 전 드롭다운이 잠시 보이는 FOUC 문제 수정
- x-cloak 디렉티브와 CSS 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:11:54 +09:00
pro
0a0afe1df0 fix:매니저 드롭다운 API 호출 제거, 서버사이드 렌더링으로 변경
- 기존: 드롭다운 열 때 API 호출 → 로딩 스피너 문제
- 변경: 컨트롤러에서 allManagers 전달 → 즉시 렌더링
- 로딩 상태 제거로 UX 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:05:45 +09:00
pro
f1f9ff4148 fix:매니저 드롭다운 API 엔드포인트 수정
- 기존: /api/admin/users?tenant_type=HQ (미지원 파라미터)
- 변경: /sales/managers/list (전용 엔드포인트)
- 라우트 추가: sales.managers.list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:01:14 +09:00
pro
b4163d6ffd fix:영업관리 대시보드에 가망고객 전환 테넌트만 표시
- 기존: 로그인 사용자의 모든 테넌트 표시 (HQ 제외)
- 변경: 가망고객(tenant_prospects)에서 전환된 테넌트만 표시
- TenantProspect.STATUS_CONVERTED 상태의 tenant_id만 조회

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 06:47:37 +09:00