Commit Graph

14 Commits

Author SHA1 Message Date
thug0bin
0aebdaea0c style: AI 추천 이미지 스타일 최종 조정
- flexbox 중앙 정렬
- 160px 너비, 높이 자동
- border/outline 명시적 제거
2026-03-03 00:48:24 +09:00
thug0bin
467c0e91aa fix: AI 추천 이미지 해상도 및 스타일 개선
- 썸네일(3KB) 대신 원본 이미지(33KB) 사용
- 테두리/배경 제거로 깔끔한 디자인
- text-align:center로 중앙 정렬
- 최대 크기 140px
2026-03-03 00:46:27 +09:00
thug0bin
0676c4f466 style: AI 추천 이미지 스타일 개선
- 중앙 정렬 (flexbox)
- 크기 100px → 120px
- 회색 배경 + 둥근 모서리 (16px)
- 패딩 추가로 여백 확보
2026-03-03 00:44:31 +09:00
thug0bin
8aa43221d2 feat: 마이페이지 AI 추천에 제품 이미지 표시
- /api/recommendation API에서 product_images DB 조회
- 제품명 매칭으로 썸네일 이미지 반환
- 이미지 있으면 실제 사진, 없으면 💊 이모지 표시
2026-03-03 00:02:04 +09:00
thug0bin
1cebb02ec6 feat: 반려동물 등록 기능 및 확장 마이페이지 추가
- pets 테이블 추가 (이름, 종류, 품종, 사진 등)
- 반려동물 CRUD API (/api/pets)
- 확장 마이페이지 (/mypage) - 카카오 로그인 기반
- 기존 마이페이지에 퀵 메뉴 추가 (반려동물/쿠폰/구매내역/내정보)
- 카카오 로그인 시 세션에 user_id 저장
- 동물약 APC 매핑 가이드 문서 추가
2026-03-02 13:56:22 +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
5042cffb9f feat: AI CRM 어드민 대시보드 + 바텀시트 드래그 닫기 + UTF-8 인코딩 + 문서화
- /admin/ai-crm: AI 업셀링 추천 생성 현황 대시보드 (통계 카드 + 로그 테이블 + 아코디언 상세)
- 마이페이지 바텀시트: 터치 드래그로 닫기 기능 추가 (80px 임계값)
- Windows 콘솔 UTF-8 인코딩 강제 (app.py, clawdbot_client.py)
- admin.html 헤더에 AI CRM 네비 링크 추가
- docs: ai-upselling-crm.md, windows-utf8-encoding.md 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 20:38:04 +09:00
thug0bin
b5a99f7b3b feat: AI 업셀링 CRM - Clawdbot Gateway 기반 맞춤 추천 시스템
키오스크 적립 시 Clawdbot Gateway(Claude Max)를 통해 구매 이력 기반
맞춤 제품 추천을 생성하고, 마이페이지 방문 시 바텀시트 팝업으로 표시.

- ai_recommendations SQLite 테이블 추가 (스키마 + 마이그레이션)
- clawdbot_client.py: Gateway WebSocket 프로토콜 v3 Python 클라이언트
- app.py: 추천 생성 + GET/POST API 엔드포인트
- my_page.html: 바텀시트 UI (슬라이드업 애니메이션, 1.5초 후 자동 표시)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:57:03 +09:00
thug0bin
ed2a3f28bf feat: PWA 세션 유지 자동적립 + 메타 태그 + 설치 유도 배너
- 세션 설정: 90일 유지, SameSite=Lax (QR 스캔 시 쿠키 전송)
- 적립 성공 시 세션에 유저 정보 저장 (3곳)
- /claim 자동적립: 세션에 유저가 있으면 입력 없이 바로 적립
- /logout 라우트 추가, 마이페이지 헤더에 로그아웃 버튼
- /sw.js, /privacy 라우트 추가
- 고객용 템플릿 6개에 PWA 메타 태그 + 서비스 워커 등록
- 적립 성공 화면에 PWA 설치 유도 배너 (iOS/Android 분기)
- session 변수명 충돌 수정 (db_session으로 변경)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:52:19 +09:00
thug0bin
eb44701410 feat: 카카오 로그인 마이페이지 조회 + scope/env 수정 + 트러블슈팅 문서
- 마이페이지에 카카오 로그인 조회 기능 추가 (/my-page/kakao/start)
- 콜백 핸들러에 purpose=mypage 분기 추가 (동일 콜백 URL 재사용)
- my_page_login.html에 "카카오로 조회하기" 버튼 추가
- my_page.html 헤더에 카카오 조회 버튼 추가
- OAuth scope에서 name, phone_number 제거 (비즈앱 심사 미완료)
- KOE101/KOE205/KOE320 등 에러별 트러블슈팅 문서 작성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 02:48:04 +09:00
thug0bin
31cf6e3816 feat: 카카오 로그인으로 마일리지 적립 기능 추가
- 카카오 OAuth 2.0 클라이언트 모듈 추가 (services/kakao_client.py)
- 적립 페이지에 "카카오로 적립하기" 버튼 추가
- OAuth 콜백 처리: 전화번호 자동 적립 / 미제공 시 폰 입력 폴백
- state 파라미터로 claim 컨텍스트 보존 + CSRF 보호
- customer_identities 테이블 활용한 카카오 계정 연결
- 마이페이지 헤더 sticky 고정
- 카카오 OAuth 설정 가이드 문서 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 02:27:05 +09:00
thug0bin
82220a4a44 feat: GUI 칼럼 설정 저장, 010 전화번호 UX 개선, 품목 상세 조회
- GUI: SALES_COLUMNS 상수 정의, 칼럼 폭/윈도우 위치 gui_settings.json에 저장
- 전화번호 입력: 적립페이지/마이페이지에서 010 고정 + 뒷번호만 입력
- 적립페이지: MSSQL SALE_SUB에서 구매 품목 조회 및 토글 표시
- 마이페이지: 적립 내역 탭 시 품목 상세 AJAX 조회 (캐시 적용)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 01:17:45 +09:00
59a33cc249 feat: 포인트 사용 기능 및 시간 표시 개선
- UTC to KST 시간 변환 로직 추가 (SQLite 저장 시간 표시용)
- 관리자 페이지에 포인트 사용(차감) 기능 추가
  - 사용자 상세 모달에 "포인트 사용" 버튼 추가
  - 포인트 입력 및 차감 처리
  - 마일리지 원장에 USE 타입으로 기록
- 구매 이력 시간을 MSSQL의 실제 거래 시간(InsertTime)으로 수정
- 선택적 시간 변환 적용
  - 변환: users.created_at, mileage_ledger.created_at, claim_tokens.created_at
  - 미변환: claim_tokens.claimed_at, MSSQL 거래 시간
- 관리자 페이지에 검색 기능 추가 (사이드바)
  - 사용자 검색 (이름, 전화번호, 뒷자리)
  - 제품 검색 (약품명으로 구매자 조회)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 21:54:12 +09:00
3889e2354f feat: Flask 웹 서버 및 마일리지 적립 기능 구현
- 간편 적립: 전화번호 + 이름만으로 QR 적립
- 자동 회원 가입: 신규 사용자 자동 등록
- 마이페이지: 포인트 조회 및 적립 내역 확인
- 관리자 페이지: 전체 사용자/적립 현황 대시보드
- 거래 세부 조회 API: MSSQL 연동으로 판매 상품 상세 확인
- 모던 UI: Noto Sans KR 폰트, 반응형 디자인
- 포트: 7001 (리버스 프록시: https://mile.0bin.in)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 16:36:14 +09:00