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
|
INSERT INTO
|
||||||
public.banners (
|
public.banners (
|
||||||
idbanner,
|
idbanner,
|
||||||
|
|
@ -44,9 +44,24 @@ VALUES (
|
||||||
TRUE,
|
TRUE,
|
||||||
FALSE,
|
FALSE,
|
||||||
30
|
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
|
INSERT INTO
|
||||||
public.etichette (
|
public.etichette (
|
||||||
id_etichetta,
|
id_etichetta,
|
||||||
|
|
@ -56,20 +71,29 @@ INSERT INTO
|
||||||
VALUES (1, 'testggergerg', '#027b00'),
|
VALUES (1, 'testggergerg', '#027b00'),
|
||||||
(9, 'F', '#090bfd'),
|
(9, 'F', '#090bfd'),
|
||||||
(8, 'Marzia', '#ffed00'),
|
(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
|
INSERT INTO
|
||||||
public.flags (id, VALUE)
|
public.flags (id, VALUE)
|
||||||
VALUES (
|
VALUES (
|
||||||
'ANNUNCIO_INTERACTIONS_DISABLED',
|
'ANNUNCIO_INTERACTIONS_DISABLED',
|
||||||
FALSE
|
'false'
|
||||||
),
|
),
|
||||||
('ONLY_OAUTH', FALSE),
|
('ONLY_OAUTH', 'false'),
|
||||||
('SMS_OFF', TRUE),
|
('SMS_OFF', 'true'),
|
||||||
('EMAIL_OFF', FALSE);
|
('EMAIL_OFF', 'false')
|
||||||
|
ON CONFLICT (id) DO
|
||||||
|
UPDATE
|
||||||
|
SET
|
||||||
|
VALUE = EXCLUDED.value;
|
||||||
|
|
||||||
-- Data for Name: prezziario
|
-- Data for Name: prezziario (idempotent)
|
||||||
INSERT INTO
|
INSERT INTO
|
||||||
public.prezziario (
|
public.prezziario (
|
||||||
idprezziario,
|
idprezziario,
|
||||||
|
|
@ -406,9 +430,25 @@ VALUES (
|
||||||
FALSE,
|
FALSE,
|
||||||
TRUE,
|
TRUE,
|
||||||
FALSE
|
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
|
INSERT INTO
|
||||||
public.testi_e_stringhe (stinga_id, stringa_value)
|
public.testi_e_stringhe (stinga_id, stringa_value)
|
||||||
VALUES (
|
VALUES (
|
||||||
|
|
@ -434,4 +474,8 @@ VALUES (
|
||||||
(
|
(
|
||||||
'PRIVACY_POLICY_ENG',
|
'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>'
|
'<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