Commit Graph

1420 Commits

Author SHA1 Message Date
김보곤
e4d8dbddb3 fix:자막-음성 싱크 개선 + 나레이션 밀도 증가 + BGM 볼륨 상향
1. 자막 싱크: ffprobe로 실제 TTS 오디오 길이 측정 → 자막 타이밍 반영
   - 기존: 장면 길이 * 0.75 추정 → 음성과 자막 불일치
   - 변경: 실제 나레이션 오디오 길이 기반 문장별 타이밍 계산
2. 나레이션 밀도: 장면당 40~70자 → 60~100자 (빈 시간 없이 채움)
3. BGM 볼륨: 0.4 → 1.2 (안 들리던 문제 해결)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:50:52 +09:00
김보곤
0f162d1df9 fix:건강 트렌드 필터에서 연예인/인물 키워드 제외
- 프롬프트에 엄격한 제외 규칙 추가 (연예인/정치인/스포츠선수/드라마 등)
- "간접 연결 가능하면 포함" 조건 삭제 (억지 건강 앵글 방지)
- 컨트롤러: 필터 결과가 비면 원본 대신 빈 배열 반환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:39:58 +09:00
김보곤
073e4c4877 fix:자막 정규식 lookbehind → \K 방식으로 변경 (멀티바이트 호환)
PCRE lookbehind는 멀티바이트 문자 클래스에서 가변길이 오류 발생
→ \K (match reset)로 대체하여 구두점은 앞 문장에 유지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:38:04 +09:00
김보곤
e9ad735be9 fix:자막 preg_split 가변길이 lookbehind 오류 수정
PCRE는 (?<=[.!?]+) 가변길이 lookbehind 미지원
→ (?<=[.!?])(?![.!?]) 고정길이 lookbehind + negative lookahead 조합으로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:24:59 +09:00
김보곤
746d350c5e fix:자막 구두점(!?.)이 다음 페이지로 넘어가는 버그 수정
- splitIntoSentences 정규식: 연속 구두점(?!, !!, ?!?)을 하나로 취급
- 분리 조건: 구두점 후 공백이 있을 때만 분리 (공백 없으면 분리 안 함)
- 짧은 조각 병합 방향: forward → backward (이전 문장에 붙임)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:14:54 +09:00
김보곤
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
김보곤
06c6005771 feat:Google Lyria API로 AI 배경음악 생성 연동
Lyria API 연동:
- Vertex AI 기반 Google Lyria 음악 생성 API 추가
- 분위기(mood)별 영어 프롬프트 매핑 (upbeat, energetic, calm 등 8종)
- 생성된 30초 WAV → MP3 변환 + 영상 길이에 맞춰 루프/트림
- 페이드인(1초) + 페이드아웃(3초) 자동 적용
- 비용: $0.06/30초

BGM 우선순위 변경:
- 1순위: Lyria AI 배경음악 (신규)
- 2순위: 프리셋 BGM 파일 (storage/app/bgm/)
- 3순위: FFmpeg 앰비언트 (기존 폴백)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:51:38 +09:00
김보곤
85e8d8635d fix:음성+자막 속도 20% 증가 (1.2x → 1.4x)
- TTS 속도: 1.2x → 1.4x
- 자막 타이밍: 장면의 90% → 75% 구간에 압축 (음성과 싱크)
- 쇼츠 트렌드에 맞춘 빠른 템포

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:35:50 +09:00
김보곤
85654799be fix:이모지 TTS 읽기 버그 + 자막 과다 표시 수정
이모지/특수문자 제거:
- TtsService: TTS 전송 전 이모지, *강조*, (효과음), [동작] 등 제거
- VideoAssemblyService: 자막 생성 시에도 동일하게 이모지 제거
- 유니코드 이모지 전체 블록 커버 (이모티콘~태그 문자)

자막 분리 로직 개선:
- 5자 미만 조각만 병합 (기존 10자 → 과도한 병합 제거)
- 정상 문장(5자+)은 독립 자막으로 표시
- 장면당 2~3개 자막으로 깔끔하게 전환

시나리오 프롬프트 수정:
- 이모지/이모티콘 절대 금지 규칙 명시
- *강조*, (효과음), [동작], ○기호 금지
- 숫자 한글 표기 권장 (3가지 → 세 가지)
- 장면당 글자 수 40~70자로 조정 (1.2x 속도에 맞춤)
- 한 문장 10~20자로 축소 (자막 가독성)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:34:04 +09:00
김보곤
a8d87e2b92 fix:여성 음성 변경 + 속도 20% 감속 + 자막 한글자 버그 수정
TTS 설정:
- 음성: Neural2-C (남성) → Neural2-A (여성)
- 속도: 1.5x → 1.2x (20% 감속)
- 피치: 2.0 → 0.0 (자연스러운 여성 톤)

