Added support to new semantics

This commit is contained in:
Alexander Cerutti
2024-10-07 01:27:29 +02:00
parent 9cd2683519
commit 40955e694b

View File

@@ -39,6 +39,24 @@ declare namespace SemanticTagType {
seatIdentifier?: string;
seatType?: string;
seatDescription?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
seatAisle?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
seatLevel?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
seatSectionColor?: string;
}
interface WifiNetwork {
@@ -70,6 +88,24 @@ const SeatSemantics = Joi.object<SemanticTagType.Seat>().keys({
seatIdentifier: Joi.string(),
seatType: Joi.string(),
seatDescription: Joi.string(),
/**
* Newly-introduced in iOS 18
* Used in poster event tickets
*/
seatAisle: Joi.string(),
/**
* Newly-introduced in iOS 18
* Used in poster event tickets
*/
seatLevel: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
seatSectionColor: Joi.string(),
});
const LocationSemantics = Joi.object<SemanticTagType.Location>().keys({
@@ -94,9 +130,29 @@ export interface Semantics {
*/
admissionLevel?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
admissionLevelAbbreviation?: string;
airlineCode?: string;
artistIDs?: string[];
/**
* For newly-introduced event tickets
* in iOS 18
*/
albumIDs?: string[];
/**
* For newly-introduced event tickets
* in iOS 18
*/
airplay?: {
airPlayDeviceGroupToken: string;
}[];
/**
* For newly-introduced event tickets
* in iOS 18
@@ -107,6 +163,12 @@ export interface Semantics {
awayTeamLocation?: string;
awayTeamName?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
additionalTicketAttributes?: string;
balance?: SemanticTagType.CurrencyAmount;
boardingGroup?: string;
boardingSequenceNumber?: string;
@@ -186,11 +248,23 @@ export interface Semantics {
performerNames?: string[];
priorityStatus?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
playlistIDs?: string[];
seats?: SemanticTagType.Seat[];
securityScreening?: string;
silenceRequested?: boolean;
sportName?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
tailgatingAllowed?: number;
totalPrice?: SemanticTagType.CurrencyAmount;
transitProvider?: string;
transitStatus?: string;
@@ -199,6 +273,7 @@ export interface Semantics {
vehicleName?: string;
vehicleNumber?: string;
vehicleType?: string;
venueEntrance?: string;
venueLocation?: SemanticTagType.Location;
@@ -216,6 +291,30 @@ export interface Semantics {
*/
venueParkingLotsOpenDate?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueBoxOfficeOpenDate?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueDoorsOpenDate?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueFanZoneOpenDate?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueCloseDate?: string;
venuePhoneNumber?: string;
venueRoom?: string;
@@ -231,6 +330,18 @@ export interface Semantics {
*/
venueEntranceGate?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueEntranceDoor?: string;
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueEntrancePortal?: string;
wifiAccess?: SemanticTagType.WifiNetwork[];
}
@@ -241,9 +352,29 @@ export const Semantics = Joi.object<Semantics>().keys({
*/
admissionLevel: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
admissionLevelAbbreviation: Joi.string(),
airlineCode: Joi.string(),
artistIDs: Joi.array().items(Joi.string()),
/**
* For newly-introduced event tickets
* in iOS 18
*/
albumIDs: Joi.array().items(Joi.string()),
/**
* For newly-introduced event tickets
* in iOS 18
*/
airplay: Joi.array().items({
airplayDeviceGroupToken: Joi.string(),
}),
/**
* For newly-introduced event tickets
* in iOS 18
@@ -254,6 +385,8 @@ export const Semantics = Joi.object<Semantics>().keys({
awayTeamLocation: Joi.string(),
awayTeamName: Joi.string(),
additionalTicketAttributes: Joi.string(),
balance: CurrencyAmount,
boardingGroup: Joi.string(),
boardingSequenceNumber: Joi.string(),
@@ -327,11 +460,15 @@ export const Semantics = Joi.object<Semantics>().keys({
performerNames: Joi.array().items(Joi.string()),
priorityStatus: Joi.string(),
playlistIDs: Joi.array().items(Joi.string()),
seats: Joi.array().items(SeatSemantics),
securityScreening: Joi.string(),
silenceRequested: Joi.boolean(),
sportName: Joi.string(),
tailgatingAllowed: Joi.number(),
totalPrice: CurrencyAmount,
transitProvider: Joi.string(),
transitStatus: Joi.string(),
@@ -358,8 +495,31 @@ export const Semantics = Joi.object<Semantics>().keys({
*/
venueParkingLotsOpenDate: Joi.string(),
venuePhoneNumber: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueBoxOfficeOpenDate: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueDoorsOpenDate: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueFanZoneOpenDate: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueCloseDate: Joi.string(),
venuePhoneNumber: Joi.string(),
venueRoom: Joi.string(),
/**
@@ -374,5 +534,17 @@ export const Semantics = Joi.object<Semantics>().keys({
*/
venueEntranceGate: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueEntranceDoor: Joi.string(),
/**
* For newly-introduced event tickets
* in iOS 18
*/
venueEntrancePortal: Joi.string(),
wifiAccess: Joi.array().items(WifiNetwork),
});