import * as factory from '../../../factory'; export interface IStartParams { /** * 購入者 */ agent?: { identifier?: factory.person.IIdentifier; }; /** * 取引期限 */ expires: Date; object?: { /** * カスタマー指定 */ customer?: { /** * factory.personType.Personを指定すれば会員注文として * factory.organizationType.Organizationを指定すれば顧客注文として * 処理されます */ typeOf: factory.personType.Person | factory.organizationType.Organization; /** * 会員ID or 顧客ID */ id?: string; }; /** * WAITER許可証 */ passport?: { token: factory.waiter.passport.IEncodedPassport; }; }; /** * 販売者 */ seller: { typeOf: factory.organizationType.Corporation; id: string; }; } declare type IAuthorizeCOAEventServiceAction = factory.action.authorize.offer.seatReservation.IAction; declare type IAuthorizeCOAEventServiceActionObject = factory.action.authorize.offer.seatReservation.IObject; declare type IAuthorizeCOAEventServiceActionResult = factory.action.authorize.offer.seatReservation.IResult; declare type IAuthorizeCOAEventServiceActionResponseBody = factory.action.authorize.offer.seatReservation.IResponseBody; declare type IOptimizedAuthorizeCOAEventServiceActionResult = Pick & { responseBody: Pick; }; export declare type IAuthorizeCOAEventServiceResult = Pick & { object: Pick; result: IOptimizedAuthorizeCOAEventServiceActionResult; }; declare type IAuthorizeEventServiceAction = factory.action.authorize.offer.seatReservation.IAction; export declare type IAuthorizeEventServiceResult = Pick & { result: { price: number; }; }; export interface IMinimalAuthorizeEventServiceResult { /** * アクションID */ id: string; } export declare type IAuthorizeProductOfferResult = Pick & { result: Pick; }; export interface IOptionalConfirmResult { eventId?: string; reservationIds?: string[]; } export declare type IOrderAsConfirmResult = Pick & { customer: { telephone: string; }; }; export declare type IConfirmResult = { order: IOrderAsConfirmResult; } & IOptionalConfirmResult; export {};