@chevre/domain
Version:
Chevre Domain Library for Node.js
60 lines (59 loc) • 1.56 kB
TypeScript
/**
* 口座サービス
* 開設、閉鎖等、口座アクション実行など
*/
import * as factory from '../factory';
import type { AccountRepo } from '../repo/account';
import type { AccountTransactionRepo } from '../repo/accountTransaction';
export type IOpenOperation<T> = (repos: {
account: AccountRepo;
}) => Promise<T>;
/**
* 口座を開設する
*/
export declare function open(params: {
project: {
id: string;
};
typeOf: string;
/**
* 口座タイプ
*/
accountType: string;
/**
* 口座番号
* ユニークになるように、Pecorinoサービス利用側で番号を生成すること
*/
accountNumber: string;
/**
* 口座名義
*/
name: string;
/**
* 初期金額
*/
initialBalance: number;
}[]): IOpenOperation<factory.account.IAccount[]>;
/**
* 口座を解約する
*/
/**
* 転送する
* 確定取引結果から、実際の転送アクションを実行します。
*/
export declare function transferMoney(actionAttributes: factory.account.action.moneyTransfer.IAttributes): (repos: {
account: AccountRepo;
}) => Promise<void>;
/**
* 転送取消
* 期限切れ、あるいは、中止された取引から、転送をアクションを取り消します。
*/
export declare function cancelMoneyTransfer(params: {
transaction: {
typeOf: factory.account.transactionType;
id: string;
};
}): (repos: {
account: AccountRepo;
accountTransaction: AccountTransactionRepo;
}) => Promise<void>;