체크인 성공 시 /api/spots/{id}/ai-mates 를 호출해 사이좋게 지낼 만한
강아지를 궁합점수·이유와 함께 표시. 로딩 스피너·빈 상태 처리 포함.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 대시보드(/admin/dashboard, 기본 랜딩): 요약 카드(총회원·금일 신규/탈퇴·DAU/WAU/MAU),
접속자 추이(일/주/월 토글), 티어별 회원수, 시군구 지역 분포 — 모두 체크인 기반
- 회원 상세(/admin/members/:id): 프로필 + 강아지/체크인/매칭/구독 이력, 목록에서 상세 버튼
- adminStats API 모듈, 좌측 메뉴에 대시보드 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ChatDialog: 히스토리 로드 + 실시간 송수신, 내 메시지 우측 정렬, 연결상태 표시
- lib/chatSocket: STOMP 클라이언트(브로커 ws, Bearer 인증, 자동 재연결)
- api/chat 히스토리, HomePage 스팟 채팅 버튼
- @stomp/stompjs 의존성 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- dogs 스토어: 내 강아지 로드/등록/수정/삭제, 대표견(currentDog)
- ProfilePage: 강아지 등록/선택/삭제, 성향 태그 편집·저장, 회원 티어 표시
- HomePage 체크인/매칭 주체를 대표견으로 전환(미등록 시 안내)
- http 클라이언트 put/del 추가, 임시 session 스토어 제거
- 로그아웃 시 강아지 상태 리셋, Dialog 플러그인 등록
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 로그인 화면: 구글(GIS) 버튼 + 애플 버튼 + 개발용 로그인(local)
- 인증 스토어(Pinia): 토큰 복구/로그인/로그아웃, 회원 티어를 광고·매칭 제어에 반영
- HTTP 클라이언트: Authorization Bearer 자동 첨부, 401 시 토큰 폐기 후 로그인 이동
- 라우터 가드: 미로그인 시 보호 경로 → /login (소셜 로그인 전용 앱)
- 헤더 회원 메뉴/로그아웃, 체크인 주체를 로그인 회원으로 전환
- 토큰 localStorage 저장(웹/Capacitor 공용)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- VITE_API_BASE_URL 기반 fetch 클라이언트 및 ApiError 처리
- api/spots, api/matches 타입드 모듈
- HomePage: 스팟/한줄평/메이트 실제 로드, 체크인·매칭 신청 API 연동
- 임시 세션 스토어(인증 도입 전, userId/dogId)
- 로딩/에러/빈 상태 처리
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>