자막 한글자/한단어 버그 수정:
- 최소 청크 길이 10자 보장 (짧은 조각 인접 청크에 병합)
- 전체 25자 이하면 분리하지 않고 한 블록으로 표시
- 남은 짧은 버퍼는 마지막 청크에 합치기
- 최소 표시 시간 0.8초 → 1.5초로 증가
- 줄바꿈 기준 14자 → 16자 (가독성 향상)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:18:47 +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
김보곤
e093c7b7e7 fix:TTS 속도 1.5x + Neural2 음성 변경 + 자막 문장 단위 싱크
TTS 개선:
- 음성: ko-KR-Wavenet-A → ko-KR-Neural2-C (남성, 자연스럽고 개성있는 음성)
- 속도: 1.0x → 1.5x (기존 대비 50% 빠르게)
- 피치: 0.0 → 2.0 (더 에너지 있는 톤)

자막 싱크 버그 수정:
- 장면 전체 나레이션을 한 블록으로 표시 → 문장 단위로 분리 표시
- 각 문장 타이밍을 글자 수 비례로 자동 계산
- 문장 분리 로직: 마침표/느낌표/물음표 기준, 폴백으로 쉼표 분리
- 장면 끝 0.3초 여백으로 자연스러운 전환

시나리오 프롬프트:
- 나레이션 문장 길이 규칙 추가 (한 문장 15~25자)
- 반드시 마침표/느낌표/물음표로 문장 구분하도록 명시
- 장면당 글자 수 60~100자로 밀도 향상

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:59:36 +09:00
김보곤
1d512e8acc fix:시나리오 프롬프트 개선 (후킹 강화, CTA 제거, 나레이션 밀도 향상)
- 초반 3초 후킹 규칙 강화 (충격/의문/공감 필수, 평범한 인사 금지)
- 나레이션 속도감 향상 (장면당 50~80자, 빠른 말투)
- 매 장면마다 놀라운 팩트 또는 감정 변화 필수
- 마지막 장면 CTA(좋아요/구독/알림설정) 완전 제거 → 여운 남기는 마무리로 대체
- 장면 구성 6→5장면으로 변경 (CTA 장면 삭제, 시간 재분배)
- 나레이션 좋은/나쁜 예시 추가로 AI 출력 품질 가이드

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:47:37 +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
김보곤
0be763b05a feat:트렌딩 키워드 수집 + Veo 3.1 프롬프트 강화 파이프라인
- Google Trends RSS 기반 실시간 급상승 키워드 수집 서비스 추가
- 트렌딩 컨텍스트 활용 후킹 제목 생성 (5패턴: 충격/비교/숫자/질문/반전)
- Veo 3.1 공식 가이드 기반 visual_prompt 5요소 프레임워크 적용
- GET /video/veo3/trending 엔드포인트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:36:36 +09:00
김보곤
3f4cd88c20 feat:영상 파일 GCS 저장 및 삭제 연동
- VideoGenerationJob: 최종 합성 후 GCS 업로드, gcs_path 저장
- Veo3Controller: download/preview GCS 서명URL 사용, destroy GCS 파일 삭제
- VideoGeneration 모델: gcs_path fillable 추가
- GCS 불가 시 로컬 파일로 폴백

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:11:18 +09:00
김보곤
5e4a9c9291 fix:이력 삭제 시 로컬 영상 파일도 함께 삭제
- DB 레코드만 삭제하던 것을 storage/app/video_gen/{id}/ 디렉토리도 삭제
- 클립, 나레이션, BGM, 최종 영상 등 모든 작업 파일 정리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:04:58 +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
김보곤
60edc28a17 fix:한국인 여성 캐릭터 고정 + 나레이션-영상 싱크 버그 수정
- Gemini 프롬프트: visual_prompt에 한국인 여성(20대) 등장인물 규칙 추가
- Veo 프롬프트: 모든 클립에 "Korean woman in her 20s" 프리픽스 자동 추가
- 싱크 버그: activeNarrationPaths 인덱스 off-by-one ($num-1→$num) 수정
  - 나레이션이 영상보다 1장면 앞서 재생되던 근본 원인
