/** * Presenter Interface: IGetMembershipFeesPresenter */ import type { Presenter } from '@core/shared/presentation/Presenter'; import type { MembershipFeeType } from '../../domain/entities/MembershipFee'; import type { MemberPaymentStatus } from '../../domain/entities/MemberPayment'; export interface MembershipFeeDto { id: string; leagueId: string; seasonId?: string; type: MembershipFeeType; amount: number; enabled: boolean; createdAt: Date; updatedAt: Date; } export interface MemberPaymentDto { id: string; feeId: string; driverId: string; amount: number; platformFee: number; netAmount: number; status: MemberPaymentStatus; dueDate: Date; paidAt?: Date; } export interface GetMembershipFeesResultDTO { fee: MembershipFeeDto | null; payments: MemberPaymentDto[]; } export interface GetMembershipFeesViewModel { fee: MembershipFeeDto | null; payments: MemberPaymentDto[]; } export interface IGetMembershipFeesPresenter extends Presenter {}