ff-admin-server/src/factory/admin/club/member/membership.ts

64 lines
2.1 KiB
TypeScript
Raw Normal View History

2025-01-05 14:14:00 +01:00
import { membership } from "../../../../entity/club/member/membership";
2025-01-21 14:49:14 +01:00
import {
MembershipStatisticsViewModel,
MembershipViewModel,
} from "../../../../viewmodel/admin/club/member/membership.models";
import { membershipView } from "../../../../views/membershipsView";
2024-09-16 15:55:41 +02:00
export default abstract class MembershipFactory {
/**
* @description map record to membership
* @param {membership} record
* @returns {MembershipViewModel}
*/
public static mapToSingle(record: membership): MembershipViewModel {
return {
id: record.id,
start: record.start,
end: record.end,
terminationReason: record.terminationReason,
status: record.status.status,
2024-09-27 14:55:34 +02:00
statusId: record.status.id,
2024-09-16 15:55:41 +02:00
};
}
/**
* @description map records to membership
* @param {Array<membership>} records
* @returns {Array<MembershipViewModel>}
*/
public static mapToBase(records: Array<membership>): Array<MembershipViewModel> {
return records.map((r) => this.mapToSingle(r));
}
2025-01-21 14:49:14 +01:00
/**
* @description map view record to MembershipStatisticsViewModel
* @param {membershipView} record
* @returns {MembershipStatisticsViewModel}
*/
2025-01-22 08:59:38 +01:00
public static mapToSingleStatistic(record: membershipView): MembershipStatisticsViewModel {
2025-01-21 14:49:14 +01:00
return {
durationInDays: record.durationInDays,
durationInYears: record.durationInYears,
exactDuration: record.exactDuration,
2025-01-21 14:49:14 +01:00
status: record.status,
statusId: record.statusId,
memberId: record.memberId,
memberSalutation: record.memberSalutation,
memberFirstname: record.memberFirstname,
memberLastname: record.memberLastname,
memberNameaffix: record.memberNameaffix,
memberBirthdate: record.memberBirthdate,
};
}
2025-01-22 08:59:38 +01:00
/**
* @description map records to MembershipStatisticsViewModel
* @param {Array<membershipView>} records
* @returns {Array<MembershipStatisticsViewModel>}
*/
public static mapToBaseStatistics(records: Array<membershipView>): Array<MembershipStatisticsViewModel> {
return records.map((r) => this.mapToSingleStatistic(r));
}
2024-09-16 15:55:41 +02:00
}