diff --git a/apps/infoalloggi/check-unused-trpc.ts b/apps/infoalloggi/check-unused-trpc.ts
index 417cc0e..c2bc732 100644
--- a/apps/infoalloggi/check-unused-trpc.ts
+++ b/apps/infoalloggi/check-unused-trpc.ts
@@ -4,12 +4,21 @@ import * as path from "node:path";
// --- CONFIGURATION ---
const ROOT_DIR: string = process.cwd();
const ROUTERS_DIR: string = path.join(ROOT_DIR, "src/server/api/routers");
-const SCAN_DIRS: string[] = [path.join(ROOT_DIR, "src")];
+const SCAN_DIRS: string[] = [
+ path.join(ROOT_DIR, "src/pages"),
+ path.join(ROOT_DIR, "src/components"),
+ path.join(ROOT_DIR, "src/forms"),
+ path.join(ROOT_DIR, "src/hooks"),
+ path.join(ROOT_DIR, "src/lib"),
+ path.join(ROOT_DIR, "src/providers"),
+];
const IGNORE_DIRS: string[] = ["node_modules", ".next", "dist"];
-// Regex to find tRPC procedure definitions
+// Regex to find tRPC procedure definitions.
+// Matches `procedureName: someProcedure` where the procedure type is one of the known base procedures.
+// This handles chained .input()/.output() before .query/.mutation/.subscription.
const PROCEDURE_REGEX: RegExp =
- /([a-zA-Z0-9_]+)\s*:\s*[a-zA-Z0-9_.]+\.(?:query|mutation|subscription)\s*\(/g;
+ /([a-zA-Z0-9_]+)\s*:\s*(?:adminProcedure|protectedProcedure|publicProcedure)\b/g;
interface ProcedureDefinition {
name: string;
diff --git a/apps/infoalloggi/src/pages/area-riservata/admin/incroci.tsx b/apps/infoalloggi/src/pages/area-riservata/admin/incroci.tsx
deleted file mode 100644
index ee8e9cf..0000000
--- a/apps/infoalloggi/src/pages/area-riservata/admin/incroci.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-import { format } from "date-fns";
-import type { GetServerSideProps } from "next";
-import Head from "next/head";
-import Link from "next/link";
-import { AreaRiservataLayout } from "~/components/Layout";
-import { LoadingPage } from "~/components/loading";
-import { Status500 } from "~/components/status-page";
-import { Button } from "~/components/ui/button";
-import { Separator } from "~/components/ui/separator";
-import type { NextPageWithLayout } from "~/pages/_app";
-import { TrpcAuthedFetchingIstance } from "~/server/utils/ssgHelper";
-import { api } from "~/utils/api";
-
-/**
- * Pagina di gestione incroci per admin: /area-riservata/admin/incroci
- */
-const Incroci: NextPageWithLayout = () => {
- const { data, isLoading } = api.incroci.getAll.useQuery();
-
- if (isLoading) return ;
- if (!data) return ;
-
- return (
- <>
-
- Incorici - Infoalloggi.it
-
-
-
-
-
- {data.map((incrocio) => (
-
-
- Cod:
- {incrocio.codice}
-
-
- Titolo:
- {incrocio.titolo_it}
-
-
- Richieste:
-
-
- {incrocio.richieste.map((r) => (
- -
-
- Username:
- {r.username}
-
-
- Aggiunto il:
-
- {format(new Date(r.created_at), "dd/MM/yyyy")}
-
-
-
- Aperto Contatti il:
-
- {r.open_contatti_at
- ? format(new Date(r.open_contatti_at), "dd/MM/yyyy")
- : "Non aperto"}
-
-
-
- Mandato conferma il:
-
- {r.user_confirmed_at
- ? format(new Date(r.user_confirmed_at), "dd/MM/yyyy")
- : "Non confermato"}
-
-
-
- Conferma da Admin:
- {r.hasConfermaAdmin ? "Si" : "No"}
-
-
-
-
-
-
- ))}
-
-
- ))}
-
-
- >
- );
-};
-
-export default Incroci;
-
-export const getServerSideProps = (async (context) => {
- const access_token = context.req.cookies.access_token;
-
- const helpers = await TrpcAuthedFetchingIstance({ access_token });
- if (helpers) {
- await helpers.trpc.incroci.getAll.prefetch();
- return {
- props: {
- trpcState: helpers.trpc.dehydrate(),
- },
- };
- }
- return {
- props: {},
- };
-}) satisfies GetServerSideProps;
-
-Incroci.getLayout = function getLayout(page) {
- return {page};
-};
diff --git a/apps/infoalloggi/src/server/api/root.ts b/apps/infoalloggi/src/server/api/root.ts
index 013c347..2850e18 100644
--- a/apps/infoalloggi/src/server/api/root.ts
+++ b/apps/infoalloggi/src/server/api/root.ts
@@ -22,7 +22,6 @@ import { bannersRouter } from "./routers/banners";
import { catastoRouter } from "./routers/catasto";
import { etichetteRouter } from "./routers/etichette";
import { flagsRouter } from "./routers/flags";
-import { incrociRouter } from "./routers/incroci";
import { inviteRouter } from "./routers/invite";
import { potenzialiRouter } from "./routers/potenziali";
import { revalidationRouter } from "./routers/revalidation";
@@ -59,6 +58,5 @@ export const appRouter = createTRPCRouter({
revalidation: revalidationRouter,
potenziali: potenzialiRouter,
invite: inviteRouter,
- incroci: incrociRouter,
});
export type AppRouter = typeof appRouter;
diff --git a/apps/infoalloggi/src/server/api/routers/incroci.ts b/apps/infoalloggi/src/server/api/routers/incroci.ts
deleted file mode 100644
index 1328d27..0000000
--- a/apps/infoalloggi/src/server/api/routers/incroci.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { adminProcedure, createTRPCRouter } from "~/server/api/trpc";
-import { getAll } from "~/server/controllers/incroci.controller";
-
-export const incrociRouter = createTRPCRouter({
- getAll: adminProcedure.query(async () => {
- return await getAll();
- }),
-});
diff --git a/apps/infoalloggi/src/server/api/routers/potenziali.ts b/apps/infoalloggi/src/server/api/routers/potenziali.ts
index 210cb42..0cd201d 100644
--- a/apps/infoalloggi/src/server/api/routers/potenziali.ts
+++ b/apps/infoalloggi/src/server/api/routers/potenziali.ts
@@ -15,7 +15,6 @@ import {
getPotenzialiGroups,
type PotenzialeData,
updatePotenziale,
- updatePotenzialeGroup,
updatePotenziali,
} from "~/server/services/potenziali.service";
@@ -97,18 +96,7 @@ export const potenzialiRouter = createTRPCRouter({
.mutation(async ({ input }) => {
return await addPotenzialeGroup({ name: input.name });
}),
- updatePotenzialeGroup: adminProcedure
- .input(
- z.object({
- potenzialiGroupId: zPotenzialiGroupId,
- name: z.string().min(1).max(255),
- }),
- )
- .mutation(async ({ input }) => {
- return await updatePotenzialeGroup(input.potenzialiGroupId, {
- name: input.name,
- });
- }),
+
deletePotenzialeGroup: adminProcedure
.input(
z.object({
diff --git a/apps/infoalloggi/src/server/api/routers/prezziario.ts b/apps/infoalloggi/src/server/api/routers/prezziario.ts
index d4af17f..af24ea5 100644
--- a/apps/infoalloggi/src/server/api/routers/prezziario.ts
+++ b/apps/infoalloggi/src/server/api/routers/prezziario.ts
@@ -14,7 +14,6 @@ import { db } from "~/server/db";
import {
addPrezziario,
getPrezziario,
- getPrezziarioByIdHandler,
getPrezziarioByTipologia,
getPrezziarioConsulenza,
updatePrezziario,
@@ -81,11 +80,7 @@ export const prezziarioRouter = createTRPCRouter({
}),
};
}),
- getPrezzoPerServizio: publicProcedure
- .input(z.object({ idprezziario: zPrezziarioId }))
- .query(async ({ input }) => {
- return await getPrezziarioByIdHandler(input.idprezziario);
- }),
+
updatePrezziario: adminProcedure
.input(
z.object({
diff --git a/apps/infoalloggi/src/server/controllers/incroci.controller.ts b/apps/infoalloggi/src/server/controllers/incroci.controller.ts
deleted file mode 100644
index 861cc35..0000000
--- a/apps/infoalloggi/src/server/controllers/incroci.controller.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { jsonArrayFrom } from "kysely/helpers/postgres";
-import { db } from "../db";
-
-export const getAll = async () => {
- const data = await db
- .selectFrom("annunci")
- .innerJoin("servizio_annunci", "servizio_annunci.annunci_id", "annunci.id")
-
- .select((eb) => [
- "annunci.id",
- "annunci.titolo_it",
- "annunci.codice",
- jsonArrayFrom(
- eb
- .selectFrom("servizio_annunci")
- .select([
- "servizio_annunci.open_contatti_at",
- "servizio_annunci.servizio_id",
- "servizio_annunci.created_at",
- "servizio_annunci.user_confirmed_at",
- "servizio_annunci.hasConfermaAdmin",
- ])
- .leftJoin(
- "servizio",
- "servizio.servizio_id",
- "servizio_annunci.servizio_id",
- )
- .leftJoin("users", "users.id", "servizio.user_id")
- .select(["users.username", "users.id as userId"])
- .whereRef("servizio_annunci.annunci_id", "=", "annunci.id"),
- ).as("richieste"),
- ])
- .groupBy("annunci.id")
- .execute();
- return data;
-};
diff --git a/apps/infoalloggi/src/server/controllers/servizio.controller.ts b/apps/infoalloggi/src/server/controllers/servizio.controller.ts
index c28844a..0bd7efc 100644
--- a/apps/infoalloggi/src/server/controllers/servizio.controller.ts
+++ b/apps/infoalloggi/src/server/controllers/servizio.controller.ts
@@ -5,7 +5,6 @@ import { z } from "zod/v4";
import { env } from "~/env";
import { withParsedDates } from "~/lib/dateParserJsonKysely";
import type { Annunci, AnnunciId } from "~/schemas/public/Annunci";
-import OrderTypeEnum from "~/schemas/public/OrderTypeEnum";
import type { Ordini, OrdiniOrdineId } from "~/schemas/public/Ordini";
import type { Prezziario } from "~/schemas/public/Prezziario";
import type {
@@ -38,40 +37,8 @@ import {
withVideos,
} from "~/utils/kysely-helper";
import { GetUserInterests } from "../services/interests.service";
-import { createOrdine } from "../services/ordini.service";
import { getServizioById } from "../services/servizio.service";
import type { AnnuncioRicerca } from "./annunci.controller";
-import { SaldoSolver } from "./pagamenti.controller";
-
-export const getServiziByUserId = async (userId: UsersId) => {
- try {
- return await db
- .selectFrom("servizio")
- .selectAll("servizio")
- .select((eb) => [
- jsonArrayFrom(
- eb
- .selectFrom("servizio_annunci")
- .select(["servizio_annunci.annunci_id"])
- .innerJoin("annunci", "annunci.id", "servizio_annunci.annunci_id")
- .select("annunci.codice")
- .whereRef(
- "servizio_annunci.servizio_id",
- "=",
- "servizio.servizio_id",
- ),
- ).as("annunci"),
- ])
- .where("user_id", "=", userId)
- .orderBy("created_at", "asc")
- .execute();
- } catch (e) {
- throw new TRPCError({
- code: "INTERNAL_SERVER_ERROR",
- message: `Error fetching servizi by user ID: ${(e as Error).message}`,
- });
- }
-};
export const getDataPerAcquisto = async (servizioId: ServizioServizioId) => {
try {
diff --git a/apps/infoalloggi/src/server/controllers/storage.controller.ts b/apps/infoalloggi/src/server/controllers/storage.controller.ts
index 90a2cb2..5e66793 100644
--- a/apps/infoalloggi/src/server/controllers/storage.controller.ts
+++ b/apps/infoalloggi/src/server/controllers/storage.controller.ts
@@ -1,9 +1,6 @@
import { TRPCError } from "@trpc/server";
import type { UsersId } from "~/schemas/public/Users";
-import type {
- NewUsersStorage,
- UsersStorageUserStorageId,
-} from "~/schemas/public/UsersStorage";
+import type { NewUsersStorage } from "~/schemas/public/UsersStorage";
import { db, type Querier } from "~/server/db";
import { fetchFiles, retriveFilesSafely } from "../services/storage.service";
@@ -86,31 +83,6 @@ export const retrieveUserFiles = async ({ userId }: { userId: UsersId }) => {
}
};
-export const getStorageIdFromUserStorageId = async ({
- userStorageId,
-}: {
- userStorageId: UsersStorageUserStorageId;
-}) => {
- try {
- const storage = await db
- .selectFrom("users_storage")
- .select("storageId")
- .where("user_storage_id", "=", userStorageId)
- .executeTakeFirstOrThrow(
- () =>
- new Error(
- `User storage entry not found - userStorageId: ${userStorageId}`,
- ),
- );
- return storage.storageId;
- } catch (e) {
- throw new TRPCError({
- code: "INTERNAL_SERVER_ERROR",
- message: `Error while getting storage ID from user storage ID: ${(e as Error).message}`,
- });
- }
-};
-
export const getAllWithFromAdmin = async () => {
try {
const files = await db
diff --git a/apps/infoalloggi/src/server/services/fic.service.ts b/apps/infoalloggi/src/server/services/fic.service.ts
deleted file mode 100644
index 617ba8f..0000000
--- a/apps/infoalloggi/src/server/services/fic.service.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { z } from "zod/v4";
-
-const ClientTypeSchema = z.enum(["company", "person", "pa", "condo"]);
-
-const VatTypeSchema = z.object({
- description: z.string().nullish(),
- e_invoice: z.boolean().nullish(),
- editable: z.boolean().nullish(),
- ei_description: z.string().nullish(),
- ei_type: z.string().nullish(),
- id: z.number().nullish(),
- is_disabled: z.boolean().nullish(),
- notes: z.string().nullish(),
- value: z.number().nullish(),
-});
-
-const PaymentTermsTypeSchema = z.enum(["standard", "end_of_month"]);
-const PaymentMethodTypeSchema = z.enum(["standard", "riba"]);
-const PaymentAccountTypeSchema = z.enum(["standard", "bank"]);
-const PaymentAccountSchema = z.object({
- cuc: z.string().nullish(),
- iban: z.string().nullish(),
- id: z.number().nullish(),
- name: z.string().nullish(),
- sia: z.string().nullish(),
- type: PaymentAccountTypeSchema.optional(),
- virtual: z.boolean().nullish(),
-});
-
-const PaymentMethodDetailsSchema = z.object({
- description: z.string().nullish(),
- title: z.string().nullish(),
-});
-
-const PaymentMethodSchema = z.object({
- bank_beneficiary: z.string().nullish(),
- bank_iban: z.string().nullish(),
- bank_name: z.string().nullish(),
- default_payment_account: PaymentAccountSchema.nullish(),
- details: z.array(PaymentMethodDetailsSchema).optional(),
- ei_payment_method: z.string().nullish(),
- id: z.number().nullish(),
- is_default: z.boolean().nullish(),
- name: z.string().nullish(),
- type: PaymentMethodTypeSchema.optional(),
-});
-
-export const ClientSchema = z.object({
- address_city: z.string().nullish(),
- address_extra: z.string().nullish(),
- address_postal_code: z.string().nullish(),
- address_province: z.string().nullish(),
- address_street: z.string().nullish(),
- bank_iban: z.string().nullish(),
- bank_name: z.string().nullish(),
- bank_swift_code: z.string().nullish(),
- certified_email: z.string().nullish(),
- code: z.string().nullish(),
- contact_person: z.string().nullish(),
- country: z.string().nullish(),
- country_iso: z.string().nullish(),
- created_at: z.string().nullish(),
- default_discount: z.number().nullish(),
- default_payment_method: PaymentMethodSchema.optional(),
- default_payment_terms: z.number().nullish(),
- default_payment_terms_type: PaymentTermsTypeSchema.optional(),
- default_vat: VatTypeSchema.nullish(),
- discount_highlight: z.boolean().nullish(),
- e_invoice: z.boolean().nullish(),
- ei_code: z.string().nullish(),
- email: z.string().nullish(),
- fax: z.string().nullish(),
- first_name: z.string().nullish(),
- has_intent_declaration: z.boolean().nullish(),
- id: z.number().nullish(),
- intent_declaration_protocol_date: z.string().nullish(),
- intent_declaration_protocol_number: z.string().nullish(),
- last_name: z.string().nullish(),
- name: z.string().nullish(),
- notes: z.string().nullish(),
- phone: z.string().nullish(),
- shipping_address: z.string().nullish(),
- tax_code: z.string().nullish(),
- type: ClientTypeSchema.nullish(),
- updated_at: z.string().nullish(),
- vat_number: z.string().nullish(),
-});
diff --git a/apps/infoalloggi/src/server/services/potenziali.service.ts b/apps/infoalloggi/src/server/services/potenziali.service.ts
index 6e64be0..929f2f0 100644
--- a/apps/infoalloggi/src/server/services/potenziali.service.ts
+++ b/apps/infoalloggi/src/server/services/potenziali.service.ts
@@ -10,7 +10,6 @@ import type {
NewPotenzialiGroups,
PotenzialiGroups,
PotenzialiGroupsId,
- PotenzialiGroupsUpdate,
} from "~/schemas/public/PotenzialiGroups";
import type { Users } from "~/schemas/public/Users";
import { db } from "../db";
@@ -89,25 +88,6 @@ export const deletePotenzialeGroup = async (id: PotenzialiGroupsId) => {
}
};
-export const updatePotenzialeGroup = async (
- id: PotenzialiGroupsId,
- data: PotenzialiGroupsUpdate,
-) => {
- try {
- await db
- .updateTable("potenziali_groups")
- .set(data)
- .where("id", "=", id)
- .execute();
- return { status: "success" };
- } catch (e) {
- throw new TRPCError({
- code: "INTERNAL_SERVER_ERROR",
- message: `Failed to update potenziale group, error: ${(e as Error).message}`,
- });
- }
-};
-
export const addPotenziale = async (data: NewPotenziali) => {
try {
await db.insertInto("potenziali").values(data).execute();