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

36 lines
1.3 KiB
TypeScript

import { communication } from "../../../../entity/club/member/communication";
import { CommunicationViewModel } from "../../../../viewmodel/admin/club/member/communication.models";
import CommunicationTypeFactory from "../../configuration/communicationType";
export default abstract class CommunicationFactory {
/**
* @description map record to communication
* @param {communication} record
* @returns {CommunicationViewModel}
*/
public static mapToSingle(record: communication, isMain: boolean = false): CommunicationViewModel {
return {
id: record.id,
preferred: record.preferred,
mobile: record.mobile,
email: record.email,
postalCode: record.postalCode,
city: record.city,
street: record.street,
streetNumber: record.streetNumber,
streetNumberAddition: record.streetNumberAddition,
type: CommunicationTypeFactory.mapToSingle(record.type),
isNewsletterMain: record?.isSendNewsletter,
isSMSAlarming: record.isSMSAlarming,
};
}
/**
* @description map records to communication
* @param {Array<communication>} records
* @returns {Array<CommunicationViewModel>}
*/
public static mapToBase(records: Array<communication>): Array<CommunicationViewModel> {
return records.map((r) => this.mapToSingle(r));
}
}