UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

39 lines (38 loc) 1.35 kB
import * as factory from '../../factory'; import { MongoRepository as ReservationRepo } from '../../repo/reservation'; import { MongoRepository as TaskRepo } from '../../repo/task'; import { MongoRepository as TransactionRepo } from '../../repo/transaction'; export declare type IStartOperation<T> = (repos: { 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.cancelReservation.IStartParamsWithoutDetail): IStartOperation<factory.transaction.cancelReservation.ITransaction>; /** * 取引確定 */ export declare function confirm(params: { id: string; }): ITransactionOperation<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[]>;