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,
|
2025-02-01 18:09:58 +01:00
|
|
|
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
|
|
|
}
|