import { BaseApiClient } from '../base/BaseApiClient'; export interface LeagueWalletDTO { balance: number; currency: string; totalRevenue: number; totalFees: number; totalWithdrawals: number; pendingPayouts: number; canWithdraw: boolean; withdrawalBlockReason?: string; transactions: WalletTransactionDTO[]; } export interface WalletTransactionDTO { id: string; type: 'sponsorship' | 'membership' | 'withdrawal' | 'prize'; description: string; amount: number; fee: number; netAmount: number; date: string; // ISO string status: 'completed' | 'pending' | 'failed'; reference?: string; } export interface WithdrawRequestDTO { amount: number; currency: string; seasonId: string; destinationAccount: string; } export interface WithdrawResponseDTO { success: boolean; message?: string; } /** * Wallets API Client * * Handles all wallet-related API operations. */ export class WalletsApiClient extends BaseApiClient { /** Get league wallet */ getLeagueWallet(leagueId: string): Promise { return this.get(`/leagues/${leagueId}/wallet`); } /** Withdraw from league wallet */ withdrawFromLeagueWallet(leagueId: string, request: WithdrawRequestDTO): Promise { return this.post(`/leagues/${leagueId}/wallet/withdraw`, request); } }