@chevre/domain
Version:
Chevre Domain Library for Node.js
66 lines (65 loc) • 2.21 kB
TypeScript
import type { Connection } from 'mongoose';
import * as factory from '../factory';
/**
* 口座取引リポジトリ
*/
export declare class AccountTransactionRepo {
private readonly transactionModel;
constructor(connection: Connection);
static CREATE_MONGO_CONDITIONS(params: factory.account.transaction.ISearchConditions): any[];
/**
* 取引を開始する
*/
start<T extends factory.account.transactionType>(params: factory.account.transaction.IStartParams<T>): Promise<factory.account.transaction.ITransaction<T>>;
startByIdentifier<T extends factory.account.transactionType>(params: factory.account.transaction.IStartParams<T>): Promise<factory.account.transaction.ITransaction<T>>;
/**
* 取引検索
*/
findById<T extends factory.account.transactionType>(params: {
typeOf?: T;
/**
* 取引ID
*/
id: string;
}): Promise<factory.account.transaction.ITransaction<T>>;
findByTransactionNumber<T extends factory.account.transactionType>(params: {
typeOf?: T;
transactionNumber: string;
}): Promise<factory.account.transaction.ITransaction<T>>;
/**
* 取引を確定する
*/
confirm<T extends factory.account.transactionType>(params: {
typeOf?: T;
id: string;
potentialActions: factory.account.transaction.IPotentialActions;
}): Promise<factory.account.transaction.ITransaction<T>>;
/**
* 取引を中止する
*/
cancel<T extends factory.account.transactionType>(params: {
typeOf?: T;
id?: string;
transactionNumber?: string;
}): Promise<factory.account.transaction.ITransaction<T>>;
/**
* 取引を期限切れにする
*/
makeExpired(params: {
expires: {
$lt: Date;
};
}): Promise<void>;
/**
* 取引を検索する
*/
search(params: factory.account.transaction.ISearchConditions): Promise<factory.account.transaction.ITransaction<factory.account.transactionType>[]>;
clean(params: {
project?: {
id?: string;
};
endDate: {
$lt: Date;
};
}): Promise<void>;
}