import type { UseCaseOutputPort } from '@core/shared/application'; import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase'; import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO'; export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort { private model: WithdrawFromLeagueWalletOutputDTO | null = null; present(result: WithdrawFromLeagueWalletResult): void { this.model = { success: true, message: `Successfully withdrew ${result.amount.amount} ${result.amount.currency} from league wallet. Transaction ID: ${result.transactionId}`, }; } getResponseModel(): WithdrawFromLeagueWalletOutputDTO { if (!this.model) throw new Error('Presenter not presented'); return this.model; } get responseModel(): WithdrawFromLeagueWalletOutputDTO { if (!this.model) throw new Error('Presenter not presented'); return this.model; } }