42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
/**
|
|
* 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<GetMembershipFeesResultDTO, GetMembershipFeesViewModel> {} |