-- Annunci CREATE TABLE IF NOT EXISTS public.annunci ( id integer NOT NULL, codice TEXT NOT NULL, locatore TEXT, numero TEXT, idlocatore TEXT, indirizzo TEXT, civico TEXT, comune TEXT, cap TEXT, provincia TEXT, regione TEXT, lat TEXT, lon TEXT, indirizzo_secondario TEXT, civico_secondario TEXT, lat_secondario TEXT, lon_secondario TEXT, tipo TEXT, categorie TEXT [], prezzo integer DEFAULT 0 NOT NULL, anno TEXT, classe TEXT, mq numeric, piano TEXT, piano_palazzo integer, unita_condominio integer, numero_vani integer, numero_camere integer, numero_bagni integer, numero_balconi integer, numero_terrazzi integer, numero_box integer, numero_postiauto integer, accessori TEXT [], titolo_it TEXT, desc_it TEXT, titolo_en TEXT, desc_en TEXT, stato TEXT, web boolean, caratteristiche json, homepage boolean, url_video TEXT [], email TEXT, creato_il TIMESTAMP WITHOUT TIME ZONE, modificato_il TIMESTAMP WITHOUT TIME ZONE, consegna integer, disponibile_da date, permanenza INTEGER[], persone TEXT [], updated_at TIMESTAMP WITHOUT TIME ZONE ); COMMENT ON COLUMN public.annunci.caratteristiche IS '@type(Caratteristiche, ''src/utils/kanel-types.ts'', false, false, true)'; -- Sequence for id DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_sequences WHERE schemaname = 'public' AND sequencename = 'annunci_id_seq' ) THEN CREATE SEQUENCE public.annunci_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; END IF; END $$; ALTER SEQUENCE public.annunci_id_seq OWNED BY public.annunci.id; -- Set default for id ALTER TABLE public.annunci ALTER COLUMN id SET DEFAULT nextval( 'public.annunci_id_seq'::regclass ); -- Primary Key DO $$ BEGIN ALTER TABLE public.annunci ADD CONSTRAINT annunci_pkey PRIMARY KEY (id); EXCEPTION WHEN invalid_table_definition THEN RAISE NOTICE 'Primary key already exists. Ignoring...'; END $$; -- Unique Codice DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'annunci_codice_key' ) THEN ALTER TABLE public.annunci ADD CONSTRAINT annunci_codice_key UNIQUE (codice); END IF; END $$;