UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

52 lines (51 loc) 1.88 kB
import type { EventRepo } from '../repo/event'; import type { SeatRepo } from '../repo/place/seat'; import type { StockHolderRepo } from '../repo/stockHolder'; import * as factory from '../factory'; import * as EventOfferService from './offer/event'; import * as EventServiceByCOAOfferService from './offer/eventServiceByCOA'; import * as MoneyTransferOfferService from './offer/moneyTransfer'; import * as ProductOfferService from './offer/product'; type ICategoryCodeChargeSpecification = factory.priceSpecification.IPriceSpecification<factory.priceSpecificationType.CategoryCodeChargeSpecification>; export { EventOfferService as event, EventServiceByCOAOfferService as eventServiceByCOA, MoneyTransferOfferService as moneyTransfer, ProductOfferService as product }; /** * 座席にオファー情報を付加する */ export declare function addOffers2Seat(params: { seat: factory.place.seat.IPlace; availability: factory.itemAvailability; /** * 座席区分加算料金 */ priceSpecs: ICategoryCodeChargeSpecification[]; }): factory.place.seat.IPlaceWithOffer; type ISeatAsEventOffer = Pick<factory.place.seat.IPlaceWithOffer, 'branchCode' | 'name' | 'seatingType'> & { containedInPlace?: { branchCode?: string; }; offers?: Pick<factory.place.seat.IOffer, 'availability'>[]; }; /** * イベントに対する座席オファーを検索する */ export declare function searchEventSeatOffersWithPaging(params: { limit: number; page: number; branchCode?: { $eq?: string; }; containedInPlace?: { branchCode?: { $eq?: string; }; }; event: { id: string; }; $projection?: factory.place.seat.IProjection; options: {}; }): (repos: { event: EventRepo; stockHolder: StockHolderRepo; seat: SeatRepo; }) => Promise<ISeatAsEventOffer[]>;