- concatNarrations: atrim+apad로 나레이션을 장면 길이에 정확히 매칭

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:50:51 +09:00
김보곤
01efd99004 fix:자막 중앙배치+크기2배, TTS 볼륨 증가, BGM 앰비언트 자동생성
- 자막: 하단→중앙(Alignment=5), 48→96pt, 외곽선 5px, 줄바꿈 12자
- TTS: 나레이션 볼륨 1.0→2.0 (2배 증가)
- BGM: 무음 대신 분위기별 앰비언트 화음 자동생성 (FFmpeg aevalsrc)
- BGM 볼륨: 0.15→0.4 (나레이션 방해 안 하는 수준)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:45:22 +09:00
김보곤
a72ca314d1 docs:Google API 비용 모니터링 & 결제 가이드 문서 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:38:27 +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
김보곤
bbedb67817 fix:Queue retry_after 90초→1860초 (영상생성 Job 타임아웃 방지)
영상 생성 Job이 10~20분 소요되는데 retry_after=90초로 설정되어
DB 큐 드라이버가 Job을 "멈춤"으로 판단하여 재시도 → tries 초과 실패
retry_after를 Job timeout(1800초)보다 크게 설정하여 해결

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:22:47 +09:00
김보곤
fb69877330 fix:영상 클립 RAI 필터링 대응 (재시도 + 건너뛰기)
- VeoVideoService.waitAndSave() 반환값을 array로 변경 (실패 원인 포함)
- 클립 생성 실패 시 프롬프트 수정 후 자동 재시도
- 재시도 실패 시 해당 장면 건너뛰고 나머지로 합성 진행
- 성공 클립이 절반 미만일 때만 전체 실패 처리
- 건너뛴 장면의 나레이션/자막 자동 필터링

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:01:32 +09:00
김보곤
cff3adfd6d fix:Veo 3.1 API 폴링 엔드포인트 수정 (fetchPredictOperation)
- GET /v1/{operationName} → POST fetchPredictOperation 변경
- 응답 구조 predictions → response.videos 수정
- 연속 5회 HTTP 에러 시 조기 중단 로직 추가
- 30초 간격 대기 로그 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:44:23 +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
김보곤
0c8b1c8f60 fix:Veo3Controller tenant_id를 session 기반으로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:52:40 +09:00
김보곤
2fbbaad713 fix:GeminiScriptService를 AiConfig(DB) 기반으로 연결
- .env API 키 대신 시스템 > AI 설정의 활성 Gemini 설정 사용
- API Key / Vertex AI(서비스 계정) 방식 자동 분기 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:50:26 +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
김보곤
0dbfb0b62e fix:수당 안내서 PPTX '주일/경동' → 'SAM'으로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:28:01 +09:00
김보곤
f26934eb61 fix:수당 안내서 PPTX 대외비 표시 및 협업지원금 표현 순화
- 전 슬라이드에 빨간색 'CONFIDENTIAL/대외비' 스탬프 추가
- 표지에 '사내 대외비 문서' 보안 경고문 추가
- 협업지원금 설명을 '내부 복리후생 지원제도'로 순화
- '생계 보조' → '안정적 파트너십 유지를 위한 내부 지원'으로 변경
- 유의사항(필독) 섹션 추가: 외부 유출 금지 명시
- 보안 유의사항 슬라이드(8번) 신규 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:21:59 +09:00
김보곤
e8c74dee99 docs:영업파트너 수당 안내서 PPTX 생성
개인/단체 파트너 수당 체계를 설명하는 7슬라이드 PPTX 자료:
표지, 수당 체계 비교, 개인/단체 상세, 협업지원금 설명, 계산 예시, 지급 절차 요약

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:17:08 +09:00
김보곤
d7d4eb0926 fix:협업지원금 개념 반영 (개인 파트너도 유치자에게 3% 지급)
- createCommission: 개인 파트너도 parent_id → SalesPartner 조회하여 3% 협업지원금 계산
- 대시보드: "유치수당" → "협업지원금" 카드 이름 복원
- 본사 총 수당 구조: 개인 28%(20+5+3), 단체 33%(30+0+3)
- 변경 보고서 v2 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:02:56 +09:00
김보곤
fcbeccb4db docs:단체(그룹) 수당 체계 통합 변경 보고서 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:49:39 +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
김보곤
70bfccf5fb fix:전자서명 필드 위치 설정/복사 시 field_value 누락 수정
configureFields()와 copyFieldsFromContract()에서 기존 필드를
삭제 후 재생성할 때 field_value를 설정하지 않아 계약서 PDF에
서명자명, 날짜 등 기본값이 빠지는 문제 수정.
buildVariableMap()으로 변수 맵을 구성하여 값을 채우도록 개선.

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