/**
 * Presenter Interface: IGetPaymentsPresenter
 */

import type { Presenter } from '@core/shared/presentation/Presenter';
import type { PaymentType, PayerType, PaymentStatus } from '../../domain/entities/Payment';

export interface PaymentDto {
  id: string;
  type: PaymentType;
  amount: number;
  platformFee: number;
  netAmount: number;
  payerId: string;
  payerType: PayerType;
  leagueId: string;
  seasonId?: string;
  status: PaymentStatus;
  createdAt: Date;
  completedAt?: Date;
}

export interface GetPaymentsResultDTO {
  payments: PaymentDto[];
}

export interface GetPaymentsViewModel {
  payments: PaymentDto[];
}

export interface IGetPaymentsPresenter extends Presenter<GetPaymentsResultDTO, GetPaymentsViewModel> {}