김보곤
52b26c7216
refactor: [ai-config] 모든 API 키를 DB(ai_configs)에서 .env로 전환
...
- AiConfig::getActiveGemini() → config('services.gemini') 기반
- AiConfig::getActiveGcs() → config('services.google') 기반
- AiConfig::getActiveClaude() → config('services.claude') 기반
- AiConfig::getActiveNotion() → config('services.notion') 기반
- GoogleCloudStorageService: DB 우선 로직 제거, .env만 사용
- 8개 서비스 파일은 수정 없이 동작 (AiConfig 인터페이스 유지)
2026-02-23 09:55:07 +09:00
김보곤
1b73fd1cf2
refactor: [notion] API 키를 DB(ai_configs)에서 .env로 전환
...
- NotionService: AiConfig::getActiveNotion() → config('services.notion')
- config/services.php에 notion 섹션 추가
- .env에 NOTION_API_KEY, NOTION_VERSION 추가
2026-02-23 09:48:40 +09:00
김보곤
0d8d5aa8ef
feat: [academy] 서버지식 백과사전 페이지 추가
...
- AcademyController에 serverKnowledge() 메서드 추가
- /academy/server-knowledge 라우트 등록
- 그린 테마 Blade 뷰 (5대 섹션, 18소 섹션)
- SVG 이미지 12장 생성
- 이미지 생성 프롬프트 문서 작성
2026-02-23 09:43:43 +09:00
김보곤
92a11e139c
feat: [academy] IT기획 백과사전 추가
...
- 5개 섹션: 개요, 기획 프로세스, 산출물, 도구, 방법론
- 방화셔터와 동일한 백과사전 UI 패턴 (블루 테마)
- AI 이미지 생성 프롬프트 문서 포함
2026-02-23 09:05:17 +09:00
김보곤
c9495b160d
feat: [additional] DOCX 관리 페이지 추가
...
- 파일시스템 스캔 기반 DOCX 목록 조회/다운로드
- 카테고리별 필터, 파일명 검색 기능
- 경로 트래버설 방지 보안 검증
2026-02-23 08:37:38 +09:00
김보곤
afce5a2f70
feat: [additional] PPTX 관리에 영업(sales) 폴더 스캔 경로 추가
2026-02-23 08:08:31 +09:00
김보곤
1bb2ac32f9
feat: [additional] PPTX 관리 페이지 추가
...
- 파일시스템 스캔 기반 PPTX 목록 조회/다운로드
- 카테고리별 필터, 파일명 검색 기능
- 경로 트래버설 방지 보안 검증
2026-02-23 07:57:39 +09:00
김보곤
576b1d9f6b
feat: [additional] RAG 검색에 토큰 비용 안내 및 사용량 표시 추가
...
- 검색 전 비용 안내 문구 (건당 약 3~10원, AI 토큰 사용량 기록 안내)
- 검색 결과에 토큰 사용량 바 표시 (입력/출력/합계/비용)
- AiTokenHelper + AiPricingConfig 연동으로 정확한 비용 계산
2026-02-22 23:33:15 +09:00
김보곤
5810b15940
feat: [additional] Notion 검색 토큰 사용량 기록 및 비용 안내
...
- 검색어 정제/AI 답변 시 AiTokenHelper로 토큰 사용량 저장
- 상단 안내에 Gemini API 2회 호출 및 토큰 기록 안내 추가
2026-02-22 23:26:33 +09:00
김보곤
4132458126
fix: [additional] RAG 검색 docs 경로를 Docker 컨테이너 경로로 수정
2026-02-22 23:20:21 +09:00
김보곤
3103d8cb87
fix: [additional] Notion 검색 에러 메시지 구체화
...
- Gemini API 오류 시 실제 에러 메시지 표시
- 검색어 정제 실패 시 에러 원인 전달
2026-02-22 23:18:08 +09:00
김보곤
0001915cfb
feat: [ai-config] Notion API 설정 UI 추가
...
- AI 설정 페이지에 Notion 섹션 추가 (추가/수정/삭제)
- AiConfig에 API_SERVICE_PROVIDERS 상수 분리
- Notion 전용 모달 (API 키, API 버전, 활성화)
2026-02-22 23:12:49 +09:00
김보곤
9dbb23f09c
feat: [additional] RAG 검색 기능 추가
...
- RagSearchService: docs 폴더 키워드 검색 + Gemini API 컨텍스트 기반 답변
- RagSearchController: 검색 페이지 및 HTMX 비동기 검색 API
- 검색 UI: 통계 바, 예시 질문, Markdown 렌더링, 참조 문서 표시
- AiTokenHelper 연동으로 토큰 사용량 자동 추적
2026-02-22 23:05:55 +09:00
김보곤
aa3c9f4c3b
feat: [additional] Notion 검색 기능 추가
...
- NotionService: Notion API 검색 + Gemini AI 답변
- AiConfig에 notion provider 추가
- 추가기능 > Notion 검색 채팅 UI
2026-02-22 23:04:16 +09:00
김보곤
a570fa9246
feat: [additional] 추가기능 > 키오스크 메뉴 및 페이지 골격 추가
...
- KioskController (index/showroom/factory) 생성
- 키오스크 메인 선택 페이지 (쇼룸/공장 카드 UI)
- 쇼룸 키오스크 골격 (제품 카탈로그, 견적 시뮬레이션, 시공 갤러리, 회사 소개)
- 공장 키오스크 골격 (생산 현황, 작업 지시, 생산 통계, 공지사항)
- /additional/kiosk 라우트 그룹 추가
2026-02-22 22:29:09 +09:00
김보곤
27b20e451f
feat: [academy] 방화셔터 백과사전 페이지 구축
...
- AcademyController 신규 생성 (HX-Redirect 처리)
- /academy/fire-shutter 라우트 등록
- 방화셔터 백과사전 Blade 뷰 (개요/구성품/제조공정/설치/유지보수)
2026-02-22 19:42:23 +09:00
김보곤
f9665dd558
fix: [dashboard] 주간 날씨 목요일 데이터 누락 수정
...
- 기상청 중기예보 18시 발표는 D+5부터만 제공, 06시는 D+4부터 제공
- 여러 발표시각 데이터를 병합하여 빈 필드 보충 (최신 우선)
- 단기예보 TMN/TMX 없는 날은 중기예보 icon/pop 우선 사용
2026-02-22 19:14:24 +09:00
김보곤
14c9b787e9
fix: [dashboard] 주간 날씨 중기예보 데이터 누락 수정
...
- 18시 발표 중기예보 미발행 시 06시/전일 발표로 fallback
- 불완전한 날씨 데이터 캐시 TTL 10분으로 단축 (기존 3시간)
2026-02-22 19:14:24 +09:00
김보곤
1e7edab101
fix: [barobill] 홈택스 매입/매출 월정액을 무료(본사 부담)로 변경
...
- DEFAULT_MONTHLY_FEES hometax: 10000 → 0
- 월정액 0원일 때 "무료 (본사 제공)" 표시
2026-02-22 19:14:24 +09:00
a4531e8d90
fix:품목관리 FG 수식 산출 401 오류 수정
...
- FormulaApiService의 Bearer token 조회를 session('api_explorer_token')에서
ApiTokenService 기반으로 변경
- resolveApiToken() 메서드 추가: 세션 토큰 확인 → 만료시 HMAC 토큰 교환
- DocumentTemplateApiController와 동일한 인증 패턴 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 04:19:48 +09:00
김보곤
f4879de9ba
feat: [video] 3-pass 크롭 검증 추가
...
- 2-pass 보정 후 각 step의 좌표 영역을 원본에서 크롭하여 Gemini 검증
- 크롭에 패딩 확장 (30% 또는 최소 80px) + 최소 크롭 200x150px 보장
- 빨간 사각형으로 타겟 영역 표시하여 false positive 방지
- 재추정 실패 시 그리드 오버레이 이미지로 3차 재시도
- _verification 메타데이터에 crop_verified, crop_corrected 추가
- PASS율: 37.5% → 100% (FAIL 5 → 0)
2026-02-21 18:30:57 +09:00
김보곤
7991f3e6d4
feat: [video] 좌표 검증 및 영상 메타데이터를 analysis_data에 저장
...
- 각 step별 검증 결과 저장 (accurate/corrected + 원본 좌표)
- 스크린 단위 검증 통계 저장 (정확/보정 수, 검증 시각)
- 영상 완료 시 _output 메타데이터 저장 (경로, GCS, 비용, 슬라이드수, 총 재생시간)
2026-02-21 16:37:08 +09:00
김보곤
cf6525c8f3
feat: [video] 좌표 검증 루프(Coordinate Verification Loop) 추가
...
- Gemini 2-pass 자기 검증 메커니즘 구현
- runCoordinateVerification: 검증 오케스트레이터
- createVerificationImage: 색상별 스포트라이트 렌더링
- verifyCoordinates: Gemini에게 좌표 정확도 확인 요청
- applyVerifiedCoordinates: 보정 좌표 적용
2026-02-21 16:02:10 +09:00
김보곤
b0685a8886
fix: [video] MNG Job 큐 분리 (API 워커 충돌 방지)
...
- TutorialVideoJob, VideoGenerationJob에 onQueue('mng') 지정
- API 워커가 MNG Job을 가져가 __PHP_Incomplete_Class 에러 발생 방지
2026-02-21 15:42:53 +09:00
김보곤
1c9879b989
refactor: [video] 튜토리얼 영상 좌표 정교화 개선
...
- Phase 1: 그리드 오버레이를 비율 보존 레터박스 배치로 변경 (annotateSlideWithSpotlight과 동일)
- Phase 2: 그리드 밀도 10x10 → 20x12 향상, 주요 그리드선/좌표 라벨 추가
- Phase 3: 좌표 정규화 경계 클램핑 개선, 편향 패딩 구현, 디버깅 로그 추가
2026-02-21 15:30:37 +09:00
김보곤
6decf0a862
feat: [barobill] 설정 페이지에 바로빌 연동 섹션 추가
...
- 바로빌 로그인 정보 조건부 표시 (등록/미등록)
- 바로빌 로그인 정보 등록/수정 모달 추가
- 계좌 연동, 카드 연동, 공인인증서 등록 섹션 추가
- 미등록 시 연동 카드 비활성 처리
2026-02-21 14:19:29 +09:00
김보곤
df25fac5a8
fix: [barobill] 회원사 조회 시 암호화 복호화 실패 방어 처리
...
- show() 메서드의 has_password 체크에서 encrypted cast 복호화 실패 시 getRawOriginal()로 폴백
2026-02-21 14:03:06 +09:00
김보곤
b4d737948f
fix: [barobill] 회원사 수정 시 바로빌 아이디 변경 가능하도록 개선
...
- 수정 모달에서 바로빌 아이디 필드 표시 (기존: hidden)
- 컨트롤러 update 메서드에 barobill_id 유효성 검증 추가
- 아이디/비밀번호 모두 '변경 시에만 입력' 힌트 표시
2026-02-21 13:54:08 +09:00
김보곤
c5f4c53a50
feat: [dashboard] 날씨 위젯에 강수확률 표시 추가
...
- 단기예보 POP (하루 최대값) + 중기예보 rnSt 병합
- 우산 아이콘 + 퍼센트 표시 (50% 이상 진한 파랑 강조)
- 강수확률 0%일 때는 표시하지 않음
2026-02-21 13:40:28 +09:00
김보곤
9a9922739d
fix: [dashboard] 날씨 위젯 단기+중기 데이터 병합 로직 개선
...
- 단기예보 기온 없는 날 중기예보 기온으로 보충
- 데이터 없는 날 '준비 중' 표시
2026-02-21 13:38:02 +09:00
김보곤
48e8289c3d
fix: [dashboard] 날씨 위젯 API 호출 수정 및 UI/UX 개선
...
- serviceKey 이중 인코딩 방지 (withOptions 사용)
- 오늘부터 7일간 표시 (데이터 없는 날은 '준비 중')
- 기온 바 그래프 추가 (파랑→빨강 그라데이션)
- 날씨 텍스트 표시, 강수일 강조
2026-02-21 13:30:42 +09:00
김보곤
e6f1d6ba46
feat: [dashboard] 주간 날씨 위젯 추가
...
- 기상청 공공데이터포털 API 연동 (단기+중기 7일 예보)
- WeatherService: 3시간 캐시, SKY/PTY 아이콘 매핑
- HTMX 비동기 로딩 + 스켈레톤 UI
- 오늘 카드 파란색 강조, 요일/날짜/아이콘/기온 표시
2026-02-21 13:10:54 +09:00
김보곤
13eab75da3
feat: [barobill] 회원사관리 페이지에서 미등록 테넌트 자동 생성
...
- 본사(tenant_id=1) 접근 시 barobill_members 레코드가 없는 테넌트에 기본 레코드 자동 생성
- 신규 생성 레코드는 status=pending, server_mode=test 기본값
- 테넌트의 사업자번호, 회사명, 대표자명을 자동 매핑
2026-02-21 11:21:24 +09:00
김보곤
1cf48f7c53
refactor: [barobill] chandj 레거시 DB 커넥션 및 동기화 기능 제거
...
- config/database.php에서 chandj 커넥션 정의 제거
- BarobillConfigController에서 syncCompanies(), getCompanies() 메서드 제거
- api.php에서 barobill/companies 동기화 라우트 제거
- 로컬/서버 .env에서 CHANDJ_DB_* 환경변수 제거
2026-02-21 10:47:51 +09:00
김보곤
06de27c570
feat: [barobill] 테넌트별 서버 모드 표시 통일 및 설정 페이지 제어 위젯 추가
...
- 공통 Blade 컴포넌트(barobill-tenant-header) 생성하여 중복 헤더 HTML 제거
- 설정 페이지에 서버 모드 확인/변경 위젯 추가 (본사만 변경 가능)
- 모든 바로빌 페이지(etax, hometax, eaccount, ecard, settings)에 서버 모드 배지 통일
- BarobillController의 settings(), bankAccount(), cardUsage()에 $isTestMode 전달 추가
2026-02-21 10:28:32 +09:00
김보곤
f85791611c
fix: [etax] 공급받는자 검색 시 거래처 전체 정보 자동 입력
...
- API 응답에 대표자, 주소, 업태, 종목 필드 추가
- 거래처 선택 시 모든 필드 자동 매핑 (대표자, 주소, 업태, 종목)
- 검색 결과 목록에 대표자, 주소 정보 표시
2026-02-21 09:19:40 +09:00
김보곤
8dec2f7ec2
fix:법인카드 매월결제일 현재일자 기준 동적 계산 (결제일 지나면 익월로 자동 변경)
2026-02-20 19:56:06 +09:00
김보곤
9351e215e4
feat:통합정산 정산상세 승인취소 기능 추가
2026-02-20 19:26:42 +09:00
김보곤
40b2dd481f
fix:계좌입출금내역 적요/내용에 상대계좌예금주명 중복 표시 수정
...
- parseTransactionLogs에서 TransRemark2를 summary에 합산하지 않도록 변경
- TransRemark2는 상대계좌예금주명(cast) 컬럼에서만 별도 표시
- 저장 후 재로드 시 remark2가 반복 합산되는 문제 해결
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 19:22:11 +09:00
df3feeade9
feat:품목관리 수식 산출 입력폼에 제품모델/설치타입/마감타입 추가
...
- 제품모델(KSS01~KDSS01), 설치타입(벽면형/측면형/혼합형), 마감타입(SUS/EGI) select 추가
- FG 코드 파싱으로 입력폼 자동 세팅 (FG-KQTS01-벽면형-SUS → 각 필드 매핑)
- calculateFormula() API 호출 시 새 파라미터 전송
- ItemManagementApiController에서 product_model/installation_type/finishing_type 수신 처리
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 15:41:14 +09:00
김보곤
0ac621bd49
fix:수당 정산 레코드 생성 시 파트너 타입별 요율 반영
...
- updateCommissionDate, updateReferrerCommission의 firstOrCreate에서
partner_rate를 0 고정 → 파트너 타입(개인 20% / 단체 30%)에 따라 설정
- referrer_rate도 파트너 타입에 따라 설정 (개인 5% / 단체 3%)
- SalesCommissionService 상수 재사용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 15:15:35 +09:00
김보곤
f2f10d2f15
feat:고객 상세 모달에 계약 상세정보 보기 기능 추가
...
- 계약 및 납입 정보 옆에 '정보보기' 토글 버튼 추가
- 계약 상품 내역 (카테고리, 상품명, 개발비, 구독료, 할인율) 테이블 표시
- 수당 정산 내역 (계약금/잔금별 입금액, 수당, 지급예정일 등) 카드 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 14:55:52 +09:00
김보곤
44f443966a
fix:수당지급현황통계 필터 UI 개선 - 기간설정 체크박스, 파트너/매니저 드롭박스 제거, 높이 수정
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 14:18:07 +09:00
김보곤
fb47badb18
feat:정산관리 기간설정 체크박스 필터 추가 (시작~끝 년월 범위 조회)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 14:11:21 +09:00
김보곤
a945c63a83
Revert "feat:정산관리 기간설정 체크박스 필터 추가 (시작~끝 년월 범위 조회)"
...
This reverts commit 11c685bda7 .
2026-02-20 14:08:01 +09:00
김보곤
1b36bdeb79
Revert "fix:정산관리 필터를 기간 범위 고정 방식으로 변경 (체크박스 제거, 컴팩트 1줄 레이아웃)"
...
This reverts commit 4d6081beb6 .
2026-02-20 14:08:01 +09:00
김보곤
4d6081beb6
fix:정산관리 필터를 기간 범위 고정 방식으로 변경 (체크박스 제거, 컴팩트 1줄 레이아웃)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 14:04:21 +09:00
김보곤
11c685bda7
feat:정산관리 기간설정 체크박스 필터 추가 (시작~끝 년월 범위 조회)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 13:57:16 +09:00
김보곤
5a35e3fdfc
fix:납입일 변경 시 통합정산 입금일(payment_date)도 함께 동기화
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 13:30:59 +09:00
김보곤
ef007a582a
fix:납입일 변경 시 지급예정일(scheduled_payment_date)도 함께 재계산되도록 수정
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 13:24:37 +09:00