diff --git a/apps/db/migrations/37_rinnovi.up.sql b/apps/db/migrations/37_rinnovi.up.sql
new file mode 100644
index 0000000..6e4d363
--- /dev/null
+++ b/apps/db/migrations/37_rinnovi.up.sql
@@ -0,0 +1,261 @@
+ALTER TABLE IF EXISTS public.ordini
+ALTER COLUMN servizio_id
+DROP NOT NULL;
+
+ALTER TABLE IF EXISTS public.ordini
+ADD COLUMN IF NOT EXISTS rinnovo_id UUID;
+
+CREATE TABLE IF NOT EXISTS public.rinnovi (
+ id UUID NOT NULL DEFAULT gen_random_uuid (),
+ "userId" UUID NOT NULL,
+ codice TEXT NOT NULL,
+ decorrenza TIMESTAMP WITHOUT TIME ZONE NOT NULL,
+ scadenza timestamp without time zone NOT NULL,
+ gestionale_id TEXT
+);
+
+DO $$ BEGIN IF NOT EXISTS (
+ SELECT 1 FROM pg_constraint
+ WHERE conname = 'rinnovo_user_fkey'
+ ) THEN
+ ALTER TABLE public.rinnovi
+ ADD CONSTRAINT rinnovo_user_fkey
+ FOREIGN KEY ("userId") REFERENCES public.users (id)
+ ON UPDATE CASCADE ON DELETE CASCADE;
+ END IF;
+END $$;
+-- Primary Key
+DO $$
+BEGIN
+ IF NOT EXISTS (
+ SELECT 1 FROM pg_constraint
+ WHERE conname = 'rinnovi_pkey'
+ AND conrelid = 'public.rinnovi'::regclass
+ ) THEN
+ ALTER TABLE public.rinnovi
+ ADD CONSTRAINT rinnovi_pkey PRIMARY KEY (id);
+ END IF;
+END $$;
+
+DO $$
+BEGIN
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'ordine_rinnovo_fkey') THEN
+ ALTER TABLE public.ordini
+ ADD CONSTRAINT ordine_rinnovo_fkey FOREIGN KEY (rinnovo_id) REFERENCES public.rinnovi (id) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
+ END IF;
+END;
+$$;
+
+DO $$
+BEGIN
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'only_one_service') THEN
+ ALTER TABLE public.ordini
+ ADD CONSTRAINT only_one_service CHECK (
+ (
+ servizio_id IS NOT NULL
+ AND rinnovo_id IS NULL
+ )
+ OR (
+ servizio_id IS NULL
+ AND rinnovo_id IS NOT NULL
+ )
+ ) NOT VALID;
+ END IF;
+END;
+$$;
+
+ALTER TABLE IF EXISTS public.prezziario
+ADD COLUMN IF NOT EXISTS order_type "OrderTypeEnum";
+
+ALTER TABLE IF EXISTS public.prezziario
+ADD COLUMN IF NOT EXISTS service_type "TipologiaPosizioneEnum";
+
+UPDATE public.prezziario
+SET
+ service_type = 'Transitorio'
+WHERE
+ idprezziario = 'ACCONTO_BD'
+ OR idprezziario LIKE 'SALDOBD%'
+ OR idprezziario = 'CONS_TRANS'
+ OR idprezziario = 'CONS_30GG';
+
+UPDATE public.prezziario
+SET
+ service_type = 'Stabile'
+WHERE
+ idprezziario = 'ACCONTO_CA'
+ OR idprezziario LIKE 'SALDOCA%'
+ OR idprezziario = 'CONS_COMM'
+ OR idprezziario = 'CONS_4+4'
+ OR idprezziario = 'CONS_3+2';
+
+UPDATE public.prezziario
+SET
+ order_type = 'Acconto'
+WHERE
+ idprezziario LIKE 'ACCONTO%';
+
+UPDATE public.prezziario
+SET
+ order_type = 'Saldo'
+WHERE
+ idprezziario LIKE 'SALDO%';
+
+UPDATE public.prezziario
+SET
+ order_type = 'Consulenza'
+WHERE
+ idprezziario LIKE 'CONS%';
+
+ALTER TABLE IF EXISTS public.prezziario
+DROP COLUMN IF EXISTS "isAcconto";
+
+ALTER TABLE IF EXISTS public.prezziario
+DROP COLUMN IF EXISTS "isSaldo";
+
+ALTER TABLE IF EXISTS public.prezziario
+DROP COLUMN IF EXISTS "isConsulenza";
+
+ALTER TABLE IF EXISTS public.prezziario
+DROP COLUMN IF EXISTS "isStabile";
+
+ALTER TABLE IF EXISTS public.prezziario
+DROP COLUMN IF EXISTS "isTransitorio";
+
+ALTER TABLE IF EXISTS public.prezziario
+ADD COLUMN IF NOT EXISTS service_variant integer;
+
+UPDATE public.prezziario
+SET
+ service_variant = 4
+WHERE
+ idprezziario = 'SALDOBD_12MESI';
+
+UPDATE public.prezziario
+SET
+ service_variant = 0
+WHERE
+ idprezziario = 'SALDOBD_1MESE';
+
+UPDATE public.prezziario
+SET
+ service_variant = 1
+WHERE
+ idprezziario = 'SALDOBD_3MESI';
+
+UPDATE public.prezziario
+SET
+ service_variant = 2
+WHERE
+ idprezziario = 'SALDOBD_6MESI';
+
+UPDATE public.prezziario
+SET
+ service_variant = 3
+WHERE
+ idprezziario = 'SALDOBD_9MESI';
+
+UPDATE public.prezziario
+SET
+ service_variant = 0
+WHERE
+ idprezziario = 'SALDOCA500';
+
+UPDATE public.prezziario
+SET
+ service_variant = 1
+WHERE
+ idprezziario = 'SALDOCA500+';
+
+UPDATE public.prezziario
+SET
+ service_variant = 2
+WHERE
+ idprezziario = 'SALDOCA700+';
+
+INSERT INTO
+ public.prezziario (
+ idprezziario,
+ prezzo_cent,
+ testo_condizioni,
+ "isActive",
+ nome_it,
+ nome_en,
+ desc_it,
+ desc_en,
+ sconto,
+ order_type,
+ service_type,
+ service_variant
+ )
+VALUES (
+ 'CERCO_BD365',
+ 46000,
+ 'CONDIZIONI_CERCHI',
+ TRUE,
+ 'Rinnovo permanenza 12 mesi',
+ 'Renewal 12 months',
+ 'Rinnovo permanenza 12 mesi',
+ 'Renewal 12 months',
+ 0,
+ 'Rinnovo',
+ 'Transitorio',
+ 4
+ ),
+ (
+ 'CERCO_BD30',
+ 8000,
+ 'CONDIZIONI_CERCHI',
+ TRUE,
+ 'Rinnovo permanenza 1 mese',
+ 'Renewal 1 month',
+ 'Rinnovo permanenza 1 mese',
+ 'Renewal 1 month',
+ 0,
+ 'Rinnovo',
+ 'Transitorio',
+ 0
+ ),
+ (
+ 'CERCO_BD90',
+ 25000,
+ 'CONDIZIONI_CERCHI',
+ TRUE,
+ 'Rinnovo permanenza 3 mesi',
+ 'Renewal 3 months',
+ 'Rinnovo permanenza 3 mesi',
+ 'Renewal 3 months',
+ 0,
+ 'Rinnovo',
+ 'Transitorio',
+ 1
+ ),
+ (
+ 'CERCO_BD180',
+ 36000,
+ 'CONDIZIONI_CERCHI',
+ TRUE,
+ 'Rinnovo permanenza 6 mesi',
+ 'Renewal 6 months',
+ 'Rinnovo permanenza 6 mesi',
+ 'Renewal 6 months',
+ 0,
+ 'Rinnovo',
+ 'Transitorio',
+ 2
+ ),
+ (
+ 'CERCO_BD270',
+ 41000,
+ 'CONDIZIONI_CERCHI',
+ TRUE,
+ 'Rinnovo permanenza 9 mesi',
+ 'Renewal 9 months',
+ 'Rinnovo permanenza 9 mesi',
+ 'Renewal 9 months',
+ 0,
+ 'Rinnovo',
+ 'Transitorio',
+ 3
+ )
+ON CONFLICT (idprezziario) DO NOTHING;
\ No newline at end of file
diff --git a/apps/infoalloggi/src/components/area-riservata/dashboard.tsx b/apps/infoalloggi/src/components/area-riservata/dashboard.tsx
index d91dc9f..3cd7e65 100644
--- a/apps/infoalloggi/src/components/area-riservata/dashboard.tsx
+++ b/apps/infoalloggi/src/components/area-riservata/dashboard.tsx
@@ -59,7 +59,7 @@ export const AdminDashboard = () => {
};
export const UserDashboard = ({ userId }: { userId: UsersId }) => {
- const { data, isLoading } = api.servizio.getAllServizioAnnunci.useQuery({
+ const { data, isLoading } = api.servizio.getServizioRinnovi.useQuery({
userId,
});
@@ -70,7 +70,7 @@ export const UserDashboard = ({ userId }: { userId: UsersId }) => {
Le tue ricerche
-
+
diff --git a/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx b/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx
index b947e73..4bc28ea 100644
--- a/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx
+++ b/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx
@@ -465,7 +465,7 @@ export const SaldoButton = ({
return (