Commit Graph

1029 Commits

Author SHA1 Message Date
김보곤
0859a14e33 feat:생성 이력 상세보기 모달 + YouTube Shorts 텍스트 생성
- Veo3Controller에 show 엔드포인트 추가 (시나리오/프롬프트 상세 데이터 반환)
- YouTube Shorts 제목/설명/해시태그 자동 생성 (완료된 영상)
- DetailModal 컴포넌트: 탭 UI (시나리오/프롬프트 | YouTube 텍스트)
- 이력 테이블 행 클릭 시 상세 모달 표시
- 복사 버튼으로 YouTube 텍스트 클립보드 복사

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:58:56 +09:00
김보곤
ed1967405c feat:트렌드 키워드를 건강 채널용으로 필터링
건강 채널 전용 트렌딩 시스템:
- Gemini로 실시간 트렌드에서 건강 관련 키워드만 필터링
- 간접적 키워드도 건강 앵글로 리프레이밍 (예: 김치 → 장건강)
- 필터 결과 30분 캐싱 (Gemini 호출 최소화)
- 필터 실패 시 원본 키워드 폴백

제목 생성 건강 앵글 반영:
- generateTrendingHookTitles 프롬프트에 건강 채널 명시
- trending_context에 health_angle, suggested_topic 추가
- 모든 제목이 건강/웰빙 관점으로 생성되도록 가이드

