infoalloggi-monorepo/apps/infoalloggi/src/server/api/routers/prezziario.ts
Marco Pedone ba4debdd1d Refactor: Remove unused procedures and clean up router files
- Deleted contact router and its associated mail functionality.
- Removed addEvent mutation from event_queue router.
- Cleaned up fatture router by removing createClient and getListClienti procedures.
- Commented out deletePrezziario mutation in prezziario router.
- Removed unused procedures in servizio router, including getServizioOrdini and getPreOnboardData.
- Cleaned up stats router by removing commented-out code.
- Updated stripe router to restrict health check to admin users and changed several public procedures to protected.
- Commented out sync router procedures and related types.
- Removed unused client-related functions in fic controller.
- Cleaned up servizio controller by removing getServizioOrdini and commented-out code.
- Refactored auth service to inline pwResetTokenFromMailHandler logic.
- Commented out deletePrezziario function in prezziario service.
- Cleaned up zod types by commenting out unused types.
- Commented out getMessagesArray function in kysely helper.
2026-03-05 12:32:03 +01:00

103 lines
2.4 KiB
TypeScript

import { z } from "zod/v4";
import type {
NewPrezziario,
PrezziarioUpdate,
} from "~/schemas/public/Prezziario";
import TipologiaPosizioneEnum from "~/schemas/public/TipologiaPosizioneEnum";
import {
adminProcedure,
createTRPCRouter,
publicProcedure,
} from "~/server/api/trpc";
import { db } from "~/server/db";
import {
addPrezziario,
getPrezziario,
getPrezziarioByIdHandler,
getPrezziarioByTipologia,
getPrezziarioConsulenza,
updatePrezziario,
} from "~/server/services/prezziario.service";
import { zPrezziarioId } from "~/server/utils/zod_types";
// Create a new ratelimiter, that allows 10 requests per 10 seconds
/*
const ratelimit = new RateLimiterHandler({
maxRequests: 10,
windowSize: 60,
analytics: false,
});
*/
export const prezziarioRouter = createTRPCRouter({
addPrezziario: adminProcedure
.input(
z.object({
data: z.custom<NewPrezziario>(),
}),
)
.mutation(async ({ input }) => {
return await addPrezziario({ db, input: input.data });
}),
// deletePrezziario: adminProcedure
// .input(
// z.object({
// idprezziario: zPrezziarioId,
// }),
// )
// .mutation(async ({ input }) => {
// return await deletePrezziario({
// db,
// prezziarioId: input.idprezziario,
// });
// }),
getPrezziario: publicProcedure.query(async () => {
return await getPrezziario();
}),
getPrezziPerTipologia: publicProcedure
.input(
z.object({
tipologia: z.custom<TipologiaPosizioneEnum>(),
}),
)
.query(async ({ input }) => {
return await getPrezziarioByTipologia({
db,
tipologia: input.tipologia,
});
}),
getPrezziPerTipologiaAll: publicProcedure.query(async () => {
return {
consulenza: await getPrezziarioConsulenza({
db,
}),
stabile: await getPrezziarioByTipologia({
db,
tipologia: TipologiaPosizioneEnum.Stabile,
}),
transitorio: await getPrezziarioByTipologia({
db,
tipologia: TipologiaPosizioneEnum.Transitorio,
}),
};
}),
getPrezzoPerServizio: publicProcedure
.input(z.object({ idprezziario: zPrezziarioId }))
.query(async ({ input }) => {
return await getPrezziarioByIdHandler({ id: input.idprezziario });
}),
updatePrezziario: adminProcedure
.input(
z.object({
data: z.custom<PrezziarioUpdate>(),
idprezziario: zPrezziarioId,
}),
)
.mutation(async ({ input }) => {
return await updatePrezziario({
db,
input: input.data,
prezziarioId: input.idprezziario,
});
}),
});