import { z } from 'zod';
import {
  createPurchaseInputSchema,
  gameTicketSchema,
  gameTicketStatusSchema,
  gameTurnCheckSchema,
  gameTurnQueueItemSchema,
  gameTurnSchema,
  gameTurnStatusSchema,
  gameTurnTaskSchema,
  gameTurnTaskStatusSchema,
  gameTurnTaskTypeSchema,
  purchaseSchema,
  ticketSummarySchema,
  ticketTypeSchema,
  ticketUserTypeSchema,
} from './Ticketing.schema';

export type TicketType = z.infer<typeof ticketTypeSchema>;
export type GameTicketStatus = z.infer<typeof gameTicketStatusSchema>;
export type TicketUserType = z.infer<typeof ticketUserTypeSchema>;
export type TicketSummary = z.infer<typeof ticketSummarySchema>;

export type Purchase = z.infer<typeof purchaseSchema>;
export type CreatePurchaseInput = z.infer<typeof createPurchaseInputSchema>;

export type GameTicket = z.infer<typeof gameTicketSchema>;

export type GameTurnStatus = z.infer<typeof gameTurnStatusSchema>;
export type GameTurnCheck = z.infer<typeof gameTurnCheckSchema>;
export type GameTurnTaskType = z.infer<typeof gameTurnTaskTypeSchema>;
export type GameTurnTaskStatus = z.infer<typeof gameTurnTaskStatusSchema>;
export type GameTurnTask = z.infer<typeof gameTurnTaskSchema>;
export type GameTurn = z.infer<typeof gameTurnSchema>;
export type GameTurnQueueItem = z.infer<typeof gameTurnQueueItemSchema>;
