ff-admin-server/src/factory/admin/club/newsletter/newsletter.ts

34 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-01-05 14:14:00 +01:00
import { newsletter } from "../../../../entity/club/newsletter/newsletter";
import { NewsletterViewModel } from "../../../../viewmodel/admin/club/newsletter/newsletter.models";
2025-02-15 10:59:54 +01:00
import QueryStoreFactory from "../../configuration/queryStore";
2024-12-25 12:22:28 +01:00
export default abstract class NewsletterFactory {
/**
* @description map record to newsletter
* @param {newsletter} record
* @returns {NewsletterViewModel}
*/
public static mapToSingle(record: newsletter): NewsletterViewModel {
return {
id: record.id,
title: record.title,
description: record.description,
newsletterTitle: record.newsletterTitle,
newsletterText: record.newsletterText,
newsletterSignatur: record.newsletterSignatur,
isSent: record.isSent,
recipientsByQueryId: record?.recipientsByQuery ? record.recipientsByQuery.id : null,
2024-12-25 12:22:28 +01:00
recipientsByQuery: record?.recipientsByQuery ? QueryStoreFactory.mapToSingle(record.recipientsByQuery) : null,
};
}
/**
* @description map records to newsletter
* @param {Array<newsletter>} records
* @returns {Array<NewsletterViewModel>}
*/
public static mapToBase(records: Array<newsletter>): Array<NewsletterViewModel> {
return records.map((r) => this.mapToSingle(r));
}
}