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