23 lines
805 B
TypeScript
23 lines
805 B
TypeScript
import { PaymentsApiClient } from '../../api/payments/PaymentsApiClient';
|
|
import { MembershipFeeViewModel } from '../../view-models';
|
|
import type { MembershipFeeDto } from '../../types/generated';
|
|
|
|
/**
|
|
* Membership Fee Service
|
|
*
|
|
* Orchestrates membership fee operations by coordinating API calls and view model creation.
|
|
* All dependencies are injected via constructor.
|
|
*/
|
|
export class MembershipFeeService {
|
|
constructor(
|
|
private readonly apiClient: PaymentsApiClient
|
|
) {}
|
|
|
|
/**
|
|
* Get membership fees by league ID with view model transformation
|
|
*/
|
|
async getMembershipFees(leagueId: string): Promise<MembershipFeeViewModel[]> {
|
|
const dto = await this.apiClient.getMembershipFees(leagueId);
|
|
return dto.fees.map((fee: MembershipFeeDto) => new MembershipFeeViewModel(fee));
|
|
}
|
|
} |