import { CreativeWorkType } from './creativeWorkType'; import { OrganizationType } from './organizationType'; import { PersonType } from './personType'; import { ISeatingType } from './place/seat'; import { PlaceType } from './placeType'; import { IPriceSpecification as IGenericPriceSpecification } from './priceSpecification'; import { PriceSpecificationType } from './priceSpecificationType'; import { IProgramMembership } from './programMembership'; import { IProject } from './project'; import { IPropertyValue } from './propertyValue'; import { ReservationStatusType } from './reservationStatusType'; import { ReservationType } from './reservationType'; import { PaymentServiceType } from './service/paymentService'; export type TicketType = 'Ticket'; export type IPriceSpecification = IGenericPriceSpecification; export type IUnderNameType = CreativeWorkType.WebApplication | PersonType.Person | OrganizationType.Organization | OrganizationType.Corporation | OrganizationType.Project; /** * under name interface */ export interface IUnderName { typeOf: IUnderNameType; id?: string; name: string; familyName?: string; givenName?: string; email?: string; telephone?: string; /** * システム利用識別子のみ継承 */ identifier?: IPropertyValue[]; additionalName?: never; address?: never; age?: never; description?: never; gender?: never; url?: never; } /** * seat interface */ export interface ISeat { typeOf: PlaceType.Seat; /** * The cabin/class of the seat. */ seatingType?: ISeatingType; /** * The location of the reserved seat (e.g., 27B). */ seatNumber: string; /** * The row location of the reserved seat (e.g., B). */ seatRow: string; /** * 座席セクション */ seatSection: string; } export type IReservationFor = any; /** * 予約チケット情報 */ export interface ITicketIssuedBy { typeOf: IUnderNameType; name: string; } export interface ITicket { typeOf: TicketType; /** * The date the ticket was issued. */ dateIssued?: Date; /** * The date the ticket was used. */ dateUsed?: Date; /** * チケット識別子 */ identifier?: string; /** * The organization issuing the ticket or permit. */ issuedBy?: ITicketIssuedBy; /** * The seat associated with the ticket. * 座席指定でない場合、この値は存在しない */ ticketedSeat?: ISeat; /** * The unique identifier for the ticket. */ ticketNumber?: string; /** * If the barcode image is hosted on your site, the value of the field is URL of the image, or a barcode or QR URI, * such as "barcode128:AB34" (ISO-15417 barcodes), "qrCode:AB34" (QR codes), * "aztecCode:AB34" (Aztec codes), "barcodeEAN:1234" (EAN codes) and "barcodeUPCA:1234" (UPCA codes). */ ticketToken?: string; } export interface IBroker { typeOf: PersonType.Person; id: string; name?: string; } export type IProgramMembershipIssuedThroughFaceToFace = Pick & { identifier: string; issuedThrough: { serviceType: { codeValue: string; }; typeOf: PaymentServiceType.FaceToFace; }; }; export type IProgramMembershipIssuedThroughCreditCard = Pick & { identifier: string; issuedThrough: { id: string; serviceType: { codeValue: string; }; typeOf: PaymentServiceType.CreditCard; }; }; export type IProgramMembershipUsed = IProgramMembershipIssuedThroughFaceToFace | IProgramMembershipIssuedThroughCreditCard; export type IAvailableReservationStatusType = ReservationStatusType.ReservationCancelled | ReservationStatusType.ReservationConfirmed | ReservationStatusType.ReservationPending; export interface IProvider { /** * 販売者ID */ id: string; typeOf: OrganizationType.Corporation; } /** * 予約 * Describes a reservation for travel, dining or an event. Some reservations require tickets. * Note: This type is for information about actual reservations, * e.g. in confirmation emails or HTML pages with individual confirmations of reservations. * For offers of tickets, restaurant reservations, flights, or rental cars, use Offer. * {@link https://schema.org/Reservation} */ export interface IReservation { project: Pick; /** * type of object */ typeOf: ReservationType; /** * 予約ID */ id?: string; /** * Any additional text to appear on a ticket, such as additional privileges or identifiers. */ additionalTicketText?: string; /** * Date the reservation was made. */ bookingTime?: Date; /** * An entity that arranges for an exchange between a buyer and a seller. * In most cases a broker never acquires or releases ownership of a product or service involved in an exchange. */ broker?: IBroker; /** * Time the reservation was last modified. */ modifiedTime?: Date; /** * Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation. */ programMembershipUsed?: IProgramMembershipUsed; /** * The service provider, service operator, or service performer; the goods producer. * Another party (a seller) may offer those services or goods on behalf of the provider. * A provider may also serve as the seller. */ provider: IProvider; /** * The thing -- restaurant, movie, event, flight, etc. -- the reservation is for. */ reservationFor?: IReservationFor; /** * The number or id of the reservation. */ reservationNumber?: string; /** * Current status of the reservation. */ reservationStatus?: IAvailableReservationStatusType; /** * A ticket associated with the reservation. */ reservedTicket?: ITicket; /** * The individual reservations included in the package. Typically a repeated property. */ subReservation?: any[]; /** * The person or organization the reservation is for. */ underName?: IUnderName; /** * チェックイン(発券)済かどうか */ checkedIn?: boolean; /** * 出席(入場)済かどうか */ attended?: boolean; additionalProperty?: IPropertyValue[]; }