개요
Core 서비스의 프로필 도메인은 숙박 고객의 정보를 체계적으로 관리합니다. 프로필 기본 정보, 신원 정보, 연락처, 외부 코드, 차량 정보 및 프로필 간 관계를 종합적으로 제공합니다.주요 기능
- 프로필 관리: 개인/단체 프로필 생성, 수정, 삭제, 병합
- 신원 정보: 여권, 국민등록번호 등 신원 문서 관리
- 연락처: 전화번호, 이메일 등 연락처 정보 관리
- 외부 코드: OTA 플랫폼 등 외부 시스템 연동 코드
- 차량 정보: 고객 차량번호 등록 및 관리
- 프로필 관계: 그룹 멤버십, 가족 관계 등 프로필 간 관계
Queries
profile
특정 프로필의 상세 정보를 조회합니다.GraphQL Signature
파라미터
조회할 프로필 ID (ULID 형식)
응답 필드
프로필 고유 식별자
숙박시설 ID
프로필 타입:
INDIVIDUAL: 개인GROUP: 단체
프로필 이름 (법적 이름)
표시용 이름 (선호 이름)
생년월일
성별:
MALE, FEMALE, OTHER프로필 상태:
ACTIVE: 활성INACTIVE: 비활성BLOCKED: 차단됨
신원 정보 목록 (여권, 신분증 등)
연락처 정보 목록
외부 시스템 코드 목록
차량 정보 목록
예제
profiles
프로필 목록을 필터링하여 페이지네이션 방식으로 조회합니다.GraphQL Signature
파라미터
프로필 필터 조건:
accommodationId: 숙박시설 IDtype: 프로필 타입 (INDIVIDUAL,GROUP)status: 프로필 상태source: 프로필 생성 출처name: 이름 검색 (부분 일치)startDate: 생성일 시작 범위endDate: 생성일 종료 범위groupProfileIds: 특정 그룹의 멤버만 조회
정렬 기준 배열
페이지네이션 옵션
예제
Mutations
createProfile
새로운 프로필을 생성합니다.GraphQL Signature
파라미터
프로필 생성 정보:
accommodationId: 숙박시설 ID (필수)type: 프로필 타입 (필수)name: 이름 (필수)displayName: 표시 이름birthDate: 생년월일gender: 성별metadata: 추가 메타데이터
예제
updateProfile
기존 프로필 정보를 수정합니다.GraphQL Signature
파라미터
수정할 프로필 ID
수정할 필드 (선택적으로 제공):
name: 이름displayName: 표시 이름birthDate: 생년월일gender: 성별status: 상태metadata: 메타데이터
예제
deleteProfile
프로필을 삭제합니다 (소프트 삭제).GraphQL Signature
파라미터
삭제할 프로필 ID
응답
삭제 성공 여부 (항상 true)
mergeProfiles
두 개의 프로필을 병합합니다. 보조 프로필의 모든 정보가 주 프로필로 통합됩니다.GraphQL Signature
파라미터
주 프로필 ID (병합 후 유지될 프로필)
보조 프로필 ID (병합 후 삭제될 프로필)
예제
ProfileIdentity 관리
createProfileIdentity
프로필에 신원 정보를 추가합니다.GraphQL Signature
파라미터
신원 정보:
profileId: 프로필 ID (필수)identityType: 신원 유형 (필수) -PASSPORT,NATIONAL_ID,DRIVER_LICENSE등identityNumber: 신원 번호 (필수)country: 국가 코드issueDate: 발급일expiryDate: 만료일status: 상태metadata: 추가 정보
예제
updateProfileIdentity
기존 신원 정보를 수정합니다.GraphQL Signature
deleteProfileIdentity
신원 정보를 삭제합니다.GraphQL Signature
ProfileContact 관리
createProfileContact
프로필에 연락처 정보를 추가합니다.GraphQL Signature
파라미터
연락처 정보:
profileId: 프로필 ID (필수)contactType: 연락처 유형 (필수) -PHONE,EMAIL,ADDRESS등contactValue: 연락처 값 (필수)isPrimary: 주 연락처 여부status: 상태metadata: 추가 정보
예제
updateProfileContact
기존 연락처 정보를 수정합니다.GraphQL Signature
deleteProfileContact
연락처 정보를 삭제합니다.GraphQL Signature
setPrimaryContact
특정 연락처를 주 연락처로 설정합니다.GraphQL Signature
ProfileCode 관리
createProfileCode
외부 플랫폼 코드를 프로필에 추가합니다.GraphQL Signature
파라미터
외부 코드 정보:
profileId: 프로필 ID (필수)platform: 플랫폼 이름 (필수)externalCode: 외부 시스템 코드 (필수)status: 상태metadata: 추가 정보
예제
updateProfileCode
외부 코드 정보를 수정합니다.GraphQL Signature
deleteProfileCode
외부 코드를 삭제합니다.GraphQL Signature
ProfileVehicle 관리
createProfileVehicle
프로필에 차량 정보를 추가합니다.GraphQL Signature
파라미터
차량 정보:
profileId: 프로필 ID (필수)vehicleNumber: 차량번호 (필수)vehicleType: 차량 유형status: 상태metadata: 추가 정보
예제
updateProfileVehicle
차량 정보를 수정합니다.GraphQL Signature
deleteProfileVehicle
차량 정보를 삭제합니다.GraphQL Signature
ProfileRelation 관리
createProfileRelation
두 프로필 간의 관계를 생성합니다.GraphQL Signature
파라미터
관계 정보:
fromProfileId: 출발 프로필 ID (필수)toProfileId: 도착 프로필 ID (필수)relationType: 관계 유형 (필수) -MEMBER_OF,FAMILY,SPOUSE등metadata: 추가 정보
예제
updateProfileRelation
프로필 관계 정보를 수정합니다.GraphQL Signature
deleteProfileRelation
프로필 간 관계를 삭제합니다.GraphQL Signature
프라이버시 보호
프로필 도메인의 민감한 정보는 GraphQL 스키마의@mask 디렉티브를 통해 자동으로 마스킹됩니다:
- 전화번호: 중간 4자리 마스킹 (010-****-5678)
- 이메일: 일부 문자 마스킹 (h***@example.com)
- 신원번호: 일부 숫자 마스킹