Tickets (ticket)
TicketProps
Representa um ingresso ou produto de um evento.
type TicketType = 'TICKET' | 'PRODUCT';
type TicketVisibility = 'PUBLIC' | 'PRIVATE' | 'DRAFT';
type TicketProps = {
id: string;
type: TicketType;
groupId?: string;
group?: Pick<GroupProps, 'id' | 'name'>;
chartCategory?: ChartCategoryProps;
name: string;
description?: string;
amount: number;
visibility: TicketVisibility;
privateToken?: string | null;
image: (FileProps & { id: string }) | null;
amount: number;
availableAmount: number;
price: number;
transferable: boolean;
nominable: boolean;
isInvite: boolean;
startsAt?: string;
endsAt?: string;
minBuy?: number | null;
maxBuy?: number | null;
beginsAt?: string;
predecessor?: Pick<TicketProps, 'id' | 'name' | 'group'>;
expireBehavior?: 'VISIBLE' | 'HIDDEN';
orderAt: number;
customFields?: TicketCustomField[];
};Campos principais:
id– Identificador único do ingresso/produto.type– Diferencia ingresso ('TICKET') de produto complementar ('PRODUCT').name– Nome exibido ao usuário (ex.: Pista inteira).amount/availableAmount– Quantidade total e quantidade ainda disponível.price– Preço unitário (em reais).transferable/nominable/isInvite– Regras de transferência, nomeação e se é convite.visibility– Visibilidade do ingresso ('PUBLIC','PRIVATE'ou'DRAFT').customFields?– Campos adicionais configurados para o ingresso (ver TicketCustomField).
GroupProps
Representa um grupo de ingressos (por exemplo, um lote ou agrupamento de tickets).
type GroupProps = {
id: string;
name: string;
description?: string;
scanStartsAt?: string | null;
scanEndsAt?: string | null;
tickets: TicketProps[];
gauge: Pick<GaugeProps, 'totalAmount' | 'usedAmount'> | null;
defaultOpen: boolean;
orderAt: number;
maxBuyAmount?: number;
};Campos principais:
id/name– Identificador e nome do grupo.tickets– Ingressos que pertencem a esse grupo (ver TicketProps).gauge– Informações de quantidade total/utilizada.defaultOpen– Define se o grupo inicia expandido na UI.
FindEventTicketsEventProps
Evento resumido retornado em sdk.events.getTickets (EventProps não tem maxBuyAmount).
type FindEventTicketsEventProps = Pick<
EventProps,
'id' | 'startsAt' | 'endsAt' | 'presaleStartsAt'
> & {
maxBuyAmount: number | null;
};Campos:
id– ID do evento.startsAt/endsAt– Datas de início e fim do evento.presaleStartsAt– Início da pré-venda (ounull).maxBuyAmount– Quantidade máxima de compra por pedido ounull.
FindEventTicketItemProps
Ingresso retornado pela listagem sdk.events.getTickets. Subconjunto de TicketProps (apenas os campos que a API devolve).
type FindEventTicketItemProps = Pick<
TicketProps,
| 'id'
| 'type'
| 'groupId'
| 'name'
| 'description'
| 'amount'
| 'availableAmount'
| 'endsAt'
| 'price'
| 'orderAt'
| 'expireBehavior'
| 'image'
| 'chartCategory'
| 'privateToken'
| 'minBuy'
| 'maxBuy'
>;Uso: tipagem de cada item do array tickets em FindEventTicketsProps.
FindEventTicketGroupProps
Grupo retornado em sdk.events.getTickets. Subconjunto de GroupProps: apenas id, name, description, defaultOpen, orderAt, maxBuyAmount (sem gauge, scanStartsAt, scanEndsAt). O array tickets é FindEventTicketItemProps[].
type FindEventTicketGroupProps = Pick<
GroupProps,
'id' | 'name' | 'description' | 'defaultOpen' | 'orderAt' | 'maxBuyAmount'
> & {
tickets: FindEventTicketItemProps[];
};Uso: tipagem de cada item do array groups em FindEventTicketsProps.
FindEventTicketsProps
Retorno de sdk.events.getTickets.
type FindEventTicketsProps = {
event: FindEventTicketsEventProps;
tickets: FindEventTicketItemProps[];
groups: FindEventTicketGroupProps[];
};Este tipo agrega:
event– ver FindEventTicketsEventProps.tickets– ver FindEventTicketItemProps[].groups– ver FindEventTicketGroupProps[].
FindEventProductEventProps
Evento resumido retornado em sdk.events.getProducts (EventProps não tem gauge, maxBuyAmount).
type FindEventProductEventProps = Pick<
EventProps,
'id' | 'endsAt' | 'presaleStartsAt'
> & {
gauge: GaugeProps | null;
maxBuyAmount: number | null;
};Campos:
id– ID do evento.endsAt– Data de término do evento.presaleStartsAt– Início da pré-venda (ounull).gauge– Indicador de quantidade ({ totalAmount, usedAmount }ounull).maxBuyAmount– Quantidade máxima de compra por pedido ounull.
FindEventProductItemProps
Produto retornado pela listagem sdk.events.getProducts. Subconjunto de TicketProps (apenas os campos que a API devolve).
type FindEventProductItemProps = Pick<
TicketProps,
| 'id'
| 'name'
| 'description'
| 'amount'
| 'availableAmount'
| 'endsAt'
| 'price'
| 'image'
| 'privateToken'
| 'minBuy'
| 'maxBuy'
>;Uso: tipagem de cada item do array products em FindEventProductsProps.
FindEventProductsProps
Retorno de sdk.events.getProducts.
type FindEventProductsProps = {
event: FindEventProductEventProps;
products: FindEventProductItemProps[];
};Este tipo agrega:
event– ver FindEventProductEventProps.products– ver FindEventProductItemProps[].
TicketVisibility
Define a visibilidade de um ingresso.
type TicketVisibility = 'PUBLIC' | 'PRIVATE' | 'DRAFT';'PUBLIC'– ingresso visível para qualquer pessoa.'PRIVATE'– ingresso acessível apenas via link ou token privado.'DRAFT'– ingresso em rascunho, não exibido publicamente.
TicketCustomField
Campos customizados que podem ser anexados a um ingresso.
type TicketCustomFieldType =
| 'TEXT'
| 'NUMBER'
| 'BOOLEAN'
| 'DATE'
| 'SELECT'
| 'MULTI_SELECT'
| 'FILE';
type TicketCustomField = {
id: string;
name: string;
defaultValue?: string;
isRequired: boolean;
options?: string[];
type: TicketCustomFieldType;
};Campos principais:
name– Nome do campo exibido ao usuário.type– Tipo do campo ('TEXT','NUMBER','BOOLEAN', etc.).isRequired– Indica se o preenchimento é obrigatório.options?– Opções disponíveis para campos de seleção.