import { membership } from "../../../../entity/club/member/membership"; import { MembershipStatisticsViewModel, MembershipViewModel, } from "../../../../viewmodel/admin/club/member/membership.models"; import { membershipView } from "../../../../views/membershipsView"; 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, statusId: record.status.id, }; } /** * @description map records to membership * @param {Array} records * @returns {Array} */ public static mapToBase(records: Array): Array { return records.map((r) => this.mapToSingle(r)); } /** * @description map view record to MembershipStatisticsViewModel * @param {membershipView} record * @returns {MembershipStatisticsViewModel} */ public static mapToSingleStatistic(record: membershipView): MembershipStatisticsViewModel { return { durationInDays: record.durationInDays, durationInYears: record.durationInYears, exactDuration: record.exactDuration, status: record.status, statusId: record.statusId, memberId: record.memberId, memberSalutation: record.memberSalutation, memberFirstname: record.memberFirstname, memberLastname: record.memberLastname, memberNameaffix: record.memberNameaffix, memberBirthdate: record.memberBirthdate, }; } /** * @description map records to MembershipStatisticsViewModel * @param {Array} records * @returns {Array} */ public static mapToBaseStatistics(records: Array): Array { return records.map((r) => this.mapToSingleStatistic(r)); } }