40 lines
913 B
TypeScript
40 lines
913 B
TypeScript
/**
|
|
* Presenter Interface: IGetWalletPresenter
|
|
*/
|
|
|
|
import type { Presenter } from '@core/shared/presentation/Presenter';
|
|
import type { TransactionType, ReferenceType } from '../../domain/entities/Wallet';
|
|
|
|
export interface WalletDto {
|
|
id: string;
|
|
leagueId: string;
|
|
balance: number;
|
|
totalRevenue: number;
|
|
totalPlatformFees: number;
|
|
totalWithdrawn: number;
|
|
currency: string;
|
|
createdAt: Date;
|
|
}
|
|
|
|
export interface TransactionDto {
|
|
id: string;
|
|
walletId: string;
|
|
type: TransactionType;
|
|
amount: number;
|
|
description: string;
|
|
referenceId?: string;
|
|
referenceType?: ReferenceType;
|
|
createdAt: Date;
|
|
}
|
|
|
|
export interface GetWalletResultDTO {
|
|
wallet: WalletDto;
|
|
transactions: TransactionDto[];
|
|
}
|
|
|
|
export interface GetWalletViewModel {
|
|
wallet: WalletDto;
|
|
transactions: TransactionDto[];
|
|
}
|
|
|
|
export interface IGetWalletPresenter extends Presenter<GetWalletResultDTO, GetWalletViewModel> {} |