43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import { z } from "zod/v4";
|
|
|
|
import { MailboxInputSchema, MailboxUseInputSchema } from "../api/domain/mailbox-values";
|
|
|
|
export type { MailboxInput, MailboxUseInput } from "../api/domain/mailbox-values";
|
|
|
|
export { MailboxInputSchema, MailboxUseInputSchema };
|
|
|
|
export const MailboxRequestSchema = z.strictObject({ values: MailboxInputSchema });
|
|
|
|
export const MailboxUseRequestSchema = z.strictObject({ values: MailboxUseInputSchema });
|
|
|
|
const audit = {
|
|
id: z.uuid(),
|
|
actorId: z.uuid(),
|
|
actorName: z.string().min(1),
|
|
recordedAt: z.iso.datetime(),
|
|
};
|
|
|
|
export const MailboxSchema = z.strictObject({
|
|
id: z.uuid(),
|
|
companyId: z.uuid(),
|
|
values: MailboxInputSchema,
|
|
history: z.array(z.strictObject({ ...audit, values: MailboxInputSchema })).min(1),
|
|
});
|
|
|
|
export const MailboxUseSchema = z.strictObject({
|
|
id: z.uuid(),
|
|
companyId: z.uuid(),
|
|
values: MailboxUseInputSchema,
|
|
history: z.array(z.strictObject({ ...audit, values: MailboxUseInputSchema })).min(1),
|
|
});
|
|
|
|
export const MailboxesResponseSchema = z.strictObject({
|
|
mailboxes: z.array(MailboxSchema),
|
|
uses: z.array(MailboxUseSchema),
|
|
savedId: z.uuid().optional(),
|
|
});
|
|
|
|
export type MailboxDTO = z.infer<typeof MailboxSchema>;
|
|
|
|
export type MailboxUseDTO = z.infer<typeof MailboxUseSchema>;
|