thug0bin
c022ee21d0
feat: RAG에 성분/용도 정보 추가
2026-02-28 11:33:38 +09:00
thug0bin
d612563580
fix: (판) 접두어 제품 매칭 수정
2026-02-28 11:27:17 +09:00
thug0bin
dfbc6e4761
feat: 동물약 APC 일괄 매핑 (7개 완료)
2026-02-28 11:24:16 +09:00
thug0bin
8ee148abe4
refactor: 안텔민 하드코딩 제거, PostgreSQL RAG만 사용
2026-02-28 11:15:10 +09:00
thug0bin
3c9739a92e
fix: RAG 정보 우선 참조하도록 프롬프트 개선
2026-02-28 11:04:23 +09:00
thug0bin
73b8c8ec88
fix: 안텔민 개/고양이 공용 정보 수정 (ANIMAL_DRUG_KNOWLEDGE)
2026-02-28 11:02:56 +09:00
thug0bin
4254a0f7a2
fix: 챗봇 제품 매칭 개선 (안텔민→안텔민킹/뽀삐 매칭, APC 우선)
2026-02-28 11:01:01 +09:00
thug0bin
e12328ec17
feat: 동물약 챗봇 RAG 연동 (PostgreSQL llm_pharm)
2026-02-28 10:46:43 +09:00
thug0bin
009d133aef
chore: 테스트 스크립트 gitignore 추가 및 추적 제거
2026-02-28 10:46:31 +09:00
thug0bin
9019347d48
chore: DB 분석 스크립트 추가 (APC/바코드 조사용)
2026-02-28 10:45:00 +09:00
thug0bin
b95e14419e
feat: 동물약 APC 이미지 지원 (CD_ITEM_UNIT_MEMBER 연동)
2026-02-28 10:44:55 +09:00
thug0bin
68ad59285a
fix: 동물약 뱃지 위치 제품명 뒤로 변경
2026-02-27 17:59:11 +09:00
thug0bin
d106db64f3
feat: 동물약만 보기 체크박스 필터 추가
...
- 검색창 옆에 '🐾 동물약만 보기' 체크박스
- animal_only 파라미터로 API 필터링
- POS_BOON='010103' 기준 필터
2026-02-27 17:58:08 +09:00
thug0bin
197ded3806
feat: 제품 검색 페이지에 동물약 뱃지 표시
...
- /api/products API에 is_animal_drug 필드 추가
- POS_BOON='010103' 기준으로 동물약 판별
- 🐾 동물약 뱃지 표시 (초록색)
2026-02-27 17:56:34 +09:00
thug0bin
431909e50b
fix: 생일 표시 형식 수정 (MM-DD 지원)
2026-02-27 17:32:39 +09:00
thug0bin
8c127cfb95
feat: 사용자 상세 모달에 생일 표시
...
- /admin/user/<id> API에 birthday 필드 추가
- 카카오 인증 시 저장된 생일 정보 표시
- 🎂 MM월 DD일 형식으로 표시
2026-02-27 17:17:40 +09:00
thug0bin
8c366cc4db
feat: 대시보드 모달에 관심상품 탭 추가
...
- /admin/user/<id> API에 interests 필드 추가
- ai_recommendations 테이블에서 status='interested' 조회
- 모달에 💝 관심 탭 추가
- 트리거 상품, 추천 이유 표시
2026-02-27 17:10:35 +09:00
thug0bin
3fc9bbaf8e
feat: 대시보드 모달에 조제 이력 탭 추가
...
- /admin/user/<id> API에 prescriptions 필드 추가
- 전화번호 → CD_PERSON(CUSCODE) → PS_main 연동
- 모달에 💊 조제 탭 추가 (admin_members.html 스타일 적용)
- 병원명, 의사명, 투약일수, 처방품목 표시
2026-02-27 17:07:41 +09:00
thug0bin
c33d857fa6
fix: 조제 이력 조회 쿼리 개선 (기존 로직 참고)
...
- PM_BASE 세션과 PM_PRES 세션 분리
- 1단계: CD_PERSON에서 전화번호로 CUSCODE 조회 (PHONE/TEL_NO/PHONE2)
- 2단계: PS_main에서 CUSCODE로 조제 기록 확인
2026-02-27 16:44:37 +09:00
thug0bin
d0e7d6bbd2
feat: 대시보드에 조제 이력 뱃지 추가
...
- PM_BASE.CD_PERSON에서 전화번호로 CUSCODE 매칭
- PS_main에서 조제 기록 유무 확인
- 조제 기록 있으면 녹색 '💊 환자' 뱃지
- 조제 기록 없으면 회색 '일반' 뱃지
2026-02-27 16:42:14 +09:00
thug0bin
04b0f3a8ca
feat: 카카오 인증일(kakao_verified_at) 필드 추가
...
- DB에 kakao_verified_at 컬럼 추가
- link_kakao_identity()에서 최초 연동 시 인증일 기록
- 대시보드 테이블에 실제 인증일 표시
- 기존 카카오 연동 사용자 마이그레이션 완료
2026-02-27 16:31:31 +09:00
thug0bin
159386942e
feat: 대시보드에 인증일 컬럼 추가
...
- 테이블 헤더에 '인증' 컬럼 추가
- 카카오 인증자: 노란 뱃지 + 인증일 (updated_at)
- 미인증: 회색 '미인증' 뱃지
2026-02-27 16:26:35 +09:00
thug0bin
3467cacd2f
feat: 대시보드 최근 가입자 테이블에 카카오 뱃지 추가
2026-02-27 16:25:29 +09:00
thug0bin
a3a0bc8868
feat: 카카오 인증 여부 뱃지 추가
...
- API에 is_kakao_verified 필드 추가 (nickname != '고객')
- 사용자 상세 모달에 카카오 노란 뱃지 표시
- 검색 결과 목록에도 뱃지 표시
- 미인증 회원은 회색 '미인증' 뱃지
2026-02-27 16:23:26 +09:00
thug0bin
94a8df6653
fix: product_category_mapping 테이블 없을 때 에러 무시
...
- 카테고리 조회 시 테이블 없으면 건너뛰도록 try-except 추가
2026-02-27 16:16:00 +09:00
thug0bin
4691d65c14
fix: /admin/user/<id> SQLite 연결 에러 해결
...
- new_connection=True + finally close 적용
2026-02-27 16:11:44 +09:00
thug0bin
866d10fd92
fix: lottie CDN을 로컬 파일로 변경 (Tracking Prevention 차단 해결)
2026-02-27 16:10:28 +09:00
thug0bin
1414bb1432
fix: /admin 사이드바 검색 SQLite 연결 에러 해결
...
- /admin/search/user: new_connection=True + finally close
- /admin/search/product: new_connection=True + finally close
- 에러 로깅 강화 (traceback 포함)
2026-02-27 16:09:07 +09:00
thug0bin
87a56d0f6c
debug: 에러 로깅 강화 (traceback 포함)
2026-02-27 16:02:22 +09:00
thug0bin
76da7d9cd1
fix: SQLite 멀티스레드 I/O 에러 해결
...
- 요청마다 새 SQLite 연결 생성 (new_connection=True)
- 사용 후 명시적 close
- 간헐적 'I/O operation on closed file' 에러 방지
2026-02-27 15:43:52 +09:00
thug0bin
870e40a6db
fix: SQLite 연결 체크 강화
...
- 커서 생성/실행/close로 연결 상태 확인
- 연결 닫힐 때 명시적 close 호출
- I/O operation on closed file 에러 방지
2026-02-27 15:41:28 +09:00
thug0bin
d44aed16be
fix: 회원 상세 조회 시 모든 전화번호 컬럼 시도
...
- phone, phone1, tel_no, phone2 순서로 시도
- 전화번호 없는 회원 에러 방지 강화
2026-02-27 15:40:06 +09:00
thug0bin
a1640f55f8
fix: 전화번호 없는 회원 상세 조회 시 에러 처리
...
- 전화번호가 없으면 API 호출 전 안내 메시지 표시
- I/O 에러 방지
2026-02-27 15:36:55 +09:00
thug0bin
753df2c13c
feat: 회원 상세 - 관심 상품 탭 추가
...
- AI 업셀링에서 '관심있어요' 표시한 상품 조회
- status='interested'인 ai_recommendations 조회
- 상품명, 추천 메시지, 구매 상품(트리거) 표시
- 💝 관심 탭 UI 구현
2026-02-27 15:31:08 +09:00
thug0bin
79369d9a56
fix: 조제이력 투약정보 표시 개선
...
- 투약량 x 횟수 x 일수 형식으로 표시
- 예: 1정 × 3회 × 7일
2026-02-27 15:24:45 +09:00
thug0bin
02e56b9413
feat: 회원 상세 - 전체 구매이력 + 조제이력 탭 추가
...
- 전화번호 → CD_PERSON(CUSCODE) 매핑
- 구매 탭: SALE_MAIN/SALE_SUB (전체 POS 구매)
- 조제 탭: PS_main/PS_sub_pharm (처방전 조제)
- 병원명, 의사명, 투약일수, 처방 약품 표시
- POS 미등록 회원 안내 메시지 추가
2026-02-27 15:19:13 +09:00
thug0bin
8c3bcb525d
fix: 회원 상세 - transaction_id로 POS 품목 조회 연동
...
- 마일리지 적립 시 저장된 transaction_id로 SALE_SUB 조회
- 적립 내역에 구매 품목 표시 (품명, 수량, 가격)
- 구매 이력 탭: QR 적립된 구매만 품목과 함께 표시
- 기존 전화번호→고객코드 매핑 로직 제거 (불필요)
2026-02-27 15:11:23 +09:00
thug0bin
7843ca8fcf
feat: 회원 상세 모달 구현 (마일리지 + POS 이력)
...
- /api/members/history/<phone>: 통합 이력 조회 API
- 마일리지 적립/사용 내역 (SQLite)
- POS 구매 이력 (MSSQL - 전화번호→고객코드 매핑)
- 세련된 UI: 탭 전환, 거래 카드, 구매 카드
- 상세에서 바로 메시지 발송 가능
2026-02-27 15:08:09 +09:00
thug0bin
c4ab865c93
feat: 서버 시작/중지 스크립트 추가
...
- scripts/start_server.ps1: 기존 프로세스 종료 후 시작
- scripts/stop_server.ps1: 서버 중지
- scripts/*.bat: 더블클릭 실행용
2026-02-27 14:55:46 +09:00
thug0bin
6e23dc8b20
fix: 서버 시작 시 포트 충돌 자동 해결
...
- 포트 7001 사용 중이면 기존 프로세스 자동 종료
- Flask reloader 자식 프로세스 구분 처리
- check_port_available(), kill_process_on_port() 함수 추가
2026-02-27 14:55:07 +09:00
thug0bin
705696a7fb
feat: 회원 검색 페이지 및 API 추가
...
- /admin/members: 회원 검색 페이지 (팜IT3000 CD_PERSON)
- /api/members/search: 이름/전화번호 검색 API (TEL_NO, PHONE, PHONE2)
- /api/members/<cuscode>: 회원 상세 + 메모 조회 API
- /api/message/send: 알림톡/SMS 발송 API (테스트 모드)
- 대시보드 헤더에 회원검색 탭 추가
- 다중 선택 + 일괄 발송 UI
2026-02-27 14:10:44 +09:00
thug0bin
9bd2174501
feat: 제품 검색 페이지 및 QR 라벨 인쇄 기능
...
- /admin/products: 전체 제품 검색 페이지 (OTC)
- /api/products: 제품 검색 API (세트상품 바코드 포함)
- qr_printer.py: Brother QL-710W 프린터 연동
- /api/qr-print, /api/qr-preview: QR 라벨 인쇄/미리보기 API
- 판매상세 페이지에 QR 인쇄 버튼 추가
- 수량 선택 UI (+/- 버튼, 최대 10장)
- 세트상품 제조사 표시 개선
- 대시보드 헤더에 제품검색/판매조회 탭 추가
2026-02-27 13:56:26 +09:00
thug0bin
1b78704ca6
fix: 세트상품 바코드 조회 - CD_ITEM_UNIT_MEMBER 테이블 연동
...
- CD_GOODS.BARCODE 없으면 CD_ITEM_UNIT_MEMBER.CD_CD_BARCODE 사용
- 알리미팜 세트상품/자체등록 바코드 지원
- 바코드 매핑률 89.8% → 99.8% 개선
2026-02-27 12:35:34 +09:00
thug0bin
2a090c9704
feat: Clawdbot Gateway 모니터링 페이지 + API 클라이언트
...
- /admin/ai-gw: 토큰 사용량/비용 실시간 모니터링 대시보드
- clawdbot_client.py: Gateway HTTP API 클라이언트 (세션 상태, 사용량 조회)
- 세션별 토큰/비용 통계, 모델별 breakdown
- API 문서 추가 (docs/clawdbot-gateway-api.md)
2026-02-27 12:22:05 +09:00
thug0bin
ccb0067a1c
feat: POS 스타일 판매내역 페이지 + 바코드/표준코드 조회
...
- /admin/sales: 다크 테마 POS 스타일 판매내역 (날짜별 그룹, 아코디언)
- /admin/sales-detail: 기존 라이트 테마 상세 조회 페이지
- 상품코드/바코드/표준코드 전환 버튼
- 바코드 시각화 + 매핑률 통계
- 대시보드 메뉴에 판매내역 링크 추가
2026-02-27 12:14:50 +09:00
thug0bin
da51f4bfd1
fix: 키오스크 세로 모니터 QR 코드 중앙 정렬
...
- portrait 모드 claim-left: row → column 레이아웃으로 변경
- QR 컨테이너, 결제 카드, 품목 카드 모두 중앙 정렬
- QR 이미지 크기 140px → 160px 조정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 01:37:24 +09:00
thug0bin
db5f6063ec
fix: SQLite 싱글톤 연결 I/O 에러 수정 + clawdbot 모델 오버라이드
...
- dbsetup: get_sqlite_connection()에 SELECT 1 헬스체크 추가 (죽은 연결 자동 재생성)
- pos_sales_gui: 싱글톤 SQLite conn.close() 제거 (I/O closed file 에러 원인)
- qr_token_generator: DatabaseManager() 새 생성 → 전역 db_manager 싱글톤 사용
- clawdbot_client: model 파라미터 추가, 업셀링에 claude-sonnet-4-5 지정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 01:27:47 +09:00
thug0bin
4c3e1d08b2
feat: 실데이터 기반 AI 업셀링 추천 — 약국 보유 제품 목록에서 추천
...
- generate_upsell_real(): MSSQL 최근 30일 판매 TOP 40 제품 목록을 AI에 제공
- AI가 실제 약국 보유 제품 중에서만 선택하여 추천
- 실데이터 실패 시 기존 자유 생성(generate_upsell) fallback
- 기존 generate_upsell은 그대로 보존
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 21:21:48 +09:00
thug0bin
a2829436d1
feat: 바텀시트 '관심있어요' 버튼 분리 — interested 상태 DB 저장 + 어드민 표시
...
- "관심있어요!" 클릭 → status='interested' (기존: dismissed와 동일했음)
- "다음에요" / 드래그 닫기 → status='dismissed'
- dismiss API에 action 파라미터 추가
- AI CRM 대시보드: interested 배지(주황) + 통계 카드 반영
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 20:47:20 +09:00
thug0bin
3e3934e2e5
fix: AI 업셀링 생성을 별도 스레드로 분리 — 키오스크 적립 응답 블로킹 방지
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 20:41:40 +09:00