@chevre/domain
Version:
Chevre Domain Library for Node.js
71 lines (70 loc) • 2.73 kB
TypeScript
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 };