UNPKG

bam-ticketing-sdk

Version:

SDK for B.A.M Ticketing API

135 lines (121 loc) 3.13 kB
import { OrderAttribute } from '../common/attributes' import { IdParam, PagingQuery } from '../common/types' import { Ticket } from '../event/types' export type TicketFormatType = 'PDF' | 'SECURE' | 'PKPASS' /** * Payload for order creation * * @param orderItem Array of `OrderItem`s * @param format Format of the tickets (PDF, SECURE or PKPASS) * @param holdToken Hold token for seat reservation generated on Seats.io (if seating chart is used) */ export interface OrderRequest { orderItem: OrderItemRequest[] format: TicketFormatType holdToken?: string orderContact?: OrderContactRequest } /** * Single order item inside the order * * @param quantity Number of tickets inside the order item * @param ticketConfigId Id of the ticket configuration * @param timeslotId Id of the timeslot where the ticket is reserved * @param sectorId Id of the sector where the ticket is reserved * @param ticketDiscount Array of ticket discount IDs applied to the order item * @param selectedSeats Array of seat labels generated on Seats.io (if seating chart is used) */ export interface OrderItemRequest { quantity: number ticketConfigId: number timeslotId?: number sectorId?: number ticketDiscount?: number[] selectedSeats?: string[] } export interface OrderContactRequest { firstName: string lastName: string email: string billingEmail: string phone?: string street1?: string street2?: string city?: string zip?: string state?: string country?: string vatNumber?: string businessName?: string } export interface OrderItem { id: number price: number ticket: Ticket[] } export interface Order { id: number ownerId: string ownerType: string paymentId?: string format: string status?: OrderStatus total?: number refundedAmount?: number paymentCreatedAt?: Date createdAt: Date currency?: string holdToken?: string orderItem?: OrderItem[] orderContact?: OrderContact } export interface OrderContact extends OrderContactRequest { id: number } export interface OrderGet extends IdParam { with?: OrderAttribute } export enum OrderStatus { /** * Initial order state */ Draft = 'draft', /** * The state of the payment after a payment is associated to it */ PaymentProcessing = 'payment_processing', /** * The state of the order after the payment wasn't made in the payment window * or if the payment has timed out * or if the payment has been manually canceled * This is an end state */ Canceled = 'payment_failed', /** * State after a successful payment confirmation */ Paid = 'paid', /** * State when some tickets were refunded, but not all * The only further state is `refunded` */ PartiallyRefunded = 'partially_refunded', /** * State of order after its payment is refunded * Should release the associated tickets * This is an end state */ Refunded = 'refunded', } export interface OrderListQuery extends PagingQuery { organizer_id?: string include_not_owned?: boolean id?: number contact_email?: string event_id?: number sort_by?: string with?: OrderAttribute } export interface RefundOrderBody { ticketIds?: number[] }