metis-desk/modules/companies/src/common/mail-configurations.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

37 lines
1.3 KiB
TypeScript

import { z } from "zod/v4";
import { MailConfigurationInputSchema } from "../api/domain/mail-configuration-values";
export type { MailConfigurationInput } from "../api/domain/mail-configuration-values";
export {
MailConfigurationInputSchema,
MailMethodSchema,
MailStateSchema,
} from "../api/domain/mail-configuration-values";
export const MailParamsSchema = z.strictObject({ companyId: z.uuid() });
export const MailItemParamsSchema = MailParamsSchema.extend({ id: z.uuid() });
export const SaveMailRequestSchema = z.strictObject({ values: MailConfigurationInputSchema });
export const MailRevisionSchema = z.strictObject({
id: z.uuid(),
values: MailConfigurationInputSchema,
actorId: z.uuid(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
});
export const MailConfigurationSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
values: MailConfigurationInputSchema,
history: z.array(MailRevisionSchema).min(1),
needsReview: z.boolean(),
});
export const MailConfigurationsResponseSchema = z.strictObject({
configurations: z.array(MailConfigurationSchema),
});
export const MailConfigurationResponseSchema = z.strictObject({
configuration: MailConfigurationSchema,
});
export type MailConfigurationDTO = z.infer<typeof MailConfigurationSchema>;
export { MAIL_STATE_TRANSITIONS } from "../api/domain/mail-configuration-values";