UI 건강 테마 적용:
- 버튼/칩 색상: orange/indigo → green 테마
- 칩에 건강 앵글 태그 배지 표시
- 칩 클릭 시 건강 주제(suggested_topic)가 인풋에 채워짐

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:08:57 +09:00
김보곤
c2704adf51 feat:Step 1 트렌드 주제 자동추출 버튼 UI 추가
- KeywordInput 컴포넌트에 Google 실시간 급상승 키워드 가져오기 버튼 추가
- 키워드 칩(pill) 클릭 시 인풋 자동 채움 + trending_context 저장
- handleKeywordSubmit에서 trending_context를 POST body에 포함하여 전송
- 직접 입력 시 기존과 동일하게 동작 (하위 호환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:43:01 +09:00
김보곤
5985b88398 feat:생성이력에 서울시간 표기 + 제작시간 열 추가
- 날짜→생성일시: KST(Asia/Seoul) 기준 MM/DD HH:mm 형식
- 제작시간 열 추가: created_at~updated_at 차이 계산 (완료/실패 시)
- 진행 중인 항목은 "진행 중" 표시
- history API에 updated_at 추가 반환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:03:37 +09:00
김보곤
8d8fa2da0a feat:생성 이력 체크박스 선택 삭제 기능 추가
- 이력 테이블 첫 열에 체크박스 추가 (전체 선택/해제)
- 선택 시 상단에 빨간색 삭제 버튼 표시
- DELETE /video/veo3/history API 엔드포인트 추가
- 삭제 후 이력 목록 자동 새로고침

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:26:37 +09:00
김보곤
5ed10104e3 fix:영상 생성 진행 상태 UI 대폭 개선
- 경과 시간 실시간 표시 (초 단위 타이머)
- 단계별 타임라인 (Queue 대기 → TTS → 영상 → BGM → 합성)
- 프로그레스 바 shimmer 애니메이션 (작동 중 표시)
- 2분간 변화 없으면 경고 배너 표시
- 폴링 횟수 & 서버 마지막 업데이트 시간 표시
- status API에 updated_at/created_at 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:05:09 +09:00
김보곤
8a6f3f20c9 fix:Gemini 3.0 Flash 모델 적용 + 제목 선택 UI/UX 개선
- 기본 모델을 gemini-3.0-flash로 변경
- @apply를 순수 CSS로 전환 (Tailwind CDN 호환)
- 제목 카드에 라디오 도트, 체크 뱃지, hover/selected 효과 추가
- 선택 시 border glow + 체크마크 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:56:02 +09:00
김보곤
6ab93aedd2 feat:YouTube Shorts AI 자동 생성 시스템 구현 (Veo 3.1 + Gemini)
- GeminiScriptService: 트렌딩 제목/시나리오 생성
- VeoVideoService: Veo 3.1 영상 클립 생성
- TtsService: Google TTS 나레이션 생성
- BgmService: 분위기별 BGM 선택
- VideoAssemblyService: FFmpeg 영상 합성
- VideoGenerationJob: 백그라운드 처리
- Veo3Controller: API 엔드포인트
- React 프론트엔드 (5단계 위저드)
- GoogleCloudService.getAccessToken() public 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:46:28 +09:00
김보곤
9714dedd04 feat:홈택스 세금계산서 자동 증분 동기화
페이지 로드 시 바로빌 API를 백그라운드에서 호출하여 신규 데이터를 자동 동기화.
수동 데이터소스 토글/저장 버튼 제거, 항상 로컬 DB에서 즉시 표시 후 증분 동기화.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:24:19 +09:00
김보곤
f1f31d5f70 feat:단체(그룹) 수당 체계 통합 (단체 30%, 유치 3%, 매니저 0%)
- SalesPartner: referrer_partner_id, referrer/referredGroups 관계, isGroup() 헬퍼
- SalesCommission: 유치수당 필드, referrerPartner 관계, 지급 추적 메서드
- SalesCommissionService: 단체/개인 분기 수당 계산 로직
- SalesManagerService: 단체 등록 시 수당률 자동 설정
- SalesManagerController: 유형 선택 및 유치 파트너 지정 기능
- 대시보드: 유치수당 카드 표시 및 합산
- UI: purple 색상 처리 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:42:51 +09:00
김보곤
eafd81d97a feat:파트너 검색에 포지션(역할) 필드 추가
- searchPartners 역할 필터를 sales만 → sales/manager 모두 포함하도록 확장
- 사용자 역할(영업파트너/상담매니저)을 position 필드로 API 응답에 추가
- handlePartnerSelect에 position 매핑 추가 (key: position, label: 포지션/직책/역할)
- PartnerSearchModal 검색 결과에 position 배지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:07:16 +09:00
김보곤
823916aa1d feat:새 계약 생성 비밀유지서약서 테스트 데이터 번개 버튼 추가
- 기존 번개(노란색): 영업파트너 계약서 테스트 데이터
- 새 번개(보라색): 비밀유지서약서 테스트 데이터
- 개발 편의를 위한 관리자 전용 퀵필 버튼

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:46:45 +09:00
김보곤
66abdc31e5 feat:템플릿 카드에서 PDF/Word 파일 직접 교체/추가 기능
- 템플릿 카드의 PDF 표시 영역에 '교체' 버튼 추가
- PDF 미연결 템플릿에 'PDF/Word 파일 추가' 버튼 표시
- 카드에서 직접 파일 선택 → 업로드 → 즉시 반영
- PDF/DOC/DOCX 지원 (서버에서 자동 PDF 변환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:31:36 +09:00
김보곤
a7aa2e2cd2 fix:E-Sign 알림톡 certKey 버그 수정 및 발송 상태 추적 기능 추가
- sendATKakaotalkEx() 호출 시 존재하지 않는 certKey 파라미터 제거 (TypeError 버그)
- sendAlimtalk/dispatchNotification 결과 반환 (void → array)
- send/remind 응답에 notification_results 포함
- 감사 로그 metadata에 서명자별 알림 발송 결과 저장
- EsignPublicController 다음 서명자/완료 알림에도 동일 수정 적용
- detail.blade.php: 발송 방식 배지, 서명자 연락처, 알림 오류 배너, 활동 로그 발송 결과 표시
- send.blade.php: 발송 후 알림 실패 시 경고 메시지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:01:14 +09:00
김보곤
bea7bd5987 feat:전자계약 알림톡 발송 방식 선택 기능 추가
- EsignApiController: send_method/sms_fallback 저장, dispatchNotification/sendAlimtalk 메서드 추가
- EsignPublicController: 완료/다음서명자 알림에 알림톡 지원 추가
- EsignContract 모델: send_method, sms_fallback fillable/casts 추가
- send.blade.php: 발송방식 선택 UI (알림톡/이메일/동시), SMS 대체발송, 연락처 확인

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:12:41 +09:00
김보곤
33871e3240 feat:사이드바 메뉴 전체 접기/펼치기 버튼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:54:33 +09:00
김보곤
7eb761af41 feat:메뉴관리 전체 접기/펼치기 토글 버튼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:52:09 +09:00
김보곤
04461e57f5 fix:메뉴관리 하위메뉴 중복 문서아이콘 제거, 실제 아이콘은 전체 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:48:47 +09:00
김보곤
1ddf6032d2 fix:메뉴관리 테이블 아이콘을 상위 그룹만 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:47:12 +09:00
김보곤
bb9c1f94d6 feat:메뉴관리 테이블에 아이콘 표시 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:43:00 +09:00
김보곤
bd6f1c4b60 feat:카카오톡 사용법 가이드 페이지 추가
- 알림톡/친구톡 비교, 준비사항, 채널/템플릿/발송/전송내역 사용법
- FAQ 섹션 포함 (초보자 친화적 설명)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:34:45 +09:00
김보곤
d69f4ef5d3 feat:바로빌 카카오톡(알림톡/친구톡) 서비스 구현
- BarobillService에 KAKAOTALK SOAP 클라이언트 추가
  - 채널/템플릿 관리, 알림톡/친구톡 발송, 전송조회/예약취소 API
- BarobillKakaotalkController (API) 생성: 15개 엔드포인트
- KakaotalkController (페이지) 생성: 5개 페이지
- 라우트 등록 (web.php, api.php)
- Blade 뷰 5개 생성: 대시보드, 채널관리, 템플릿관리, 발송, 전송내역

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:11:15 +09:00
김보곤
9cde5f56f0 fix:OTP 이메일에 코드 복사 편의 영역 추가
이메일에서는 JavaScript가 차단되므로 클립보드 버튼 대신
user-select:all로 터치/클릭 시 전체 선택되는 복사 영역 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 13:22:01 +09:00
김보곤
36627b976d fix:전자서명 done 페이지 계약/서명자 정보 표시 수정
getContract API가 항상 데이터를 반환하되 is_signable 플래그로
서명 가능 여부를 전달하도록 변경. done 페이지에서 signed/completed
상태의 계약도 정상적으로 정보를 표시할 수 있도록 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 13:18:17 +09:00
김보곤
992f28ba33 fix:전자서명 서명/확인 단계 버튼 위치 수정 (서명란 바로 아래로)
- flex-1 제거하여 카드가 화면 전체를 채우지 않도록 변경
- 이전/서명확인 버튼이 서명 입력란 바로 아래에 위치

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:49:17 +09:00
김보곤
8cfc44bf45 fix:영업파트너 수정 모달 validation 에러 표시 추가
- 폼을 AJAX 제출로 변경하여 422 에러 시 모달 내 에러 메시지 표시
- innerHTML로 로드된 script 태그 수동 실행 처리
- 컨트롤러에 JSON 응답 지원 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:47:41 +09:00
김보곤
7e9dec8bd3 feat:영업파트너 등록/수정에 사업자 정보(상호, 사업자등록번호, 주소) 필드 추가
- 컨트롤러 store/update 유효성 검사에 3개 필드 추가
- 서비스 create/update에서 SalesPartner 레코드 생성/업데이트
- 등록 폼(create.blade.php)에 사업자 정보 섹션 추가
- 수정 모달(edit-modal.blade.php)에 사업자 정보 섹션 추가
- 테스트 데이터 자동입력에 사업자 정보 포함

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:11:32 +09:00
김보곤
72ce6980a7 fix:영업파트너 모달 높이 고정+스크롤 적용, salesPartner 레코드 보유자만 검색
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:55:05 +09:00
김보곤
92c78b353e feat:E-Sign 계약 생성 영업파트너 검색 모달 추가
- EsignApiController에 searchPartners() 검색 API 추가
- SalesPartner 모델 $fillable에 company_name, biz_no, address 추가
- User 모델에 salesPartner() HasOne 관계 추가
- create.blade.php에 PartnerSearchModal 컴포넌트 + 자동채우기 로직 추가
- web.php에 search-partners 라우트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:48:31 +09:00
김보곤
e0627e04ac fix:select padding-right !important로 Tailwind 클래스 우선순위 문제 해결
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:32:36 +09:00
김보곤
027d880df7 fix:select 드롭다운 텍스트-화살표 겹침 방지 전역 CSS 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:30:05 +09:00
김보곤
28a9a73326 fix:계약 자동채움 영업파트너 계약서로 고정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:19:13 +09:00
김보곤
00f290440e feat:계약 생성 만료일 기본값 7일 후 설정 및 안내 문구 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:13:41 +09:00
김보곤
2ed6508fee fix:계약 생성 상대방 전화번호 고정값으로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:45:59 +09:00
김보곤
d739888e95 fix:계약 생성 상대방 기본 이메일 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:25:24 +09:00
김보곤
e0e97165b3 feat:계약 필드 에디터에 텍스트 정렬(L/C/R) 설정 기능 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:06:32 +09:00
김보곤
f0a57015c0 fix:계약 상세 시간 표시를 UTC→KST(로컬) 변환으로 수정
- fmtDate() 유틸 추가: UTC ISO 문자열을 브라우저 로컬 시간으로 변환
- 서명자 signed_at, 활동 로그 created_at, 계약 생성일/만료일 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:48:25 +09:00
김보곤
877d3f16d3 fix:필드 에디터 오버레이 기본 정렬을 왼쪽으로 변경
- template-fields/fields FieldOverlay: justify-center → text_align 기반 정렬
- 기본값 justify-start(왼쪽), text_align에 따라 L/C/R 반영

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:21:14 +09:00
김보곤
843e898f5f fix:E-Sign PDF 폰트 크기 2배 확대, 왼쪽 정렬 기본값, 서명자 매핑 수정
- PdfSignatureService: 자동 폰트 크기 공식 2배(h*0.7→h*1.4), 기본 정렬 C→L
- text_align 필드 추가 (L/C/R 정렬 선택 가능)
- store()/buildVariableMap(): sign_order→role 기반 매핑으로 변경
  (signer_order 1=creator/갑/회사, 2=counterpart/을/파트너)
- template-fields: 가로 정렬 버튼 UI 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:07:31 +09:00
김보곤
d5283099c4 feat:새 템플릿 생성 기능 추가 (CreateTemplateModal)
- storeTemplate() API에서 items를 nullable로 변경하여 빈 템플릿 생성 허용
- signer_count/variables 파라미터 직접 지정 가능하도록 추가
- "새 템플릿" 버튼 클릭 시 CreateTemplateModal 표시 (이름/설명/카테고리/서명자수/PDF)
- 생성 완료 후 필드 에디터(/esign/templates/{id}/fields)로 자동 이동

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:40:41 +09:00
김보곤
be52631287 feat:계약 생성 페이지를 3단계 위자드로 개선
- Step 1: 계약 정보 + 서명자 (유효성 검사 포함)
- Step 2: 템플릿 선택 + PDF 미리보기 (필드 위치 오버레이)
- Step 3: 변수 입력 + 요약 + 생성/바로발송 버튼
- pdf.js 추가하여 템플릿 PDF 프리뷰 렌더링
- 필드 목록 테이블로 배치될 필드 한눈에 확인
- 스텝 인디케이터 (완료 단계 클릭 이동 지원)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:21:55 +09:00
김보곤
259c07e880 feat:템플릿 기반 계약서 자동 생성 시스템
- store()에서 template_id 있으면 필드 자동 생성 (서버 사이드)
- create.blade.php 변수 입력 UX 개선 (시스템/커스텀 변수 구분)
- 바로 발송 버튼 추가 (템플릿 선택 시)
- fields.blade.php URL 파라미터 기반 auto-apply 제거
- PdfSignatureService NanumGothic 한글 폰트 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:07:59 +09:00
김보곤
0d00d1c67f fix:법인도장 이미지를 base64 data URL로 반환 (local disk 404 해결)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:46:11 +09:00
김보곤
fe9716ff17 fix:법인도장 업로드를 base64 방식으로 변경 (PHP upload_max_filesize 제한 우회)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:44:12 +09:00
김보곤
e8d494a081 feat:법인도장 대시보드 등록 + 새 계약 자동 적용
- 대시보드 설정 탭 추가 (법인도장 등록/미리보기/삭제 UI)
- tenant_settings 테이블에 esign/company_stamp 키로 저장
- 새 계약 생성 시 등록된 도장 자동 적용 (creator signer)
- 계약 생성 페이지에서 개별 도장 업로드 UI 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:26:28 +09:00
김보곤
24c6927b56 feat:E-Sign 작성자 서명/도장 선택 기능 (자동서명 제거)
- 작성자 자동서명 로직 제거 → 양쪽 모두 서명 과정 필수
- 서명 화면에서 '직접 서명' / '법인도장' 선택 UI 추가
- 도장 선택 시 기존 stamp 이미지로 바로 제출
- getContract API에 has_stamp 필드 추가
- submitSignature에 use_stamp 플래그 처리 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:02:26 +09:00
김보곤
83bd22a414 fix:E-Sign 서명하기 버튼 위치 개선 (체크박스 바로 아래로)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:42:39 +09:00
김보곤
0c47d7b996 feat:E-Sign 법인도장(Corporate Seal) 등록 및 자동 서명 기능
- 계약 생성 화면에 법인도장 업로드 UI 추가 (미리보기/삭제)
- store()에서 base64 이미지 디코딩 후 저장, creator signer에 연결
- send()에서 법인도장 있는 작성자 자동 서명 처리 (상대방에게만 이메일 발송)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:36:11 +09:00
김보곤
c1932c7803 fix:매입 필터 버튼 배경색 변경 (amber→orange, 가시성 개선)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 12:00:33 +09:00
김보곤
416eea4401 feat:거래처 매출/매입 구분 라디오버튼 추가
- 등록/수정 모달에 매출/매입 라디오버튼 (기본값: 매출)
- 통계 카드에 매출/매입 건수 표시
- 필터 바에 매출/매입 필터 버튼
- 테이블에 매출/매입 뱃지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:27:40 +09:00