import type { MailConfigurationDTO } from "../../common/mail-configurations"; import type { MailConfiguration } from "../domain/mail-configuration.aggregate"; import type { MailContext } from "./mail-configuration.repository"; import { mailAuthorized } from "./mail-configuration-policy"; export function buildMailResponse( item: MailConfiguration, context: MailContext ): MailConfigurationDTO { return { id: item.id.toPrimitive(), companyId: item.companyId.toPrimitive(), values: item.values.toPrimitive(), needsReview: !(item.values.closed || mailAuthorized(item.values, context)), history: item.history.map((revision) => ({ id: revision.id.toPrimitive(), values: revision.values.toPrimitive(), actorId: revision.actorId.toPrimitive(), actorName: context.actors.get(revision.actorId.toPrimitive()) ?? "—", recordedAt: revision.recordedAt, })), }; }