UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

62 lines (61 loc) 2.47 kB
import * as factory from '../../factory'; import { MongoRepository as ActionRepo } from '../../repo/action'; import { MongoRepository as EventRepo } from '../../repo/event'; import { RedisRepository as ScreeningEventAvailabilityRepo } from '../../repo/itemAvailability/screeningEvent'; import { MongoRepository as PlaceRepo } from '../../repo/place'; import { MongoRepository as PriceSpecificationRepo } from '../../repo/priceSpecification'; import { MongoRepository as ReservationRepo } from '../../repo/reservation'; import { RedisRepository as ReservationNumberRepo } from '../../repo/reservationNumber'; import { MongoRepository as TaskRepo } from '../../repo/task'; import { MongoRepository as TicketTypeRepo } from '../../repo/ticketType'; import { MongoRepository as TransactionRepo } from '../../repo/transaction'; export declare type IStartOperation<T> = (repos: { eventAvailability: ScreeningEventAvailabilityRepo; event: EventRepo; place: PlaceRepo; priceSpecification: PriceSpecificationRepo; reservation: ReservationRepo; reservationNumber: ReservationNumberRepo; transaction: TransactionRepo; ticketType: TicketTypeRepo; }) => Promise<T>; export declare type ICancelOperation<T> = (repos: { action: ActionRepo; eventAvailability: ScreeningEventAvailabilityRepo; reservation: ReservationRepo; transaction: TransactionRepo; }) => Promise<T>; export declare type ITaskAndTransactionOperation<T> = (repos: { task: TaskRepo; transaction: TransactionRepo; }) => Promise<T>; export declare type ITransactionOperation<T> = (repos: { transaction: TransactionRepo; }) => Promise<T>; /** * 取引開始 */ export declare function start(params: factory.transaction.reserve.IStartParamsWithoutDetail): IStartOperation<factory.transaction.reserve.ITransaction>; /** * 取引確定 */ export declare function confirm(params: factory.transaction.reserve.IConfirmParams): ITransactionOperation<void>; /** * 取引中止 */ export declare function cancel(params: { id: string; }): ICancelOperation<void>; /** * ひとつの取引のタスクをエクスポートする */ export declare function exportTasks(status: factory.transactionStatusType): (repos: { task: TaskRepo; transaction: TransactionRepo; }) => Promise<void>; /** * ID指定で取引のタスク出力 */ export declare function exportTasksById(params: { id: string; }): ITaskAndTransactionOperation<factory.task.ITask[]>;