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;