import { OfferType } from '../offerType'; import { IPriceSpecification as BaseSpecification } from '../priceSpecification'; import { PriceSpecificationType } from '../priceSpecificationType'; import { IAddOnProduct } from '../product'; import { IQuantitativeValue } from '../quantitativeValue'; import { UnitCode } from '../unitCode'; import { IAppliesToMovieTicket as IMovieTicketTypeChargeSpecAppliesToMovieTicket } from './movieTicketTypeChargeSpecification'; export type IAppliesToMovieTicket = Pick & { /** * 単価オファー設定としては存在しないが、予約あるいは注文の価格仕様としては必須 */ identifier?: string; }; export type IReferenceQuantity = Pick, 'typeOf' | 'value' | 'unitCode' | 'minValue'>; export type IAppliesToAddOnItemOffered = Pick; export interface IAppliesToAddOn { typeOf: OfferType.Offer; id?: string; identifier?: string; itemOffered: IAppliesToAddOnItemOffered; } /** * 単価仕様 */ export interface IPriceSpecification extends Pick, 'project' | 'id' | 'typeOf' | 'name' | 'price' | 'priceCurrency' | 'valueAddedTaxIncluded' | 'accounting' | 'eligibleQuantity' | 'eligibleTransactionVolume'> { /** * 発生金額 */ price: number; /** * 基準数量 */ referenceQuantity: IReferenceQuantity; /** * 適用決済カード */ appliesToMovieTicket?: IAppliesToMovieTicket[]; /** * 適用アドオン * アドオンを指定された場合に適用される */ appliesToAddOn?: IAppliesToAddOn[]; }