Commit Graph

1082 Commits

Author SHA1 Message Date
김보곤
2ffc69c4e4 refactor:수당 테이블 2행→1행 레이아웃 변경 + 계약일 열 추가
- rowspan 2행 구조를 단일 행으로 변경
- 테넌트 다음에 계약일(contracted_at) 열 추가
- 지급예정일/수당지급일/협업지원금/매니저지급일을 독립 열로 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:06:52 +09:00
김보곤
4a492fde99 refactor:정산관리 탭 통합 리디자인 (5탭→3탭)
- 수당정산+수당지급 → 수당관리 탭으로 통합
- 서브탭 추가: 영업파트너 수당 / 매니저 수당
- 파트너별 현황 탭 제거
- 수당유형 필터 제거 (서브탭으로 대체)
- 기존 table.blade.php → partner/manager 테이블로 분리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:01:44 +09:00
김보곤
7e9b470554 refactor:수당 정산 테이블 2행 레이아웃 리디자인 (18열→8열×2행)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:50:18 +09:00
김보곤
4e03df5624 feat:상세 모달에 구분/계약일/납입일/인계일 정보 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:38:08 +09:00
김보곤
6a846a1c0d feat:계약일 date input 입력 가능하게 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:34:07 +09:00
김보곤
6a7a8d00d0 feat:영업파트너 고객관리 인계일 컬럼 동적 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:27:12 +09:00
김보곤
4ddc1efa34 refactor:영업파트너 고객관리 테이블 정리 + 정산관리에 수당지급일 관리 이동
- 고객관리 테이블: 1차수당/2차수당/매니저수당/협업지원금/등록일 열 제거, 계약일 열 추가 (16열→12열)
- 정산관리 수당정산 테이블: 수당지급일/매니저지급일/협업지원금 인라인 편집 컬럼 추가
- SalesCommissionController에 updateCommissionDate 메서드 추가
- 불필요한 JS 함수 제거 (saveReferrerCommission, checkHandoverStatus)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:20:42 +09:00
김보곤
7e741884d6 feat:구독관리 탭 실제 구독자 데이터 표시 (sales_contract_products 기반)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:45:14 +09:00
김보곤
d5aab85731 fix:고객사정산 탭 데이터 표시 개선 (수당정산 탭과 동일 fallback 로직 적용)
- 담당파트너: salesPartner→user → tenantProspect→registeredBy fallback 추가
- 개발비/계약금/잔금: contractProducts 기반 계산 fallback 추가
- 구독료: contractProducts fallback 추가
- eager loading에 tenantProspect.registeredBy.salesPartner, contractProducts 추가
- 파트너 필터에 tenantProspect.registeredBy 경로 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:21:50 +09:00
김보곤
ce84b7a197 fix:수당 산식 수정 - 매니저는 구독료1월, 유치파트너 개인5%/단체3%
- 매니저수당: 기준액 비율(5%) → 구독료 1개월(subscription_fee)로 변경
- 유치파트너수당: 개인일 때 상위파트너 5%, 단체일 때 유치 3%
- 파트너수당: 개인 20%, 단체 30% (기존 유지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:07:31 +09:00
김보곤
2c1b59249a feat:수당 정산 테이블에 개인/단체 구분 컬럼 추가
- 구분 컬럼: partner_type 기반 개인(sky)/단체(purple) 배지
- 단체: 파트너 30%, 매니저 0%, 유치 3%
- 개인: 파트너 20%, 매니저 5%, 유치 3%
- eager loading에 registeredBy.salesPartner 추가 (타입 판별용)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:04:03 +09:00
김보곤
bf51e14e54 fix:수당 정산 금액을 management 데이터에서 자동 계산
- commission 금액이 0일 때 management의 total_registration_fee/contractProducts에서 계산
- 기준액 = 총개발비 / 2, 입금액 = 기준액 (계약금/잔금 각 50%)
- 파트너수당 = 기준액 × 20%, 매니저수당 = 기준액 × 5%, 유치수당 = 기준액 × 3%
- eager loading에 management.contractProducts 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:01:38 +09:00
김보곤
706e1e3de4 fix:유치파트너를 영업파트너의 parent(상위자)로 표시
- 유치파트너 = 영업파트너 user의 parent_id (User→parent 관계)
- partner→user→parent, salesPartner→user→parent, registeredBy→parent 순 fallback
- eager loading 정리 (불필요한 referrer 체인 제거, parent 관계 추가)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:54:32 +09:00
김보곤
053e095da0 fix:영업파트너/유치파트너 tenantProspect.registeredBy fallback 추가
- 영업파트너: tenantProspect→registeredBy(가망고객 등록자) 경로 추가
- 유치파트너: registeredBy→salesPartner→referrer 경로 추가
- eager loading에 management.tenantProspect.registeredBy.salesPartner.referrer.user 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:50:30 +09:00
김보곤
0ae7498a74 fix:수당 정산 테이블 전체 fallback 로직 개선
- 입금액: commission이 0이면 management의 deposit/balance 금액으로 fallback
- 유치파트너: commission→referrerPartner → partner→referrer → management→salesPartner→referrer 순 fallback
- 매니저: commission→manager → management→manager 순 fallback
- 파트너/매니저/유치 수당 0원일 때 '-' 표시
- 수당률 0%일 때 숨김 처리
- eager loading에 partner.referrer.user, management.salesPartner.referrer.user 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:47:36 +09:00
김보곤
2979037851 fix:정산관리 페이지에서 테넌트 선택 UI 숨김
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:40:07 +09:00
김보곤
3fa56292b0 fix:영업파트너 이름 fallback 로직 추가
- partner→user 없을 시 management→salesPartner→user → management→manager 순으로 fallback
- eager loading에 management.salesPartner.user, management.manager 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:36:37 +09:00
김보곤
d2b099a166 fix:수당 정산 탭 테넌트 표시를 실제 고객사 기반으로 수정
- eager loading에 management.tenant, management.tenantProspect 추가
- 검색 필터를 management 기반 고객사명 검색으로 변경
- 테넌트 컬럼을 management→tenant/tenantProspect 기반으로 표시
- 본사 진행상태(hq_status) 배지 추가
- 입금액 0원일 때 '-' 표시로 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:24:44 +09:00
김보곤
a1aa6036cf refactor:고객사정산 탭 재설계 (실 테넌트 데이터 기반)
- customerTab() 메서드: SalesTenantManagement 기반 쿼리로 재작성
- getCustomerStats() private 메서드 추가 (총개발비/수금완료/미수금/개발진행/구독전환)
- customer-tab.blade.php: Alpine.js CRUD → 순수 Blade 테이블로 전체 교체
- index.blade.php: 미사용 customerSettlementManager() Alpine 함수 제거
- 필터: 검색/개발상태/수금상태/담당파트너 4종
- 테이블: 고객사/파트너/매니저/개발비/1차/2차/구독료/개발상태 8열

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:51:28 +09:00
김보곤
adc2984c0d fix:정산관리에서 컨설팅비용 탭 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:37:26 +09:00
김보곤
63975f9e3f fix:단체 파트너 매니저 수당 일자 비활성화 (해당없음)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:21:19 +09:00
김보곤
b6601989f3 feat:영업파트너 고객관리에 개인/단체 구분 열 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:19:36 +09:00
김보곤
e63b6f1512 feat:영업파트너 고객관리에 협업지원금 수동 입력 기능 추가
- 개인 파트너: 협업지원금 금액 수정 가능한 number input 추가
- 단체 파트너: "-" 표시 (자동계산 3% 고정, 수동 수정 불가)
- AdminProspectController에 updateReferrerCommission 메서드 추가
- firstOrCreate에 referrer_rate, referrer_commission 필드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:14:36 +09:00
김보곤
54dcd610bf fix:영업파트너 필터 너비 flex-1 제거
영업파트너 select가 남은 공간을 전부 채우던 문제 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:36:08 +09:00
김보곤
ea3ad7e633 fix:수당정산 필터 flex-wrap 레이아웃으로 변경
사이드바로 인해 grid 열이 깨지는 문제 해결.
flex-wrap으로 변경하여 PC에서 한 줄, 모바일에서 2열 자동 배치.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:34:19 +09:00
김보곤
f1de56dc0c fix:수당정산 필터+버튼 한 줄 8열 그리드 레이아웃
필터 6개 + 버튼 영역(col-span-2)을 한 줄에 배치.
모바일 2열 → 태블릿 4열 → 데스크톱 8열 반응형.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:31:47 +09:00
김보곤
161ece95a2 fix:수당정산 필터 6열 반응형 그리드로 변경
모바일 2열 → 태블릿 3열 → 데스크톱 6열 반응형 레이아웃

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:29:52 +09:00
김보곤
ead41d1270 fix:수당정산 필터 3열 그리드 레이아웃으로 변경
필터 항목이 행으로 나열되던 문제 수정.
grid-cols-2 md:grid-cols-3 레이아웃으로 변경하여 컴팩트하게 표시.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:27:54 +09:00
김보곤
73737e637a fix:정산관리 초기 탭 HTMX 자동 로드 추가
?tab=payment 등 URL 파라미터로 직접 접속 시 로딩 스피너가
무한 표시되는 문제 수정. DOMContentLoaded에서 초기 탭의
HTMX 콘텐츠를 자동 로드하도록 변경.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:24:46 +09:00
9eeb62f819 feat: 트리거 감사로그 operation 단위 일괄 롤백 기능
- operation 상세 페이지 및 일괄 롤백 실행 기능 추가
- TriggerAuditLog에 scopeForOperation 스코프 추가
- 트리거 INSERT/UPDATE/DELETE에 operation_id 컬럼 포함
- 감사로그 목록에 작업 단위 링크 컬럼 추가
- 라우트: operation/{id}, batch-rollback 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:22:09 +09:00
김보곤
981c3c68d4 feat:수당 지급 탭 + 수당지급현황통계 페이지 추가
- 정산관리에 수당 지급 탭 추가 (파트너별 그룹핑 지급 대기 목록)
- 파트너별 상세 건 목록 HTMX 확장 기능
- 수당지급현황통계 페이지 (Chart.js 4개 차트 + 월별 요약 테이블)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 10:39:52 +09:00
김보곤
8f308b8877 fix:HTMX 탭 Alpine.js 미정의 오류 수정 (컨설팅/고객사/구독)
Alpine 컴포넌트 함수를 HTMX partial에서 메인 페이지로 이동하여
x-data 처리 시점에 함수가 정의되어 있도록 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 10:19:02 +09:00
김보곤
7bc412d9a1 feat:통합 정산관리 페이지 구현 (5개 탭 기반)
- SettlementController 신규 생성 (통합 정산관리 메인 + 탭별 HTMX)
- 5개 탭: 수당정산, 파트너별현황(NEW), 컨설팅비용, 고객사정산, 구독관리
- 수당정산 탭: 기존 영업수수료정산 이관 + 유치수당 컬럼/수당유형 필터 추가
- 파트너별 현황 탭: SalesPartner 수당 집계 + 필터/페이지네이션
- 컨설팅/고객사/구독 탭: React → Blade+Alpine.js 전환 (기존 API 재사용)
- 통합 통계카드 (미지급수당/승인대기/이번달예정/누적지급)
- 기존 4개 URL → 통합 페이지 리다이렉트
- SalesPartner 모델에 commissions 관계 추가
- SalesCommissionService에 commission_type 필터 + referrerPartner eager load 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 09:53:13 +09:00
김보곤
41e7eca92d feat:유치 파트너 현황에 개인/단체 유형 배지 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 09:00:51 +09:00
김보곤
b4470d94b4 fix:내 계약 현황 예상 수당 요율 하드코딩(10%) → 동적 적용(개인 20%, 단체 30%)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:36:15 +09:00
김보곤
b4581299e2 feat:영업파트너 승인 화면에 개인/단체 유형 열 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:10:13 +09:00
김보곤
81bcd617fe feat:단체(Corporate) 파트너 UI 접근 제한 구현
- User 모델에 isGroupPartner() 헬퍼 추가
- 대시보드에서 단체 파트너는 판매자 카드만 표시 (관리자/협업지원금 카드 제외)
- 유치 파트너 현황 탭 단체 파트너에게 숨김
- 파트너 등록 create/store 접근 차단 (403)
- 파트너 목록에서 등록 버튼 숨김
- SidebarMenuService에 hide_for_group_partner 옵션 기반 메뉴 필터링 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:00:58 +09:00
김보곤
67b2c6f7c0 fix:단체(그룹) 옆에 수당 요율 표시 (단체 30%, 유치 3%)
등록폼/수정모달 모두 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:28:09 +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
김보곤
d5a13fea1b fix:영업파트너 등록 시 유치 파트너 드롭다운 제거 (등록자 자동 지정)
영업파트너가 직접 등록하므로 등록자가 곧 유치파트너임.
드롭다운 대신 등록자 이름을 표시하고 서버에서 자동 설정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:18:32 +09:00
김보곤
0ac38f1797 fix:영업/매출관리 메뉴에서 테넌트 선택 UI 숨김 처리
영업파트는 본사 소속이므로 테넌트 선택이 불필요하여
sales.* 라우트에서 헤더/사이드바의 테넌트 셀렉터를 숨김 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:13:31 +09:00
김보곤
b00fd45650 fix:트렌딩 키워드 가져오기 실패 개선 (빈 결과 캐시 방지 + 리프레이밍 폴백)
- 빈 결과를 30분간 캐시하는 문제 수정 (성공 결과만 캐시)
- 건강 키워드가 없을 때 리프레이밍 폴백 추가 (트렌드를 건강 관점으로 재해석)
- 최종 폴백: 원본 인기 키워드 표시
- 프론트엔드 에러/안내 메시지 분리 (오류 vs 건강 키워드 없음)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 06:16:13 +09:00
김보곤
ff85e1c993 fix:AI 분석 504 타임아웃 에러 처리 개선
- Controller: analyzeScreenshots()를 try-catch로 감싸 JSON 에러 응답 보장
- Frontend: api() 함수에서 HTML 응답(504/502 등) 감지 → 친절한 한글 에러 메시지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:44:35 +09:00
김보곤
3c8f7c9f66 feat:튜토리얼 이력 새로고침 버튼 + 행 클릭 스크립트 상세보기
- TutorialVideoController에 detail/{id} 엔드포인트 추가 (analysis_data 반환)
- HistoryTable에 새로고침 버튼 추가 (스피너 애니메이션)
- 행 클릭 시 스크립트 상세정보 (화면별 단계, 나레이션, 소요시간) 펼침 표시
- 상세 데이터는 캐시하여 재클릭 시 재요청 없음

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:29:27 +09:00
김보곤
36cb6b63cd fix:업로드 진행률 버튼 흰색 배경 문제 수정
- disabled 속성 제거 (브라우저 기본 스타일이 Tailwind을 덮어씌움)
- 클릭 가드로 중복 클릭 방지 대체
- !important로 배경/글자색 강제 적용 (indigo-900/white)
- is-loading 클래스로 진행 중 상태 명확히 구분

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:05:10 +09:00
김보곤
09ff2288e8 feat:업로드 버튼에 진행률 표시 UI 개선
- XHR upload.onprogress로 파일 업로드 실시간 진행률 표시 (0~50%)
- AI 분석 단계 진행률 시뮬레이션 표시 (50~100%)
- 버튼 내부에 반투명 progress fill 애니메이션
- 단계별 텍스트 변경: "업로드 중... 30%" → "AI 분석 중... 75%"
- 업로드+분석을 ScreenshotUpload 내부에서 일괄 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:58:02 +09:00
김보곤
7651aebcfc fix:스크린샷 Ctrl+V 연속 붙여넣기 누적 안되는 버그 수정 + 드래그 재정렬
- stale closure 버그 수정: useRef로 최신 files/previews 참조
- 이미지 추가 시 기존 preview URL 유지 (revoke 안 함) → 올바른 누적
- 드래그 앤 드롭 순서 변경 기능 추가
- + 버튼으로 추가 이미지 등록 UI 개선
- 파일 선택 후 input value 리셋 (같은 파일 재선택 가능)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:45:39 +09:00
김보곤
46f1577d65 feat:튜토리얼 영상 멀티스텝 개선 (8초 → 30초~2분)
- ScreenAnalysisService: Gemini 프롬프트를 멀티스텝(3~5 steps) 출력으로 변경 + 하위 호환 fallback
- SlideAnnotationService: 스포트라이트 효과(annotateSlideWithSpotlight), 인트로/아웃트로 슬라이드 생성
- TutorialVideoJob: screen→steps 중첩 루프 + 인트로/아웃트로 씬 추가
- index.blade.php: 단계별 나레이션 편집 UI + 예상 시간 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:36:56 +09:00
김보곤
e182eb91b2 feat:스크린샷 Ctrl+V 클립보드 붙여넣기 지원
화면 캡처 후 바로 Ctrl+V로 업로드 가능.
클립보드 이미지 자동 감지, 파일명 자동 생성,
붙여넣기 시 녹색 플래시 시각 피드백 제공.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:19:39 +09:00