개요
ARI Period는 시간 기반 규칙을 정의하여 요금제의 노출 기간이나 요금 조정 적용 기간을 관리합니다. 주기적 반복(REPEAT)과 고정 기간(FIXED) 두 가지 타입을 지원하여 유연한 기간 설정이 가능합니다. 주요 개념:- REPEAT 타입: 주기적으로 반복되는 패턴 (예: 매주 금-일, 매월 1일)
- FIXED 타입: 특정 시작일과 종료일이 있는 고정 기간 (예: 2024-07-01 ~ 2024-08-31)
- 복합 조건: 요일, 날짜, 월을 조합하여 복잡한 기간 규칙 정의
- 자동 설명: 시스템이 기간 규칙을 한글로 자동 생성
기간 타입
REPEAT (주기적 반복)
특정 패턴이 반복되는 기간을 정의합니다. 사용 필드:daysOfWeek: 요일 (0=일요일, 1=월요일, …, 6=토요일)daysOfMonth: 날짜 (1~31)monthsOfYear: 월 (1~12)startDate,endDate: 선택적 (전체 기간의 제약)
- 매주 금,토,일:
daysOfWeek: [5, 6, 0] - 매월 1일, 15일:
daysOfMonth: [1, 15] - 7~8월의 주말:
monthsOfYear: [7, 8], daysOfWeek: [6, 0]
FIXED (고정 기간)
시작일과 종료일이 명확한 기간을 정의합니다. 사용 필드:startDate: 시작일 (필수)endDate: 종료일 (필수)
- 여름 성수기:
startDate: "2024-07-01", endDate: "2024-08-31" - 크리스마스 시즌:
startDate: "2024-12-20", endDate: "2024-12-26"
Queries
getAccommodationAriPeriodList
특정 숙박 시설의 모든 기간 목록을 조회합니다.GraphQL Signature
파라미터
조회할 숙박 시설 ID
응답
기간 ID
숙박 시설 ID
기간 이름
기간 코드 (고유 식별자)
기간 타입:
REPEAT: 주기적 반복FIXED: 고정 기간
시작일 (FIXED 타입 필수, REPEAT 타입 선택)
종료일 (FIXED 타입 필수, REPEAT 타입 선택)
적용 요일 배열 (0=일요일, 1=월요일, …, 6=토요일)
적용 날짜 배열 (1~31)
적용 월 배열 (1~12)
시스템이 자동 생성한 기간 설명 (한글)
기간 범위 목록 (향후 확장용)
예제
Mutations
createAriPeriod
새로운 기간을 생성합니다.GraphQL Signature
파라미터
숙박 시설 ID
기간 생성 정보
기간 이름
기간 코드 (숙박 시설 내에서 고유해야 함)
기간 타입 (REPEAT/FIXED)
시작일 (FIXED 타입 필수)
종료일 (FIXED 타입 필수)
적용 요일 배열 (빈 배열 가능)
적용 날짜 배열 (빈 배열 가능)
적용 월 배열 (빈 배열 가능)
기간 범위 목록 (현재 미사용, 빈 배열 전달)
응답
생성된 AriPeriod 객체를 반환합니다.예제
검증 규칙
- 동일한
accommodationId와code조합이 이미 존재하면ARI_PERIOD.CODE_ALREADY_EXISTS에러 발생 - FIXED 타입은
startDate와endDate가 필수 description필드는 서버에서 자동으로 생성됨
updateAriPeriod
기존 기간을 수정합니다.GraphQL Signature
파라미터
수정할 기간 ID
수정할 필드 (모든 필드 선택적)
예제
검증 규칙
- 기간 코드 변경 시 중복 검증 실행
description필드는 수정 후 자동으로 재생성됨
deleteAriPeriod
기간을 삭제합니다.GraphQL Signature
파라미터
삭제할 기간 ID
응답
삭제 성공 여부
예제
제약 사항
기간 설명 자동 생성
시스템은 기간 규칙을 분석하여 한글 설명을 자동으로 생성합니다.REPEAT 타입 설명 패턴
| 조건 | 생성되는 설명 |
|---|---|
daysOfWeek: [5, 6, 0] | ”매주 금요일, 토요일, 일요일” |
daysOfMonth: [1, 15] | ”매월 1일, 15일” |
monthsOfYear: [7, 8] | ”7월, 8월” |
monthsOfYear: [6, 7, 8], daysOfWeek: [6, 0] | ”6월, 7월, 8월의 토요일, 일요일” |
위 조건 + startDate, endDate | 설명 뒤에 “(YYYY년 MM월 DD일 ~ YYYY년 MM월 DD일)” 추가 |
FIXED 타입 설명 패턴
예시
활용 사례
1. 요금제 노출 기간 설정
요금제의displayPeriod로 사용하여 특정 기간에만 고객에게 노출:
2. 요금 조정 적용 기간
특정 기간에만 요금 조정 규칙 적용:3. 복잡한 기간 규칙
여러 조건을 조합한 복잡한 기간 정의:사용 흐름
- 기간 정의:
createAriPeriod로 필요한 기간 규칙 생성 - 요금제 연결: 요금제 생성 시
displayPeriodId설정 - 조정 규칙 연결: 요금 생성 시
adjustments[].periodId설정 - 적용 확인: 패키지의
appliedRatePlans로 날짜별 적용 확인 - 관리: 필요 시 기간 수정 또는 삭제
모범 사례
- 명확한 이름: 기간의 목적이 명확히 드러나는 이름 사용
- 고유한 코드: 시스템 전체에서 일관성 있는 코드 체계 유지
- 단순성 우선: 가능한 한 단순한 규칙으로 기간 정의
- 타입 선택: 반복 패턴은 REPEAT, 일회성 기간은 FIXED 사용
- 중복 방지: 유사한 기간 규칙 생성 전 기존 기간 재사용 검토
관련 API
- 요금 관리 (ARI Rate) - 요금 조정에 기간 적용
- 패키지 (ARI Package) - 기간별 요금제 자동 적용
- 서비스 (ARI Inclusion) - 서비스 관리