feat(database): Add migrations for chat labels, messages, services, interests, announcements, pricing, orders, payments, and miscellaneous data
- Created tables for `chats_etichette`, `messages`, `servizio`, `servizio_interessi`, `servizio_annunci`, `prezziario`, `ordini`, `payments`, and `banlist`. - Established primary and foreign key constraints for data integrity. - Introduced enums for various types including `TipologiaPosizioneEnum`, `OrderTypeEnum`, and `PaymentStatusEnum`. - Seeded initial data for banners, labels, flags, pricing, strings, and users. - Implemented unique constraints where necessary to prevent duplicate entries.
This commit is contained in:
parent
527a7d7f57
commit
66ef4a7fbd
26 changed files with 1021 additions and 868 deletions
15
.vscode/settings.json
vendored
Normal file
15
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"sqltools.connections": [
|
||||
{
|
||||
"ssh": "Disabled",
|
||||
"previewLimit": 50,
|
||||
"server": "localhost",
|
||||
"port": 5433,
|
||||
"driver": "PostgreSQL",
|
||||
"name": "dev",
|
||||
"database": "postgres",
|
||||
"username": "postgres",
|
||||
"password": "rootpost"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# Start a new stage for PostgreSQL
|
||||
FROM postgres:16 AS postgres
|
||||
|
||||
# Set environment variables for PostgreSQL
|
||||
|
||||
ARG POSTGRES_USER
|
||||
ARG POSTGRES_PASSWORD
|
||||
ARG POSTGRES_DB
|
||||
|
||||
ENV POSTGRES_USER=$POSTGRES_USER
|
||||
ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
||||
ENV POSTGRES_DB=$POSTGRES_DB
|
||||
|
||||
# Copy the schema.sql file to the docker-entrypoint-initdb.d directory
|
||||
COPY ./initial/*.sql /docker-entrypoint-initdb.d/
|
||||
|
||||
# Expose the PostgreSQL port
|
||||
EXPOSE 5432
|
||||
CMD ["-p", "5432"]
|
||||
45
apps/db/dev-docker-compose.yml
Normal file
45
apps/db/dev-docker-compose.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
services:
|
||||
db:
|
||||
image: postgres:16
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- dokploy-network
|
||||
ports:
|
||||
- "5433:5432"
|
||||
volumes:
|
||||
- dbdata:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
||||
interval: 1s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
migrate:
|
||||
image: migrate/migrate:latest
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- RECREATION_TOKEN=${RANDOM:-1}
|
||||
volumes:
|
||||
- ./migrations:/migrations:ro
|
||||
networks:
|
||||
- dokploy-network
|
||||
command:
|
||||
[
|
||||
"-path", "/migrations",
|
||||
"-database", "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable",
|
||||
"up"
|
||||
]
|
||||
restart: "no"
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
dbdata:
|
||||
9
apps/db/dev.sh
Normal file
9
apps/db/dev.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
docker compose -p infoalloggi-dev-db -f dev-docker-compose.yml rm -f migrate 2>/dev/null || true
|
||||
|
||||
docker compose -p infoalloggi-dev-db -f dev-docker-compose.yml exec -T db psql -U "${POSTGRES_USER:-postgres}" -d "${POSTGRES_DB:-infoalloggi}" -c "TRUNCATE TABLE IF EXISTS schema_migrations;" 2>/dev/null || echo " schema_migrations table doesn't exist yet (first run)"
|
||||
|
||||
|
||||
docker compose -p infoalloggi-dev-db -f dev-docker-compose.yml up -d
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
|
||||
services:
|
||||
db:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
restart: always
|
||||
networks:
|
||||
- dokploy-network
|
||||
expose:
|
||||
- "5432"
|
||||
volumes:
|
||||
- dbdata:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
||||
interval: 1s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
dbdata:
|
||||
4
apps/db/migrations/000_init.up.sql
Normal file
4
apps/db/migrations/000_init.up.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
-- Extensions
|
||||
CREATE EXTENSION IF NOT EXISTS adminpack WITH SCHEMA pg_catalog;
|
||||
|
||||
COMMENT ON EXTENSION adminpack IS 'administrative functions for PostgreSQL';
|
||||
38
apps/db/migrations/001_users.up.sql
Normal file
38
apps/db/migrations/001_users.up.sql
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
-- Users
|
||||
CREATE TABLE IF NOT EXISTS public.users (
|
||||
id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
username TEXT NOT NULL,
|
||||
email TEXT NOT NULL,
|
||||
"isAdmin" boolean DEFAULT FALSE NOT NULL,
|
||||
"isBlocked" boolean DEFAULT FALSE NOT NULL,
|
||||
PASSWORD TEXT NOT NULL,
|
||||
nome TEXT NOT NULL,
|
||||
cognome TEXT NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
reset_password_token TEXT,
|
||||
reset_password_expires TIMESTAMP WITHOUT TIME ZONE,
|
||||
telefono TEXT NOT NULL,
|
||||
"isAdminMade" boolean DEFAULT FALSE,
|
||||
"isVerified" boolean DEFAULT FALSE NOT NULL,
|
||||
"verificationToken" TEXT,
|
||||
"verificationTokenExpires" TIMESTAMP WITHOUT TIME ZONE,
|
||||
salt TEXT NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.users
|
||||
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Unique Email
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'users_email_key'
|
||||
) THEN
|
||||
ALTER TABLE public.users
|
||||
ADD CONSTRAINT users_email_key UNIQUE (email);
|
||||
END IF;
|
||||
END $$;
|
||||
52
apps/db/migrations/002_usersanagrafica.up.sql
Normal file
52
apps/db/migrations/002_usersanagrafica.up.sql
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
-- User Anagrafica
|
||||
CREATE TABLE IF NOT EXISTS public.users_anagrafica (
|
||||
idanagrafica UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
luogo_nascita TEXT,
|
||||
data_nascita TIMESTAMP WITHOUT TIME ZONE,
|
||||
nazione_nascita TEXT,
|
||||
codice_fiscale TEXT,
|
||||
via_residenza TEXT,
|
||||
civico_residenza TEXT,
|
||||
comune_residenza TEXT,
|
||||
provincia_residenza TEXT,
|
||||
cap_residenza TEXT,
|
||||
nazione_residenza TEXT,
|
||||
sesso TEXT,
|
||||
azienda boolean DEFAULT FALSE NOT NULL,
|
||||
ragione_sociale TEXT,
|
||||
sede_legale TEXT,
|
||||
p_iva TEXT,
|
||||
fatturazione_aziendale boolean DEFAULT FALSE NOT NULL,
|
||||
codice_destinatario TEXT,
|
||||
legale_rappresentante TEXT
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.users_anagrafica
|
||||
ADD CONSTRAINT usersanagrafica_pkey PRIMARY KEY (idanagrafica);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Unique Userid
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'useranagrafica_user_key'
|
||||
) THEN
|
||||
ALTER TABLE public.users_anagrafica
|
||||
ADD CONSTRAINT useranagrafica_user_key UNIQUE (userid);
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'useranagrafica_user'
|
||||
) THEN
|
||||
ALTER TABLE public.users_anagrafica
|
||||
ADD CONSTRAINT useranagrafica_user
|
||||
FOREIGN KEY (userid) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
36
apps/db/migrations/003_usersstorage.up.sql
Normal file
36
apps/db/migrations/003_usersstorage.up.sql
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
-- User Storage
|
||||
CREATE TABLE IF NOT EXISTS public.users_storage (
|
||||
"userId" UUID NOT NULL,
|
||||
"storageId" TEXT NOT NULL,
|
||||
from_admin boolean DEFAULT FALSE NOT NULL,
|
||||
user_storage_id UUID DEFAULT gen_random_uuid () NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$
|
||||
BEGIN
|
||||
ALTER TABLE public.users_storage
|
||||
ADD CONSTRAINT users_storage_pkey PRIMARY KEY (user_storage_id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Unique UserId and StorageId
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'users_storage_user_storage_key'
|
||||
) THEN
|
||||
ALTER TABLE public.users_storage
|
||||
ADD CONSTRAINT users_storage_user_storage_key UNIQUE ("userId", "storageId");
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'userstorage'
|
||||
) THEN
|
||||
ALTER TABLE public.users_storage
|
||||
ADD CONSTRAINT userstorage
|
||||
FOREIGN KEY ("userId") REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
45
apps/db/migrations/004_email.up.sql
Normal file
45
apps/db/migrations/004_email.up.sql
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
-- Emails
|
||||
CREATE TABLE IF NOT EXISTS public.emails (
|
||||
id_email integer NOT NULL,
|
||||
user_id UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
DATA json NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.emails
|
||||
ADD CONSTRAINT emails_pkey PRIMARY KEY (id_email);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Sequence for id_email
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_sequences
|
||||
WHERE schemaname = 'public' AND sequencename = 'emails_id_email_seq'
|
||||
) THEN
|
||||
CREATE SEQUENCE public.emails_id_email_seq
|
||||
AS integer
|
||||
START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER SEQUENCE public.emails_id_email_seq OWNED BY public.emails.id_email;
|
||||
|
||||
-- Set default for id_email
|
||||
ALTER TABLE public.emails
|
||||
ALTER COLUMN id_email
|
||||
SET DEFAULT nextval(
|
||||
'public.emails_id_email_seq'::regclass
|
||||
);
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'email_user'
|
||||
) THEN
|
||||
ALTER TABLE public.emails
|
||||
ADD CONSTRAINT email_user
|
||||
FOREIGN KEY (user_id) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
91
apps/db/migrations/005_annunci.up.sql
Normal file
91
apps/db/migrations/005_annunci.up.sql
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
-- 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 $$;
|
||||
29
apps/db/migrations/006_imagesref.up.sql
Normal file
29
apps/db/migrations/006_imagesref.up.sql
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
-- Image Refs
|
||||
CREATE TABLE IF NOT EXISTS public.images_refs (
|
||||
codice TEXT NOT NULL,
|
||||
ordine integer NOT NULL,
|
||||
img TEXT NOT NULL,
|
||||
thumb TEXT NOT NULL,
|
||||
og_url TEXT NOT NULL
|
||||
);
|
||||
-- Unique Codice and Ordine
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'img_cod_order'
|
||||
) THEN
|
||||
ALTER TABLE public.images_refs
|
||||
ADD CONSTRAINT img_cod_order UNIQUE (codice, ordine);
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Annunci
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'cod_image'
|
||||
) THEN
|
||||
ALTER TABLE public.images_refs
|
||||
ADD CONSTRAINT cod_image
|
||||
FOREIGN KEY (codice) REFERENCES public.annunci (codice)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
26
apps/db/migrations/007_chats.up.sql
Normal file
26
apps/db/migrations/007_chats.up.sql
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
-- Chats
|
||||
CREATE TABLE IF NOT EXISTS public.chats (
|
||||
chatid UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
user_ref UUID NOT NULL,
|
||||
tags TEXT []
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.chats
|
||||
ADD CONSTRAINT chats_pkey PRIMARY KEY (chatid);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'userchats'
|
||||
) THEN
|
||||
ALTER TABLE public.chats
|
||||
ADD CONSTRAINT userchats
|
||||
FOREIGN KEY (user_ref) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
31
apps/db/migrations/008_etichette.up.sql
Normal file
31
apps/db/migrations/008_etichette.up.sql
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
-- Etichette
|
||||
CREATE TABLE IF NOT EXISTS public.etichette (
|
||||
id_etichetta integer NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
color_hex character varying(7) NOT NULL
|
||||
);
|
||||
-- Sequence for id_etichetta
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_sequences
|
||||
WHERE schemaname = 'public' AND sequencename = 'etichette_id_etichetta_seq'
|
||||
) THEN
|
||||
CREATE SEQUENCE public.etichette_id_etichetta_seq
|
||||
AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER SEQUENCE public.etichette_id_etichetta_seq OWNED BY public.etichette.id_etichetta;
|
||||
-- Set default for id_etichetta
|
||||
ALTER TABLE public.etichette
|
||||
ALTER COLUMN id_etichetta
|
||||
SET DEFAULT nextval(
|
||||
'public.etichette_id_etichetta_seq'::regclass
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.etichette
|
||||
ADD CONSTRAINT etichette_pkey PRIMARY KEY (id_etichetta);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
35
apps/db/migrations/009_chatsetichette.up.sql
Normal file
35
apps/db/migrations/009_chatsetichette.up.sql
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
-- Chats Etichette
|
||||
CREATE TABLE IF NOT EXISTS public.chats_etichette (
|
||||
chatid UUID NOT NULL,
|
||||
etichettaid integer NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.chats_etichette
|
||||
ADD CONSTRAINT chats_etichette_pkey PRIMARY KEY (chatid, etichettaid);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Chats
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'chat_etichetta_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.chats_etichette
|
||||
ADD CONSTRAINT chat_etichetta_fkey
|
||||
FOREIGN KEY (chatid) REFERENCES public.chats (chatid)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Etichette
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'etichetta_chetich_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.chats_etichette
|
||||
ADD CONSTRAINT etichetta_chetich_fkey
|
||||
FOREIGN KEY (etichettaid) REFERENCES public.etichette (id_etichetta)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
39
apps/db/migrations/010_messages.up.sql
Normal file
39
apps/db/migrations/010_messages.up.sql
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
-- Messages
|
||||
CREATE TABLE IF NOT EXISTS public.messages (
|
||||
messageid UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
chatid UUID NOT NULL,
|
||||
message TEXT,
|
||||
"time" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
isread boolean DEFAULT FALSE NOT NULL,
|
||||
sender UUID NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.messages
|
||||
ADD CONSTRAINT messages_pkey PRIMARY KEY (messageid);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Chats
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'messages_chatid_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.messages
|
||||
ADD CONSTRAINT messages_chatid_fkey
|
||||
FOREIGN KEY (chatid) REFERENCES public.chats (chatid)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'messages_user_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.messages
|
||||
ADD CONSTRAINT messages_user_fkey
|
||||
FOREIGN KEY (sender) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
89
apps/db/migrations/011_servizio.up.sql
Normal file
89
apps/db/migrations/011_servizio.up.sql
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
-- Tipologia Enum
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE public."TipologiaPosizioneEnum" AS ENUM ('Transitorio', 'Stabile');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN NULL;
|
||||
END $$;
|
||||
-- Servizio Table
|
||||
CREATE TABLE IF NOT EXISTS public.servizio (
|
||||
user_id UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
tipologia public."TipologiaPosizioneEnum" NOT NULL,
|
||||
arredato boolean DEFAULT FALSE NOT NULL,
|
||||
budget integer NOT NULL,
|
||||
n_adulti integer NOT NULL,
|
||||
n_minori integer NOT NULL,
|
||||
animali boolean DEFAULT FALSE NOT NULL,
|
||||
fumatori boolean DEFAULT FALSE NOT NULL,
|
||||
giardino boolean DEFAULT FALSE NOT NULL,
|
||||
parcheggio boolean DEFAULT FALSE NOT NULL,
|
||||
terrazzo boolean DEFAULT FALSE NOT NULL,
|
||||
ascensore boolean DEFAULT FALSE NOT NULL,
|
||||
pianoterra boolean DEFAULT FALSE NOT NULL,
|
||||
motivazione_transitorio TEXT,
|
||||
reddito TEXT,
|
||||
"isSent" boolean DEFAULT FALSE NOT NULL,
|
||||
servizio_id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
decorrenza TIMESTAMP WITHOUT TIME ZONE,
|
||||
"isInterrotto" boolean DEFAULT FALSE NOT NULL,
|
||||
entromese integer,
|
||||
permanenza integer,
|
||||
"isOkAcconto" boolean DEFAULT FALSE NOT NULL,
|
||||
"isOkSaldo" boolean DEFAULT FALSE NOT NULL,
|
||||
"isOkConsulenza" boolean DEFAULT FALSE NOT NULL,
|
||||
doc_personale_fronte_ref UUID,
|
||||
doc_personale_retro_ref UUID,
|
||||
doc_motivazione_ref UUID
|
||||
);
|
||||
-- Primary key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.servizio
|
||||
ADD CONSTRAINT servizio_pkey PRIMARY KEY (servizio_id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'user_servizio'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio
|
||||
ADD CONSTRAINT user_servizio
|
||||
FOREIGN KEY (user_id) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to User Storage
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'servizio_doc_fronte'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio
|
||||
ADD CONSTRAINT servizio_doc_fronte
|
||||
FOREIGN KEY (doc_personale_fronte_ref) REFERENCES public.users_storage (user_storage_id)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to User Storage
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'servizio_doc_retro'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio
|
||||
ADD CONSTRAINT servizio_doc_retro
|
||||
FOREIGN KEY (doc_personale_retro_ref) REFERENCES public.users_storage (user_storage_id)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to User Storage
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'servizio_doc_motivazione'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio
|
||||
ADD CONSTRAINT servizio_doc_motivazione
|
||||
FOREIGN KEY (doc_motivazione_ref) REFERENCES public.users_storage (user_storage_id)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
37
apps/db/migrations/012_serviziointeressi.up.sql
Normal file
37
apps/db/migrations/012_serviziointeressi.up.sql
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
-- Servizio Interessi Table
|
||||
CREATE TABLE IF NOT EXISTS public.servizio_interessi (
|
||||
"annuncioId" integer NOT NULL,
|
||||
"userId" UUID NOT NULL
|
||||
);
|
||||
-- Unique Constraint
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'unique_interest'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_interessi
|
||||
ADD CONSTRAINT unique_interest UNIQUE ("annuncioId", "userId");
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Annunci
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'interesse_annuncio'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_interessi
|
||||
ADD CONSTRAINT interesse_annuncio
|
||||
FOREIGN KEY ("annuncioId") REFERENCES public.annunci (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'interesse_user'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_interessi
|
||||
ADD CONSTRAINT interesse_user
|
||||
FOREIGN KEY ("userId") REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
56
apps/db/migrations/013_servizioannunci.up.sql
Normal file
56
apps/db/migrations/013_servizioannunci.up.sql
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
-- Servizio Annunci
|
||||
CREATE TABLE IF NOT EXISTS public.servizio_annunci (
|
||||
servizio_id UUID NOT NULL,
|
||||
annunci_id integer NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
open_contatti_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
doc_conferma_ref TEXT,
|
||||
user_confirmed_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
accettato_conferma_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
caparra_causale TEXT,
|
||||
caparra_iban TEXT,
|
||||
caparra_importo TEXT,
|
||||
caparra_intestazione TEXT,
|
||||
"hasConfermaAdmin" boolean DEFAULT FALSE NOT NULL,
|
||||
doc_contratto_ref TEXT,
|
||||
gestionale_id integer,
|
||||
contratto_decorrenza date,
|
||||
contratto_scadenza date,
|
||||
contratto_tipo TEXT,
|
||||
doc_registrazione_ref TEXT,
|
||||
doc_conferma_added boolean DEFAULT FALSE NOT NULL,
|
||||
doc_contratto_added boolean DEFAULT FALSE NOT NULL,
|
||||
doc_registrazione_added boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
-- Unique Constraint
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'uniq_annuncio_servizio'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_annunci
|
||||
ADD CONSTRAINT uniq_annuncio_servizio UNIQUE (annunci_id, servizio_id);
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Annunci
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'servizio_annuncio_J_annuncio'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_annunci
|
||||
ADD CONSTRAINT servizio_annuncio_J_annuncio
|
||||
FOREIGN KEY (annunci_id) REFERENCES public.annunci (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Servizio
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'servizio_annuncio_J_servizio'
|
||||
) THEN
|
||||
ALTER TABLE public.servizio_annunci
|
||||
ADD CONSTRAINT servizio_annuncio_J_servizio
|
||||
FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
25
apps/db/migrations/014_prezziario.up.sql
Normal file
25
apps/db/migrations/014_prezziario.up.sql
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
-- Prezziario
|
||||
CREATE TABLE IF NOT EXISTS public.prezziario (
|
||||
idprezziario TEXT NOT NULL,
|
||||
prezzo_cent integer NOT NULL,
|
||||
testo_condizioni TEXT,
|
||||
"isActive" boolean DEFAULT TRUE NOT NULL,
|
||||
nome_it TEXT NOT NULL,
|
||||
nome_en TEXT NOT NULL,
|
||||
desc_it TEXT NOT NULL,
|
||||
desc_en TEXT NOT NULL,
|
||||
sconto integer DEFAULT 0 NOT NULL,
|
||||
"isAcconto" boolean DEFAULT FALSE NOT NULL,
|
||||
"isSaldo" boolean DEFAULT FALSE NOT NULL,
|
||||
"isConsulenza" boolean DEFAULT FALSE NOT NULL,
|
||||
"isStabile" boolean DEFAULT FALSE NOT NULL,
|
||||
"isTransitorio" boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.prezziario
|
||||
ADD CONSTRAINT prezziario_pkey PRIMARY KEY (idprezziario);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
62
apps/db/migrations/015_ordini.up.sql
Normal file
62
apps/db/migrations/015_ordini.up.sql
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
-- Ordini Type
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE public."OrderTypeEnum" AS ENUM (
|
||||
'Acconto',
|
||||
'Saldo',
|
||||
'Consulenza',
|
||||
'Altro'
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN NULL;
|
||||
END $$;
|
||||
-- Ordini Table
|
||||
CREATE TABLE IF NOT EXISTS public.ordini (
|
||||
ordine_id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
packid TEXT NOT NULL,
|
||||
servizio_id UUID NOT NULL,
|
||||
type public."OrderTypeEnum" NOT NULL,
|
||||
"isActive" boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.ordini
|
||||
ADD CONSTRAINT ordini2_pkey PRIMARY KEY (ordine_id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Prezziario
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'ordine_pack_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.ordini
|
||||
ADD CONSTRAINT ordine_pack_fkey
|
||||
FOREIGN KEY (packid) REFERENCES public.prezziario (idprezziario)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Servizio
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'ordine_servizio_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.ordini
|
||||
ADD CONSTRAINT ordine_servizio_fkey
|
||||
FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'ordine_userid_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.ordini
|
||||
ADD CONSTRAINT ordine_userid_fkey
|
||||
FOREIGN KEY (userid) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
61
apps/db/migrations/016_payments.up.sql
Normal file
61
apps/db/migrations/016_payments.up.sql
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
-- Payments Status Enum
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE public."PaymentStatusEnum" AS ENUM ('processing', 'success', 'failed');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN NULL;
|
||||
END $$;
|
||||
-- Payments Table
|
||||
CREATE TABLE IF NOT EXISTS public.payments (
|
||||
id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
amount_cent integer NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
paymentmethod TEXT,
|
||||
paymentname TEXT NOT NULL,
|
||||
paid_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
intent_id TEXT,
|
||||
paymentstatus public."PaymentStatusEnum",
|
||||
servizio_id UUID NOT NULL,
|
||||
ordine_id UUID NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.payments
|
||||
ADD CONSTRAINT payments_pkey PRIMARY KEY (id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Foreign Key to Ordini
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'payments_ordine_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.payments
|
||||
ADD CONSTRAINT payments_ordine_fkey
|
||||
FOREIGN KEY (ordine_id) REFERENCES public.ordini (ordine_id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Servizio
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'payments_servizio_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.payments
|
||||
ADD CONSTRAINT payments_servizio_fkey
|
||||
FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
-- Foreign Key to Users
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'payments_userid_fkey'
|
||||
) THEN
|
||||
ALTER TABLE public.payments
|
||||
ADD CONSTRAINT payments_userid_fkey
|
||||
FOREIGN KEY (userid) REFERENCES public.users (id)
|
||||
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
139
apps/db/migrations/017_misc.up.sql
Normal file
139
apps/db/migrations/017_misc.up.sql
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
-- Banlist Type Enum
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE public."BanType" AS ENUM ('ip', 'email', 'phone', 'cf');
|
||||
|
||||
EXCEPTION WHEN duplicate_object THEN NULL;
|
||||
END $$;
|
||||
-- Banlist Table
|
||||
CREATE TABLE IF NOT EXISTS public.banlist (
|
||||
id integer NOT NULL,
|
||||
VALUE TEXT NOT NULL,
|
||||
type public."BanType" NOT NULL
|
||||
);
|
||||
-- Sequence for Banlist ID
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_sequences
|
||||
WHERE schemaname = 'public' AND sequencename = 'banlist_id_seq'
|
||||
) THEN
|
||||
CREATE SEQUENCE public.banlist_id_seq
|
||||
AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER SEQUENCE public.banlist_id_seq OWNED BY public.banlist.id;
|
||||
-- Set default for Banlist ID
|
||||
ALTER TABLE public.banlist
|
||||
ALTER COLUMN id
|
||||
SET DEFAULT nextval(
|
||||
'public.banlist_id_seq'::regclass
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.banlist
|
||||
ADD CONSTRAINT banlist_pkey PRIMARY KEY (id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Unique Constraint on type and VALUE
|
||||
DO $$ BEGIN IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'banlist_typeval'
|
||||
) THEN
|
||||
ALTER TABLE public.banlist
|
||||
ADD CONSTRAINT banlist_typeval UNIQUE (type, VALUE);
|
||||
END IF;
|
||||
END $$;
|
||||
-- Banners Table
|
||||
CREATE TABLE IF NOT EXISTS public.banners (
|
||||
idbanner TEXT NOT NULL,
|
||||
titolo TEXT,
|
||||
testo TEXT,
|
||||
is_unskippable boolean NOT NULL,
|
||||
has_cta boolean NOT NULL,
|
||||
cta_href TEXT,
|
||||
cta_icon TEXT,
|
||||
cta_text TEXT,
|
||||
color TEXT,
|
||||
is_active boolean NOT NULL,
|
||||
show_public boolean NOT NULL,
|
||||
show_private boolean NOT NULL,
|
||||
hide_duration integer
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.banners
|
||||
ADD CONSTRAINT banners_pkey PRIMARY KEY (idbanner);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Event Queue Table
|
||||
CREATE TABLE IF NOT EXISTS public.event_queue (
|
||||
event_id integer NOT NULL,
|
||||
lock_expires TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
DATA jsonb,
|
||||
status TEXT DEFAULT 'pending'::TEXT NOT NULL
|
||||
);
|
||||
-- Sequence for event_id
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_sequences
|
||||
WHERE schemaname = 'public' AND sequencename = 'event_queue_event_id_seq'
|
||||
) THEN
|
||||
CREATE SEQUENCE public.event_queue_event_id_seq
|
||||
AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER SEQUENCE public.event_queue_event_id_seq OWNED BY public.event_queue.event_id;
|
||||
-- Set default for event_id
|
||||
ALTER TABLE public.event_queue
|
||||
ALTER COLUMN event_id
|
||||
SET DEFAULT nextval(
|
||||
'public.event_queue_event_id_seq'::regclass
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.event_queue
|
||||
ADD CONSTRAINT event_queue_pkey PRIMARY KEY (event_id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Flags Table
|
||||
CREATE TABLE IF NOT EXISTS public.flags (
|
||||
id TEXT NOT NULL,
|
||||
VALUE TEXT NOT NULL
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.flags
|
||||
ADD CONSTRAINT sitesettings_pkey PRIMARY KEY (id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Testi e Stringhe Table
|
||||
CREATE TABLE IF NOT EXISTS public.testi_e_stringhe (
|
||||
stinga_id TEXT NOT NULL,
|
||||
stringa_value TEXT
|
||||
);
|
||||
-- Primary Key
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE public.testi_e_stringhe
|
||||
ADD CONSTRAINT testi_e_stringhe_pkey PRIMARY KEY (stinga_id);
|
||||
EXCEPTION
|
||||
WHEN invalid_table_definition THEN
|
||||
RAISE NOTICE 'Primary key already exists. Ignoring...';
|
||||
END $$;
|
||||
-- Rate Limiter Table
|
||||
CREATE TABLE IF NOT EXISTS public.ratelimiter (
|
||||
KEY TEXT NOT NULL,
|
||||
request_timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
request_count integer NOT NULL
|
||||
);
|
||||
-- Index on KEY
|
||||
CREATE INDEX IF NOT EXISTS ratelimiter_key_index ON public.ratelimiter USING btree (KEY);
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
-- Data for Name: banners
|
||||
-- Data for Name: banners (idempotent)
|
||||
INSERT INTO
|
||||
public.banners (
|
||||
idbanner,
|
||||
|
|
@ -44,9 +44,24 @@ VALUES (
|
|||
TRUE,
|
||||
FALSE,
|
||||
30
|
||||
);
|
||||
)
|
||||
ON CONFLICT (idbanner) DO
|
||||
UPDATE
|
||||
SET
|
||||
titolo = EXCLUDED.titolo,
|
||||
testo = EXCLUDED.testo,
|
||||
is_unskippable = EXCLUDED.is_unskippable,
|
||||
has_cta = EXCLUDED.has_cta,
|
||||
cta_href = EXCLUDED.cta_href,
|
||||
cta_icon = EXCLUDED.cta_icon,
|
||||
cta_text = EXCLUDED.cta_text,
|
||||
color = EXCLUDED.color,
|
||||
is_active = EXCLUDED.is_active,
|
||||
show_public = EXCLUDED.show_public,
|
||||
show_private = EXCLUDED.show_private,
|
||||
hide_duration = EXCLUDED.hide_duration;
|
||||
|
||||
-- Data for Name: etichette
|
||||
-- Data for Name: etichette (idempotent)
|
||||
INSERT INTO
|
||||
public.etichette (
|
||||
id_etichetta,
|
||||
|
|
@ -56,20 +71,29 @@ INSERT INTO
|
|||
VALUES (1, 'testggergerg', '#027b00'),
|
||||
(9, 'F', '#090bfd'),
|
||||
(8, 'Marzia', '#ffed00'),
|
||||
(10, 'W', '#13e96f');
|
||||
(10, 'W', '#13e96f')
|
||||
ON CONFLICT (id_etichetta) DO
|
||||
UPDATE
|
||||
SET
|
||||
title = EXCLUDED.title,
|
||||
color_hex = EXCLUDED.color_hex;
|
||||
|
||||
-- Data for Name: flags
|
||||
-- Data for Name: flags (idempotent)
|
||||
INSERT INTO
|
||||
public.flags (id, VALUE)
|
||||
VALUES (
|
||||
'ANNUNCIO_INTERACTIONS_DISABLED',
|
||||
FALSE
|
||||
'false'
|
||||
),
|
||||
('ONLY_OAUTH', FALSE),
|
||||
('SMS_OFF', TRUE),
|
||||
('EMAIL_OFF', FALSE);
|
||||
('ONLY_OAUTH', 'false'),
|
||||
('SMS_OFF', 'true'),
|
||||
('EMAIL_OFF', 'false')
|
||||
ON CONFLICT (id) DO
|
||||
UPDATE
|
||||
SET
|
||||
VALUE = EXCLUDED.value;
|
||||
|
||||
-- Data for Name: prezziario
|
||||
-- Data for Name: prezziario (idempotent)
|
||||
INSERT INTO
|
||||
public.prezziario (
|
||||
idprezziario,
|
||||
|
|
@ -406,9 +430,25 @@ VALUES (
|
|||
FALSE,
|
||||
TRUE,
|
||||
FALSE
|
||||
);
|
||||
)
|
||||
ON CONFLICT (idprezziario) DO
|
||||
UPDATE
|
||||
SET
|
||||
prezzo_cent = EXCLUDED.prezzo_cent,
|
||||
testo_condizioni = EXCLUDED.testo_condizioni,
|
||||
"isActive" = EXCLUDED."isActive",
|
||||
nome_it = EXCLUDED.nome_it,
|
||||
nome_en = EXCLUDED.nome_en,
|
||||
desc_it = EXCLUDED.desc_it,
|
||||
desc_en = EXCLUDED.desc_en,
|
||||
sconto = EXCLUDED.sconto,
|
||||
"isAcconto" = EXCLUDED."isAcconto",
|
||||
"isSaldo" = EXCLUDED."isSaldo",
|
||||
"isConsulenza" = EXCLUDED."isConsulenza",
|
||||
"isStabile" = EXCLUDED."isStabile",
|
||||
"isTransitorio" = EXCLUDED."isTransitorio";
|
||||
|
||||
-- Data for Name: testi_e_stringhe
|
||||
-- Data for Name: testi_e_stringhe (idempotent)
|
||||
INSERT INTO
|
||||
public.testi_e_stringhe (stinga_id, stringa_value)
|
||||
VALUES (
|
||||
|
|
@ -434,4 +474,8 @@ VALUES (
|
|||
(
|
||||
'PRIVACY_POLICY_ENG',
|
||||
'<h1>Legal Notice and Privacy Policy</h1><h2>Information on the Processing of Personal Data</h2><p>This page describes how this website is managed...</p>'
|
||||
);
|
||||
)
|
||||
ON CONFLICT (stinga_id) DO
|
||||
UPDATE
|
||||
SET
|
||||
stringa_value = EXCLUDED.stringa_value;
|
||||
|
|
@ -1,802 +0,0 @@
|
|||
CREATE EXTENSION IF NOT EXISTS adminpack WITH SCHEMA pg_catalog;
|
||||
|
||||
--
|
||||
-- Name: EXTENSION adminpack; Type: COMMENT; Schema: -; Owner:
|
||||
--
|
||||
COMMENT ON EXTENSION adminpack IS 'administrative functions for PostgreSQL';
|
||||
|
||||
--
|
||||
-- Name: BanType; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TYPE public."BanType" AS ENUM ('ip', 'email', 'phone', 'cf');
|
||||
|
||||
--
|
||||
-- Name: GenericStatusEnum; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TYPE public."GenericStatusEnum" AS ENUM ('pending', 'success', 'failed');
|
||||
|
||||
--
|
||||
-- Name: OrderTypeEnum; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TYPE public."OrderTypeEnum" AS ENUM (
|
||||
'Acconto',
|
||||
'Saldo',
|
||||
'Consulenza',
|
||||
'Altro'
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: PaymentStatusEnum; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TYPE public."PaymentStatusEnum" AS ENUM ('processing', 'success', 'failed');
|
||||
|
||||
--
|
||||
-- Name: TipologiaPosizioneEnum; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TYPE public."TipologiaPosizioneEnum" AS ENUM ('Transitorio', 'Stabile');
|
||||
|
||||
--
|
||||
-- Name: annunci; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE 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
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: COLUMN annunci.caratteristiche; Type: COMMENT; Schema: public; Owner: postgres
|
||||
--
|
||||
COMMENT ON COLUMN public.annunci.caratteristiche IS '@type(Caratteristiche, ''src/utils/kanel-types.ts'', false, false, true)';
|
||||
|
||||
--
|
||||
-- Name: annunci_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE SEQUENCE public.annunci_id_seq AS integer START
|
||||
WITH
|
||||
1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
|
||||
--
|
||||
-- Name: annunci_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER SEQUENCE public.annunci_id_seq OWNED BY public.annunci.id;
|
||||
|
||||
--
|
||||
-- Name: banlist; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.banlist (
|
||||
id integer NOT NULL,
|
||||
VALUE TEXT NOT NULL,
|
||||
type public."BanType" NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: banlist_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE SEQUENCE public.banlist_id_seq AS integer START
|
||||
WITH
|
||||
1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
|
||||
--
|
||||
-- Name: banlist_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER SEQUENCE public.banlist_id_seq OWNED BY public.banlist.id;
|
||||
|
||||
--
|
||||
-- Name: banners; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.banners (
|
||||
idbanner TEXT NOT NULL,
|
||||
titolo TEXT,
|
||||
testo TEXT,
|
||||
is_unskippable boolean NOT NULL,
|
||||
has_cta boolean NOT NULL,
|
||||
cta_href TEXT,
|
||||
cta_icon TEXT,
|
||||
cta_text TEXT,
|
||||
color TEXT,
|
||||
is_active boolean NOT NULL,
|
||||
show_public boolean NOT NULL,
|
||||
show_private boolean NOT NULL,
|
||||
hide_duration integer
|
||||
);
|
||||
|
||||
ALTER TABLE public.banners OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: chats; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.chats (
|
||||
chatid UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
user_ref UUID NOT NULL,
|
||||
tags TEXT []
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: chats_etichette; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.chats_etichette (
|
||||
chatid UUID NOT NULL,
|
||||
etichettaid integer NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: emails; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.emails (
|
||||
id_email integer NOT NULL,
|
||||
user_id UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
DATA json NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: emails_id_email_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE SEQUENCE public.emails_id_email_seq AS integer START
|
||||
WITH
|
||||
1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
|
||||
--
|
||||
-- Name: emails_id_email_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER SEQUENCE public.emails_id_email_seq OWNED BY public.emails.id_email;
|
||||
|
||||
--
|
||||
-- Name: etichette; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.etichette (
|
||||
id_etichetta integer NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
color_hex character varying(7) NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: etichette_id_etichetta_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE SEQUENCE public.etichette_id_etichetta_seq AS integer START
|
||||
WITH
|
||||
1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
|
||||
--
|
||||
-- Name: etichette_id_etichetta_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER SEQUENCE public.etichette_id_etichetta_seq OWNED BY public.etichette.id_etichetta;
|
||||
|
||||
--
|
||||
-- Name: event_queue; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.event_queue (
|
||||
event_id integer NOT NULL,
|
||||
lock_expires TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
DATA jsonb,
|
||||
status TEXT DEFAULT 'pending'::TEXT NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: event_queue_event_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE SEQUENCE public.event_queue_event_id_seq AS integer START
|
||||
WITH
|
||||
1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
|
||||
|
||||
--
|
||||
-- Name: event_queue_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER SEQUENCE public.event_queue_event_id_seq OWNED BY public.event_queue.event_id;
|
||||
|
||||
--
|
||||
-- Name: flags; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.flags ( id TEXT NOT NULL, VALUE TEXT NOT NULL );
|
||||
|
||||
--
|
||||
-- Name: images_refs; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.images_refs (
|
||||
codice TEXT NOT NULL,
|
||||
ordine integer NOT NULL,
|
||||
img TEXT NOT NULL,
|
||||
thumb TEXT NOT NULL,
|
||||
og_url TEXT NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: messages; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.messages (
|
||||
messageid UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
chatid UUID NOT NULL,
|
||||
message TEXT,
|
||||
"time" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
isread boolean DEFAULT FALSE NOT NULL,
|
||||
sender UUID NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: ordini; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.ordini (
|
||||
ordine_id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
packid TEXT NOT NULL,
|
||||
servizio_id UUID NOT NULL,
|
||||
type public."OrderTypeEnum" NOT NULL,
|
||||
"isActive" boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: payments; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.payments (
|
||||
id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
amount_cent integer NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
paymentmethod TEXT,
|
||||
paymentname TEXT NOT NULL,
|
||||
paid_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
intent_id TEXT,
|
||||
paymentstatus public."PaymentStatusEnum",
|
||||
servizio_id UUID NOT NULL,
|
||||
ordine_id UUID NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: prezziario; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.prezziario (
|
||||
idprezziario TEXT NOT NULL,
|
||||
prezzo_cent integer NOT NULL,
|
||||
testo_condizioni TEXT,
|
||||
"isActive" boolean DEFAULT TRUE NOT NULL,
|
||||
nome_it TEXT NOT NULL,
|
||||
nome_en TEXT NOT NULL,
|
||||
desc_it TEXT NOT NULL,
|
||||
desc_en TEXT NOT NULL,
|
||||
sconto integer DEFAULT 0 NOT NULL,
|
||||
"isAcconto" boolean DEFAULT FALSE NOT NULL,
|
||||
"isSaldo" boolean DEFAULT FALSE NOT NULL,
|
||||
"isConsulenza" boolean DEFAULT FALSE NOT NULL,
|
||||
"isStabile" boolean DEFAULT FALSE NOT NULL,
|
||||
"isTransitorio" boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: ratelimiter; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.ratelimiter (
|
||||
KEY TEXT NOT NULL,
|
||||
request_timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
request_count integer NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: servizio; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.servizio (
|
||||
user_id UUID NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
tipologia public."TipologiaPosizioneEnum" NOT NULL,
|
||||
arredato boolean DEFAULT FALSE NOT NULL,
|
||||
budget integer NOT NULL,
|
||||
n_adulti integer NOT NULL,
|
||||
n_minori integer NOT NULL,
|
||||
animali boolean DEFAULT FALSE NOT NULL,
|
||||
fumatori boolean DEFAULT FALSE NOT NULL,
|
||||
giardino boolean DEFAULT FALSE NOT NULL,
|
||||
parcheggio boolean DEFAULT FALSE NOT NULL,
|
||||
terrazzo boolean DEFAULT FALSE NOT NULL,
|
||||
ascensore boolean DEFAULT FALSE NOT NULL,
|
||||
pianoterra boolean DEFAULT FALSE NOT NULL,
|
||||
motivazione_transitorio TEXT,
|
||||
reddito TEXT,
|
||||
"isSent" boolean DEFAULT FALSE NOT NULL,
|
||||
servizio_id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
decorrenza TIMESTAMP WITHOUT TIME ZONE,
|
||||
"isInterrotto" boolean DEFAULT FALSE NOT NULL,
|
||||
entromese integer,
|
||||
permanenza integer,
|
||||
"isOkAcconto" boolean DEFAULT FALSE NOT NULL,
|
||||
"isOkSaldo" boolean DEFAULT FALSE NOT NULL,
|
||||
"isOkConsulenza" boolean DEFAULT FALSE NOT NULL,
|
||||
doc_personale_fronte_ref UUID,
|
||||
doc_personale_retro_ref UUID,
|
||||
doc_motivazione_ref UUID
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: servizio_annunci; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.servizio_annunci (
|
||||
servizio_id UUID NOT NULL,
|
||||
annunci_id integer NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
open_contatti_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
doc_conferma_ref TEXT,
|
||||
user_confirmed_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
accettato_conferma_at TIMESTAMP WITHOUT TIME ZONE,
|
||||
caparra_causale TEXT,
|
||||
caparra_iban TEXT,
|
||||
caparra_importo TEXT,
|
||||
caparra_intestazione TEXT,
|
||||
"hasConfermaAdmin" boolean DEFAULT FALSE NOT NULL,
|
||||
doc_contratto_ref TEXT,
|
||||
gestionale_id integer,
|
||||
contratto_decorrenza date,
|
||||
contratto_scadenza date,
|
||||
contratto_tipo TEXT,
|
||||
doc_registrazione_ref TEXT,
|
||||
doc_conferma_added boolean DEFAULT FALSE NOT NULL,
|
||||
doc_contratto_added boolean DEFAULT FALSE NOT NULL,
|
||||
doc_registrazione_added boolean DEFAULT FALSE NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: servizio_interessi; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.servizio_interessi (
|
||||
"annuncioId" integer NOT NULL,
|
||||
"userId" UUID NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: testi_e_stringhe; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.testi_e_stringhe (
|
||||
stinga_id TEXT NOT NULL,
|
||||
stringa_value TEXT
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: users; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.users (
|
||||
id UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
username TEXT NOT NULL,
|
||||
email TEXT NOT NULL,
|
||||
"isAdmin" boolean DEFAULT FALSE NOT NULL,
|
||||
"isBlocked" boolean DEFAULT FALSE NOT NULL,
|
||||
PASSWORD TEXT NOT NULL,
|
||||
nome TEXT NOT NULL,
|
||||
cognome TEXT NOT NULL,
|
||||
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
|
||||
reset_password_token TEXT,
|
||||
reset_password_expires TIMESTAMP WITHOUT TIME ZONE,
|
||||
telefono TEXT NOT NULL,
|
||||
"isAdminMade" boolean DEFAULT FALSE,
|
||||
"isVerified" boolean DEFAULT FALSE NOT NULL,
|
||||
"verificationToken" TEXT,
|
||||
"verificationTokenExpires" TIMESTAMP WITHOUT TIME ZONE,
|
||||
salt TEXT NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: users_anagrafica; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.users_anagrafica (
|
||||
idanagrafica UUID DEFAULT gen_random_uuid () NOT NULL,
|
||||
userid UUID NOT NULL,
|
||||
luogo_nascita TEXT,
|
||||
data_nascita TIMESTAMP WITHOUT TIME ZONE,
|
||||
nazione_nascita TEXT,
|
||||
codice_fiscale TEXT,
|
||||
via_residenza TEXT,
|
||||
civico_residenza TEXT,
|
||||
comune_residenza TEXT,
|
||||
provincia_residenza TEXT,
|
||||
cap_residenza TEXT,
|
||||
nazione_residenza TEXT,
|
||||
sesso TEXT,
|
||||
azienda boolean DEFAULT FALSE NOT NULL,
|
||||
ragione_sociale TEXT,
|
||||
sede_legale TEXT,
|
||||
p_iva TEXT,
|
||||
fatturazione_aziendale boolean DEFAULT FALSE NOT NULL,
|
||||
codice_destinatario TEXT,
|
||||
legale_rappresentante TEXT
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: users_storage; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE TABLE public.users_storage (
|
||||
"userId" UUID NOT NULL,
|
||||
"storageId" TEXT NOT NULL,
|
||||
from_admin boolean DEFAULT FALSE NOT NULL,
|
||||
user_storage_id UUID DEFAULT gen_random_uuid () NOT NULL
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: annunci id; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.annunci
|
||||
ALTER COLUMN id
|
||||
SET DEFAULT nextval(
|
||||
'public.annunci_id_seq'::regclass
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: banlist id; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.banlist
|
||||
ALTER COLUMN id
|
||||
SET DEFAULT nextval(
|
||||
'public.banlist_id_seq'::regclass
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: emails id_email; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.emails
|
||||
ALTER COLUMN id_email
|
||||
SET DEFAULT nextval(
|
||||
'public.emails_id_email_seq'::regclass
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: etichette id_etichetta; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.etichette
|
||||
ALTER COLUMN id_etichetta
|
||||
SET DEFAULT nextval(
|
||||
'public.etichette_id_etichetta_seq'::regclass
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: event_queue event_id; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.event_queue
|
||||
ALTER COLUMN event_id
|
||||
SET DEFAULT nextval(
|
||||
'public.event_queue_event_id_seq'::regclass
|
||||
);
|
||||
|
||||
--
|
||||
-- Name: annunci annunci_codice_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.annunci
|
||||
ADD CONSTRAINT annunci_codice_key UNIQUE (codice);
|
||||
|
||||
--
|
||||
-- Name: annunci annunci_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.annunci
|
||||
ADD CONSTRAINT annunci_pkey PRIMARY KEY (id);
|
||||
|
||||
--
|
||||
-- Name: banlist banlist_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.banlist
|
||||
ADD CONSTRAINT banlist_pkey PRIMARY KEY (id);
|
||||
|
||||
--
|
||||
-- Name: banners banners_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.banners
|
||||
ADD CONSTRAINT banners_pkey PRIMARY KEY (idbanner);
|
||||
|
||||
--
|
||||
-- Name: chats_etichette chats_etichette_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.chats_etichette
|
||||
ADD CONSTRAINT chats_etichette_pkey PRIMARY KEY (chatid, etichettaid);
|
||||
|
||||
--
|
||||
-- Name: chats chats_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.chats
|
||||
ADD CONSTRAINT chats_pkey PRIMARY KEY (chatid);
|
||||
|
||||
--
|
||||
-- Name: emails emails_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.emails
|
||||
ADD CONSTRAINT emails_pkey PRIMARY KEY (id_email);
|
||||
|
||||
--
|
||||
-- Name: etichette etichette_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.etichette
|
||||
ADD CONSTRAINT etichette_pkey PRIMARY KEY (id_etichetta);
|
||||
|
||||
--
|
||||
-- Name: event_queue event_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.event_queue
|
||||
ADD CONSTRAINT event_queue_pkey PRIMARY KEY (event_id);
|
||||
|
||||
--
|
||||
-- Name: images_refs img_cod_order; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.images_refs
|
||||
ADD CONSTRAINT img_cod_order UNIQUE (codice, ordine);
|
||||
|
||||
--
|
||||
-- Name: messages messages_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.messages
|
||||
ADD CONSTRAINT messages_pkey PRIMARY KEY (messageid);
|
||||
|
||||
--
|
||||
-- Name: ordini ordini2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.ordini
|
||||
ADD CONSTRAINT ordini2_pkey PRIMARY KEY (ordine_id);
|
||||
|
||||
--
|
||||
-- Name: payments payments2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.payments
|
||||
ADD CONSTRAINT payments2_pkey PRIMARY KEY (id);
|
||||
|
||||
--
|
||||
-- Name: prezziario prezziario2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.prezziario
|
||||
ADD CONSTRAINT prezziario2_pkey PRIMARY KEY (idprezziario);
|
||||
|
||||
--
|
||||
-- Name: servizio servizio_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio
|
||||
ADD CONSTRAINT servizio_pkey PRIMARY KEY (servizio_id);
|
||||
|
||||
--
|
||||
-- Name: flags sitesettings_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.flags
|
||||
ADD CONSTRAINT sitesettings_pkey PRIMARY KEY (id);
|
||||
|
||||
--
|
||||
-- Name: testi_e_stringhe testi_e_stringhe_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.testi_e_stringhe
|
||||
ADD CONSTRAINT testi_e_stringhe_pkey PRIMARY KEY (stinga_id);
|
||||
|
||||
--
|
||||
-- Name: banlist typeval; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.banlist
|
||||
ADD CONSTRAINT typeval UNIQUE (type, VALUE);
|
||||
|
||||
--
|
||||
-- Name: servizio_annunci uniq_annuncio_servizio; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_annunci
|
||||
ADD CONSTRAINT uniq_annuncio_servizio UNIQUE (annunci_id, servizio_id);
|
||||
|
||||
--
|
||||
-- Name: users_storage unique_user_storage; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_storage
|
||||
ADD CONSTRAINT unique_user_storage UNIQUE ("userId", "storageId");
|
||||
|
||||
--
|
||||
-- Name: servizio_interessi uniqui_interest; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_interessi
|
||||
ADD CONSTRAINT uniqui_interest UNIQUE ("annuncioId", "userId");
|
||||
|
||||
--
|
||||
-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users
|
||||
ADD CONSTRAINT users_email_key UNIQUE (email);
|
||||
|
||||
--
|
||||
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users
|
||||
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
|
||||
|
||||
--
|
||||
-- Name: users_storage users_storage_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_storage
|
||||
ADD CONSTRAINT users_storage_pkey PRIMARY KEY (user_storage_id);
|
||||
|
||||
--
|
||||
-- Name: users_anagrafica usersanagrafica2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_anagrafica
|
||||
ADD CONSTRAINT usersanagrafica2_pkey PRIMARY KEY (idanagrafica);
|
||||
|
||||
--
|
||||
-- Name: users_anagrafica usserunique2; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_anagrafica
|
||||
ADD CONSTRAINT usserunique2 UNIQUE (userid);
|
||||
|
||||
--
|
||||
-- Name: ratelimiter_key_index; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
CREATE INDEX ratelimiter_key_index ON public.ratelimiter USING btree (KEY);
|
||||
|
||||
--
|
||||
-- Name: chats_etichette chat_etichetta_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.chats_etichette
|
||||
ADD CONSTRAINT chat_etichetta_fkey FOREIGN KEY (chatid) REFERENCES public.chats (chatid) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: images_refs cod_image; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.images_refs
|
||||
ADD CONSTRAINT cod_image FOREIGN KEY (codice) REFERENCES public.annunci (codice);
|
||||
|
||||
--
|
||||
-- Name: emails email_user; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.emails
|
||||
ADD CONSTRAINT email_user FOREIGN KEY (user_id) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: chats_etichette etichetta_chetich_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.chats_etichette
|
||||
ADD CONSTRAINT etichetta_chetich_fkey FOREIGN KEY (etichettaid) REFERENCES public.etichette (id_etichetta) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: servizio_interessi interesse_annuncio; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_interessi
|
||||
ADD CONSTRAINT interesse_annuncio FOREIGN KEY ("annuncioId") REFERENCES public.annunci (id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: servizio_interessi interesse_user; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_interessi
|
||||
ADD CONSTRAINT interesse_user FOREIGN KEY ("userId") REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: messages messages_chatid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.messages
|
||||
ADD CONSTRAINT messages_chatid_fkey FOREIGN KEY (chatid) REFERENCES public.chats (chatid) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: messages messages_user_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.messages
|
||||
ADD CONSTRAINT messages_user_fkey FOREIGN KEY (sender) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: ordini ordine2_pack_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.ordini
|
||||
ADD CONSTRAINT ordine2_pack_fkey FOREIGN KEY (packid) REFERENCES public.prezziario (idprezziario) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: ordini ordine2_servizio_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.ordini
|
||||
ADD CONSTRAINT ordine2_servizio_fkey FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: ordini ordine2_userid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.ordini
|
||||
ADD CONSTRAINT ordine2_userid_fkey FOREIGN KEY (userid) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: payments payments2_ordine_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.payments
|
||||
ADD CONSTRAINT payments2_ordine_fkey FOREIGN KEY (ordine_id) REFERENCES public.ordini (ordine_id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: payments payments2_servizio_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.payments
|
||||
ADD CONSTRAINT payments2_servizio_fkey FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: payments payments2_userid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.payments
|
||||
ADD CONSTRAINT payments2_userid_fkey FOREIGN KEY (userid) REFERENCES public.users (id) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: servizio_annunci servizio_annuncio_J_annuncio; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_annunci
|
||||
ADD CONSTRAINT "servizio_annuncio_J_annuncio" FOREIGN KEY (annunci_id) REFERENCES public.annunci (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: servizio_annunci servizio_annuncio_J_servizio; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio_annunci
|
||||
ADD CONSTRAINT "servizio_annuncio_J_servizio" FOREIGN KEY (servizio_id) REFERENCES public.servizio (servizio_id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: servizio servizio_doc_fronte; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio
|
||||
ADD CONSTRAINT servizio_doc_fronte FOREIGN KEY (doc_personale_fronte_ref) REFERENCES public.users_storage (user_storage_id) ON UPDATE CASCADE ON DELETE SET NULL NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: servizio servizio_doc_motivazione; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio
|
||||
ADD CONSTRAINT servizio_doc_motivazione FOREIGN KEY (doc_motivazione_ref) REFERENCES public.users_storage (user_storage_id) ON UPDATE CASCADE ON DELETE SET NULL NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: servizio servizio_doc_retro; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio
|
||||
ADD CONSTRAINT servizio_doc_retro FOREIGN KEY (doc_personale_retro_ref) REFERENCES public.users_storage (user_storage_id) ON UPDATE CASCADE ON DELETE SET NULL NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: servizio user_servizio; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.servizio
|
||||
ADD CONSTRAINT user_servizio FOREIGN KEY (user_id) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Name: chats userchats; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.chats
|
||||
ADD CONSTRAINT userchats FOREIGN KEY (user_ref) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: users_anagrafica useridfkeyanagrafica2; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_anagrafica
|
||||
ADD CONSTRAINT useridfkeyanagrafica2 FOREIGN KEY (userid) REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
--
|
||||
-- Name: users_storage userstorage; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
ALTER TABLE ONLY public.users_storage
|
||||
ADD CONSTRAINT userstorage FOREIGN KEY ("userId") REFERENCES public.users (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
Loading…
Add table
Reference in a new issue