UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

71 lines (70 loc) 2.73 kB
import * as factory from '../../factory'; import type { AcceptedOfferRepo } from '../../repo/acceptedOffer'; import type { EmailMessageRepo } from '../../repo/emailMessage'; import type { EventRepo } from '../../repo/event'; import type { MerchantReturnPolicyRepo } from '../../repo/merchantReturnPolicy'; import type { MessageRepo } from '../../repo/message'; import type { OfferRepo } from '../../repo/offer/unitPriceInCatalog'; import type { OfferItemConditionRepo } from '../../repo/offerItemCondition'; import type { OrderRepo } from '../../repo/order'; import type { ProjectRepo } from '../../repo/project'; import type { ReservationRepo } from '../../repo/reservation'; import type { SellerRepo } from '../../repo/seller'; import type { SellerReturnPolicyRepo } from '../../repo/sellerReturnPolicy'; import type { SettingRepo } from '../../repo/setting'; import type { TaskRepo } from '../../repo/task'; import type { IStartedTransaction, TransactionRepo } from '../../repo/transaction'; import { preStart } from './returnOrder/preStart'; interface IStartOperationRepos { acceptedOffer: AcceptedOfferRepo; event: EventRepo; merchantReturnPolicy: MerchantReturnPolicyRepo; offer: OfferRepo; offerItemCondition: OfferItemConditionRepo; order: OrderRepo; project: ProjectRepo; reservation: ReservationRepo; seller: SellerRepo; sellerReturnPolicy: SellerReturnPolicyRepo; transaction: TransactionRepo; } type IStartOperation<T> = (repos: IStartOperationRepos) => Promise<T>; type ITaskAndTransactionOperation<T> = (repos: { setting: SettingRepo; task: TaskRepo; transaction: TransactionRepo; }) => Promise<T>; /** * 返品取引開始 */ declare function start(params: factory.transaction.returnOrder.IStartParamsWithoutDetail): IStartOperation<IStartedTransaction>; /** * 取引確定 */ declare function confirm(params: factory.transaction.returnOrder.IConfirmParams & { object: { order: { dateReturned: Date; }; }; }): (repos: { acceptedOffer: AcceptedOfferRepo; emailMessage?: EmailMessageRepo; message: MessageRepo; order: OrderRepo; setting: SettingRepo; transaction: TransactionRepo; }) => Promise<import("@chevre/factory/lib/transaction/returnOrder").IResult | undefined>; /** * 取引のタスクを出力します * 複数タスクが生成されます * この関数では、取引のタスクエクスポートステータスは見ません */ declare function exportTasksById(params: { id: string; /** * タスク実行日時バッファ */ runsTasksAfterInSeconds?: number; }): ITaskAndTransactionOperation<void>; export { preStart, start, confirm, exportTasksById };