2025-08-07 14:50:40 +02:00
|
|
|
import { z } from "zod/v4";
|
2025-08-04 17:45:44 +02:00
|
|
|
import { createTRPCRouter, publicProcedure } from "~/server/api/trpc";
|
|
|
|
|
import { GetEmails, StoreEmail } from "~/server/services/email.service";
|
2025-08-28 18:27:07 +02:00
|
|
|
import { genMail, type MailsTemplates } from "~/server/services/mailer";
|
|
|
|
|
import { zUserId } from "~/server/utils/zod_types";
|
2025-08-04 17:45:44 +02:00
|
|
|
|
|
|
|
|
export const comunicazioniRouter = createTRPCRouter({
|
2025-08-29 16:18:32 +02:00
|
|
|
genEmail: publicProcedure
|
2025-08-28 18:27:07 +02:00
|
|
|
.input(
|
|
|
|
|
z.object({
|
2025-08-29 16:18:32 +02:00
|
|
|
mail: z.custom<MailsTemplates>(),
|
2025-08-28 18:27:07 +02:00
|
|
|
}),
|
|
|
|
|
)
|
2025-08-29 16:18:32 +02:00
|
|
|
.query(async ({ input }) => {
|
|
|
|
|
return await genMail({
|
|
|
|
|
...input.mail,
|
2025-08-28 18:27:07 +02:00
|
|
|
});
|
|
|
|
|
}),
|
|
|
|
|
getEmails: publicProcedure
|
|
|
|
|
.input(z.object({ userId: zUserId }))
|
|
|
|
|
.query(async ({ input }) => {
|
|
|
|
|
return await GetEmails({
|
|
|
|
|
userId: input.userId,
|
|
|
|
|
});
|
|
|
|
|
}),
|
2025-08-29 16:18:32 +02:00
|
|
|
storeEmail: publicProcedure
|
2025-08-28 18:27:07 +02:00
|
|
|
.input(
|
|
|
|
|
z.object({
|
2025-08-29 16:18:32 +02:00
|
|
|
data: z.custom<MailsTemplates>(),
|
|
|
|
|
userId: zUserId,
|
2025-08-28 18:27:07 +02:00
|
|
|
}),
|
|
|
|
|
)
|
2025-08-29 16:18:32 +02:00
|
|
|
.mutation(async ({ input }) => {
|
|
|
|
|
return await StoreEmail({
|
|
|
|
|
data: input.data,
|
|
|
|
|
userId: input.userId,
|
2025-08-28 18:27:07 +02:00
|
|
|
});
|
|
|
|
|
}),
|
2025-08-04 17:45:44 +02:00
|
|
|
});
|