metis-desk/modules/companies/src/api/domain/mail-configuration-revision.entity.ts
David e099b8c507 feat(mail): implement mail configuration management with persistence and UI components
- Added migration scripts for mail configurations and revisions.
- Created persistence mapper for mail configurations and revisions.
- Developed Sequelize repository for mail configuration management.
- Introduced common schemas and types for mail configurations.
- Implemented API for fetching and saving mail configurations.
- Built React components for mail configuration forms and pages.
- Added internationalization support for mail-related texts in English and Spanish.
- Implemented feedback mechanism for API errors in mail components.
- Created tests for mail configuration components and functionality.
2026-10-04 23:06:07 +02:00

26 lines
782 B
TypeScript

import { DomainEntity, type UniqueID } from "@repo/rdx-ddd";
import type { MailConfigurationValues } from "./value-objects/mail-configuration-values";
export type MailRevisionProps = Readonly<{
values: MailConfigurationValues;
actorId: UniqueID;
recordedAt: string;
}>;
export class MailConfigurationRevision extends DomainEntity<MailRevisionProps> {
static create(props: MailRevisionProps) {
return new MailConfigurationRevision(Object.freeze({ ...props }));
}
static rehydrate(props: MailRevisionProps, id: UniqueID) {
return new MailConfigurationRevision(Object.freeze({ ...props }), id);
}
get values() {
return this.props.values;
}
get actorId() {
return this.props.actorId;
}
get recordedAt() {
return this.props.recordedAt;
}
}