Events SDK
이벤트의 canonical 날짜와 유료 입장권 projection 참조.
Events SDK
완결된 작업은 Events 가이드에서 시작하세요. 이 참조는 공개 SDK 경계를 설명합니다. import와 peer는 SDK 기본을 확인하세요.
이벤트 범위와 종일 날짜
client.events.getRange()는 종일 이벤트와 회차마다 allDayStartDate와
제외 종료일 allDayEndDateExclusive를 반환합니다. isAllDay가 true이면 이
날짜 쌍을 표시 기준으로 사용하세요. instant 쌍은 서버가 만든 로컬 자정
호환/index shadow이므로 viewer timezone으로 변환해 표시 날짜를 복원하면 안
됩니다. 시간 지정 row는 startsAt/endsAt가 기준이며 두 날짜 필드는
null입니다.
이벤트 입장권
특정 이벤트 회차의 public 유료 입장권 선택지는
client.events.getAdmissionAvailability({ occurrence })로 렌더링합니다.
import { createClient } from '@01.software/sdk'
type Client = ReturnType<typeof createClient>
export async function readAdmissionChoices(client: Client, occurrence: string) {
const admission = await client.events.getAdmissionAvailability({ occurrence })
if (admission.admissionTypes.length === 0) {
return { kind: 'empty' as const, admission }
}
return { kind: 'choices' as const, admission }
}응답에는 이벤트/회차 identity, 입장 유형 identity, 기존 cart flow에 사용할
productId / variantId, public 가격 표시, 남은 수량 hint가 포함됩니다. Raw
전체 이벤트 입장 유형을 포함한 모든 입장 유형 row의 occurrenceId는 요청한
회차 id입니다. priceReference, 상품 재고, hold, checkout/order record,
payment session, provider event id, order money 내부 필드는 노출하지 않습니다.
Checkout은 여전히 ecommerce helper를 사용합니다. 반환된 product/variant를
admissions: [{ eventId, occurrenceId, admissionTypeId }]와 함께 cart에 추가한
뒤, canonical Cart → Checkout → PaymentSession 흐름을 사용하세요. 이 helper는
event-commerce events.products projection과 별개입니다.
단일 admission 요청/응답 별칭은 SDK 0.45.0에서 제거되었으므로, 모든 Cart
line 입력과 응답에는 admissions를 사용해야 합니다.
범위와 무료 등록 메서드
getRange는 registration policy metadata를 포함한 shaped event/occurrence를 반환합니다. register는 무료 등록을 제출하고 guest 조회·취소에는 반환된 guest credential을 사용합니다. 취소는 그 credential을 무효화하므로 같은 token의 guest readback으로 redirect하지 마세요. Events 작업이 availability·intake·관리 전체와 앱 소유 hosted 로그인 gate를 설명합니다. 서버가 강제하는 signupRequired는 아직 없으며 유료 입장권은 별도 cart/checkout projection을 사용합니다.
내 행사 등록 내역
고객 로그인 후 client.events.listMyRegistrations({ page: 1, limit: 10 })를 호출하세요.
고객 JWT와 같은 워크스페이스의 publishable key, 활성 events 기능이 필요합니다.
서버 키나 운영자 세션은 고객을 대신할 수 없습니다. page 기본값은 1,
limit 기본값은 10이고 최대 100입니다. 결과에는 docs, totalDocs, limit,
page, totalPages, hasNextPage, hasPrevPage가 있습니다.
각 등록에는 참조, 공개 제목·일시, 등록·출석 상태, 수량과 생성 시각이 있습니다.
누락되거나 비공개인 제목·일시는 null로 표시하고 참조·상태는 유지합니다.
PII 보존 만료·정리 후에도 동일한 DTO를 반환합니다. Guest credential,
참가자·답변, 감사 필드와 위치는 포함하지 않습니다. 모든 응답은 no-store이며
같은 이메일의 guest 등록을 자동 연결하지 않습니다.
createServerClient().events에는 이 고객 전용 메서드가 없습니다. 서버 BFF는
요청마다 고객 JWT를 넣어
createClient({ publishableKey, customer: { persist: false, token } })로
클라이언트를 생성하고 client.events.listMyRegistrations()를 호출하세요.