@chevre/domain
Version:
Chevre Domain Library for Node.js
30 lines (29 loc) • 1.27 kB
TypeScript
import type { AggregateReservationRepo } from '../../../repo/aggregateReservation';
import { EventRepo } from '../../../repo/event';
import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
import type { OfferCatalogRepo } from '../../../repo/offerCatalog';
import { ScreeningRoomRepo } from '../../../repo/place/screeningRoom';
import type { ProductRepo } from '../../../repo/product';
import { OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
import type { ReservationRepo } from '../../../repo/reservation';
import type { StockHolderRepo } from '../../../repo/stockHolder';
import * as factory from '../../../factory';
type IAggregateOffersOperation<T> = (repos: {
aggregateReservation: AggregateReservationRepo;
event: EventRepo;
stockHolder: StockHolderRepo;
offer: OfferRepo;
offerCatalog: OfferCatalogRepo;
offerRateLimit: OfferRateLimitRepo;
screeningRoom: ScreeningRoomRepo;
product: ProductRepo;
reservation: ReservationRepo;
}) => Promise<T>;
/**
* イベントに対するオファー集計
*/
declare function aggregateOffers(params: {
id: string;
typeOf: factory.eventType.ScreeningEvent | factory.eventType.Event;
}): IAggregateOffersOperation<void>;
export { aggregateOffers };