export interface IEvents {
events: IEventsInfo;
}
export interface IEventsInfo {
metadata: IMetadata;
events: IEventInfo[];
}
export interface IMetadata {
page: string;
perpage: number;
totalpages: number;
totalrecords: number;
}
export interface IEvent {
event: IEventInfo;
}
export interface IEventInfo {
id: string;
caption: string;
home_team: {
name: string;
id: number;
};
away_team: {
name: string;
id: number;
};
sport: {
name: string;
id: string;
};
tournament: {
name: string;
id: string;
};
date: IMatchDate;
location: ILocation;
tickets: ITicketOffer[];
}
export interface ITicketOffer {
ItemID: string;
section: ISection;
priceInfo: IPriceInfo;
ticketsConstraints: ITicketsConstraints;
immediate_confirmation: string;
required_purchase_fields:IRequiredPurchaseFields;
shipping_methods: IShippingMethod[];
}
interface IMatchDate {
date: string;
time: string;
final_date: string;
final_time: string;
dateTime_boundries: null | string; // Assuming it can be a string or null
}
interface ILocation {
country: {
name: string;
id: string;
};
city: {
name: string;
id: string;
};
venue: IVenue;
}
interface IVenue {
venue: string;
img: string;
address: string;
}
interface ISection {
full_section_name: string;
mainSection: string;
locationInSection: string;
packageDescription: string;
}
interface IPriceInfo {
price: number;
currency: string;
}
interface ITicketsConstraints {
max_qty: string;
available_selling_quantities: number[];
stock_limit: string;
stock_qty: string;
purchase_alert?: string;
}
interface IRequiredPurchaseFields {
full_name: string;
birth_date: string;
nationality_country_id: string;
passport_number: string;
city_of_birth: string;
}
interface IShippingMethod {
provshipid: string;
provship_name: string;
desc_orders: string;
provship_cost: {
Rateslistshippingareas: IRatesListShippingArea;
};
shipping_id: string;
shipping_caption: string;
shipping_description: string;
shipping_cost: number;
shipping_category: string;
}
interface IRatesListShippingArea {
areaid: string;
area: string;
cost: number;
}