Commit Graph

228 Commits

Author SHA1 Message Date
김보곤
768bc30a6d feat:사용자 매뉴얼 영상 자동 생성 기능 구현
- TutorialVideo 모델 (상태 관리, TenantScope)
- GeminiScriptService에 callGeminiWithParts() 멀티모달 지원 추가
- ScreenAnalysisService: Gemini Vision 스크린샷 AI 분석
- SlideAnnotationService: PHP GD 이미지 어노테이션 (마커, 캡션)
- TutorialAssemblyService: FFmpeg 이미지→영상 합성 (crossfade)
- TutorialVideoJob: 분석→슬라이드→TTS→BGM→합성 파이프라인
- TutorialVideoController: 업로드/분석/생성/상태/다운로드/이력 API
- React-in-Blade UI: 3단계 (업로드→분석확인→생성모니터링) + 이력

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:56:39 +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
김보곤
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
김보곤
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
김보곤
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
김보곤
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
김보곤
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
김보곤
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
김보곤
8a18244000 feat:고객사 등록 사업자등록증 OCR 자동입력 기능 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:51:38 +09:00
김보곤
f83a62b479 feat:템플릿 비주얼 필드 에디터 추가
PDF 위에서 드래그앤드롭으로 템플릿 필드를 편집하는 기능 구현:
- template-fields.blade.php 뷰 생성 (fields.blade.php 기반, signer_order 사용)
- updateTemplateItems API 추가 (필드 일괄 저장)
- 템플릿 카드/모달에 필드 편집 링크 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
a464cf40de feat:템플릿 편집 모달 확장 (PDF 관리 + 서식 필드 관리)
백엔드:
- uploadTemplatePdf: 템플릿 PDF 업로드/교체 API
- removeTemplatePdf: 템플릿 PDF 제거 API
- destroyTemplateItem: 개별 필드 아이템 삭제 API (signer_count 자동 재계산)
- updateTemplate 응답에 items 관계 포함

프론트엔드:
- 모달 폭 420px → 680px 확장
- 3개 탭 구성: 기본 정보 / PDF 파일 / 서식 필드
- PDF 탭: 현재 파일 정보, 다운로드, 교체, 제거 기능
- 서식 필드 탭: 필드 목록 테이블 (유형/라벨/서명자/페이지/위치/필수), 개별 삭제
- 편집 시 상세 데이터(items 포함) 로드

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
36654d9992 feat:계약 휴지통 기능 (소프트 삭제/복구/영구삭제)
백엔드:
- destroy를 SoftDelete 방식으로 변경 (deleted_at + deleted_by 기록)
- trashed: 휴지통 목록 조회 API 추가
- restore: 선택 복구 API 추가
- forceDestroy: 영구 삭제 API 추가 (파일+관련 레코드 완전 삭제)
- 라우트 3개 추가 (trashed, restore, force-destroy)

프론트엔드:
- 대시보드에 탭 UI 추가 (계약 목록 / 휴지통)
- 휴지통 탭: 삭제된 계약 목록, 삭제일 표시
- 선택 복구(파란색) / 영구삭제(빨간색) 버튼
- 휴지통 건수 뱃지 표시
- 삭제 시 메시지를 "휴지통으로 이동"으로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
2dea60de23 feat:계약 대시보드 선택 삭제 기능 추가
- EsignApiController에 destroy 메서드 추가 (복수 삭제 지원)
- 관련 파일(PDF, 서명이미지) 및 레코드(서명자, 필드, 감사로그) 일괄 삭제
- 서명 진행 중(pending, partially_signed) 계약은 삭제 차단
- DELETE /esign/contracts/destroy 라우트 추가
- 대시보드에 체크박스 전체/개별 선택 + 삭제 버튼 UI 추가
- 삭제 전 confirm 확인 다이얼로그

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
f050be52fe feat:E-Sign 템플릿에 PDF 파일 포함 기능 추가
- 모델: EsignFieldTemplate fillable에 file 컬럼 추가
- storeTemplate: include_pdf + contract_id로 계약 PDF를 템플릿으로 복사
- store(계약 생성): template_id로 템플릿 PDF 자동 복사 (사용자 업로드 우선)
- duplicateTemplate: 복제 시 PDF 파일도 복사
- 템플릿 PDF 다운로드 엔드포인트 추가
- SaveTemplateModal: "현재 PDF 파일 포함" 체크박스 추가
- create: 템플릿 카드에 PDF 뱃지, PDF 자동 사용 안내
- templates: 템플릿 카드에 PDF 파일명 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
9b119fa7c9 fix:템플릿 선택 시 PDF 파일 필수 해제 및 후속 업로드 지원
- create: 템플릿 선택 시 PDF required 제거, 안내 메시지 표시
- fields: PDF 없는 계약 시 업로드 UI 표시
- API: uploadPdf 엔드포인트 추가 (POST /{id}/upload-pdf)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:05:28 +09:00
김보곤
ec43fe1991 feat:E-Sign 템플릿 관리 시스템 Phase 2 구현
- 템플릿 관리 전용 페이지 (카드 그리드, 검색/필터, 편집/복제/삭제)
- API: showTemplate, updateTemplate, duplicateTemplate 추가
- indexTemplates에 category/search 필터 추가
- 계약 생성 시 템플릿 선택 UI 추가
- 필드 에디터에서 URL 파라미터 template_id 자동 적용
- EsignFieldTemplate 모델에 category 필드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:55:06 +09:00
김보곤
79c23f3337 feat:E-Sign 필드 템플릿 저장/불러오기 및 계약 간 복사 기능
- EsignFieldTemplate, EsignFieldTemplateItem 모델 추가
- EsignApiController에 템플릿 CRUD + 적용/복사 메서드 5개 추가
- web.php에 템플릿 라우트 5개 추가
- fields.blade.php에 템플릿 드롭다운 메뉴 + 모달 3개 추가
  (SaveTemplate, LoadTemplate, CopyFromContract)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:02:31 +09:00
