개요
Core 서비스의 마일리지 도메인은 고객의 마일리지 적립, 사용, 취소 및 마일리지 사용자 관리 기능을 제공합니다. SMS 인증을 통한 마일리지 조회와 결제 연동이 가능하며, 숙소별로 마일리지 설정을 관리할 수 있습니다.Queries
getAccommodationMileages
숙소의 마일리지 거래 내역을 조회합니다. (관리자 전용)GraphQL Signature
파라미터
ID!
required
조회할 숙소 ID (관리 권한 필요)
MileageFilterInput
필터 조건:
keyword: 전화번호 검색 (부분 일치)paymentType: 결제 유형 필터dateFrom: 시작 날짜dateTo: 종료 날짜
Int
페이지당 항목 수 (기본값: 20)
String
페이지네이션 커서
응답
Mileage[]
마일리지 거래 목록
id: 마일리지 거래 고유 IDphone: 고객 전화번호amount: 마일리지 금액paymentType: 결제 유형 (예: “cash”)isUsed: 사용 여부isCancelled: 취소 여부expireAt: 만료일createdAt: 생성일
PageInfo
페이지네이션 정보
hasNextPage: 다음 페이지 존재 여부endCursor: 다음 페이지 커서
예제
getAccommodationMileageUsers
숙소의 마일리지 사용자 목록을 조회합니다. (관리자 전용)GraphQL Signature
파라미터
ID!
required
조회할 숙소 ID (관리 권한 필요)
MileageUserFilterInput
필터 조건:
keyword: 이름 또는 전화번호 검색 (부분 일치)totalVisit: 최소 방문 횟수currentMileage: 최소 보유 마일리지
Int
페이지당 항목 수 (기본값: 20)
String
페이지네이션 커서
응답
MileageUser[]
마일리지 사용자 목록
id: 사용자 고유 IDphone: 전화번호name: 고객명currentMileage: 현재 보유 마일리지totalVisit: 총 방문 횟수memo: 메모createdAt: 생성일
예제
queryMileage
SMS 인증을 통한 고객 마일리지 조회 API입니다.GraphQL Signature
파라미터
String!
required
조회할 전화번호
String!
required
SMS 인증 토큰 (
confirmMileageSMSAuth에서 발급)ID!
required
숙소 ID
응답
String!
조회한 전화번호
Int!
총 적립된 마일리지 (만료되지 않은 마일리지)
Int!
사용된 마일리지
예제
에러 처리
인증 토큰이 유효하지 않습니다. 다시 SMS 인증을 진행하세요.
Mutations
setMileageSettings
숙소의 마일리지 설정을 변경합니다. (관리자 전용)GraphQL Signature
파라미터
ID!
required
설정을 변경할 숙소 ID (관리 권한 필요)
MileageSettingInput[]
설정 항목 배열:
key: 설정 키 (예: “expireAfter”)value: 설정 값
응답
MileageSetting[]
변경된 설정 목록
key: 설정 키value: 설정 값
예제
addMileage
고객에게 마일리지를 수동으로 적립합니다. (관리자 전용)GraphQL Signature
파라미터
AddMileageInput!
required
마일리지 적립 정보:
accommodationId(ID!): 숙소 IDphone(String!): 고객 전화번호amount(Int!): 적립 금액
응답
Mileage
생성된 마일리지 정보
id: 마일리지 거래 IDphone: 고객 전화번호amount: 적립 금액expireAt: 만료일 (설정된 유효기간 적용)createdAt: 생성일
예제
전화번호의 하이픈(-)은 자동으로 제거되며, 만료일은 숙소의 마일리지 설정(
expireAfter)에 따라 자동 계산됩니다.cancelMileage
적립된 마일리지를 취소합니다. (관리자 전용)GraphQL Signature
파라미터
ID!
required
취소할 마일리지 거래 ID
응답
Mileage
취소된 마일리지 정보
id: 마일리지 거래 IDisCancelled: 취소 여부 (true)
예제
에러 처리
해당 ID의 마일리지를 찾을 수 없습니다.
이미 사용된 마일리지는 취소할 수 없습니다.
이미 취소된 마일리지입니다.
updateMileageUser
마일리지 사용자 정보를 수정합니다. (관리자 전용)GraphQL Signature
파라미터
UpdateMileageUserInput!
required
수정할 사용자 정보:
id(ID!): 사용자 IDaccommodationId(ID!): 숙소 IDphone(String): 전화번호name(String): 고객명memo(String): 메모
응답
MileageUser
수정된 사용자 정보
예제
사용 흐름
마일리지 조회 흐름 (고객용)
- SMS 인증 요청:
requestMileageSMSAuth로 인증번호 발송 - 인증 확인:
confirmMileageSMSAuth로 인증 토큰 발급 - 마일리지 조회:
queryMileage로 보유 마일리지 확인
마일리지 관리 흐름 (관리자용)
- 설정 관리:
setMileageSettings로 유효기간 등 설정 - 수동 적립:
addMileage로 고객에게 마일리지 지급 - 내역 조회:
getAccommodationMileages로 거래 내역 확인 - 취소 처리:
cancelMileage로 잘못된 적립 취소