#  회원 (User)

### [관리자] 회원 통계 조회
- **URL**: `GET /users/stats`
- **Header**: `Authorization` 필수 (ADMIN)
- **Response**: `200 OK`

### [관리자] 회원 목록 조회
- **URL**: `GET /users`
- **Header**: `Authorization` 필수 (ADMIN)
- **Query Params**:
  - `page`: 페이지 번호 (기본 1)
  - `limit`: 페이지당 개수 (기본 10)
  - `role`: `CUSTOMER` | `SELLER` | `ADMIN` (선택)
  - `searchType`: `nickname` | `email` | `phone` (선택)
  - `search`: 검색어 (선택, searchType과 함께 사용)
- **Response**: `200 OK` (Paging)

### [관리자 / 본인] 회원 상세 조회
관리자는 모든 회원, 일반 회원은 본인만 조회 가능합니다.

- **URL**: `GET /users/:id`
- **Header**: `Authorization` 필수
- **Response**: `200 OK`
- **Error Codes**:
  - `401`: 인증 필요
  - `403`: 타인 조회 시도 (본인 또는 ADMIN만 가능)
  - `USER_NOT_FOUND`: 회원 없음

### [로그인 유저] 내 프로필 수정
- **URL**: `PATCH /users/me`
- **Header**: `Authorization` 필수
- **Body** (multipart/form-data 또는 application/json):
  - `nickname`: 닉네임 (선택)
  - `phone`: 연락처 (선택)
  - `introduction`: 자기소개 (선택, SELLER 등)
  - `password`: 새 비밀번호 (선택)
  - `profileImage`: 프로필 이미지 파일 (선택, multipart 시)
- **Response**: `200 OK`
- **Error Codes**:
  - `NO_UPDATE_DATA`: 수정할 항목 없음

### [관리자] 회원 메모 수정
회원 상세에 대한 관리자 전용 메모를 저장/수정합니다. 상세 조회 시 `note` 필드로 내려갑니다.

- **URL**: `PATCH /users/:id/note`
- **Header**: `Authorization` 필수 (ADMIN)
- **Body**:
  ```json
  { "note": "메모 내용" }

예약 (Reservation)

[고객] 예약 생성 (결제 포함)

슬롯을 선택하고 포인트를 차감하여 예약을 생성합니다. (쿠폰 적용 가능)

[고객] 내 예약 목록 조회

[고객] 예약 취소 (환불)


리뷰 (Review)

[고객] 리뷰 작성

수강 완료(COMPLETED)된 클래스에 대해 리뷰를 작성합니다.

[공통] 센터별 리뷰 조회


포인트 (Point)

[고객] 포인트 충전

PG사 결제 완료 후 호출하여 충전 처리합니다.

[고객] 내 포인트 잔액 조회


쿠폰 (Coupon)

Base path: /coupons. 모든 API는 Authorization 헤더 필수입니다.

[판매자/관리자] 쿠폰 템플릿 생성

[판매자/관리자] 내가 만든 쿠폰 목록 조회

[판매자/관리자] 쿠폰 지급

특정 유저에게 쿠폰을 발급합니다.

[본인/관리자] 특정 유저 쿠폰함 조회

본인은 자신의 쿠폰함, 관리자는 모든 유저 쿠폰함 조회 가능.

[판매자/관리자] 쿠폰 템플릿 수정

[판매자/관리자] 쿠폰 템플릿 삭제


인증 (Auth)

회원가입

로그인

토큰 갱신 (Silent Refresh)

Access Token 만료 시 호출합니다. (쿠키 기반)

로그아웃

[로그인 유저] 내 정보 조회