@chevre/domain
Version:
Chevre Domain Library for Node.js
52 lines (51 loc) • 1.88 kB
TypeScript
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[]>;