김보곤
df237140a3 fix:E-Sign 서명 페이지 Blade/JSX 충돌 수정 및 내부 API 전환
- sign.blade.php: style={{}} → STYLES 상수로 Blade {{ }} 파싱 충돌 해결
- sign.blade.php, done.blade.php: 외부 API 호출 → MNG 내부 엔드포인트로 변경
- EsignPublicController: submitSignature, rejectContract, downloadDocument 추가
- routes/web.php: submit, reject, document API 라우트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:38:21 +09:00
김보곤
45e6afb862 feat:E-Sign 서명 인증을 MNG 자체 API로 전환
기존: 브라우저 → 외부 API 서버(api.codebridge-x.com) 호출
변경: 브라우저 → MNG 자체 엔드포인트(/esign/sign/{token}/api/*) 호출

- EsignPublicController에 getContract/sendOtp/verifyOtp API 추가
- auth.blade.php에서 외부 API 호출을 MNG 자체 API로 변경
- EsignOtpMail Mailable + 이메일 템플릿 추가
- CSRF 예외에 esign/sign/*/api/* 추가
- 로컬/서버 환경 모두에서 동작

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:26:28 +09:00
김보곤
837fe42663 feat:E-Sign 리마인더 발송 라우트 및 컨트롤러 추가
detail.blade.php에서 호출하는 remind 엔드포인트가 누락되어 있었음.
POST /esign/contracts/{id}/remind 라우트 추가,
EsignApiController::remind() 메서드 구현 (상태 변경 + 감사 로그).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:10:16 +09:00
김보곤
5f93edf34b refactor:전자계약 관련 용어를 SAM E-Sign으로 통일
- 전자계약 (E-Sign), 전자계약 대시보드, 전자계약 상세 등 → SAM E-Sign
- 9개 파일, 19곳 수정 (코드 식별자/URL은 유지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:29:09 +09:00
김보곤
e0e6c71701 feat:전자계약 문서 페이지 추가 (8개 탭 기반 기술 문서)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 13:23:56 +09:00
김보곤
279a15bf0d refactor:E-Sign 외부 API 호출을 MNG 내부 라우트로 전환
- Finance 패턴과 동일하게 MNG 직접 DB 접근 방식으로 변경
- MNG 모델 4개 추가: EsignContract, EsignSigner, EsignSignField, EsignAuditLog
- EsignApiController 추가: stats, index, show, store, cancel, configureFields, send, download
- 모든 뷰(dashboard, create, detail, fields, send)에서 외부 API URL 제거
- 기존 X-API-Key/Bearer 인증 대신 MNG 세션 인증(CSRF) 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 10:24:09 +09:00
김보곤
e6a7252646 fix:E-Sign 라우트를 juil 그룹 밖으로 이동 (/esign URL 매칭)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 10:06:38 +09:00
김보곤
3281788536 feat:E-Sign 전자계약 서명 솔루션 MNG 프론트엔드 구현
- 컨트롤러 2개 (EsignController, EsignPublicController)
- 뷰 8개 (dashboard, create, detail, fields, send, sign/auth, sign/sign, sign/done)
- React 하이브리드 방식 (기존 Finance 패턴)
- 라우트 추가 (인증 esign/* + 공개 esign/sign/*)
- PDF.js 기반 서명 위치 설정
- signature_pad 기반 전자서명 입력
- OTP 본인인증 플로우

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 07:02:48 +09:00
김보곤
9d314a62fa feat:공사현장 사진대지 멀티행(N행) 사진 지원
- ConstructionSitePhotoRow 모델 추가
- 부모 모델에서 사진 컬럼 제거, rows() 관계 추가
- 서비스/컨트롤러에 행 추가/삭제 기능 추가
- 라우트를 행 기반 URL 구조로 변경
- 프론트엔드 멀티행 UI 전면 개편

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 18:04:09 +09:00
bc6bba0ab1 Merge remote-tracking branch 'origin/develop' into develop 2026-02-11 16:03:32 +09:00
0e2de0002a feat(MNG): 채번 규칙 관리 기능 추가
- NumberingRule 모델, 서비스, 컨트롤러 추가
- API/Blade 라우트 등록
- CRUD + 미리보기 기능

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:00:08 +09:00
김보곤
0a39e7d744 feat:FCM 에러 토큰 전체삭제 버튼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:39:26 +09:00
김보곤
d78d431350 feat:법인카드 요약카드 개선 (결제일/사용금액/선불결제)
- 요약카드 4개→6개 확장 (등록카드, 총한도, 매월결제일, 사용금액, 선불결제, 잔여한도)
- 매월결제일: 휴일/주말 시 다음 영업일로 자동 조정 표시
- 사용금액: barobill_card_transactions 기반 청구기간 실거래 합산
- 선불결제: 수정 모달로 테넌트 단위 월별 금액 관리
- 잔여한도: (총한도 - 사용금액 + 선불결제) 계산

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:24:39 +09:00
김보곤
8e135672a1 feat:일반전표입력에 계정과목 설정 기능 이관
계좌입출금내역에서 제거된 계정과목 설정 기능을 일반전표입력 페이지로 이관
- JournalEntryController에 계정과목 CRUD 메서드 추가
- 계정과목 CRUD 라우트 추가 (journal-entries/account-codes/*)
- AccountCodeSettingsModal 컴포넌트 추가
- 페이지 헤더에 계정과목 설정 버튼 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 09:33:33 +09:00
김보곤
489a491415 feat:일정 첨부파일 기능 추가 (다중 업로드, 드래그앤드롭, GCS)
- DashboardCalendarController에 uploadFiles/deleteFile/downloadFile 추가
- 파일 업로드 라우트 3개 추가 (POST/DELETE/GET)
- 모달에 드래그앤드롭 파일 업로드 영역 추가
- XHR 진행률 표시, 파일 목록 렌더링, 개별 삭제
- Google Cloud Storage 연동 (가용시 자동 업로드)
- files 테이블 document_type='schedule' 활용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:36:22 +09:00
김보곤
0281e4a8aa feat:대시보드 일정관리 달력 추가
- Schedule 모델 생성 (schedules 테이블, type별 색상 상수)
- DashboardCalendarController 생성 (CRUD + 달력 partial)
- 대시보드 뷰에 월간 달력 섹션 추가 (HTMX + Vanilla JS)
- 일정 생성/수정/삭제 모달 구현
- 공휴일 빨간색 표시, 일정 유형별 색상 뱃지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:11:36 +09:00
김보곤
34788e854c feat:일반전표입력 페이지 전면 개편 - 계좌입출금 기반 분개 시스템
- 3탭 구조로 전면 재작성 (은행거래분개, 수동전표, 전표목록)
- JournalEntryController에 bankTransactions, storeFromBank, bankJournals, deleteBankJournal API 추가
- JournalEntry 모델에 source_type, source_key fillable 및 헬퍼 메서드 추가
- 은행거래 목록에서 분개 모달로 복식부기 전표 생성
- 입금/출금에 따라 보통예금(103) 자동 세팅
- 분개 완료/미분개 상태 표시 및 필터링
- 기존 수동전표, 전표목록 기능 그대로 유지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 17:58:33 +09:00
김보곤
bc4322c1f5 feat:거래처 등록 사업자등록증 OCR 기능 추가
- TradingPartnerOcrService 신규 생성 (Gemini Vision API 사업자등록증 OCR)
- TradingPartnerController에 ocr() 메서드 추가
- partners 라우트 그룹에 OCR 엔드포인트 추가
- 거래처 등록 모달에 이미지 드래그앤드롭 업로드 UI 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:18:51 +09:00
김보곤
b2fbd3d113 feat:회의록 자동 화자 분리(Phase 2) 구현 및 세그먼트 저장 에러 수정
- GoogleCloudService에 speechToTextWithDiarization 메서드 추가
- Google STT V1 diarizationConfig 활성화로 자동 화자 구분
- MeetingMinuteService에 processDiarization 메서드 추가
- POST /{id}/diarize 엔드포인트 및 라우트 추가
- 프론트엔드에 '화자 분리' 버튼 추가 (RecordingControlBar)
- saveSegments 컨트롤러에 try-catch 에러 핸들링 추가
- 빈 텍스트 세그먼트 필터링 로직 추가 (서버/클라이언트 양쪽)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 10:29:16 +09:00
김보곤
418aa0c469 feat:Tiro AI 스타일 회의록 작성 기능 추가 (음성인식+화자분리+AI요약)
- MeetingMinute/MeetingMinuteSegment 모델
- MeetingMinuteService (CRUD, GCS 업로드, Gemini AI 요약)
- MeetingMinuteController (11개 엔드포인트)
- React SPA Blade 뷰 (대화기록/스크립트 탭, AI 요약 사이드패널)
- Web Speech API 실시간 STT + 수동 화자 전환 + MediaRecorder 녹음

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 09:50:23 +09:00
김보곤
d7a656a047 feat:음성입력 STT 사용량 AI 토큰 추적 연동
logSttUsage 엔드포인트 추가, 녹음 종료 시 duration 전송
AI 토큰 사용량에 '공사현장사진대지-음성입력' 카테고리로 기록

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:54:30 +09:00
2182f177f2 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 21:32:55 +09:00
김보곤
beff95b4e1 feat:공사현장 사진대지 기능 추가
모델, 서비스, 컨트롤러, React SPA 뷰, 라우트 추가
GCS 업로드/다운로드, 드래그앤드롭 사진 관리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:25:07 +09:00
8f20fa8163 feat:트리거 관리(4.4) + 파티션 관리(4.6) UI 구현
- TriggerManagementService: 테이블별 트리거 상태 조회/재생성/삭제
- PartitionManagementService: 파티션 현황 조회/추가/삭제 (보관기간 검증)
- triggers.blade.php: 트리거 상태 대시보드 + 개별/전체 재생성·삭제
- partitions.blade.php: 파티션 통계 + 추가/삭제 (초과분만)
- sub-nav: 감사 로그 목록/트리거 관리/파티션 관리 탭 내비게이션
- 라우트 6개 추가, 컨트롤러 6개 메서드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:53:32 +09:00
김보곤
2c138a1135 feat:홈택스 분개 저장 구조 변경 (journal_entries → hometax_invoice_journals)
- HometaxInvoiceJournal 모델 신규 생성
- HometaxInvoice에 journals() 관계 추가
- HometaxController: 저장 로직 변경 + 조회/삭제 엔드포인트 추가
- HometaxSyncService: hasJournal 필드 추가
- 프론트엔드: 분개완료 상태 표시, 기존 분개 로드/수정/삭제 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:03:07 +09:00
김보곤
71ba63c570 feat:주일기업 기획 메뉴 추가 (견적/입찰/공사관리, 프로젝트관리/기성청구)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:18:51 +09:00
f24a084152 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 10:46:09 +09:00
김보곤
4ed902e846 feat:AI 토큰 단가 설정 UI 및 DB 조회 연동
- AiPricingConfig 모델 추가 (캐시 적용 단가/환율 조회)
- AiTokenUsageController에 pricingList/pricingUpdate 메서드 추가
- AI 토큰 사용량 페이지에 설정 버튼 + 모달 UI 추가
- AiTokenHelper 하드코딩 단가를 DB 조회로 변경
- pricing 라우트 추가 (GET/PUT)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:33:56 +09:00
0316c63d3c feat:DB 트리거 감사 로그 관리 화면 구현
- TriggerAuditLog 모델 (casts, accessors, scopes)
- TriggerAuditController (목록/상세/이력/롤백 미리보기/롤백 실행)
- index: 대시보드 통계 + 필터 + 목록 + 파티션 현황
- show: old/new diff 뷰 (변경 컬럼 하이라이트)
- history: 레코드별 변경 타임라인
- rollback-preview: SQL 미리보기 + 확인 후 실행
- 라우트 5개 등록, 메뉴 시더 (시스템 관리 > DB 변경 추적)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 08:55:18 +09:00
김보곤
fa14a9fbec feat:AI 음성녹음 GCS 파일 다운로드 엔드포인트 추가
- GoogleCloudService에 downloadFromStorage 메서드 추가 (GCS REST API 사용)
- AiVoiceRecordingController에 download 메서드 추가 (스트림 응답)
- 다운로드 라우트 추가 (GET /{id}/download)
- 파일명은 제목 기반으로 생성, Content-Disposition 헤더 설정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:51:09 +09:00
김보곤
af344bcc60 feat:AI 음성녹음 실시간 음성인식 및 카테고리 선택기 추가
- Web Speech API로 녹음 중 실시간 텍스트 표시
- 인터뷰 카테고리/템플릿 선택 드롭다운 추가
- 녹음/파일업로드 시 interview_template_id 전달

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:15:46 +09:00