netgescon-day0/export-205/db/netgescon-baseline-schema.sql

8829 lines
452 KiB
SQL

/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: 127.0.0.1 Database: netgescon
-- ------------------------------------------------------
-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `accounting_balances`
--
DROP TABLE IF EXISTS `accounting_balances`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `accounting_balances` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`gestione_id` bigint(20) unsigned NOT NULL,
`chart_account_id` bigint(20) unsigned NOT NULL,
`opening_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`total_debit` decimal(15,2) NOT NULL DEFAULT 0.00,
`total_credit` decimal(15,2) NOT NULL DEFAULT 0.00,
`closing_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`calculation_date` date NOT NULL,
`last_updated` timestamp NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_balances_unique` (`gestione_id`,`chart_account_id`),
KEY `accounting_balances_chart_account_id_foreign` (`chart_account_id`),
KEY `idx_balances_calc_date` (`calculation_date`),
CONSTRAINT `accounting_balances_chart_account_id_foreign` FOREIGN KEY (`chart_account_id`) REFERENCES `piano_conti` (`id`) ON DELETE CASCADE,
CONSTRAINT `accounting_balances_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni` (`id_gestione`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `addebiti_personalizzati`
--
DROP TABLE IF EXISTS `addebiti_personalizzati`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `addebiti_personalizzati` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`legacy_id` int(11) DEFAULT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`soggetto_id` bigint(20) unsigned DEFAULT NULL,
`ruolo` enum('P','I') DEFAULT NULL,
`tipo_gestione` enum('O','R','S') DEFAULT NULL,
`numero_straordinaria` int(11) NOT NULL DEFAULT 0,
`codice_spesa` varchar(50) DEFAULT NULL,
`natura2` varchar(10) DEFAULT NULL,
`tabella_millesimale_id` bigint(20) unsigned DEFAULT NULL,
`importo` decimal(15,4) NOT NULL,
`is_unico` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `addebiti_personalizzati_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `addebiti_personalizzati_soggetto_id_foreign` (`soggetto_id`),
KEY `addebiti_personalizzati_tabella_millesimale_id_foreign` (`tabella_millesimale_id`),
KEY `addebiti_personalizzati_gestione_id_tipo_gestione_index` (`gestione_id`,`tipo_gestione`),
KEY `addebiti_personalizzati_tenant_id_index` (`tenant_id`),
KEY `addebiti_personalizzati_legacy_id_index` (`legacy_id`),
CONSTRAINT `addebiti_personalizzati_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `addebiti_personalizzati_soggetto_id_foreign` FOREIGN KEY (`soggetto_id`) REFERENCES `anagrafiche` (`id`),
CONSTRAINT `addebiti_personalizzati_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`),
CONSTRAINT `addebiti_personalizzati_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25407 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `adempimenti_fiscali`
--
DROP TABLE IF EXISTS `adempimenti_fiscali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `adempimenti_fiscali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) DEFAULT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`tipo` varchar(50) NOT NULL,
`anno_fiscale` int(11) DEFAULT NULL,
`titolo` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`stato` varchar(30) NOT NULL DEFAULT 'bozza',
`scadenza` date DEFAULT NULL,
`data_completamento` date DEFAULT NULL,
`periodicita` varchar(30) DEFAULT NULL,
`metadati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadati`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `adempimenti_fiscali_gestione_id_foreign` (`gestione_id`),
KEY `adempimenti_fiscali_stabile_anno_tipo_idx` (`stabile_id`,`anno_fiscale`,`tipo`),
KEY `adempimenti_fiscali_tenant_id_index` (`tenant_id`),
KEY `adempimenti_fiscali_tipo_index` (`tipo`),
KEY `adempimenti_fiscali_anno_fiscale_index` (`anno_fiscale`),
KEY `adempimenti_fiscali_stato_index` (`stato`),
KEY `adempimenti_fiscali_scadenza_index` (`scadenza`),
CONSTRAINT `adempimenti_fiscali_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `adempimenti_fiscali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_canoni_dovuti`
--
DROP TABLE IF EXISTS `affitti_canoni_dovuti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_canoni_dovuti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`affitto_id` bigint(20) unsigned NOT NULL,
`anno` int(11) DEFAULT NULL,
`mese` int(11) DEFAULT NULL,
`mese_descrizione` varchar(50) DEFAULT NULL,
`fitto` decimal(10,2) DEFAULT NULL,
`istat_percentuale` decimal(8,3) DEFAULT NULL,
`istat_importo` decimal(10,2) DEFAULT NULL,
`descrizione_1` varchar(255) DEFAULT NULL,
`descrizione_2` varchar(255) DEFAULT NULL,
`descrizione_3` varchar(255) DEFAULT NULL,
`descrizione_4` varchar(255) DEFAULT NULL,
`importo_1` decimal(10,2) DEFAULT NULL,
`importo_2` decimal(10,2) DEFAULT NULL,
`importo_3` decimal(12,2) DEFAULT NULL,
`importo_4` decimal(12,2) DEFAULT NULL,
`bollo` decimal(10,2) DEFAULT NULL,
`totale` decimal(10,2) DEFAULT NULL,
`n_ricevuta` varchar(50) DEFAULT NULL,
`data_emissione` date DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`saldo_progressivo` decimal(12,2) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `affitti_canoni_dovuti_affitto_id_anno_mese_index` (`affitto_id`,`anno`,`mese`),
CONSTRAINT `affitti_canoni_dovuti_affitto_id_foreign` FOREIGN KEY (`affitto_id`) REFERENCES `affitti_immobili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_canoni_pagati`
--
DROP TABLE IF EXISTS `affitti_canoni_pagati`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_canoni_pagati` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`affitto_id` bigint(20) unsigned NOT NULL,
`anno` int(11) DEFAULT NULL,
`mese` int(11) DEFAULT NULL,
`mese_descrizione` varchar(50) DEFAULT NULL,
`data_pagamento` date DEFAULT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`fitto` decimal(10,2) DEFAULT NULL,
`istat_percentuale` decimal(8,3) DEFAULT NULL,
`istat_importo` decimal(10,2) DEFAULT NULL,
`descrizione_1` varchar(255) DEFAULT NULL,
`descrizione_2` varchar(255) DEFAULT NULL,
`importo_1` decimal(10,2) DEFAULT NULL,
`importo_2` decimal(10,2) DEFAULT NULL,
`bollo` decimal(10,2) DEFAULT NULL,
`totale` decimal(10,2) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `affitti_canoni_pagati_affitto_id_anno_mese_index` (`affitto_id`,`anno`,`mese`),
CONSTRAINT `affitti_canoni_pagati_affitto_id_foreign` FOREIGN KEY (`affitto_id`) REFERENCES `affitti_immobili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_clausole`
--
DROP TABLE IF EXISTS `affitti_clausole`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_clausole` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`titolo` varchar(255) DEFAULT NULL,
`testo` longtext NOT NULL,
`ordine` int(11) NOT NULL DEFAULT 0,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_contratto_clausole`
--
DROP TABLE IF EXISTS `affitti_contratto_clausole`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_contratto_clausole` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`affitto_id` bigint(20) unsigned NOT NULL,
`clausola_id` bigint(20) unsigned DEFAULT NULL,
`titolo` varchar(255) DEFAULT NULL,
`testo` longtext DEFAULT NULL,
`periodicita` enum('mensile','annuale','una_tantum') DEFAULT NULL,
`importo` decimal(12,2) DEFAULT NULL,
`ordine` int(11) NOT NULL DEFAULT 0,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `affitti_contratto_clausole_clausola_id_foreign` (`clausola_id`),
KEY `affitti_contratto_clausole_affitto_id_ordine_index` (`affitto_id`,`ordine`),
CONSTRAINT `affitti_contratto_clausole_affitto_id_foreign` FOREIGN KEY (`affitto_id`) REFERENCES `affitti_immobili` (`id`) ON DELETE CASCADE,
CONSTRAINT `affitti_contratto_clausole_clausola_id_foreign` FOREIGN KEY (`clausola_id`) REFERENCES `affitti_clausole` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_immobili`
--
DROP TABLE IF EXISTS `affitti_immobili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_immobili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`codice_stabile_legacy` varchar(10) DEFAULT NULL,
`codice_appartamento` varchar(50) NOT NULL,
`proprietario_nome` varchar(255) DEFAULT NULL,
`proprietario_intesta` varchar(255) DEFAULT NULL,
`descrizione_immobile` varchar(255) DEFAULT NULL,
`indirizzo_immobile` varchar(255) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(5) DEFAULT NULL,
`nome_inquilino` varchar(255) DEFAULT NULL,
`rubrica_inquilino_id` bigint(20) unsigned DEFAULT NULL,
`rendita_catastale` decimal(10,2) DEFAULT NULL,
`importo_fitto` decimal(10,2) DEFAULT NULL,
`particella` varchar(50) DEFAULT NULL,
`subalterno` varchar(20) DEFAULT NULL,
`categoria_catastale` varchar(20) DEFAULT NULL,
`classe_catastale` varchar(20) DEFAULT NULL,
`consistenza_catastale` varchar(50) DEFAULT NULL,
`superficie_catastale_mq` decimal(10,2) DEFAULT NULL,
`interno_catastale` varchar(30) DEFAULT NULL,
`piano_catastale` varchar(30) DEFAULT NULL,
`numero_registrazione_ade` varchar(60) DEFAULT NULL,
`data_registrazione_ade` date DEFAULT NULL,
`destinazione_uso` varchar(100) DEFAULT NULL,
`comune_catastale_codice` varchar(10) DEFAULT NULL,
`comune_catastale_nome` varchar(100) DEFAULT NULL,
`sezione_urbana` varchar(20) DEFAULT NULL,
`foglio` varchar(20) DEFAULT NULL,
`inizio_contratto` date DEFAULT NULL,
`presa_in_carico_operativa_dal` date DEFAULT NULL,
`ultimo_rinnovo` date DEFAULT NULL,
`prossima_scadenza` date DEFAULT NULL,
`prossima_registrazione` date DEFAULT NULL,
`data_fine_contratto` date DEFAULT NULL,
`note` text DEFAULT NULL,
`def_ammin` varchar(50) DEFAULT NULL,
`descr_1_voce` varchar(255) DEFAULT NULL,
`tipo_riga` varchar(20) DEFAULT NULL,
`inte_cc` varchar(100) DEFAULT NULL,
`iban` varchar(34) DEFAULT NULL,
`conto_bancario_id` bigint(20) unsigned DEFAULT NULL,
`obsoleto` tinyint(1) NOT NULL DEFAULT 0,
`obsoleto_dal` date DEFAULT NULL,
`motivo_obsolescenza` text DEFAULT NULL,
`giorno_emissione_canone` tinyint(3) unsigned NOT NULL DEFAULT 5,
`mese_adempimenti_annuali` tinyint(3) unsigned NOT NULL DEFAULT 1,
`giorno_adempimenti_annuali` tinyint(3) unsigned NOT NULL DEFAULT 30,
`imposta_registro_annuale` decimal(12,2) DEFAULT NULL,
`quota_imposta_inquilino_percent` decimal(5,2) NOT NULL DEFAULT 50.00,
`imposta_bollo_annuale` decimal(12,2) DEFAULT NULL,
`selez` varchar(10) DEFAULT NULL,
`num_ccp` varchar(50) DEFAULT NULL,
`autorizz_674` varchar(50) DEFAULT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `affitti_immobili_codice_stabile_legacy_codice_appartamento_index` (`codice_stabile_legacy`,`codice_appartamento`),
KEY `affitti_immobili_stabile_id_index` (`stabile_id`),
KEY `affitti_immobili_codice_stabile_legacy_index` (`codice_stabile_legacy`),
KEY `affitti_immobili_codice_appartamento_index` (`codice_appartamento`),
KEY `affitti_immobili_unita_immobiliare_id_index` (`unita_immobiliare_id`),
KEY `affitti_immobili_rubrica_inquilino_id_foreign` (`rubrica_inquilino_id`),
KEY `affitti_immobili_conto_bancario_id_foreign` (`conto_bancario_id`),
KEY `affitti_immobili_obsoleto_stabile_idx` (`obsoleto`,`stabile_id`),
CONSTRAINT `affitti_immobili_conto_bancario_id_foreign` FOREIGN KEY (`conto_bancario_id`) REFERENCES `dati_bancari` (`id`) ON DELETE SET NULL,
CONSTRAINT `affitti_immobili_rubrica_inquilino_id_foreign` FOREIGN KEY (`rubrica_inquilino_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `affitti_inquilini`
--
DROP TABLE IF EXISTS `affitti_inquilini`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `affitti_inquilini` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`affitto_id` bigint(20) unsigned NOT NULL,
`rubrica_inquilino_id` bigint(20) unsigned DEFAULT NULL,
`nome_visualizzato` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`telefono` varchar(50) DEFAULT NULL,
`documenti_note` text DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `affitti_inquilini_rubrica_inquilino_id_foreign` (`rubrica_inquilino_id`),
KEY `affitti_inquilini_affitto_id_attivo_index` (`affitto_id`,`attivo`),
CONSTRAINT `affitti_inquilini_affitto_id_foreign` FOREIGN KEY (`affitto_id`) REFERENCES `affitti_immobili` (`id`) ON DELETE CASCADE,
CONSTRAINT `affitti_inquilini_rubrica_inquilino_id_foreign` FOREIGN KEY (`rubrica_inquilino_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_requests`
--
DROP TABLE IF EXISTS `ai_requests`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_requests` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`context` varchar(50) NOT NULL DEFAULT 'incassi',
`request_text` longtext NOT NULL,
`response_text` longtext DEFAULT NULL,
`filters_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`filters_json`)),
`meta_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta_json`)),
`status` varchar(20) NOT NULL DEFAULT 'open',
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ai_requests_context_status_index` (`context`,`status`),
KEY `ai_requests_created_by_index` (`created_by`),
KEY `ai_requests_updated_by_index` (`updated_by`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `algoritmi_ripartizione`
--
DROP TABLE IF EXISTS `algoritmi_ripartizione`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `algoritmi_ripartizione` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`tipo_consumo` enum('acqua_fredda','acqua_calda','gas','riscaldamento') NOT NULL,
`nome_algoritmo` varchar(255) NOT NULL,
`parametri_algoritmo` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`parametri_algoritmo`)),
`quota_fissa_percentuale` decimal(5,2) NOT NULL DEFAULT 30.00,
`quota_consumo_percentuale` decimal(5,2) NOT NULL DEFAULT 70.00,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`validita_da` date NOT NULL,
`validita_a` date DEFAULT NULL,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `algoritmi_ripartizione_stabile_id_tipo_consumo_attivo_index` (`stabile_id`,`tipo_consumo`,`attivo`),
CONSTRAINT `algoritmi_ripartizione_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `aliquote_iva`
--
DROP TABLE IF EXISTS `aliquote_iva`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `aliquote_iva` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(20) NOT NULL,
`valore` decimal(5,2) NOT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `aliquote_iva_codice_unique` (`codice`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `allegati`
--
DROP TABLE IF EXISTS `allegati`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `allegati` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`nome_file_originale` varchar(255) NOT NULL,
`nome_file_storage` varchar(255) NOT NULL,
`percorso_file_storage` text NOT NULL,
`tipo_mime` varchar(100) NOT NULL,
`dimensione_byte` bigint(20) unsigned NOT NULL,
`descrizione` text DEFAULT NULL,
`allegabile_id` bigint(20) unsigned NOT NULL,
`allegabile_type` varchar(100) NOT NULL,
`id_utente_caricamento` bigint(20) unsigned DEFAULT NULL,
`tags` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `allegati_nome_file_storage_unique` (`nome_file_storage`),
KEY `allegati_allegabile_id_allegabile_type_index` (`allegabile_id`,`allegabile_type`),
KEY `allegati_stabile_id_foreign` (`stabile_id`),
CONSTRAINT `allegati_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `amministratori`
--
DROP TABLE IF EXISTS `amministratori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `amministratori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`cognome` varchar(255) NOT NULL,
`user_id` bigint(20) unsigned NOT NULL,
`denominazione_studio` varchar(255) DEFAULT NULL,
`partita_iva` varchar(255) DEFAULT NULL,
`codice_fiscale_studio` varchar(255) DEFAULT NULL,
`indirizzo_studio` varchar(255) DEFAULT NULL,
`cap_studio` varchar(10) DEFAULT NULL,
`citta_studio` varchar(60) DEFAULT NULL,
`provincia_studio` varchar(2) DEFAULT NULL,
`telefono_studio` varchar(255) DEFAULT NULL,
`cellulare` varchar(255) DEFAULT NULL,
`email_studio` varchar(255) DEFAULT NULL,
`pec_studio` varchar(255) DEFAULT NULL,
`database_attivo` varchar(255) DEFAULT NULL COMMENT 'Nome del database dedicato per questo amministratore',
`abilita_import_stabili` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Se true, l''amministratore può importare i propri stabili',
`fe_cassetto_enabled` tinyint(1) NOT NULL DEFAULT 0,
`fe_cassetto_expires_at` date DEFAULT NULL,
`fe_cassetto_base_url` varchar(512) DEFAULT NULL,
`fe_cassetto_password_script` varchar(255) DEFAULT NULL,
`fe_cassetto_username` varchar(255) DEFAULT NULL,
`fe_cassetto_password` text DEFAULT NULL,
`fe_cassetto_pin` varchar(255) DEFAULT NULL,
`server_database` varchar(255) DEFAULT NULL COMMENT 'IP/hostname del server che ospita il database',
`server_port` int(11) DEFAULT 3306 COMMENT 'Porta del server database',
`server_username` varchar(255) DEFAULT NULL COMMENT 'Username database (se diverso dal default)',
`server_password_encrypted` text DEFAULT NULL COMMENT 'Password database criptata',
`stato_sincronizzazione` enum('attivo','manutenzione','errore','migrazione') NOT NULL DEFAULT 'attivo' COMMENT 'Stato sincronizzazione database',
`ultimo_backup` timestamp NULL DEFAULT NULL COMMENT 'Data ultimo backup automatico',
`dimensione_archivio` bigint(20) DEFAULT NULL COMMENT 'Dimensione archivio in bytes',
`url_accesso` varchar(255) DEFAULT NULL COMMENT 'URL specifico per accesso diretto (multi-server)',
`dns_principale` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Se true, questo server gestisce il DNS routing',
`priorita_server` tinyint(4) NOT NULL DEFAULT 1 COMMENT 'Priorità server (1=principale, 2=backup, etc.)',
`cartella_dati` varchar(255) DEFAULT NULL COMMENT 'Percorso cartella dati amministratore',
`impostazioni` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Impostazioni personalizzate amministratore' CHECK (json_valid(`impostazioni`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`ultimo_accesso` timestamp NULL DEFAULT NULL,
`codice_amministratore` varchar(8) NOT NULL,
`codice_univoco` varchar(8) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `amministratori_codice_amministratore_unique` (`codice_amministratore`),
UNIQUE KEY `amministratori_codice_univoco_unique` (`codice_univoco`),
UNIQUE KEY `idx_amministratori_codice_univoco_unique` (`codice_univoco`),
UNIQUE KEY `amministratori_partita_iva_unique` (`partita_iva`),
KEY `amministratori_user_id_foreign` (`user_id`),
CONSTRAINT `amministratori_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_amministratori_codice_univoco BEFORE INSERT ON amministratori
FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('AMMINISTRATORI', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `anagrafica_condominiale`
--
DROP TABLE IF EXISTS `anagrafica_condominiale`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `anagrafica_condominiale` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso amministratori',
`codice_univoco` varchar(8) NOT NULL COMMENT 'Codice univoco persona (8 caratteri)',
`tipo_soggetto` enum('persona_fisica','persona_giuridica','ditta_individuale') NOT NULL DEFAULT 'persona_fisica',
`cognome` varchar(255) DEFAULT NULL COMMENT 'Cognome (se persona fisica)',
`nome` varchar(255) DEFAULT NULL COMMENT 'Nome (se persona fisica)',
`denominazione` varchar(255) DEFAULT NULL COMMENT 'Denominazione (se persona giuridica)',
`codice_fiscale` varchar(16) NOT NULL COMMENT 'Codice fiscale',
`partita_iva` varchar(11) DEFAULT NULL COMMENT 'Partita IVA (se presente)',
`data_nascita` date DEFAULT NULL,
`luogo_nascita` varchar(255) DEFAULT NULL,
`provincia_nascita` varchar(2) DEFAULT NULL,
`sesso` enum('M','F') DEFAULT NULL,
`indirizzo_residenza` varchar(255) DEFAULT NULL,
`cap_residenza` varchar(5) DEFAULT NULL,
`citta_residenza` varchar(255) DEFAULT NULL,
`provincia_residenza` varchar(2) DEFAULT NULL,
`nazione_residenza` varchar(2) NOT NULL DEFAULT 'IT',
`domicilio_diverso` tinyint(1) NOT NULL DEFAULT 0,
`indirizzo_domicilio` varchar(255) DEFAULT NULL,
`cap_domicilio` varchar(5) DEFAULT NULL,
`citta_domicilio` varchar(255) DEFAULT NULL,
`provincia_domicilio` varchar(2) DEFAULT NULL,
`nazione_domicilio` varchar(2) DEFAULT NULL,
`stato` enum('attivo','inattivo','deceduto','trasferito') NOT NULL DEFAULT 'attivo',
`note` text DEFAULT NULL,
`google_contact_id` varchar(255) DEFAULT NULL COMMENT 'ID contatto Google per sincronizzazione',
`ultima_sincronizzazione_google` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `anagrafica_condominiale_codice_univoco_unique` (`codice_univoco`),
KEY `anagrafica_condominiale_amministratore_id_stato_index` (`amministratore_id`,`stato`),
KEY `anagrafica_condominiale_codice_fiscale_index` (`codice_fiscale`),
KEY `anagrafica_condominiale_tipo_soggetto_index` (`tipo_soggetto`),
KEY `anagrafica_condominiale_amministratore_id_index` (`amministratore_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `anagrafiche`
--
DROP TABLE IF EXISTS `anagrafiche`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `anagrafiche` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`persona_id` bigint(20) unsigned DEFAULT NULL,
`old_id` int(11) DEFAULT NULL COMMENT 'ID dal vecchio gestionale',
`nome` varchar(255) DEFAULT NULL,
`cognome` varchar(255) DEFAULT NULL,
`ragione_sociale` varchar(255) DEFAULT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(60) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`tipo` enum('proprietario','inquilino','usufruttuario','altro') NOT NULL,
`codice_univoco` varchar(8) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`canale_convocazione` varchar(255) DEFAULT 'Raccomandata AR',
`canale_verbali` varchar(255) DEFAULT 'Raccomandata AR',
`canale_solleciti` varchar(255) DEFAULT 'PEC',
PRIMARY KEY (`id`),
UNIQUE KEY `soggetti_codice_univoco_unique` (`codice_univoco`),
UNIQUE KEY `soggetti_old_id_unique` (`old_id`),
KEY `soggetti_codice_fiscale_index` (`codice_fiscale`),
KEY `soggetti_partita_iva_index` (`partita_iva`),
KEY `soggetti_email_index` (`email`),
KEY `soggetti_persona_id_foreign` (`persona_id`),
CONSTRAINT `soggetti_persona_id_foreign` FOREIGN KEY (`persona_id`) REFERENCES `persone` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=346 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_soggetti_codice_univoco BEFORE INSERT ON `anagrafiche` FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('SOGGETTI', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `anni_gestione`
--
DROP TABLE IF EXISTS `anni_gestione`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `anni_gestione` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL,
`anno_ordinario` varchar(4) NOT NULL,
`anno_riscaldamento` varchar(10) NOT NULL,
`codice_directory` varchar(4) NOT NULL,
`periodo_ordinario_inizio` date NOT NULL,
`periodo_ordinario_fine` date NOT NULL,
`periodo_riscaldamento_inizio` date NOT NULL,
`periodo_riscaldamento_fine` date NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `anni_gestione_amministratore_id_codice_directory_unique` (`amministratore_id`,`codice_directory`),
KEY `anni_gestione_anno_ordinario_attivo_index` (`anno_ordinario`,`attivo`),
CONSTRAINT `anni_gestione_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `arera_nature_giuridiche`
--
DROP TABLE IF EXISTS `arera_nature_giuridiche`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `arera_nature_giuridiche` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `arera_nature_giuridiche_nome_unique` (`nome`)
) ENGINE=InnoDB AUTO_INCREMENT=186 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `arera_operatore_settore`
--
DROP TABLE IF EXISTS `arera_operatore_settore`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `arera_operatore_settore` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`operatore_id` bigint(20) unsigned NOT NULL,
`settore_id` bigint(20) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `arera_operatore_settore_operatore_id_settore_id_unique` (`operatore_id`,`settore_id`),
KEY `arera_operatore_settore_settore_id_foreign` (`settore_id`),
CONSTRAINT `arera_operatore_settore_operatore_id_foreign` FOREIGN KEY (`operatore_id`) REFERENCES `arera_operatori` (`id`) ON DELETE CASCADE,
CONSTRAINT `arera_operatore_settore_settore_id_foreign` FOREIGN KEY (`settore_id`) REFERENCES `arera_settori_attivita` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=66449 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `arera_operatori`
--
DROP TABLE IF EXISTS `arera_operatori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `arera_operatori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`societa` varchar(255) NOT NULL,
`id_soggetto` varchar(255) DEFAULT NULL,
`natura_giuridica_id` bigint(20) unsigned DEFAULT NULL,
`partita_iva` varchar(32) DEFAULT NULL,
`partita_iva_normalizzata` varchar(32) DEFAULT NULL,
`gruppo_societario` varchar(255) DEFAULT NULL,
`sito_internet` varchar(255) DEFAULT NULL,
`sede_legale_raw` text DEFAULT NULL,
`sede_legale_indirizzo` varchar(255) DEFAULT NULL,
`sede_legale_cap` varchar(10) DEFAULT NULL,
`sede_legale_citta` varchar(255) DEFAULT NULL,
`sede_legale_provincia` varchar(100) DEFAULT NULL,
`sede_operativa_raw` text DEFAULT NULL,
`sede_operativa_indirizzo` varchar(255) DEFAULT NULL,
`sede_operativa_cap` varchar(10) DEFAULT NULL,
`sede_operativa_citta` varchar(255) DEFAULT NULL,
`sede_operativa_provincia` varchar(100) DEFAULT NULL,
`contatti_cliente` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`contatti_cliente`)),
`contatti_cliente2` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`contatti_cliente2`)),
`settori_raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`settori_raw`)),
`extra_search_tokens` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`extra_search_tokens`)),
`source_filename` varchar(255) DEFAULT NULL,
`source_imported_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `arera_operatori_partita_iva_normalizzata_unique` (`partita_iva_normalizzata`),
KEY `arera_operatori_natura_giuridica_id_foreign` (`natura_giuridica_id`),
KEY `arera_operatori_id_soggetto_index` (`id_soggetto`),
KEY `arera_operatori_partita_iva_index` (`partita_iva`),
CONSTRAINT `arera_operatori_natura_giuridica_id_foreign` FOREIGN KEY (`natura_giuridica_id`) REFERENCES `arera_nature_giuridiche` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=31984 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `arera_settori_attivita`
--
DROP TABLE IF EXISTS `arera_settori_attivita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `arera_settori_attivita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` text NOT NULL,
`slug` varchar(191) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `arera_settori_attivita_slug_unique` (`slug`)
) ENGINE=InnoDB AUTO_INCREMENT=679 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee`
--
DROP TABLE IF EXISTS `assemblee`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`tipo` varchar(50) NOT NULL DEFAULT 'ordinaria',
`data_assemblea` datetime DEFAULT NULL,
`data_prima_convocazione` datetime DEFAULT NULL,
`data_seconda_convocazione` datetime DEFAULT NULL,
`data_convocazione` date DEFAULT NULL,
`data_svolgimento` date DEFAULT NULL,
`luogo` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`gmail_account` varchar(255) DEFAULT NULL,
`video_registrazione_url` varchar(255) DEFAULT NULL,
`google_calendar_event_id` varchar(255) DEFAULT NULL,
`stato` varchar(50) NOT NULL DEFAULT 'bozza',
`creato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `assemblee_creato_da_user_id_foreign` (`creato_da_user_id`),
KEY `assemblee_stabile_id_tipo_index` (`stabile_id`,`tipo`),
KEY `assemblee_data_assemblea_index` (`data_assemblea`),
KEY `assemblee_data_prima_convocazione_index` (`data_prima_convocazione`),
KEY `assemblee_data_seconda_convocazione_index` (`data_seconda_convocazione`),
KEY `assemblee_stato_index` (`stato`),
CONSTRAINT `assemblee_creato_da_user_id_foreign` FOREIGN KEY (`creato_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `assemblee_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_convocazioni`
--
DROP TABLE IF EXISTS `assemblee_convocazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_convocazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`assemblea_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`soggetto_id` bigint(20) unsigned DEFAULT NULL,
`ruolo` varchar(10) DEFAULT NULL,
`consegnato_canale` varchar(50) NOT NULL DEFAULT 'email',
`consegnato_at` timestamp NULL DEFAULT NULL,
`ricezione_confermata_at` timestamp NULL DEFAULT NULL,
`ip_conferma` varchar(45) DEFAULT NULL,
`user_agent_conferma` text DEFAULT NULL,
`firma_ricezione_percorso` varchar(255) DEFAULT NULL,
`stato_ricezione` varchar(50) NOT NULL DEFAULT 'non_consegnato',
`archiviata` tinyint(1) NOT NULL DEFAULT 0,
`token_accesso` varchar(64) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `assemblee_convocazioni_token_accesso_unique` (`token_accesso`),
KEY `assemblee_convocazioni_assemblea_id_foreign` (`assemblea_id`),
KEY `assemblee_convocazioni_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `assemblee_convocazioni_soggetto_id_foreign` (`soggetto_id`),
CONSTRAINT `assemblee_convocazioni_assemblea_id_foreign` FOREIGN KEY (`assemblea_id`) REFERENCES `assemblee` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_convocazioni_soggetto_id_foreign` FOREIGN KEY (`soggetto_id`) REFERENCES `anagrafiche` (`id`) ON DELETE SET NULL,
CONSTRAINT `assemblee_convocazioni_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_gescon`
--
DROP TABLE IF EXISTS `assemblee_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`data_assemblea` date DEFAULT NULL,
`tipo_assemblea` varchar(255) DEFAULT NULL,
`ordine_giorno` text DEFAULT NULL,
`delibere` text DEFAULT NULL,
`presenti` int(11) DEFAULT NULL,
`rappresentati` int(11) DEFAULT NULL,
`millesimi_presenti` decimal(8,3) DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_ass_st_an_dt_idx` (`cod_stabile`,`anno_gestione`,`data_assemblea`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_ordine_giorno`
--
DROP TABLE IF EXISTS `assemblee_ordine_giorno`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_ordine_giorno` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`assemblea_id` bigint(20) unsigned NOT NULL,
`numero_punto` int(11) NOT NULL,
`ordinamento` int(11) NOT NULL DEFAULT 0,
`titolo` varchar(255) DEFAULT NULL,
`descrizione` text NOT NULL,
`esito_votazione` varchar(50) DEFAULT NULL,
`note_delibera` text DEFAULT NULL,
`imported_to_id` bigint(20) unsigned DEFAULT NULL,
`allegati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`allegati`)),
`articolo_legge` varchar(255) DEFAULT NULL,
`tabella_millesimale_id` bigint(20) unsigned DEFAULT NULL,
`maggioranza_richiesta` varchar(50) NOT NULL DEFAULT 'semplice',
`riferimento_legge` varchar(255) DEFAULT NULL,
`audio_log_path` varchar(255) DEFAULT NULL,
`audio_log_trascrizione` longtext DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `assemblee_ordine_giorno_assemblea_id_foreign` (`assemblea_id`),
KEY `assemblee_ordine_giorno_tabella_millesimale_id_foreign` (`tabella_millesimale_id`),
KEY `assemblee_ordine_giorno_imported_to_id_foreign` (`imported_to_id`),
CONSTRAINT `assemblee_ordine_giorno_assemblea_id_foreign` FOREIGN KEY (`assemblea_id`) REFERENCES `assemblee` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_ordine_giorno_imported_to_id_foreign` FOREIGN KEY (`imported_to_id`) REFERENCES `assemblee_ordine_giorno` (`id`) ON DELETE SET NULL,
CONSTRAINT `assemblee_ordine_giorno_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_presenze`
--
DROP TABLE IF EXISTS `assemblee_presenze`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_presenze` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`assemblea_id` bigint(20) unsigned NOT NULL,
`soggetto_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`tipo_partecipazione` varchar(20) NOT NULL DEFAULT 'personale',
`delegato_soggetto_id` bigint(20) unsigned DEFAULT NULL,
`ora_ingresso` timestamp NULL DEFAULT NULL,
`ora_uscita` timestamp NULL DEFAULT NULL,
`qr_code_token` varchar(64) DEFAULT NULL,
`token_delega` varchar(64) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `assemblee_presenze_qr_code_token_unique` (`qr_code_token`),
KEY `assemblee_presenze_assemblea_id_foreign` (`assemblea_id`),
KEY `assemblee_presenze_soggetto_id_foreign` (`soggetto_id`),
KEY `assemblee_presenze_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `assemblee_presenze_delegato_soggetto_id_foreign` (`delegato_soggetto_id`),
CONSTRAINT `assemblee_presenze_assemblea_id_foreign` FOREIGN KEY (`assemblea_id`) REFERENCES `assemblee` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_presenze_delegato_soggetto_id_foreign` FOREIGN KEY (`delegato_soggetto_id`) REFERENCES `anagrafiche` (`id`) ON DELETE SET NULL,
CONSTRAINT `assemblee_presenze_soggetto_id_foreign` FOREIGN KEY (`soggetto_id`) REFERENCES `anagrafiche` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_presenze_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=1314 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_verbali`
--
DROP TABLE IF EXISTS `assemblee_verbali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_verbali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione_id` bigint(20) unsigned NOT NULL,
`data_assemblea` date NOT NULL,
`tipo_assemblea` varchar(255) NOT NULL,
`oggetto` varchar(255) NOT NULL,
`delibere` text DEFAULT NULL,
`presenti` int(11) NOT NULL DEFAULT 0,
`verbale_path` varchar(255) DEFAULT NULL,
`protocollata` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `assemblee_verbali_anno_gestione_id_foreign` (`anno_gestione_id`),
KEY `assemblee_verbali_stabile_id_data_assemblea_index` (`stabile_id`,`data_assemblea`),
CONSTRAINT `assemblee_verbali_anno_gestione_id_foreign` FOREIGN KEY (`anno_gestione_id`) REFERENCES `anni_gestione` (`id`),
CONSTRAINT `assemblee_verbali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_voti`
--
DROP TABLE IF EXISTS `assemblee_voti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_voti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`assemblea_id` bigint(20) unsigned NOT NULL,
`ordine_giorno_id` bigint(20) unsigned NOT NULL,
`soggetto_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`voto` varchar(20) NOT NULL,
`millesimi_voto` decimal(10,3) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `voti_unique_punto_soggetto` (`ordine_giorno_id`,`soggetto_id`,`unita_immobiliare_id`),
KEY `assemblee_voti_assemblea_id_foreign` (`assemblea_id`),
KEY `assemblee_voti_soggetto_id_foreign` (`soggetto_id`),
KEY `assemblee_voti_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
CONSTRAINT `assemblee_voti_assemblea_id_foreign` FOREIGN KEY (`assemblea_id`) REFERENCES `assemblee` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_voti_ordine_giorno_id_foreign` FOREIGN KEY (`ordine_giorno_id`) REFERENCES `assemblee_ordine_giorno` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_voti_soggetto_id_foreign` FOREIGN KEY (`soggetto_id`) REFERENCES `anagrafiche` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_voti_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=209 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assemblee_voti_log_modifiche`
--
DROP TABLE IF EXISTS `assemblee_voti_log_modifiche`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assemblee_voti_log_modifiche` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`voto_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned NOT NULL,
`voto_precedente` varchar(20) DEFAULT NULL,
`voto_nuovo` varchar(20) NOT NULL,
`millesimi_precedenti` decimal(10,3) DEFAULT NULL,
`millesimi_nuovi` decimal(10,3) NOT NULL,
`motivo` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `assemblee_voti_log_modifiche_voto_id_foreign` (`voto_id`),
KEY `assemblee_voti_log_modifiche_user_id_foreign` (`user_id`),
CONSTRAINT `assemblee_voti_log_modifiche_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `assemblee_voti_log_modifiche_voto_id_foreign` FOREIGN KEY (`voto_id`) REFERENCES `assemblee_voti` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assistenza_tecnorepair_allegati_legacy`
--
DROP TABLE IF EXISTS `assistenza_tecnorepair_allegati_legacy`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assistenza_tecnorepair_allegati_legacy` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`scheda_id` bigint(20) unsigned NOT NULL,
`legacy_id` bigint(20) unsigned DEFAULT NULL,
`legacy_scheda_id` bigint(20) unsigned DEFAULT NULL,
`legacy_attachment_number` int(10) unsigned DEFAULT NULL,
`file_name` varchar(255) DEFAULT NULL,
`file_path` varchar(255) DEFAULT NULL,
`imported_from_path` varchar(255) DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ass_tecnorepair_allegati_scheda_num_idx` (`scheda_id`,`legacy_attachment_number`),
CONSTRAINT `assistenza_tecnorepair_allegati_legacy_scheda_id_foreign` FOREIGN KEY (`scheda_id`) REFERENCES `assistenza_tecnorepair_schede_legacy` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `assistenza_tecnorepair_schede_legacy`
--
DROP TABLE IF EXISTS `assistenza_tecnorepair_schede_legacy`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `assistenza_tecnorepair_schede_legacy` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`legacy_id` bigint(20) unsigned DEFAULT NULL,
`legacy_cliente_id` bigint(20) unsigned DEFAULT NULL,
`legacy_centro_ass_id` bigint(20) unsigned DEFAULT NULL,
`legacy_committente_codice` varchar(255) DEFAULT NULL,
`legacy_numero_scheda` varchar(255) DEFAULT NULL,
`customer_name` varchar(255) DEFAULT NULL,
`customer_phone` varchar(255) DEFAULT NULL,
`customer_phone_alt` varchar(255) DEFAULT NULL,
`customer_email` varchar(255) DEFAULT NULL,
`product_model` varchar(255) DEFAULT NULL,
`product_code` varchar(255) DEFAULT NULL,
`serial_number` varchar(255) DEFAULT NULL,
`serial_number_2` varchar(255) DEFAULT NULL,
`status_code` varchar(255) DEFAULT NULL,
`status_label` varchar(255) DEFAULT NULL,
`status_bucket` varchar(24) NOT NULL DEFAULT 'other',
`defect_reported` text DEFAULT NULL,
`repair_description` longtext DEFAULT NULL,
`communications` longtext DEFAULT NULL,
`operator_name` varchar(255) DEFAULT NULL,
`technician_name` varchar(255) DEFAULT NULL,
`date_received` datetime DEFAULT NULL,
`ordered_at` datetime DEFAULT NULL,
`order_number` varchar(255) DEFAULT NULL,
`rma_code` varchar(255) DEFAULT NULL,
`pin_code` varchar(255) DEFAULT NULL,
`unlock_code` varchar(255) DEFAULT NULL,
`legacy_attachment_path` varchar(255) DEFAULT NULL,
`imported_from_path` varchar(255) DEFAULT NULL,
`imported_at` timestamp NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ass_tecnorepair_source_legacy_unique` (`imported_from_path`,`legacy_id`),
KEY `assistenza_tecnorepair_schede_legacy_fornitore_id_foreign` (`fornitore_id`),
KEY `ass_tecnorepair_admin_numero_idx` (`amministratore_id`,`legacy_numero_scheda`),
KEY `assistenza_tecnorepair_schede_legacy_status_bucket_index` (`status_bucket`),
CONSTRAINT `assistenza_tecnorepair_schede_legacy_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `assistenza_tecnorepair_schede_legacy_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `audit_logs`
--
DROP TABLE IF EXISTS `audit_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `audit_logs` (
`id_audit_log` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`id_utente` bigint(20) unsigned DEFAULT NULL,
`nome_tabella` varchar(100) NOT NULL,
`id_record_modificato` bigint(20) unsigned NOT NULL,
`azione` varchar(50) NOT NULL,
`valori_precedenti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`valori_precedenti`)),
`valori_nuovi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`valori_nuovi`)),
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id_audit_log`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `bilanci`
--
DROP TABLE IF EXISTS `bilanci`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `bilanci` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`denominazione` varchar(255) NOT NULL,
`tipo_bilancio` varchar(255) NOT NULL DEFAULT 'ORDINARIO',
`anno_riferimento` year(4) NOT NULL,
`data_approvazione` date DEFAULT NULL,
`note` text DEFAULT NULL,
`stato` enum('DRAFT','APPROVATO','CHIUSO') NOT NULL DEFAULT 'DRAFT',
`totale_entrate` decimal(15,2) NOT NULL DEFAULT 0.00,
`totale_uscite` decimal(15,2) NOT NULL DEFAULT 0.00,
`saldo` decimal(15,2) NOT NULL DEFAULT 0.00,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `bilanci_gestione_id_foreign` (`gestione_id`),
KEY `bilanci_stabile_id_anno_riferimento_tipo_bilancio_index` (`stabile_id`,`anno_riferimento`,`tipo_bilancio`),
CONSTRAINT `bilanci_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni` (`id_gestione`) ON DELETE SET NULL,
CONSTRAINT `bilanci_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `cache`
--
DROP TABLE IF EXISTS `cache`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `cache` (
`key` varchar(255) NOT NULL,
`value` mediumtext NOT NULL,
`expiration` int(11) NOT NULL,
PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `cache_locks`
--
DROP TABLE IF EXISTS `cache_locks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `cache_locks` (
`key` varchar(255) NOT NULL,
`owner` varchar(255) NOT NULL,
`expiration` int(11) NOT NULL,
PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `casse`
--
DROP TABLE IF EXISTS `casse`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `casse` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`cod_cassa` varchar(30) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`tipo` enum('cassa_contanti','conto_bancario_locale','pos','altro') NOT NULL DEFAULT 'cassa_contanti',
`iban` varchar(34) DEFAULT NULL,
`intestazione_conto` varchar(255) DEFAULT NULL,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `casse_stabile_id_cod_cassa_unique` (`stabile_id`,`cod_cassa`),
KEY `casse_tenant_id_index` (`tenant_id`),
KEY `casse_cod_cassa_index` (`cod_cassa`),
CONSTRAINT `casse_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `categorie_ticket`
--
DROP TABLE IF EXISTS `categorie_ticket`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `categorie_ticket` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `categorie_ticket_nome_unique` (`nome`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `checklist_fine_anno_items`
--
DROP TABLE IF EXISTS `checklist_fine_anno_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `checklist_fine_anno_items` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`label` varchar(255) NOT NULL,
`action_url` varchar(255) DEFAULT NULL,
`sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `chiamate_post_it`
--
DROP TABLE IF EXISTS `chiamate_post_it`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `chiamate_post_it` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`ticket_id` bigint(20) unsigned DEFAULT NULL,
`creato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`assegnato_a_user_id` bigint(20) unsigned DEFAULT NULL,
`assegnato_a_fornitore_id` bigint(20) unsigned DEFAULT NULL,
`assegnazione_tipo` varchar(32) DEFAULT NULL,
`telefono` varchar(32) DEFAULT NULL,
`nome_chiamante` varchar(255) DEFAULT NULL,
`direzione` enum('in_arrivo','in_uscita','persa') NOT NULL DEFAULT 'in_arrivo',
`esito` varchar(255) DEFAULT NULL,
`durata_secondi` int(10) unsigned DEFAULT NULL,
`origine` varchar(50) DEFAULT NULL,
`origine_id` varchar(255) DEFAULT NULL,
`oggetto` varchar(255) DEFAULT NULL,
`nota` text DEFAULT NULL,
`priorita` enum('Bassa','Media','Alta','Urgente') NOT NULL DEFAULT 'Media',
`stato` enum('post_it','ticket','chiusa') NOT NULL DEFAULT 'post_it',
`chiamata_il` timestamp NULL DEFAULT NULL,
`chiusa_il` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `chiamate_post_it_stabile_id_foreign` (`stabile_id`),
KEY `chiamate_post_it_ticket_id_foreign` (`ticket_id`),
KEY `chiamate_post_it_creato_da_user_id_foreign` (`creato_da_user_id`),
KEY `chiamate_post_it_stato_created_at_index` (`stato`,`created_at`),
KEY `chiamate_post_it_rubrica_id_created_at_index` (`rubrica_id`,`created_at`),
KEY `chiamate_post_it_telefono_index` (`telefono`),
KEY `chiamate_post_it_origine_idx` (`origine`,`origine_id`),
KEY `chiamate_post_it_assegnato_a_user_id_foreign` (`assegnato_a_user_id`),
KEY `chiamate_post_it_assegnato_a_fornitore_id_foreign` (`assegnato_a_fornitore_id`),
KEY `chiamate_post_it_assign_user_idx` (`assegnazione_tipo`,`assegnato_a_user_id`),
KEY `chiamate_post_it_assign_supplier_idx` (`assegnazione_tipo`,`assegnato_a_fornitore_id`),
CONSTRAINT `chiamate_post_it_assegnato_a_fornitore_id_foreign` FOREIGN KEY (`assegnato_a_fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `chiamate_post_it_assegnato_a_user_id_foreign` FOREIGN KEY (`assegnato_a_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `chiamate_post_it_creato_da_user_id_foreign` FOREIGN KEY (`creato_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `chiamate_post_it_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `chiamate_post_it_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `chiamate_post_it_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `chiavi_stabili`
--
DROP TABLE IF EXISTS `chiavi_stabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `chiavi_stabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`codice_chiave` varchar(50) NOT NULL,
`qr_code_data` text NOT NULL,
`tipologia` enum('portone_principale','porte_secondarie','locali_tecnici','spazi_comuni','servizi','emergenza') NOT NULL,
`descrizione` varchar(255) NOT NULL,
`ubicazione` varchar(255) DEFAULT NULL,
`numero_duplicati` int(11) NOT NULL DEFAULT 1,
`stato` enum('attiva','smarrita','sostituita','fuori_uso') NOT NULL DEFAULT 'attiva',
`assegnata_a` varchar(255) DEFAULT NULL,
`data_assegnazione` timestamp NULL DEFAULT NULL,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `classificazioni_tecniche`
--
DROP TABLE IF EXISTS `classificazioni_tecniche`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `classificazioni_tecniche` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tipo_classificazione` enum('classe_energetica','stato_conservazione','tipo_riscaldamento','tipo_proprieta','categoria_catastale','destinazione_uso') NOT NULL,
`valore` varchar(255) NOT NULL,
`codice` varchar(255) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`coefficiente_calcolo` decimal(5,3) DEFAULT NULL,
`colore_badge` varchar(255) DEFAULT NULL,
`ordine` int(11) NOT NULL DEFAULT 100,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tipo_valore` (`tipo_classificazione`,`valore`),
KEY `classificazioni_tecniche_tipo_classificazione_attiva_index` (`tipo_classificazione`,`attiva`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `classificazioni_unita`
--
DROP TABLE IF EXISTS `classificazioni_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `classificazioni_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`classificazione_tecnica_id` bigint(20) unsigned NOT NULL,
`validita_da` date DEFAULT NULL,
`validita_a` date DEFAULT NULL,
`note` text DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_unita_classificazione_data` (`unita_immobiliare_id`,`classificazione_tecnica_id`,`validita_da`),
KEY `classificazioni_unita_classificazione_tecnica_id_foreign` (`classificazione_tecnica_id`),
KEY `classificazioni_unita_created_by_foreign` (`created_by`),
KEY `classificazioni_unita_unita_immobiliare_id_validita_da_index` (`unita_immobiliare_id`,`validita_da`),
CONSTRAINT `classificazioni_unita_classificazione_tecnica_id_foreign` FOREIGN KEY (`classificazione_tecnica_id`) REFERENCES `classificazioni_tecniche` (`id`) ON DELETE CASCADE,
CONSTRAINT `classificazioni_unita_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `classificazioni_unita_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `codice_univoco_sequences`
--
DROP TABLE IF EXISTS `codice_univoco_sequences`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `codice_univoco_sequences` (
`entity_type` varchar(50) NOT NULL,
`last_value` bigint(20) unsigned NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`entity_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `collaboratore_stabile`
--
DROP TABLE IF EXISTS `collaboratore_stabile`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `collaboratore_stabile` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`ruolo` varchar(255) NOT NULL DEFAULT 'collaboratore',
`permessi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`permessi`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `collaboratore_stabile_user_id_stabile_id_unique` (`user_id`,`stabile_id`),
KEY `collaboratore_stabile_stabile_id_foreign` (`stabile_id`),
CONSTRAINT `collaboratore_stabile_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `collaboratore_stabile_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `communication_messages`
--
DROP TABLE IF EXISTS `communication_messages`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `communication_messages` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`channel` varchar(32) NOT NULL,
`direction` varchar(16) NOT NULL DEFAULT 'inbound',
`protocol_number` varchar(40) NOT NULL,
`external_chat_id` varchar(255) DEFAULT NULL,
`external_message_id` varchar(255) DEFAULT NULL,
`phone_number` varchar(32) DEFAULT NULL,
`target_extension` varchar(20) DEFAULT NULL,
`assigned_user_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`sender_name` varchar(255) DEFAULT NULL,
`message_text` longtext DEFAULT NULL,
`attachments` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`attachments`)),
`ticket_id` bigint(20) unsigned DEFAULT NULL,
`post_it_id` bigint(20) unsigned DEFAULT NULL,
`insurance_claim_id` bigint(20) unsigned DEFAULT NULL,
`status` varchar(32) NOT NULL DEFAULT 'received',
`received_at` timestamp NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `communication_messages_protocol_number_unique` (`protocol_number`),
KEY `communication_messages_insurance_claim_id_foreign` (`insurance_claim_id`),
KEY `communication_messages_channel_direction_index` (`channel`,`direction`),
KEY `communication_messages_ticket_id_created_at_index` (`ticket_id`,`created_at`),
KEY `communication_messages_post_it_id_created_at_index` (`post_it_id`,`created_at`),
KEY `communication_messages_phone_number_index` (`phone_number`),
KEY `communication_messages_external_message_id_index` (`external_message_id`),
KEY `comm_msg_assigned_user_created_idx` (`assigned_user_id`,`created_at`),
KEY `comm_msg_stabile_created_idx` (`stabile_id`,`created_at`),
CONSTRAINT `communication_messages_assigned_user_id_foreign` FOREIGN KEY (`assigned_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `communication_messages_insurance_claim_id_foreign` FOREIGN KEY (`insurance_claim_id`) REFERENCES `insurance_claims` (`id`) ON DELETE SET NULL,
CONSTRAINT `communication_messages_post_it_id_foreign` FOREIGN KEY (`post_it_id`) REFERENCES `chiamate_post_it` (`id`) ON DELETE SET NULL,
CONSTRAINT `communication_messages_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `communication_messages_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `composizione_unita`
--
DROP TABLE IF EXISTS `composizione_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `composizione_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_originale_id` bigint(20) unsigned DEFAULT NULL,
`unita_risultante_id` bigint(20) unsigned NOT NULL,
`tipo_operazione` enum('unione','divisione','modifica') NOT NULL,
`data_operazione` date NOT NULL,
`superficie_trasferita` decimal(8,2) DEFAULT NULL,
`millesimi_trasferiti` decimal(8,4) DEFAULT NULL,
`vani_trasferiti` tinyint(4) DEFAULT NULL,
`millesimi_automatici` tinyint(1) NOT NULL DEFAULT 1,
`coefficiente_ripartizione` decimal(6,4) NOT NULL DEFAULT 1.0000,
`numero_pratica` varchar(100) DEFAULT NULL,
`riferimento_catastale` varchar(200) DEFAULT NULL,
`note_variazione` text DEFAULT NULL,
`stato_pratica` enum('in_corso','approvata','respinta','completata') NOT NULL DEFAULT 'in_corso',
`data_approvazione` date DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `composizione_unita_unita_originale_id_foreign` (`unita_originale_id`),
KEY `composizione_unita_unita_risultante_id_foreign` (`unita_risultante_id`),
KEY `composizione_unita_created_by_foreign` (`created_by`),
KEY `idx_composizione_operazione` (`tipo_operazione`,`data_operazione`),
KEY `idx_composizione_stato` (`stato_pratica`),
KEY `composizione_unita_data_operazione_index` (`data_operazione`),
CONSTRAINT `composizione_unita_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `composizione_unita_unita_originale_id_foreign` FOREIGN KEY (`unita_originale_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL,
CONSTRAINT `composizione_unita_unita_risultante_id_foreign` FOREIGN KEY (`unita_risultante_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `comuni`
--
DROP TABLE IF EXISTS `comuni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `comuni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `comuni_italiani`
--
DROP TABLE IF EXISTS `comuni_italiani`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `comuni_italiani` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_istat` varchar(10) NOT NULL,
`denominazione` varchar(255) NOT NULL,
`denominazione_straniera` varchar(255) DEFAULT NULL,
`codice_catastale` varchar(4) DEFAULT NULL,
`cap` varchar(5) DEFAULT NULL,
`provincia_codice` varchar(3) DEFAULT NULL,
`provincia_denominazione` varchar(255) DEFAULT NULL,
`regione_codice` varchar(2) DEFAULT NULL,
`regione_denominazione` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `comuni_italiani_codice_istat_unique` (`codice_istat`),
KEY `comuni_italiani_denominazione_index` (`denominazione`),
KEY `comuni_italiani_provincia_codice_index` (`provincia_codice`),
KEY `comuni_italiani_regione_codice_index` (`regione_codice`),
KEY `comuni_italiani_cap_index` (`cap`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `condomini_stabile`
--
DROP TABLE IF EXISTS `condomini_stabile`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `condomini_stabile` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione_id` bigint(20) unsigned NOT NULL,
`cod_cond` varchar(255) NOT NULL,
`scala` varchar(255) DEFAULT NULL,
`interno` varchar(255) NOT NULL,
`tipo_proprieta` varchar(10) NOT NULL,
`nome_condomino` varchar(255) NOT NULL,
`presso` varchar(255) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(5) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`cellulare` varchar(255) DEFAULT NULL,
`email_condomino` varchar(255) DEFAULT NULL,
`email_inquilino` varchar(255) DEFAULT NULL,
`codice_fiscale_cond` varchar(16) DEFAULT NULL,
`codice_fiscale_inq` varchar(16) DEFAULT NULL,
`iban_cond` varchar(255) DEFAULT NULL,
`iban_inq` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`dati_catastali` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_catastali`)),
`flags_comunicazioni` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`flags_comunicazioni`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `condomini_stabile_stabile_id_anno_gestione_id_cod_cond_unique` (`stabile_id`,`anno_gestione_id`,`cod_cond`),
KEY `condomini_stabile_anno_gestione_id_foreign` (`anno_gestione_id`),
KEY `condomini_stabile_stabile_id_attivo_index` (`stabile_id`,`attivo`),
KEY `condomini_stabile_scala_interno_index` (`scala`,`interno`),
CONSTRAINT `condomini_stabile_anno_gestione_id_foreign` FOREIGN KEY (`anno_gestione_id`) REFERENCES `anni_gestione` (`id`),
CONSTRAINT `condomini_stabile_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `configurazioni_sistema`
--
DROP TABLE IF EXISTS `configurazioni_sistema`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `configurazioni_sistema` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`chiave` varchar(255) NOT NULL,
`valore` varchar(255) NOT NULL,
`tipo_valore` enum('string','integer','decimal','boolean','json','date') NOT NULL,
`categoria` varchar(255) NOT NULL,
`nome_visualizzato` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`modificabile_admin` tinyint(1) NOT NULL DEFAULT 0,
`modificabile_superadmin` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `configurazioni_sistema_chiave_unique` (`chiave`),
KEY `configurazioni_sistema_categoria_index` (`categoria`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `conguaglios`
--
DROP TABLE IF EXISTS `conguaglios`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `conguaglios` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`bilancio_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`importo_precedente` decimal(15,2) NOT NULL DEFAULT 0.00,
`importo_attuale` decimal(15,2) NOT NULL DEFAULT 0.00,
`differenza` decimal(15,2) NOT NULL DEFAULT 0.00,
`tipo` enum('CREDITO','DEBITO') NOT NULL DEFAULT 'CREDITO',
`stato` enum('calcolato','confermato','applicato','annullato') NOT NULL DEFAULT 'calcolato',
`data_calcolo` date NOT NULL,
`data_applicazione` date DEFAULT NULL,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `conguaglios_bilancio_id_stato_index` (`bilancio_id`,`stato`),
KEY `conguaglios_unita_immobiliare_id_stato_index` (`unita_immobiliare_id`,`stato`),
CONSTRAINT `conguaglios_bilancio_id_foreign` FOREIGN KEY (`bilancio_id`) REFERENCES `bilanci` (`id`) ON DELETE CASCADE,
CONSTRAINT `conguaglios_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_causali_bancarie`
--
DROP TABLE IF EXISTS `contabilita_causali_bancarie`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_causali_bancarie` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`banca` varchar(50) NOT NULL DEFAULT 'UNICREDIT',
`codice` varchar(20) NOT NULL,
`interbancaria` varchar(10) DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `contabilita_causali_bancarie_banca_codice_unique` (`banca`,`codice`),
KEY `contabilita_causali_bancarie_banca_attivo_index` (`banca`,`attivo`)
) ENGINE=InnoDB AUTO_INCREMENT=241 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_chiusure_gestione`
--
DROP TABLE IF EXISTS `contabilita_chiusure_gestione`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_chiusure_gestione` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`data_chiusura` date NOT NULL,
`stato` enum('bozza','chiusa','riaperta') NOT NULL DEFAULT 'bozza',
`registrazione_chiusura_id` bigint(20) unsigned DEFAULT NULL,
`registrazione_storno_id` bigint(20) unsigned DEFAULT NULL,
`saldi_conti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`saldi_conti`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_cont_chiusure_gestione` (`gestione_id`),
KEY `idx_cont_chiusure_stabile_data` (`stabile_id`,`data_chiusura`),
KEY `contabilita_chiusure_gestione_registrazione_chiusura_id_foreign` (`registrazione_chiusura_id`),
KEY `contabilita_chiusure_gestione_registrazione_storno_id_foreign` (`registrazione_storno_id`),
KEY `contabilita_chiusure_gestione_created_by_foreign` (`created_by`),
KEY `contabilita_chiusure_gestione_updated_by_foreign` (`updated_by`),
CONSTRAINT `contabilita_chiusure_gestione_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_chiusure_gestione_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `contabilita_chiusure_gestione_registrazione_chiusura_id_foreign` FOREIGN KEY (`registrazione_chiusura_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_chiusure_gestione_registrazione_storno_id_foreign` FOREIGN KEY (`registrazione_storno_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_chiusure_gestione_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `contabilita_chiusure_gestione_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_fatture_fornitori`
--
DROP TABLE IF EXISTS `contabilita_fatture_fornitori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_fatture_fornitori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`fattura_elettronica_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`data_registrazione` date DEFAULT NULL,
`data_documento` date DEFAULT NULL,
`numero_documento` varchar(255) DEFAULT NULL,
`causale_contabile` varchar(30) DEFAULT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`valuta` varchar(5) NOT NULL DEFAULT 'EUR',
`cambio` decimal(12,6) NOT NULL DEFAULT 1.000000,
`imponibile` decimal(15,2) NOT NULL DEFAULT 0.00,
`iva` decimal(15,2) NOT NULL DEFAULT 0.00,
`totale` decimal(15,2) NOT NULL DEFAULT 0.00,
`data_scadenza` date DEFAULT NULL,
`modalita_pagamento` varchar(80) DEFAULT NULL,
`data_pagamento` date DEFAULT NULL,
`movimento_pagamento_id` bigint(20) unsigned DEFAULT NULL,
`data_versamento_ra` date DEFAULT NULL,
`movimento_versamento_ra_id` bigint(20) unsigned DEFAULT NULL,
`ritenuta_aliquota` decimal(6,3) DEFAULT NULL,
`ritenuta_importo` decimal(15,2) NOT NULL DEFAULT 0.00,
`ritenuta_codice_tributo` varchar(10) DEFAULT NULL,
`ritenuta_previdenziale_codice` varchar(10) DEFAULT NULL,
`netto_da_pagare` decimal(15,2) NOT NULL DEFAULT 0.00,
`stato` varchar(30) NOT NULL DEFAULT 'inserito',
`registrazione_id` bigint(20) unsigned DEFAULT NULL,
`note` text DEFAULT NULL,
`dati_fornitura` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_fornitura`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `cff_stabile_datareg_idx` (`stabile_id`,`data_registrazione`),
KEY `cff_stabile_datadoc_idx` (`stabile_id`,`data_documento`),
KEY `cff_fornitore_idx` (`fornitore_id`),
KEY `cff_fe_idx` (`fattura_elettronica_id`),
KEY `contabilita_fatture_fornitori_gestione_id_foreign` (`gestione_id`),
KEY `cff_stabile_gestione_idx` (`stabile_id`,`gestione_id`),
KEY `cff_rit_prev_idx` (`ritenuta_previdenziale_codice`),
KEY `cff_mov_pag_idx` (`movimento_pagamento_id`),
KEY `cff_mov_ra_idx` (`movimento_versamento_ra_id`),
CONSTRAINT `cff_mov_pag_fk` FOREIGN KEY (`movimento_pagamento_id`) REFERENCES `contabilita_movimenti_banca` (`id`) ON DELETE SET NULL,
CONSTRAINT `cff_mov_ra_fk` FOREIGN KEY (`movimento_versamento_ra_id`) REFERENCES `contabilita_movimenti_banca` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_fatture_fornitori_fattura_elettronica_id_foreign` FOREIGN KEY (`fattura_elettronica_id`) REFERENCES `fatture_elettroniche` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_fatture_fornitori_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_fatture_fornitori_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_fatture_fornitori_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=236 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_fatture_fornitori_righe`
--
DROP TABLE IF EXISTS `contabilita_fatture_fornitori_righe`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_fatture_fornitori_righe` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`fattura_id` bigint(20) unsigned NOT NULL,
`product_id` bigint(20) unsigned DEFAULT NULL,
`riga` smallint(5) unsigned DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`imponibile_euro` decimal(15,2) NOT NULL DEFAULT 0.00,
`iva_euro` decimal(15,2) NOT NULL DEFAULT 0.00,
`totale_euro` decimal(15,2) NOT NULL DEFAULT 0.00,
`aliquota_iva` decimal(6,2) DEFAULT NULL,
`conto_costo_id` bigint(20) unsigned DEFAULT NULL,
`voce_spesa_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`percentuale_riparto` decimal(5,2) DEFAULT NULL,
`tabella_millesimale_id` bigint(20) unsigned DEFAULT NULL,
`legacy_cod_spe` varchar(20) DEFAULT NULL,
`legacy_n_spe` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `cffr_conto_fk` (`conto_costo_id`),
KEY `cffr_tabella_fk` (`tabella_millesimale_id`),
KEY `cffr_fattura_idx` (`fattura_id`),
KEY `cfff_righe_voce_idx` (`voce_spesa_id`),
KEY `cfff_righe_gest_idx` (`gestione_id`),
KEY `cffr_legacy_cod_spe_idx` (`legacy_cod_spe`),
KEY `cffr_legacy_n_spe_idx` (`legacy_n_spe`),
KEY `cont_fatture_righe_product_idx` (`product_id`,`fattura_id`),
CONSTRAINT `cfff_righe_gest_fk` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `cfff_righe_voce_fk` FOREIGN KEY (`voce_spesa_id`) REFERENCES `voci_spesa` (`id`) ON DELETE SET NULL,
CONSTRAINT `cffr_conto_fk` FOREIGN KEY (`conto_costo_id`) REFERENCES `contabilita_piano_conti` (`id`) ON DELETE SET NULL,
CONSTRAINT `cffr_tabella_fk` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_fatture_fornitori_righe_fattura_id_foreign` FOREIGN KEY (`fattura_id`) REFERENCES `contabilita_fatture_fornitori` (`id`) ON DELETE CASCADE,
CONSTRAINT `contabilita_fatture_fornitori_righe_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=3633 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_movimenti`
--
DROP TABLE IF EXISTS `contabilita_movimenti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_movimenti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`registrazione_id` bigint(20) unsigned DEFAULT NULL,
`conto_id` bigint(20) unsigned NOT NULL,
`voce_spesa_id` bigint(20) unsigned DEFAULT NULL,
`tipo` enum('dare','avere') NOT NULL,
`importo` decimal(15,2) NOT NULL,
`entry_id` bigint(20) unsigned NOT NULL,
`chart_account_id` bigint(20) unsigned NOT NULL,
`master_code` varchar(3) NOT NULL,
`account_code` varchar(8) NOT NULL,
`subaccount_code` varchar(5) NOT NULL,
`debit_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
`credit_amount` decimal(12,2) NOT NULL DEFAULT 0.00,
`progressive_balance` decimal(15,2) NOT NULL DEFAULT 0.00,
`movement_description` text DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`sequence` int(11) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `contabilita_movimenti_entry_id_foreign` (`entry_id`),
KEY `idx_movements_account_entry` (`chart_account_id`,`entry_id`),
KEY `idx_movements_codes` (`master_code`,`account_code`,`subaccount_code`),
KEY `idx_movements_sequence` (`sequence`),
KEY `contabilita_movimenti_registrazione_id_index` (`registrazione_id`),
KEY `cont_movimenti_voce_spesa_idx` (`voce_spesa_id`),
CONSTRAINT `contabilita_movimenti_chart_account_id_foreign` FOREIGN KEY (`chart_account_id`) REFERENCES `piano_conti` (`id`),
CONSTRAINT `contabilita_movimenti_entry_id_foreign` FOREIGN KEY (`entry_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7851 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_movimenti_banca`
--
DROP TABLE IF EXISTS `contabilita_movimenti_banca`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_movimenti_banca` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`conto_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`iban` varchar(34) DEFAULT NULL,
`data` date NOT NULL,
`valuta` date DEFAULT NULL,
`descrizione` text NOT NULL,
`descrizione_estesa` text DEFAULT NULL,
`importo` decimal(15,2) NOT NULL,
`causale` varchar(20) DEFAULT NULL,
`source_file` varchar(255) DEFAULT NULL,
`raw_line` text DEFAULT NULL,
`row_hash` varchar(64) NOT NULL,
`da_confermare` tinyint(1) NOT NULL DEFAULT 0,
`match_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`match_data`)),
`rubrica_mittente_id` bigint(20) unsigned DEFAULT NULL,
`rubrica_beneficiario_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`registrazione_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `contabilita_movimenti_banca_stabile_id_row_hash_unique` (`stabile_id`,`row_hash`),
KEY `contabilita_movimenti_banca_stabile_id_data_index` (`stabile_id`,`data`),
KEY `contabilita_movimenti_banca_stabile_id_iban_index` (`stabile_id`,`iban`),
KEY `contabilita_movimenti_banca_registrazione_id_foreign` (`registrazione_id`),
KEY `contabilita_movimenti_banca_gestione_id_foreign` (`gestione_id`),
KEY `contabilita_movimenti_banca_stabile_id_gestione_id_data_index` (`stabile_id`,`gestione_id`,`data`),
KEY `contabilita_movimenti_banca_conto_id_foreign` (`conto_id`),
KEY `contabilita_movimenti_banca_stabile_id_conto_id_index` (`stabile_id`,`conto_id`),
KEY `contabilita_movimenti_banca_rubrica_mittente_id_foreign` (`rubrica_mittente_id`),
KEY `contabilita_movimenti_banca_rubrica_beneficiario_id_foreign` (`rubrica_beneficiario_id`),
KEY `contabilita_movimenti_banca_fornitore_id_foreign` (`fornitore_id`),
CONSTRAINT `contabilita_movimenti_banca_conto_id_foreign` FOREIGN KEY (`conto_id`) REFERENCES `dati_bancari` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_registrazione_id_foreign` FOREIGN KEY (`registrazione_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_rubrica_beneficiario_id_foreign` FOREIGN KEY (`rubrica_beneficiario_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_rubrica_mittente_id_foreign` FOREIGN KEY (`rubrica_mittente_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_movimenti_banca_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11603 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_piano_conti`
--
DROP TABLE IF EXISTS `contabilita_piano_conti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_piano_conti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(20) NOT NULL COMMENT 'Codice conto (es: 1.01.001)',
`denominazione` varchar(255) NOT NULL COMMENT 'Nome del conto',
`descrizione` text DEFAULT NULL COMMENT 'Descrizione dettagliata',
`tipo_conto` enum('ATTIVO','PASSIVO','RICAVO','COSTO','PATRIMONIO') NOT NULL COMMENT 'Tipologia di conto',
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Conto attivo/disattivo',
`livello` int(11) NOT NULL DEFAULT 1 COMMENT 'Livello gerarchico del conto',
`codice_padre` varchar(20) DEFAULT NULL COMMENT 'Codice del conto padre',
`saldo_iniziale` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT 'Saldo iniziale del conto',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `contabilita_piano_conti_codice_unique` (`codice`),
KEY `contabilita_piano_conti_codice_index` (`codice`),
KEY `contabilita_piano_conti_tipo_conto_index` (`tipo_conto`),
KEY `contabilita_piano_conti_attivo_index` (`attivo`),
KEY `contabilita_piano_conti_codice_padre_index` (`codice_padre`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_registrazioni`
--
DROP TABLE IF EXISTS `contabilita_registrazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_registrazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_registrazione` date DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`protocollo_prefix` varchar(20) DEFAULT NULL,
`protocollo_numero` int(10) unsigned DEFAULT NULL,
`protocollo_completo` varchar(50) DEFAULT NULL,
`entry_date` date NOT NULL,
`document_number` varchar(50) DEFAULT NULL,
`document_type` varchar(20) NOT NULL DEFAULT 'REG',
`description` text NOT NULL,
`notes` text DEFAULT NULL,
`protocol` varchar(50) DEFAULT NULL,
`external_reference` varchar(100) DEFAULT NULL,
`status` enum('draft','confirmed','cancelled') NOT NULL DEFAULT 'draft',
`confirmed_at` timestamp NULL DEFAULT NULL,
`user_id` bigint(20) unsigned NOT NULL,
`confirmed_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `cr_protocollo_uniq` (`protocollo_completo`),
KEY `contabilita_registrazioni_user_id_foreign` (`user_id`),
KEY `contabilita_registrazioni_confirmed_by_foreign` (`confirmed_by`),
KEY `idx_entries_gestione_date` (`gestione_id`,`entry_date`),
KEY `idx_entries_status_date` (`status`,`entry_date`),
KEY `idx_entries_doc_number` (`document_number`),
KEY `idx_entries_doc_type` (`document_type`),
KEY `idx_cont_reg_stab_gest_data` (`stabile_id`,`gestione_id`,`data_registrazione`),
KEY `cr_gest_protnum_idx` (`gestione_id`,`protocollo_numero`),
CONSTRAINT `contabilita_registrazioni_confirmed_by_foreign` FOREIGN KEY (`confirmed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_registrazioni_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni` (`id_gestione`) ON DELETE CASCADE,
CONSTRAINT `contabilita_registrazioni_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `contabilita_registrazioni_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=483 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_regole_prima_nota`
--
DROP TABLE IF EXISTS `contabilita_regole_prima_nota`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_regole_prima_nota` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`origine` varchar(30) NOT NULL DEFAULT 'banca',
`chiave` varchar(50) NOT NULL,
`label` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`conto_dare_id` bigint(20) unsigned DEFAULT NULL,
`conto_avere_id` bigint(20) unsigned DEFAULT NULL,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `contabilita_regole_prima_nota_stabile_id_origine_chiave_unique` (`stabile_id`,`origine`,`chiave`),
KEY `contabilita_regole_prima_nota_conto_dare_id_foreign` (`conto_dare_id`),
KEY `contabilita_regole_prima_nota_conto_avere_id_foreign` (`conto_avere_id`),
CONSTRAINT `contabilita_regole_prima_nota_conto_avere_id_foreign` FOREIGN KEY (`conto_avere_id`) REFERENCES `contabilita_piano_conti` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_regole_prima_nota_conto_dare_id_foreign` FOREIGN KEY (`conto_dare_id`) REFERENCES `contabilita_piano_conti` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_regole_prima_nota_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_saldi_conti`
--
DROP TABLE IF EXISTS `contabilita_saldi_conti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_saldi_conti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`conto_id` bigint(20) unsigned DEFAULT NULL,
`iban` varchar(34) DEFAULT NULL,
`data_saldo` date NOT NULL,
`periodo_da` date DEFAULT NULL,
`periodo_a` date DEFAULT NULL,
`saldo` decimal(15,2) NOT NULL DEFAULT 0.00,
`is_partenza_contabile` tinyint(1) NOT NULL DEFAULT 0,
`tipo_estratto` varchar(50) DEFAULT NULL,
`note` text DEFAULT NULL,
`documento_stabile_id` bigint(20) unsigned DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `saldi_conti_stabile_conto_data_unique` (`stabile_id`,`conto_id`,`data_saldo`),
KEY `contabilita_saldi_conti_conto_id_foreign` (`conto_id`),
KEY `contabilita_saldi_conti_stabile_id_conto_id_data_saldo_index` (`stabile_id`,`conto_id`,`data_saldo`),
KEY `contabilita_saldi_conti_documento_stabile_id_foreign` (`documento_stabile_id`),
KEY `contabilita_saldi_conti_is_partenza_contabile_index` (`is_partenza_contabile`),
CONSTRAINT `contabilita_saldi_conti_conto_id_foreign` FOREIGN KEY (`conto_id`) REFERENCES `dati_bancari` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_saldi_conti_documento_stabile_id_foreign` FOREIGN KEY (`documento_stabile_id`) REFERENCES `documenti_stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `contabilita_saldi_conti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_situazione_iniziale_conguagli`
--
DROP TABLE IF EXISTS `contabilita_situazione_iniziale_conguagli`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_situazione_iniziale_conguagli` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`legacy_year` varchar(20) DEFAULT NULL,
`cod_tab` varchar(20) NOT NULL,
`n_stra` int(10) unsigned DEFAULT NULL,
`id_cond` varchar(20) NOT NULL,
`cond_inquil` varchar(255) DEFAULT NULL,
`mm` decimal(8,3) DEFAULT NULL,
`cons_euro` decimal(14,2) NOT NULL DEFAULT 0.00,
`incluso` tinyint(1) NOT NULL DEFAULT 1,
`origine` varchar(20) NOT NULL DEFAULT 'manuale',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `si_cong_stab_tab_stra_cond` (`stabile_id`,`cod_tab`,`n_stra`,`id_cond`),
KEY `contabilita_situazione_iniziale_conguagli_stabile_id_index` (`stabile_id`),
KEY `contabilita_situazione_iniziale_conguagli_legacy_year_index` (`legacy_year`),
KEY `contabilita_situazione_iniziale_conguagli_cod_tab_index` (`cod_tab`),
KEY `contabilita_situazione_iniziale_conguagli_n_stra_index` (`n_stra`),
KEY `contabilita_situazione_iniziale_conguagli_id_cond_index` (`id_cond`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_situazione_iniziale_fe_links`
--
DROP TABLE IF EXISTS `contabilita_situazione_iniziale_fe_links`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_situazione_iniziale_fe_links` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile_legacy` varchar(50) DEFAULT NULL,
`legacy_year` varchar(10) DEFAULT NULL,
`cre_deb_preced_id` bigint(20) unsigned NOT NULL,
`c_d` char(1) NOT NULL DEFAULT 'D',
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`fattura_elettronica_id` bigint(20) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `si_fe_links_unique` (`cod_stabile_legacy`,`legacy_year`,`cre_deb_preced_id`,`c_d`,`fattura_elettronica_id`),
KEY `si_fe_ctx_idx` (`cod_stabile_legacy`,`legacy_year`,`c_d`),
KEY `si_fe_credeb_idx` (`cre_deb_preced_id`),
KEY `si_fe_stabile_idx` (`stabile_id`),
KEY `si_fe_fattura_fk` (`fattura_elettronica_id`),
CONSTRAINT `si_fe_fattura_fk` FOREIGN KEY (`fattura_elettronica_id`) REFERENCES `fatture_elettroniche` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_situazione_iniziale_ra_links`
--
DROP TABLE IF EXISTS `contabilita_situazione_iniziale_ra_links`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_situazione_iniziale_ra_links` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile_legacy` varchar(50) DEFAULT NULL,
`legacy_year` varchar(10) DEFAULT NULL,
`cre_deb_preced_id` bigint(20) unsigned NOT NULL,
`c_d` char(1) NOT NULL DEFAULT 'D',
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`registro_ritenuta_acconto_id` bigint(20) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `si_ra_links_unique` (`cod_stabile_legacy`,`legacy_year`,`cre_deb_preced_id`,`c_d`,`registro_ritenuta_acconto_id`),
KEY `si_ra_ctx_idx` (`cod_stabile_legacy`,`legacy_year`,`c_d`),
KEY `si_ra_credeb_idx` (`cre_deb_preced_id`),
KEY `si_ra_stabile_idx` (`stabile_id`),
KEY `si_ra_registro_fk` (`registro_ritenuta_acconto_id`),
CONSTRAINT `si_ra_registro_fk` FOREIGN KEY (`registro_ritenuta_acconto_id`) REFERENCES `registro_ritenute_acconto` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contabilita_situazione_iniziale_voci`
--
DROP TABLE IF EXISTS `contabilita_situazione_iniziale_voci`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contabilita_situazione_iniziale_voci` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`legacy_year` varchar(20) DEFAULT NULL,
`gestione` varchar(20) NOT NULL,
`n_stra` int(10) unsigned DEFAULT NULL,
`categoria` varchar(20) NOT NULL,
`codice` varchar(50) DEFAULT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`importo_euro` decimal(14,2) NOT NULL DEFAULT 0.00,
`incluso` tinyint(1) NOT NULL DEFAULT 1,
`origine` varchar(20) NOT NULL DEFAULT 'manuale',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `si_voci_stab_gest_cat` (`stabile_id`,`gestione`,`categoria`),
KEY `contabilita_situazione_iniziale_voci_stabile_id_index` (`stabile_id`),
KEY `contabilita_situazione_iniziale_voci_legacy_year_index` (`legacy_year`),
KEY `contabilita_situazione_iniziale_voci_gestione_index` (`gestione`),
KEY `contabilita_situazione_iniziale_voci_n_stra_index` (`n_stra`),
KEY `contabilita_situazione_iniziale_voci_categoria_index` (`categoria`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contatori`
--
DROP TABLE IF EXISTS `contatori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contatori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`tipo_contatore` enum('acqua_fredda','acqua_calda','gas','elettrico','riscaldamento') NOT NULL,
`numero_contatore` varchar(255) NOT NULL,
`marca` varchar(255) DEFAULT NULL,
`modello` varchar(255) DEFAULT NULL,
`data_installazione` date DEFAULT NULL,
`lettura_iniziale` decimal(12,3) NOT NULL DEFAULT 0.000,
`ubicazione` varchar(255) DEFAULT NULL,
`telelettura` tinyint(1) NOT NULL DEFAULT 0,
`configurazione_telelettura` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione_telelettura`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `contatori_numero_contatore_unique` (`numero_contatore`),
KEY `contatori_stabile_id_tipo_contatore_index` (`stabile_id`,`tipo_contatore`),
KEY `contatori_unita_immobiliare_id_attivo_index` (`unita_immobiliare_id`,`attivo`),
CONSTRAINT `contatori_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `contatori_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contatori_orfani_staging`
--
DROP TABLE IF EXISTS `contatori_orfani_staging`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contatori_orfani_staging` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`matricola` varchar(80) NOT NULL,
`interno_originale` varchar(50) DEFAULT NULL,
`data_lettura` date NOT NULL,
`valore_lettura` decimal(12,3) NOT NULL,
`file_name` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `contatori_orfani_staging_stabile_id_foreign` (`stabile_id`),
CONSTRAINT `contatori_orfani_staging_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contatti_anagrafica`
--
DROP TABLE IF EXISTS `contatti_anagrafica`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contatti_anagrafica` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`anagrafica_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso anagrafica_condominiale',
`tipo_contatto` enum('email','pec','telefono','cellulare','whatsapp','telegram','altro') NOT NULL COMMENT 'Tipo di contatto',
`valore` varchar(255) NOT NULL COMMENT 'Valore del contatto (email, numero, etc.)',
`etichetta` varchar(255) DEFAULT NULL COMMENT 'Etichetta personalizzata (es: "lavoro", "casa", "emergenza")',
`principale` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Se è il contatto principale per questo tipo',
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Se il contatto è attivo',
`verificato` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Se il contatto è stato verificato',
`data_verifica` timestamp NULL DEFAULT NULL,
`usa_per_convocazioni` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Usare per convocazioni assemblee',
`usa_per_comunicazioni` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Usare per comunicazioni generali',
`usa_per_emergenze` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Usare per emergenze',
`usa_per_solleciti` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Usare per solleciti pagamento',
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `contatti_anagrafica_anagrafica_id_tipo_contatto_index` (`anagrafica_id`,`tipo_contatto`),
KEY `contatti_anagrafica_tipo_contatto_principale_index` (`tipo_contatto`,`principale`),
KEY `contatti_anagrafica_anagrafica_id_attivo_index` (`anagrafica_id`,`attivo`),
KEY `contatti_anagrafica_anagrafica_id_index` (`anagrafica_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `conti_bancari`
--
DROP TABLE IF EXISTS `conti_bancari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `conti_bancari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`id_cassa_gescon` int(11) DEFAULT NULL COMMENT 'ID originale da Anagr_casse',
`codice` varchar(10) NOT NULL COMMENT 'Codice cassa: CCB, CON, CDL',
`descrizione` varchar(255) NOT NULL COMMENT 'Descrizione account: es. UNICREDIT CC N.000104951005',
`saldo_iniziale` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Saldo iniziale in Euro',
`tipo_conto` varchar(20) NOT NULL DEFAULT 'bancario' COMMENT 'bancario, contanti, postale',
`banca` varchar(100) DEFAULT NULL COMMENT 'Nome banca estratto da descrizione',
`numero_conto` varchar(50) DEFAULT NULL COMMENT 'Numero conto bancario',
`iban` varchar(27) DEFAULT NULL COMMENT 'IBAN del conto',
`swift` varchar(11) DEFAULT NULL COMMENT 'Codice SWIFT/BIC',
`saldo_corrente` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Saldo attuale calcolato',
`ultima_riconciliazione` date DEFAULT NULL COMMENT 'Data ultima riconciliazione',
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Conto attivo/disattivo',
`formato_file` varchar(20) DEFAULT NULL COMMENT 'WRI, CSV, MT940, etc.',
`configurazione_import` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Config per import automatico' CHECK (json_valid(`configurazione_import`)),
`metadati_gescon` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Dati originali completi' CHECK (json_valid(`metadati_gescon`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `conti_bancari_tenant_id_codice_unique` (`tenant_id`,`codice`),
KEY `conti_bancari_gestione_id_foreign` (`gestione_id`),
KEY `conti_bancari_tenant_id_gestione_id_index` (`tenant_id`,`gestione_id`),
KEY `conti_bancari_tenant_id_codice_index` (`tenant_id`,`codice`),
KEY `conti_bancari_tenant_id_attivo_index` (`tenant_id`,`attivo`),
CONSTRAINT `conti_bancari_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `contratti_locazione`
--
DROP TABLE IF EXISTS `contratti_locazione`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `contratti_locazione` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso unita_immobiliari',
`locatore_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso anagrafica_condominiale (proprietario)',
`conduttore_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso anagrafica_condominiale (inquilino)',
`numero_contratto` varchar(255) DEFAULT NULL COMMENT 'Numero identificativo contratto',
`data_contratto` date NOT NULL COMMENT 'Data stipula contratto',
`data_inizio` date NOT NULL COMMENT 'Data inizio locazione',
`data_fine` date DEFAULT NULL COMMENT 'Data fine locazione (null = indeterminato)',
`canone_mensile` decimal(10,2) NOT NULL COMMENT 'Canone mensile',
`deposito_cauzionale` decimal(10,2) DEFAULT NULL COMMENT 'Deposito cauzionale',
`tipo_contratto` enum('libero_mercato','concordato','transitorio','studenti','altro') NOT NULL COMMENT 'Tipo di contratto di locazione',
`regime_spese` enum('tutto_inquilino','tutto_proprietario','ripartizione_confedilizia','personalizzato') NOT NULL DEFAULT 'ripartizione_confedilizia' COMMENT 'Come vengono ripartite le spese condominiali',
`configurazione_spese` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Configurazione personalizzata spese (se regime = personalizzato)' CHECK (json_valid(`configurazione_spese`)),
`stato` enum('attivo','scaduto','risolto','sospeso') NOT NULL DEFAULT 'attivo',
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `contratti_locazione_unita_immobiliare_id_stato_index` (`unita_immobiliare_id`,`stato`),
KEY `contratti_locazione_data_inizio_data_fine_index` (`data_inizio`,`data_fine`),
KEY `contratti_locazione_locatore_id_index` (`locatore_id`),
KEY `contratti_locazione_conduttore_id_index` (`conduttore_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dati_bancari`
--
DROP TABLE IF EXISTS `dati_bancari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dati_bancari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`contatto_id` bigint(20) unsigned DEFAULT NULL,
`tipo_conto` enum('corrente','deposito','risparmio','cassa') NOT NULL DEFAULT 'corrente',
`denominazione_banca` varchar(255) NOT NULL,
`numero_conto` varchar(50) DEFAULT NULL,
`iban` varchar(34) DEFAULT NULL,
`legacy_cod_cassa` varchar(64) DEFAULT NULL,
`abi` varchar(5) DEFAULT NULL,
`cab` varchar(5) DEFAULT NULL,
`cuc` varchar(20) DEFAULT NULL,
`sia` varchar(20) DEFAULT NULL,
`cin` varchar(1) DEFAULT NULL,
`bic_swift` varchar(11) DEFAULT NULL,
`intestazione_conto` varchar(255) DEFAULT NULL,
`data_saldo_iniziale` date DEFAULT NULL,
`saldo_iniziale` decimal(12,2) NOT NULL DEFAULT 0.00,
`valuta` varchar(3) NOT NULL DEFAULT 'EUR',
`stato_conto` enum('attivo','chiuso','sospeso') NOT NULL DEFAULT 'attivo',
`is_nostro_conto` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `dati_bancari_stabile_id_index` (`stabile_id`),
KEY `dati_bancari_contatto_id_index` (`contatto_id`),
KEY `dati_bancari_stato_conto_index` (`stato_conto`),
KEY `dati_bancari_iban_index` (`iban`),
KEY `dati_bancari_creato_da_foreign` (`creato_da`),
KEY `dati_bancari_modificato_da_foreign` (`modificato_da`),
KEY `dati_bancari_legacy_cod_cassa_index` (`legacy_cod_cassa`),
KEY `dati_bancari_is_nostro_conto_index` (`is_nostro_conto`),
CONSTRAINT `dati_bancari_contatto_id_foreign` FOREIGN KEY (`contatto_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `dati_bancari_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dati_bancari_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dati_bancari_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `destinatari_comunicazioni`
--
DROP TABLE IF EXISTS `destinatari_comunicazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `destinatari_comunicazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`cod_condomino` varchar(255) NOT NULL,
`tipo_comunicazione` varchar(255) NOT NULL,
`destinatario` varchar(255) NOT NULL,
`scala` varchar(255) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `destinatari_comunicazioni_stabile_id_tipo_comunicazione_index` (`stabile_id`,`tipo_comunicazione`),
KEY `destinatari_comunicazioni_cod_condomino_attivo_index` (`cod_condomino`,`attivo`),
CONSTRAINT `destinatari_comunicazioni_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `detrazioni_fiscali_dom`
--
DROP TABLE IF EXISTS `detrazioni_fiscali_dom`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `detrazioni_fiscali_dom` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`lavoro_straordinario_id` bigint(20) unsigned DEFAULT NULL,
`legacy_rif` varchar(100) DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`tipologia` varchar(100) DEFAULT NULL,
`importo` decimal(15,4) DEFAULT NULL,
`cessione_flag` tinyint(1) NOT NULL DEFAULT 0,
`importi_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`importi_json`)),
`cessione_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`cessione_json`)),
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `detrazioni_fiscali_dom_gestione_id_foreign` (`gestione_id`),
KEY `detrazioni_fiscali_dom_lavoro_straordinario_id_foreign` (`lavoro_straordinario_id`),
KEY `detrazioni_fiscali_dom_tenant_id_index` (`tenant_id`),
KEY `detrazioni_fiscali_dom_legacy_rif_index` (`legacy_rif`),
CONSTRAINT `detrazioni_fiscali_dom_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `detrazioni_fiscali_dom_lavoro_straordinario_id_foreign` FOREIGN KEY (`lavoro_straordinario_id`) REFERENCES `lavori_straordinari` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `detrazioni_partecipanti`
--
DROP TABLE IF EXISTS `detrazioni_partecipanti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `detrazioni_partecipanti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`detrazione_id` bigint(20) unsigned NOT NULL,
`soggetto_id` bigint(20) unsigned DEFAULT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`percentuale` decimal(8,4) DEFAULT NULL,
`parte_sconto` tinyint(1) NOT NULL DEFAULT 0,
`importo_riconosciuto` decimal(15,4) DEFAULT NULL,
`importo_residuo` decimal(15,4) DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `detrazioni_partecipanti_soggetto_id_foreign` (`soggetto_id`),
KEY `detrazioni_partecipanti_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `detrazioni_partecipanti_detrazione_id_soggetto_id_index` (`detrazione_id`,`soggetto_id`),
CONSTRAINT `detrazioni_partecipanti_detrazione_id_foreign` FOREIGN KEY (`detrazione_id`) REFERENCES `detrazioni_fiscali_dom` (`id`) ON DELETE CASCADE,
CONSTRAINT `detrazioni_partecipanti_soggetto_id_foreign` FOREIGN KEY (`soggetto_id`) REFERENCES `anagrafiche` (`id`),
CONSTRAINT `detrazioni_partecipanti_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dettagli_millesimali`
--
DROP TABLE IF EXISTS `dettagli_millesimali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dettagli_millesimali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tabella_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`millesimi` decimal(8,4) NOT NULL DEFAULT 0.0000,
`percentuale` decimal(8,4) DEFAULT NULL,
`quota_fissa` decimal(10,2) DEFAULT NULL,
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tabella_unita` (`tabella_id`,`unita_immobiliare_id`),
KEY `dettagli_millesimali_tabella_id_index` (`tabella_id`),
KEY `dettagli_millesimali_unita_immobiliare_id_index` (`unita_immobiliare_id`),
KEY `dettagli_millesimali_creato_da_foreign` (`creato_da`),
KEY `dettagli_millesimali_modificato_da_foreign` (`modificato_da`),
CONSTRAINT `dettagli_millesimali_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dettagli_millesimali_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dettagli_millesimali_tabella_id_foreign` FOREIGN KEY (`tabella_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `dettagli_millesimali_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dettagli_tabelle_millesimali`
--
DROP TABLE IF EXISTS `dettagli_tabelle_millesimali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dettagli_tabelle_millesimali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`millesimi` decimal(10,4) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tabella_unita` (`tabella_millesimale_id`,`unita_immobiliare_id`),
KEY `dettagli_tabelle_millesimali_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
CONSTRAINT `dettagli_tabelle_millesimali_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `dettagli_tabelle_millesimali_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dettaglio_importi_tabella`
--
DROP TABLE IF EXISTS `dettaglio_importi_tabella`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dettaglio_importi_tabella` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`ruolo_legacy` varchar(1) DEFAULT NULL,
`legacy_year` varchar(4) NOT NULL DEFAULT '0000',
`millesimi` decimal(12,4) NOT NULL DEFAULT 0.0000,
`prev_euro` decimal(15,2) DEFAULT NULL,
`cons_euro` decimal(15,2) DEFAULT NULL,
`ex_cons_euro` decimal(15,2) DEFAULT NULL,
`n_stra` int(10) unsigned DEFAULT NULL,
`unico` tinyint(1) DEFAULT NULL,
`proviene_ors` varchar(1) DEFAULT NULL,
`proviene_n_stra` int(10) unsigned DEFAULT NULL,
`proviene_eserc` int(10) unsigned DEFAULT NULL,
`legacy_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`legacy_payload`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tabella_unita_ruolo_anno` (`tabella_millesimale_id`,`unita_immobiliare_id`,`ruolo_legacy`,`legacy_year`),
KEY `dettaglio_importi_tabella_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `dettaglio_importi_tabella_created_by_foreign` (`created_by`),
KEY `dettaglio_importi_tabella_ruolo_legacy_index` (`ruolo_legacy`),
KEY `dettaglio_importi_tabella_legacy_year_index` (`legacy_year`),
CONSTRAINT `dettaglio_importi_tabella_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dettaglio_importi_tabella_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `dettaglio_importi_tabella_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=33812 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dettaglio_millesimi`
--
DROP TABLE IF EXISTS `dettaglio_millesimi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dettaglio_millesimi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`millesimi` decimal(10,4) NOT NULL DEFAULT 0.0000,
`nord` int(11) DEFAULT NULL,
`valore_prev` decimal(15,4) DEFAULT NULL,
`valore_cons` decimal(15,4) DEFAULT NULL,
`ruolo_legacy` varchar(100) DEFAULT NULL,
`legacy_interno` varchar(100) DEFAULT NULL,
`partecipa` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`legacy_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`legacy_payload`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tabella_unita_ruolo_legacy` (`tabella_millesimale_id`,`unita_immobiliare_id`,`ruolo_legacy`),
KEY `dettaglio_millesimi_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `dettaglio_millesimi_created_by_foreign` (`created_by`),
KEY `dettaglio_millesimi_millesimi_index` (`millesimi`),
CONSTRAINT `dettaglio_millesimi_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `dettaglio_millesimi_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `dettaglio_millesimi_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=25801 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `dettaglio_ripartizione_spese`
--
DROP TABLE IF EXISTS `dettaglio_ripartizione_spese`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `dettaglio_ripartizione_spese` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ripartizione_spese_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`anagrafica_condominiale_id` bigint(20) unsigned NOT NULL,
`millesimi` decimal(8,3) NOT NULL,
`importo_calcolato` decimal(10,2) NOT NULL,
`importo_rettificato` decimal(10,2) DEFAULT NULL,
`motivo_rettifica` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `dettaglio_ripartizione_spese_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `dettaglio_ripartizione_spese_anagrafica_condominiale_id_foreign` (`anagrafica_condominiale_id`),
CONSTRAINT `dettaglio_ripartizione_spese_anagrafica_condominiale_id_foreign` FOREIGN KEY (`anagrafica_condominiale_id`) REFERENCES `anagrafica_condominiale` (`id`) ON DELETE CASCADE,
CONSTRAINT `dettaglio_ripartizione_spese_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `diritti_reali`
--
DROP TABLE IF EXISTS `diritti_reali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `diritti_reali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso unita_immobiliari',
`anagrafica_id` bigint(20) unsigned NOT NULL COMMENT 'FK verso anagrafica_condominiale',
`tipo_diritto` enum('proprieta','nuda_proprieta','usufrutto','uso','abitazione','enfiteusi','servitu','superficie','altro') NOT NULL COMMENT 'Tipo di diritto reale',
`quota_numeratore` decimal(10,0) NOT NULL DEFAULT 1 COMMENT 'Numeratore della quota (es: 2 in 2/16)',
`quota_denominatore` decimal(10,0) NOT NULL DEFAULT 1 COMMENT 'Denominatore della quota (es: 16 in 2/16)',
`percentuale` decimal(5,2) NOT NULL COMMENT 'Percentuale calcolata (es: 12.50 per 2/16)',
`data_inizio` date NOT NULL COMMENT 'Data inizio diritto',
`data_fine` date DEFAULT NULL COMMENT 'Data fine diritto (null = a tempo indeterminato)',
`titolo_acquisizione` varchar(255) DEFAULT NULL COMMENT 'Titolo di acquisizione (compravendita, successione, etc.)',
`atto_notarile` varchar(255) DEFAULT NULL COMMENT 'Riferimenti atto notarile',
`data_atto` date DEFAULT NULL COMMENT 'Data dell''atto',
`notaio` varchar(255) DEFAULT NULL COMMENT 'Nome del notaio',
`trascrizione_conservatoria` varchar(255) DEFAULT NULL COMMENT 'Numero trascrizione conservatoria',
`data_trascrizione` date DEFAULT NULL,
`voltura_catastale` varchar(255) DEFAULT NULL COMMENT 'Riferimenti voltura catastale',
`data_voltura` date DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Se il diritto è attualmente attivo',
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `diritti_reali_unita_immobiliare_id_attivo_index` (`unita_immobiliare_id`,`attivo`),
KEY `diritti_reali_anagrafica_id_tipo_diritto_index` (`anagrafica_id`,`tipo_diritto`),
KEY `diritti_reali_data_inizio_data_fine_index` (`data_inizio`,`data_fine`),
KEY `diritti_reali_unita_immobiliare_id_index` (`unita_immobiliare_id`),
KEY `diritti_reali_anagrafica_id_index` (`anagrafica_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documenti`
--
DROP TABLE IF EXISTS `documenti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documenti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`protocollo` varchar(255) DEFAULT NULL,
`data_protocollo` date DEFAULT NULL,
`tipo_documento` varchar(255) DEFAULT NULL,
`mime_type` varchar(255) DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`cartella_archivio_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`esercizio_contabile_id` bigint(20) unsigned DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`importo` decimal(12,2) DEFAULT NULL,
`data_documento` date DEFAULT NULL,
`nome_file` varchar(255) NOT NULL,
`path_file` varchar(255) NOT NULL,
`testo_estratto_ocr` text DEFAULT NULL,
`documentable_id` bigint(20) unsigned DEFAULT NULL,
`documentable_type` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`unita_id` bigint(20) unsigned DEFAULT NULL,
`utente_id` bigint(20) unsigned DEFAULT NULL,
`nome` varchar(255) DEFAULT NULL,
`tipologia` enum('fattura','ricevuta','contratto','preventivo','verbale','comunicazione','relazione_tecnica','certificato','planimetria','foto','altro') DEFAULT NULL,
`fornitore` varchar(200) DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`importo_collegato` decimal(10,2) DEFAULT NULL,
`categoria_spesa` enum('spese_ordinarie','riscaldamento','acqua','ascensore','pulizie','manutenzione','spese_straordinarie','amministrazione','altro') DEFAULT NULL,
`tags` text DEFAULT NULL,
`note` text DEFAULT NULL,
`numero_protocollo` varchar(50) DEFAULT NULL,
`archive_reference` varchar(100) DEFAULT NULL,
`percorso_file` varchar(500) DEFAULT NULL,
`numero_pagine` int(11) NOT NULL DEFAULT 1,
`dimensione_file` bigint(20) unsigned DEFAULT NULL,
`hash_file` varchar(64) DEFAULT NULL,
`xml_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`xml_data`)),
`estensione` varchar(10) DEFAULT NULL,
`contenuto_ocr` longtext DEFAULT NULL,
`metadati_ocr` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadati_ocr`)),
`metadati_archivio` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadati_archivio`)),
`visibility_scope` varchar(50) NOT NULL DEFAULT 'interno',
`visibility_groups` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`visibility_groups`)),
`visibility_roles` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`visibility_roles`)),
`allowed_user_ids` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`allowed_user_ids`)),
`approvato` tinyint(1) NOT NULL DEFAULT 0,
`archiviato` tinyint(1) NOT NULL DEFAULT 0,
`urgente` tinyint(1) NOT NULL DEFAULT 0,
`is_demo` tinyint(1) NOT NULL DEFAULT 0,
`movimento_contabile_id` bigint(20) unsigned DEFAULT NULL,
`collegato_budget` tinyint(1) NOT NULL DEFAULT 0,
`data_upload` timestamp NULL DEFAULT NULL,
`data_approvazione` timestamp NULL DEFAULT NULL,
`data_archiviazione` timestamp NULL DEFAULT NULL,
`approvato_da` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `documenti_protocollo_unique` (`protocollo`),
UNIQUE KEY `documenti_numero_protocollo_unique` (`numero_protocollo`),
UNIQUE KEY `documenti_archive_reference_unique` (`archive_reference`),
KEY `documenti_stabile_id_foreign` (`stabile_id`),
KEY `documenti_fornitore_id_foreign` (`fornitore_id`),
KEY `documenti_documentable_id_index` (`documentable_id`),
KEY `documenti_documentable_type_index` (`documentable_type`),
KEY `documenti_unita_id_foreign` (`unita_id`),
KEY `documenti_utente_id_foreign` (`utente_id`),
KEY `documenti_movimento_contabile_id_foreign` (`movimento_contabile_id`),
KEY `documenti_approvato_da_foreign` (`approvato_da`),
KEY `documenti_stabile_tipologia_index` (`stabile_id`,`tipologia`),
KEY `documenti_data_documento_index` (`data_documento`),
KEY `documenti_categoria_spesa_index` (`categoria_spesa`),
KEY `documenti_urgente_approvato_index` (`urgente`,`approvato`),
KEY `documenti_is_demo_index` (`is_demo`),
KEY `documenti_visibility_scope_index` (`visibility_scope`),
KEY `documenti_cartella_archivio_id_foreign` (`cartella_archivio_id`),
CONSTRAINT `documenti_approvato_da_foreign` FOREIGN KEY (`approvato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_cartella_archivio_id_foreign` FOREIGN KEY (`cartella_archivio_id`) REFERENCES `documento_archivio_cartelle` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_movimento_contabile_id_foreign` FOREIGN KEY (`movimento_contabile_id`) REFERENCES `movimenti_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_unita_id_foreign` FOREIGN KEY (`unita_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_utente_id_foreign` FOREIGN KEY (`utente_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=244 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documenti_collegati`
--
DROP TABLE IF EXISTS `documenti_collegati`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documenti_collegati` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`contatto_id` bigint(20) unsigned DEFAULT NULL,
`tipo_documento` enum('assicurazione','pulizia','caldaia','ascensore','regolamento','piantine','manutenzione','altro') NOT NULL,
`titolo` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`numero_protocollo` varchar(255) NOT NULL,
`data_sottoscrizione` date DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`data_disdetta_limite` date DEFAULT NULL,
`giorni_preavviso_disdetta` int(11) NOT NULL DEFAULT 90,
`tipo_contratto` enum('mensile','bimestrale','trimestrale','semestrale','annuale','altro') DEFAULT NULL,
`importo_contratto` decimal(10,2) DEFAULT NULL,
`valuta` varchar(3) NOT NULL DEFAULT 'EUR',
`stato_documento` enum('attivo','scaduto','disdetto','rinnovato','sospeso') NOT NULL DEFAULT 'attivo',
`numero_pagine_totali` int(11) DEFAULT NULL,
`path_file_originale` varchar(255) DEFAULT NULL,
`path_file_scansione` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `documenti_collegati_numero_protocollo_unique` (`numero_protocollo`),
KEY `documenti_collegati_stabile_id_index` (`stabile_id`),
KEY `documenti_collegati_contatto_id_index` (`contatto_id`),
KEY `documenti_collegati_tipo_documento_index` (`tipo_documento`),
KEY `documenti_collegati_stato_documento_index` (`stato_documento`),
KEY `documenti_collegati_data_scadenza_index` (`data_scadenza`),
KEY `documenti_collegati_data_disdetta_limite_index` (`data_disdetta_limite`),
KEY `documenti_collegati_numero_protocollo_index` (`numero_protocollo`),
KEY `documenti_collegati_creato_da_foreign` (`creato_da`),
KEY `documenti_collegati_modificato_da_foreign` (`modificato_da`),
CONSTRAINT `documenti_collegati_contatto_id_foreign` FOREIGN KEY (`contatto_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_collegati_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_collegati_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `documenti_collegati_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documenti_stabili`
--
DROP TABLE IF EXISTS `documenti_stabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documenti_stabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`nome_file` varchar(255) NOT NULL,
`nome_originale` varchar(255) NOT NULL,
`percorso_file` varchar(255) NOT NULL,
`categoria` varchar(255) NOT NULL DEFAULT 'altri',
`tipo_mime` varchar(255) NOT NULL,
`dimensione` bigint(20) NOT NULL,
`descrizione` text DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`tags` varchar(255) DEFAULT NULL,
`pubblico` tinyint(1) NOT NULL DEFAULT 0,
`protetto` tinyint(1) NOT NULL DEFAULT 0,
`password_hash` varchar(255) DEFAULT NULL,
`versione` int(11) NOT NULL DEFAULT 1,
`downloads` int(11) NOT NULL DEFAULT 0,
`ultimo_accesso` timestamp NULL DEFAULT NULL,
`caricato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `documenti_stabili_caricato_da_foreign` (`caricato_da`),
KEY `documenti_stabili_stabile_id_categoria_index` (`stabile_id`,`categoria`),
KEY `documenti_stabili_categoria_created_at_index` (`categoria`,`created_at`),
KEY `documenti_stabili_data_scadenza_index` (`data_scadenza`),
CONSTRAINT `documenti_stabili_caricato_da_foreign` FOREIGN KEY (`caricato_da`) REFERENCES `users` (`id`),
CONSTRAINT `documenti_stabili_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documento_archivio_cartelle`
--
DROP TABLE IF EXISTS `documento_archivio_cartelle`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documento_archivio_cartelle` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`parent_id` bigint(20) unsigned DEFAULT NULL,
`nome` varchar(255) NOT NULL,
`slug` varchar(160) NOT NULL,
`codice` varchar(80) DEFAULT NULL,
`percorso_logico` varchar(255) DEFAULT NULL,
`visibility_scope` varchar(40) NOT NULL DEFAULT 'interno',
`visibility_roles` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`visibility_roles`)),
`visibility_groups` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`visibility_groups`)),
`allowed_user_ids` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`allowed_user_ids`)),
`note` text DEFAULT NULL,
`sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `doc_arch_folder_parent_slug_unique` (`stabile_id`,`parent_id`,`slug`),
KEY `documento_archivio_cartelle_parent_id_foreign` (`parent_id`),
KEY `documento_archivio_cartelle_created_by_foreign` (`created_by`),
KEY `documento_archivio_cartelle_updated_by_foreign` (`updated_by`),
KEY `doc_arch_folder_stabile_scope_idx` (`stabile_id`,`visibility_scope`),
CONSTRAINT `documento_archivio_cartelle_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `documento_archivio_cartelle_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `documento_archivio_cartelle` (`id`) ON DELETE SET NULL,
CONSTRAINT `documento_archivio_cartelle_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `documento_archivio_cartelle_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `documento_archivio_fisico_items`
--
DROP TABLE IF EXISTS `documento_archivio_fisico_items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `documento_archivio_fisico_items` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`parent_id` bigint(20) unsigned DEFAULT NULL,
`documento_id` bigint(20) unsigned DEFAULT NULL,
`codice_univoco` varchar(40) NOT NULL,
`qr_code_data` text DEFAULT NULL,
`nfc_reference` varchar(120) DEFAULT NULL,
`voce_numero` smallint(5) unsigned DEFAULT NULL,
`voce_titolo` varchar(255) DEFAULT NULL,
`tipo_item` varchar(40) NOT NULL,
`titolo` varchar(255) NOT NULL,
`note` text DEFAULT NULL,
`data_archiviazione` date DEFAULT NULL,
`supporto_fisico` varchar(120) DEFAULT NULL,
`modello_etichetta` varchar(20) DEFAULT NULL,
`magazzino` varchar(120) DEFAULT NULL,
`scaffale` varchar(120) DEFAULT NULL,
`ripiano` varchar(120) DEFAULT NULL,
`ubicazione_dettaglio` varchar(255) DEFAULT NULL,
`stato` varchar(40) NOT NULL DEFAULT 'attivo',
`sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`metadati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadati`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `documento_archivio_fisico_items_codice_univoco_unique` (`codice_univoco`),
KEY `documento_archivio_fisico_items_parent_id_foreign` (`parent_id`),
KEY `documento_archivio_fisico_items_documento_id_foreign` (`documento_id`),
KEY `documento_archivio_fisico_items_created_by_foreign` (`created_by`),
KEY `documento_archivio_fisico_items_updated_by_foreign` (`updated_by`),
KEY `doc_arch_fisico_stabile_tipo_idx` (`stabile_id`,`tipo_item`),
KEY `doc_arch_fisico_stabile_parent_idx` (`stabile_id`,`parent_id`),
KEY `doc_arch_fisico_stabile_data_idx` (`stabile_id`,`data_archiviazione`),
CONSTRAINT `documento_archivio_fisico_items_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `documento_archivio_fisico_items_documento_id_foreign` FOREIGN KEY (`documento_id`) REFERENCES `documenti` (`id`) ON DELETE SET NULL,
CONSTRAINT `documento_archivio_fisico_items_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `documento_archivio_fisico_items` (`id`) ON DELETE SET NULL,
CONSTRAINT `documento_archivio_fisico_items_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `documento_archivio_fisico_items_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `email_blacklist`
--
DROP TABLE IF EXISTS `email_blacklist`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `email_blacklist` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`reason` enum('unsubscribed','bounced','spam_complaint','manual') NOT NULL,
`note` text DEFAULT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email_blacklist_email_unique` (`email`),
KEY `email_blacklist_email_is_active_index` (`email`,`is_active`),
KEY `email_blacklist_reason_index` (`reason`),
KEY `email_blacklist_created_by_foreign` (`created_by`),
CONSTRAINT `email_blacklist_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `esercizi_contabili`
--
DROP TABLE IF EXISTS `esercizi_contabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `esercizi_contabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`descrizione` varchar(255) NOT NULL,
`anno` int(11) NOT NULL COMMENT 'Anno di riferimento dell''esercizio',
`data_inizio` date NOT NULL,
`data_fine` date NOT NULL,
`tipologia` enum('ordinaria','riscaldamento','straordinaria') NOT NULL DEFAULT 'ordinaria' COMMENT 'Tipo di gestione contabile',
`descrizione_straordinaria` text DEFAULT NULL COMMENT 'Descrizione dettagliata per gestioni straordinarie',
`ordine_sequenza` int(11) NOT NULL DEFAULT 0 COMMENT 'Ordine di sequenza per tipologia (per garantire continuità temporale)',
`stato` enum('aperto','chiuso','consolidato') NOT NULL DEFAULT 'aperto',
`chiusa_contabilita` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Indica se la contabilità è stata chiusa',
`data_limite_bilancio` date DEFAULT NULL COMMENT 'Data limite per la chiusura del bilancio',
`approvato_assemblea` tinyint(1) NOT NULL DEFAULT 0,
`data_approvazione` date DEFAULT NULL,
`assemblea_id` bigint(20) unsigned DEFAULT NULL COMMENT 'ID dell''assemblea che ha approvato il bilancio',
`esercizio_precedente_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_stabile_tipologia_anno` (`stabile_id`,`tipologia`,`anno`),
KEY `esercizi_contabili_stabile_id_tipologia_anno_index` (`stabile_id`,`tipologia`,`anno`),
KEY `esercizi_contabili_stabile_id_stato_index` (`stabile_id`,`stato`),
KEY `esercizi_contabili_tipologia_ordine_sequenza_index` (`tipologia`,`ordine_sequenza`),
KEY `esercizi_contabili_esercizio_precedente_id_foreign` (`esercizio_precedente_id`),
CONSTRAINT `esercizi_contabili_esercizio_precedente_id_foreign` FOREIGN KEY (`esercizio_precedente_id`) REFERENCES `esercizi_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `esercizi_contabili_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `etichette_protocollo`
--
DROP TABLE IF EXISTS `etichette_protocollo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `etichette_protocollo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`numero_protocollo` varchar(50) NOT NULL,
`tipologia` varchar(50) NOT NULL,
`data_protocollo` date NOT NULL,
`descrizione_breve` varchar(200) NOT NULL,
`numero_pagine` int(11) NOT NULL DEFAULT 1,
`scadenza` date DEFAULT NULL,
`formato_etichetta` enum('A4','A5','custom') NOT NULL DEFAULT 'A4',
`posizione_x` int(11) NOT NULL DEFAULT 0,
`posizione_y` int(11) NOT NULL DEFAULT 0,
`stampata` tinyint(1) NOT NULL DEFAULT 0,
`data_stampa` timestamp NULL DEFAULT NULL,
`codice_qr` varchar(255) DEFAULT NULL,
`codice_barre` varchar(255) DEFAULT NULL,
`ubicazione_fisica` varchar(100) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `etichette_protocollo_numero_protocollo_unique` (`numero_protocollo`),
KEY `etichette_protocollo_numero_protocollo_index` (`numero_protocollo`),
KEY `etichette_protocollo_tipologia_index` (`tipologia`),
KEY `etichette_protocollo_data_protocollo_index` (`data_protocollo`),
KEY `etichette_protocollo_stampata_index` (`stampata`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `failed_jobs`
--
DROP TABLE IF EXISTS `failed_jobs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `failed_jobs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`uuid` varchar(255) NOT NULL,
`connection` text NOT NULL,
`queue` text NOT NULL,
`payload` longtext NOT NULL,
`exception` longtext NOT NULL,
`failed_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fatture_elettroniche`
--
DROP TABLE IF EXISTS `fatture_elettroniche`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fatture_elettroniche` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`registrazione_contabile_id` bigint(20) unsigned DEFAULT NULL,
`numero_fattura` varchar(255) NOT NULL,
`data_fattura` date NOT NULL,
`data_scadenza` date DEFAULT NULL,
`pagamento_modalita` varchar(80) DEFAULT NULL,
`pagamento_iban` varchar(34) DEFAULT NULL,
`pagamento_bic` varchar(20) DEFAULT NULL,
`pagamento_cbill` varchar(20) DEFAULT NULL,
`pagamento_codice_avviso` varchar(40) DEFAULT NULL,
`pagamento_codice_fiscale_ente` varchar(20) DEFAULT NULL,
`pagamento_codice_sia` varchar(10) DEFAULT NULL,
`fornitore_piva` varchar(20) NOT NULL,
`fornitore_cf` varchar(20) DEFAULT NULL,
`fornitore_denominazione` varchar(255) NOT NULL,
`imponibile` decimal(15,2) NOT NULL,
`iva` decimal(15,2) NOT NULL,
`totale` decimal(15,2) NOT NULL,
`consumo_valore` decimal(15,3) DEFAULT NULL,
`consumo_unita` varchar(10) DEFAULT NULL,
`consumo_riferimento` varchar(80) DEFAULT NULL,
`consumo_raw` text DEFAULT NULL,
`acqua_codice_utenza` varchar(255) DEFAULT NULL,
`acqua_codice_cliente` varchar(255) DEFAULT NULL,
`acqua_codice_contratto` varchar(255) DEFAULT NULL,
`acqua_contatore_matricola` varchar(255) DEFAULT NULL,
`codice_destinatario` varchar(10) DEFAULT NULL,
`pec_destinatario` varchar(255) DEFAULT NULL,
`destinatario_cf` varchar(20) DEFAULT NULL,
`destinatario_piva` varchar(32) DEFAULT NULL,
`destinatario_denominazione` varchar(255) DEFAULT NULL,
`stato` enum('ricevuta','contabilizzata','pagata','rifiutata') NOT NULL DEFAULT 'ricevuta',
`xml_content` longtext DEFAULT NULL,
`nome_file_xml` varchar(255) DEFAULT NULL,
`nome_file_p7m` varchar(255) DEFAULT NULL,
`p7m_path` varchar(255) DEFAULT NULL,
`xml_path` varchar(255) DEFAULT NULL,
`allegato_pdf_nome` varchar(255) DEFAULT NULL,
`allegato_pdf_mime` varchar(100) DEFAULT NULL,
`allegato_pdf_path` varchar(255) DEFAULT NULL,
`allegato_pdf_hash` varchar(64) DEFAULT NULL,
`xml_hash` varchar(64) DEFAULT NULL,
`sdi_file` varchar(64) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fatture_elettroniche_xml_hash_unique` (`xml_hash`),
KEY `fatture_elettroniche_registrazione_contabile_id_foreign` (`registrazione_contabile_id`),
KEY `fatture_elettroniche_stabile_id_data_fattura_index` (`stabile_id`,`data_fattura`),
KEY `fatture_elettroniche_fornitore_piva_numero_fattura_index` (`fornitore_piva`,`numero_fattura`),
KEY `fatture_elettroniche_stato_index` (`stato`),
KEY `fatture_elettroniche_fornitore_id_index` (`fornitore_id`),
KEY `fatture_elettroniche_destinatario_cf_index` (`destinatario_cf`),
KEY `fatture_elettroniche_allegato_pdf_hash_index` (`allegato_pdf_hash`),
KEY `idx_fe_stabile_sdi_file` (`stabile_id`,`sdi_file`),
KEY `fatture_elettroniche_destinatario_piva_index` (`destinatario_piva`),
CONSTRAINT `fatture_elettroniche_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `fatture_elettroniche_registrazione_contabile_id_foreign` FOREIGN KEY (`registrazione_contabile_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL,
CONSTRAINT `fatture_elettroniche_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=236 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fatture_estratte_staging`
--
DROP TABLE IF EXISTS `fatture_estratte_staging`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fatture_estratte_staging` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`file_path` varchar(255) DEFAULT NULL,
`fornitore_nome` varchar(255) DEFAULT NULL,
`partita_iva` varchar(50) DEFAULT NULL,
`codice_cliente` varchar(80) DEFAULT NULL,
`pod` varchar(80) DEFAULT NULL,
`pdr` varchar(80) DEFAULT NULL,
`matricola_contatore` varchar(80) DEFAULT NULL,
`codice_utenza` varchar(80) DEFAULT NULL,
`numero_contratto` varchar(80) DEFAULT NULL,
`cbill` varchar(80) DEFAULT NULL,
`codice_avviso` varchar(80) DEFAULT NULL,
`data_inizio_periodo` date DEFAULT NULL,
`data_fine_periodo` date DEFAULT NULL,
`periodi_conteggiati` int(11) DEFAULT NULL,
`tipo_lettura` varchar(50) DEFAULT NULL,
`quantita_consumata` decimal(12,3) DEFAULT NULL,
`unita_misura` varchar(20) DEFAULT NULL,
`importo_monetario` decimal(12,2) DEFAULT NULL,
`conto_mastro` varchar(50) DEFAULT NULL,
`stato` varchar(50) NOT NULL DEFAULT 'pendente',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fatture_estratte_staging_stabile_id_foreign` (`stabile_id`),
CONSTRAINT `fatture_estratte_staging_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fatture_fornitori`
--
DROP TABLE IF EXISTS `fatture_fornitori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fatture_fornitori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned NOT NULL,
`numero_fattura` varchar(255) NOT NULL,
`data_fattura` date NOT NULL,
`data_pagamento` date DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`imponibile` decimal(10,2) NOT NULL,
`iva` decimal(10,2) NOT NULL,
`totale` decimal(10,2) NOT NULL,
`gestione_tipo` varchar(255) NOT NULL,
`registrata` tinyint(1) NOT NULL DEFAULT 0,
`pagata` tinyint(1) NOT NULL DEFAULT 0,
`numero_protocollo` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fatture_fornitori_anno_gestione_id_foreign` (`anno_gestione_id`),
KEY `fatture_fornitori_fornitore_id_foreign` (`fornitore_id`),
KEY `fatture_fornitori_stabile_id_data_fattura_index` (`stabile_id`,`data_fattura`),
KEY `fatture_fornitori_registrata_pagata_index` (`registrata`,`pagata`),
CONSTRAINT `fatture_fornitori_anno_gestione_id_foreign` FOREIGN KEY (`anno_gestione_id`) REFERENCES `anni_gestione` (`id`),
CONSTRAINT `fatture_fornitori_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori_gescon` (`id`),
CONSTRAINT `fatture_fornitori_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_cassetto_download_logs`
--
DROP TABLE IF EXISTS `fe_cassetto_download_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_cassetto_download_logs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`codice_fiscale_soggetto` varchar(32) NOT NULL,
`dal` date NOT NULL,
`al` date NOT NULL,
`metadati` tinyint(1) NOT NULL DEFAULT 0,
`request_hash` varchar(64) NOT NULL,
`zip_sha256` varchar(64) DEFAULT NULL,
`zip_bytes` bigint(20) unsigned DEFAULT NULL,
`files_total` int(10) unsigned NOT NULL DEFAULT 0,
`imported` int(10) unsigned NOT NULL DEFAULT 0,
`duplicates` int(10) unsigned NOT NULL DEFAULT 0,
`errors` int(10) unsigned NOT NULL DEFAULT 0,
`status` varchar(32) NOT NULL DEFAULT 'started',
`message` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fe_cassetto_download_logs_amministratore_id_stabile_id_index` (`amministratore_id`,`stabile_id`),
KEY `fe_cassetto_download_logs_request_hash_index` (`request_hash`),
KEY `fe_cassetto_download_logs_zip_sha256_index` (`zip_sha256`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_cassetto_service_configs`
--
DROP TABLE IF EXISTS `fe_cassetto_service_configs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_cassetto_service_configs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`base_url` varchar(512) DEFAULT NULL,
`password_script` text DEFAULT NULL,
`username` text DEFAULT NULL,
`password` text DEFAULT NULL,
`pin` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_ritenute_previdenziali`
--
DROP TABLE IF EXISTS `fe_ritenute_previdenziali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_ritenute_previdenziali` (
`codice` varchar(10) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`codice`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_tributi_f24`
--
DROP TABLE IF EXISTS `fe_tributi_f24`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_tributi_f24` (
`codice` varchar(10) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`ritenuta_previdenziale_codice` varchar(10) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`codice`),
KEY `fe_tributi_f24_ritenuta_previdenziale_codice_foreign` (`ritenuta_previdenziale_codice`),
CONSTRAINT `fe_tributi_f24_ritenuta_previdenziale_codice_foreign` FOREIGN KEY (`ritenuta_previdenziale_codice`) REFERENCES `fe_ritenute_previdenziali` (`codice`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_xsd_code_domains`
--
DROP TABLE IF EXISTS `fe_xsd_code_domains`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_xsd_code_domains` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`version_id` bigint(20) unsigned NOT NULL,
`type_name` varchar(200) NOT NULL,
`base_type` varchar(200) DEFAULT NULL,
`documentation` text DEFAULT NULL,
`codes_count` int(10) unsigned NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fe_xsd_code_domains_version_id_type_name_unique` (`version_id`,`type_name`),
KEY `fe_xsd_code_domains_version_id_index` (`version_id`),
CONSTRAINT `fe_xsd_code_domains_version_id_foreign` FOREIGN KEY (`version_id`) REFERENCES `fe_xsd_versions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_xsd_codes`
--
DROP TABLE IF EXISTS `fe_xsd_codes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_xsd_codes` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`domain_id` bigint(20) unsigned NOT NULL,
`code` varchar(100) NOT NULL,
`label` varchar(255) DEFAULT NULL,
`documentation` text DEFAULT NULL,
`sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fe_xsd_codes_domain_id_code_unique` (`domain_id`,`code`),
KEY `fe_xsd_codes_domain_id_index` (`domain_id`),
KEY `fe_xsd_codes_code_index` (`code`),
CONSTRAINT `fe_xsd_codes_domain_id_foreign` FOREIGN KEY (`domain_id`) REFERENCES `fe_xsd_code_domains` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fe_xsd_versions`
--
DROP TABLE IF EXISTS `fe_xsd_versions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fe_xsd_versions` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`version_label` varchar(100) DEFAULT NULL,
`original_filename` varchar(255) DEFAULT NULL,
`stored_path` varchar(255) DEFAULT NULL,
`sha256` varchar(64) NOT NULL,
`created_by_user_id` bigint(20) unsigned DEFAULT NULL,
`imported_at` timestamp NULL DEFAULT NULL,
`note` text DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fe_xsd_versions_sha256_unique` (`sha256`),
KEY `fe_xsd_versions_created_by_user_id_foreign` (`created_by_user_id`),
KEY `fe_xsd_versions_imported_at_index` (`imported_at`),
CONSTRAINT `fe_xsd_versions_created_by_user_id_foreign` FOREIGN KEY (`created_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fondi_condominiali`
--
DROP TABLE IF EXISTS `fondi_condominiali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fondi_condominiali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`tipo_fondo` enum('ordinario','riserva','ascensore','riscaldamento','facciata_tetto','verde_giardini','sicurezza','innovazione','investimenti','personalizzato') NOT NULL,
`denominazione` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`saldo_attuale` decimal(12,2) NOT NULL DEFAULT 0.00,
`saldo_minimo` decimal(12,2) NOT NULL DEFAULT 0.00,
`percentuale_accantonamento` decimal(5,2) NOT NULL DEFAULT 0.00,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_stabile_tipo_fondo` (`stabile_id`,`tipo_fondo`),
CONSTRAINT `fondi_condominiali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fornitore_clienti`
--
DROP TABLE IF EXISTS `fornitore_clienti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fornitore_clienti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned NOT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`legacy_cliente_id` bigint(20) unsigned DEFAULT NULL,
`display_name` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`phone_alt` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(255) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(255) DEFAULT NULL,
`partita_iva` varchar(255) DEFAULT NULL,
`codice_fiscale` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`source` varchar(255) DEFAULT NULL,
`imported_from_path` varchar(255) DEFAULT NULL,
`imported_at` timestamp NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fornitore_clienti_fornitore_legacy_unique` (`fornitore_id`,`legacy_cliente_id`),
KEY `fornitore_clienti_amministratore_id_foreign` (`amministratore_id`),
KEY `fornitore_clienti_rubrica_id_foreign` (`rubrica_id`),
KEY `fornitore_clienti_fornitore_name_idx` (`fornitore_id`,`display_name`),
KEY `fornitore_clienti_fornitore_rubrica_idx` (`fornitore_id`,`rubrica_id`),
CONSTRAINT `fornitore_clienti_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_clienti_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE CASCADE,
CONSTRAINT `fornitore_clienti_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fornitore_dipendenti`
--
DROP TABLE IF EXISTS `fornitore_dipendenti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fornitore_dipendenti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`fornitore_id` bigint(20) unsigned NOT NULL,
`fornitore_esterno_id` bigint(20) unsigned DEFAULT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`tipo_collaboratore` varchar(40) NOT NULL DEFAULT 'interno',
`nome` varchar(255) NOT NULL,
`cognome` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`ultimo_accesso_at` timestamp NULL DEFAULT NULL,
`note` text DEFAULT NULL,
`created_by_user_id` bigint(20) unsigned DEFAULT NULL,
`updated_by_user_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fornitore_dipendenti_fornitore_id_email_unique` (`fornitore_id`,`email`),
KEY `fornitore_dipendenti_user_id_foreign` (`user_id`),
KEY `fornitore_dipendenti_created_by_user_id_foreign` (`created_by_user_id`),
KEY `fornitore_dipendenti_updated_by_user_id_foreign` (`updated_by_user_id`),
KEY `fornitore_dipendenti_fornitore_id_attivo_index` (`fornitore_id`,`attivo`),
KEY `fornitore_dipendenti_rubrica_id_foreign` (`rubrica_id`),
KEY `forn_dip_tipo_idx` (`fornitore_id`,`tipo_collaboratore`),
KEY `forn_dip_forn_est_idx` (`fornitore_esterno_id`),
CONSTRAINT `fornitore_dipendenti_created_by_user_id_foreign` FOREIGN KEY (`created_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_dipendenti_fornitore_esterno_id_foreign` FOREIGN KEY (`fornitore_esterno_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_dipendenti_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE CASCADE,
CONSTRAINT `fornitore_dipendenti_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_dipendenti_updated_by_user_id_foreign` FOREIGN KEY (`updated_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_dipendenti_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fornitore_stabile_impostazioni`
--
DROP TABLE IF EXISTS `fornitore_stabile_impostazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fornitore_stabile_impostazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned NOT NULL,
`voce_spesa_default_id` bigint(20) unsigned DEFAULT NULL,
`conto_costo_default_id` bigint(20) unsigned DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_fornitore_stabile` (`stabile_id`,`fornitore_id`),
KEY `fornitore_stabile_impostazioni_fornitore_id_foreign` (`fornitore_id`),
KEY `fornitore_stabile_impostazioni_voce_spesa_default_id_foreign` (`voce_spesa_default_id`),
KEY `fornitore_stabile_impostazioni_conto_costo_default_id_foreign` (`conto_costo_default_id`),
CONSTRAINT `fornitore_stabile_impostazioni_conto_costo_default_id_foreign` FOREIGN KEY (`conto_costo_default_id`) REFERENCES `contabilita_piano_conti` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitore_stabile_impostazioni_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE CASCADE,
CONSTRAINT `fornitore_stabile_impostazioni_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `fornitore_stabile_impostazioni_voce_spesa_default_id_foreign` FOREIGN KEY (`voce_spesa_default_id`) REFERENCES `voci_spesa` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `fornitori`
--
DROP TABLE IF EXISTS `fornitori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fornitori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`old_id` int(11) DEFAULT NULL COMMENT 'ID dal vecchio gestionale',
`cod_forn` bigint(20) unsigned DEFAULT NULL,
`amministratore_id` bigint(20) unsigned NOT NULL,
`codice_univoco` varchar(8) DEFAULT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`ragione_sociale` varchar(255) NOT NULL,
`nome` varchar(255) DEFAULT NULL,
`cognome` varchar(255) DEFAULT NULL,
`partita_iva` varchar(20) DEFAULT NULL,
`codice_fiscale` varchar(20) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`civico` varchar(20) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(60) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`nazione` varchar(2) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pec` varchar(255) DEFAULT NULL,
`iban` varchar(34) DEFAULT NULL,
`intestazione_cc_esatta` varchar(255) DEFAULT NULL,
`bic` varchar(20) DEFAULT NULL,
`sia` varchar(32) DEFAULT NULL,
`modalita_pagamento_predefinita` varchar(80) DEFAULT NULL,
`escludi_righe_fe` tinyint(1) NOT NULL DEFAULT 0,
`fe_features` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`fe_features`)),
`operational_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`operational_config`)),
`sito_web` varchar(255) DEFAULT NULL,
`tags` text DEFAULT NULL,
`legacy_descrizione` text DEFAULT NULL,
`note` text DEFAULT NULL,
`regime_fiscale_id` bigint(20) unsigned DEFAULT NULL,
`tipologia_cassa_id` bigint(20) unsigned DEFAULT NULL,
`aliquota_iva_id` bigint(20) unsigned DEFAULT NULL,
`is_tecnorepair_primary` tinyint(1) NOT NULL DEFAULT 0,
`telefono` varchar(255) DEFAULT NULL,
`telefono_country_code` varchar(5) DEFAULT NULL,
`cellulare` varchar(50) DEFAULT NULL,
`cellulare_country_code` varchar(5) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `fornitori_admin_codice_univoco_unique` (`amministratore_id`,`codice_univoco`),
UNIQUE KEY `fornitori_amministratore_old_id_unique` (`amministratore_id`,`old_id`),
KEY `fornitori_amministratore_id_foreign` (`amministratore_id`),
KEY `fornitori_rubrica_id_foreign` (`rubrica_id`),
KEY `fornitori_regime_fiscale_id_foreign` (`regime_fiscale_id`),
KEY `fornitori_tipologia_cassa_id_foreign` (`tipologia_cassa_id`),
KEY `fornitori_aliquota_iva_id_foreign` (`aliquota_iva_id`),
KEY `fornitori_amministratore_cod_forn_index` (`amministratore_id`,`cod_forn`),
KEY `fornitori_sia_index` (`sia`),
CONSTRAINT `fornitori_aliquota_iva_id_foreign` FOREIGN KEY (`aliquota_iva_id`) REFERENCES `aliquote_iva` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitori_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE CASCADE,
CONSTRAINT `fornitori_regime_fiscale_id_foreign` FOREIGN KEY (`regime_fiscale_id`) REFERENCES `regimi_fiscali` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitori_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `fornitori_tipologia_cassa_id_foreign` FOREIGN KEY (`tipologia_cassa_id`) REFERENCES `tipologie_cassa` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=733 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_fornitori_codice_univoco BEFORE INSERT ON fornitori
FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('FORNITORI', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `fornitori_gescon`
--
DROP TABLE IF EXISTS `fornitori_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `fornitori_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL,
`cod_forn_old` varchar(255) DEFAULT NULL,
`cognome` varchar(255) NOT NULL,
`nome` varchar(255) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(5) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`tipo_soggetto` varchar(10) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pec` varchar(255) DEFAULT NULL,
`iban` varchar(255) DEFAULT NULL,
`importo_residuo` decimal(10,2) NOT NULL DEFAULT 0.00,
`categoria_fornitore` varchar(255) DEFAULT NULL,
`tipo_servizio` varchar(255) DEFAULT NULL,
`data_ultimo_servizio` date DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fornitori_gescon_amministratore_id_attivo_index` (`amministratore_id`,`attivo`),
KEY `fornitori_gescon_codice_fiscale_index` (`codice_fiscale`),
KEY `fornitori_gescon_partita_iva_index` (`partita_iva`),
CONSTRAINT `fornitori_gescon_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_import_mappings`
--
DROP TABLE IF EXISTS `gescon_import_mappings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_import_mappings` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned DEFAULT NULL,
`legacy_code` varchar(20) NOT NULL,
`legacy_denominazione` varchar(255) DEFAULT NULL,
`source_path` varchar(255) DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`status` varchar(20) NOT NULL DEFAULT 'pending',
`last_dry_run_at` timestamp NULL DEFAULT NULL,
`last_sync_at` timestamp NULL DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gescon_import_mappings_user_id_foreign` (`user_id`),
KEY `gescon_import_mappings_stabile_id_foreign` (`stabile_id`),
KEY `gescon_import_mappings_legacy_code_index` (`legacy_code`),
CONSTRAINT `gescon_import_mappings_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `gescon_import_mappings_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_condomini`
--
DROP TABLE IF EXISTS `gescon_temp_condomini`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_condomini` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`cod_condomino` varchar(20) NOT NULL,
`interno` varchar(255) DEFAULT NULL,
`nominativo` varchar(255) DEFAULT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`indirizzo_residenza` varchar(255) DEFAULT NULL,
`cap_residenza` varchar(10) DEFAULT NULL,
`citta_residenza` varchar(255) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`tipo_soggetto` enum('proprietario','inquilino','amministratore','altro') NOT NULL DEFAULT 'proprietario',
`quota_millesimi` decimal(8,3) NOT NULL DEFAULT 0.000,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gt_condomini_unique` (`cod_stabile`,`anno_gestione`,`cod_condomino`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_dettagli_personali`
--
DROP TABLE IF EXISTS `gescon_temp_dettagli_personali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_dettagli_personali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`tipo_gestione` varchar(255) DEFAULT NULL,
`n_stra` varchar(255) DEFAULT NULL,
`n_spe` int(11) DEFAULT NULL,
`id_cond` varchar(255) NOT NULL,
`cond_inq` varchar(255) DEFAULT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`unico` tinyint(1) NOT NULL DEFAULT 0,
`tabella` varchar(255) DEFAULT NULL,
`natura2` varchar(255) DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_rip_st_an_cond_spe_idx` (`cod_stabile`,`anno_gestione`,`id_cond`,`n_spe`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_dettagli_tabelle`
--
DROP TABLE IF EXISTS `gescon_temp_dettagli_tabelle`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_dettagli_tabelle` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`id_dett_tab` varchar(20) NOT NULL,
`cod_tab` varchar(255) NOT NULL,
`id_cond` varchar(255) NOT NULL,
`cond_inquil` varchar(255) DEFAULT NULL,
`mm` decimal(8,3) NOT NULL DEFAULT 0.000,
`prev_lire` decimal(15,0) DEFAULT NULL,
`prev_euro` decimal(10,2) DEFAULT NULL,
`cons_lire` decimal(15,0) DEFAULT NULL,
`cons_euro` decimal(10,2) DEFAULT NULL,
`n_stra` varchar(255) DEFAULT NULL,
`unico` tinyint(1) NOT NULL DEFAULT 0,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_det_mil_st_an_tab_cond_idx` (`cod_stabile`,`anno_gestione`,`cod_tab`,`id_cond`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_fatture`
--
DROP TABLE IF EXISTS `gescon_temp_fatture`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_fatture` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`numero_fattura` varchar(255) DEFAULT NULL,
`data_fattura` date DEFAULT NULL,
`cod_fornitore` varchar(20) DEFAULT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`anno_competenza` varchar(4) DEFAULT NULL,
`pagata` tinyint(1) NOT NULL DEFAULT 0,
`data_pagamento` date DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_forn_st_forn_fat_idx` (`cod_stabile`,`cod_fornitore`,`data_fattura`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_fornitori`
--
DROP TABLE IF EXISTS `gescon_temp_fornitori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_fornitori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_forn` varchar(20) NOT NULL,
`ragione_sociale` varchar(255) DEFAULT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`telefono` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pec` varchar(255) DEFAULT NULL,
`iban` varchar(255) DEFAULT NULL,
`banca` varchar(255) DEFAULT NULL,
`categoria` varchar(255) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gescon_temp_fornitori_cod_forn_unique` (`cod_forn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_incassi`
--
DROP TABLE IF EXISTS `gescon_temp_incassi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_incassi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`data_incasso` date DEFAULT NULL,
`cod_condomino` varchar(20) DEFAULT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`causale` varchar(255) DEFAULT NULL,
`modalita_pagamento` varchar(255) DEFAULT NULL,
`riferimento_bancario` varchar(255) DEFAULT NULL,
`n_emissione_collegata` int(11) DEFAULT NULL,
`riconciliato` tinyint(1) NOT NULL DEFAULT 0,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_inc_st_an_dt_cond_idx` (`cod_stabile`,`anno_gestione`,`data_incasso`,`cod_condomino`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_operazioni`
--
DROP TABLE IF EXISTS `gescon_temp_operazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_operazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`id_operaz` varchar(20) NOT NULL,
`n_spe` int(11) DEFAULT NULL,
`dt_spe` date DEFAULT NULL,
`cod_spe` varchar(255) DEFAULT NULL,
`tabella` varchar(255) DEFAULT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`imp_calcolato_lire` decimal(15,0) DEFAULT NULL,
`imp_calcolato_euro` decimal(10,2) DEFAULT NULL,
`cod_ben` varchar(255) DEFAULT NULL,
`benef` varchar(255) DEFAULT NULL,
`cod_for` varchar(255) DEFAULT NULL,
`num_fat` varchar(255) DEFAULT NULL,
`dt_fat` date DEFAULT NULL,
`natura` varchar(255) DEFAULT NULL,
`natura2` varchar(255) DEFAULT NULL,
`importo_spese` decimal(10,2) DEFAULT NULL,
`importo_entrate` decimal(10,2) DEFAULT NULL,
`importo_crediti` decimal(10,2) DEFAULT NULL,
`importo_debiti` decimal(10,2) DEFAULT NULL,
`note` text DEFAULT NULL,
`competenza` varchar(4) DEFAULT NULL,
`n_stra` varchar(255) DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_op_st_an_spe_idx` (`cod_stabile`,`anno_gestione`,`n_spe`,`cod_spe`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_rate_dettaglio`
--
DROP TABLE IF EXISTS `gescon_temp_rate_dettaglio`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_rate_dettaglio` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`n_emissione` int(11) NOT NULL,
`cod_condomino` varchar(20) NOT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`anno_gestione` varchar(4) NOT NULL,
`interno` varchar(255) DEFAULT NULL,
`nominativo` varchar(255) DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_rate_det_st_em_cond_idx` (`cod_stabile`,`n_emissione`,`cod_condomino`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_rate_emissioni`
--
DROP TABLE IF EXISTS `gescon_temp_rate_emissioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_rate_emissioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`n_emissione` int(11) NOT NULL,
`data_emissione` date DEFAULT NULL,
`anno_gestione` varchar(4) NOT NULL,
`importo_totale_lire` decimal(15,0) DEFAULT NULL,
`importo_totale_euro` decimal(10,2) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`tipo_rata` varchar(255) DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gt_rate_em_unique` (`cod_stabile`,`n_emissione`,`anno_gestione`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_stabili`
--
DROP TABLE IF EXISTS `gescon_temp_stabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_stabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`codice_directory` varchar(10) DEFAULT NULL,
`denominazione` varchar(255) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(255) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`codice_fiscale_cond` varchar(16) DEFAULT NULL,
`cf_amministratore` varchar(16) DEFAULT NULL,
`scale` int(11) NOT NULL DEFAULT 0,
`n_interni` int(11) NOT NULL DEFAULT 0,
`codice_conto_bancario` varchar(255) DEFAULT NULL,
`denominazione_banca` varchar(255) DEFAULT NULL,
`iban_principale` varchar(255) DEFAULT NULL,
`numero_conto` varchar(255) DEFAULT NULL,
`flags_gestione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`flags_gestione`)),
`dati_amministratore` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_amministratore`)),
`coordinate_postali` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`coordinate_postali`)),
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gescon_temp_stabili_cod_stabile_unique` (`cod_stabile`),
KEY `gescon_temp_stabili_cod_stabile_codice_directory_index` (`cod_stabile`,`codice_directory`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gescon_temp_voci_spesa`
--
DROP TABLE IF EXISTS `gescon_temp_voci_spesa`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gescon_temp_voci_spesa` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`anno_gestione` varchar(4) NOT NULL,
`id_vocspe` varchar(20) NOT NULL,
`cod` varchar(255) NOT NULL,
`descriz` varchar(255) DEFAULT NULL,
`tabella` varchar(255) DEFAULT NULL,
`perc_proprietario` decimal(5,2) NOT NULL DEFAULT 0.00,
`perc_inquilino` decimal(5,2) NOT NULL DEFAULT 0.00,
`imp_propr_lire` decimal(15,0) DEFAULT NULL,
`imp_propr_euro` decimal(10,2) DEFAULT NULL,
`imp_inquil_lire` decimal(15,0) DEFAULT NULL,
`imp_inquil_euro` decimal(10,2) DEFAULT NULL,
`importo_lire` decimal(15,0) DEFAULT NULL,
`importo_euro` decimal(10,2) DEFAULT NULL,
`preventivo_lire` decimal(15,0) DEFAULT NULL,
`preventivo_euro` decimal(10,2) DEFAULT NULL,
`consuntivo_lire` decimal(15,0) DEFAULT NULL,
`consuntivo_euro` decimal(10,2) DEFAULT NULL,
`t_spese` varchar(255) DEFAULT NULL,
`t_entrate` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`origine_file` varchar(255) DEFAULT NULL,
`data_import` timestamp NOT NULL DEFAULT current_timestamp(),
`importato_netgescon` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `gt_tab_mil_st_an_cod_idx` (`cod_stabile`,`anno_gestione`,`cod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gestioni`
--
DROP TABLE IF EXISTS `gestioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gestioni` (
`id_gestione` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione` year(4) NOT NULL,
`tipo_gestione` varchar(20) NOT NULL DEFAULT 'Ord.',
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`stato` enum('aperta','in_corso','chiusa') NOT NULL DEFAULT 'aperta',
`descrizione` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id_gestione`),
KEY `gestioni_stabile_id_anno_gestione_index` (`stabile_id`,`anno_gestione`),
CONSTRAINT `gestioni_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gestioni_condominiali`
--
DROP TABLE IF EXISTS `gestioni_condominiali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gestioni_condominiali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`tipo` enum('ORDINARIA','RISCALDAMENTO','STRAORDINARIA') NOT NULL,
`anno_inizio` year(4) NOT NULL,
`anno_fine` year(4) DEFAULT NULL,
`data_inizio` date NOT NULL,
`data_fine` date DEFAULT NULL,
`stato` enum('ATTIVA','CHIUSA','SOSPESA') NOT NULL DEFAULT 'ATTIVA',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gestioni_condominiali_stabile_id_codice_unique` (`stabile_id`,`codice`),
KEY `gestioni_condominiali_stabile_id_tipo_anno_inizio_index` (`stabile_id`,`tipo`,`anno_inizio`),
CONSTRAINT `gestioni_condominiali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `gestioni_contabili`
--
DROP TABLE IF EXISTS `gestioni_contabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `gestioni_contabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`codice_archivio_legacy` varchar(100) DEFAULT NULL COMMENT 'Codice/Path archivio legacy associato alla gestione (per sincronizzazione)',
`anno_gestione` int(11) NOT NULL COMMENT 'Anno di riferimento: 2024, 2025, etc.',
`tipo_gestione` enum('ordinaria','riscaldamento','straordinaria') NOT NULL COMMENT 'Tipo gestione',
`numero_straordinaria` int(11) DEFAULT NULL COMMENT 'Numero per straordinarie (N_STRA)',
`denominazione` varchar(200) NOT NULL COMMENT 'Nome gestione leggibile',
`data_inizio` date NOT NULL COMMENT 'Inizio periodo gestione',
`data_fine` date NOT NULL COMMENT 'Fine periodo gestione',
`stato` enum('aperta','chiusa','consolidata') NOT NULL DEFAULT 'aperta',
`bilancio_apertura` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Saldi iniziali da esercizio precedente' CHECK (json_valid(`bilancio_apertura`)),
`bilancio_chiusura` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Saldi finali per esercizio successivo' CHECK (json_valid(`bilancio_chiusura`)),
`protocollo_prefix` varchar(10) NOT NULL COMMENT 'Prefisso protocollo: O2024, R2024, S2024-001',
`ultimo_protocollo` int(11) NOT NULL DEFAULT 0 COMMENT 'Ultimo numero protocollo assegnato',
`percentuale_fondo_riserva` decimal(5,2) NOT NULL DEFAULT 0.00,
`rata_ordinaria_mensile` decimal(10,2) NOT NULL DEFAULT 0.00,
`usa_millesimi_generali` tinyint(1) NOT NULL DEFAULT 1,
`usa_millesimi_riscaldamento` tinyint(1) NOT NULL DEFAULT 0,
`usa_millesimi_ascensore` tinyint(1) NOT NULL DEFAULT 0,
`configurazione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Parametri specifici gestione' CHECK (json_valid(`configurazione`)),
`note_gestione` text DEFAULT NULL,
`mesi_rate_ordinaria` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Elenco mesi (1-12) in cui emettere le rate ordinaria per questa gestione' CHECK (json_valid(`mesi_rate_ordinaria`)),
`mesi_rate_riscaldamento` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Elenco mesi (1-12) per gestione riscaldamento' CHECK (json_valid(`mesi_rate_riscaldamento`)),
`piano_straordinario` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Piano rate straordinario: {importo_totale, numero_rate, prima_scadenza, periodicita, scadenze:[..]}' CHECK (json_valid(`piano_straordinario`)),
`mesi_rate_straordinaria` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Elenco mesi (1-12) per gestione straordinaria' CHECK (json_valid(`mesi_rate_straordinaria`)),
`gestione_attiva` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Gestione attiva per nuove operazioni',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gc_tenant_anno_tipo_num_unique` (`tenant_id`,`anno_gestione`,`tipo_gestione`,`numero_straordinaria`),
KEY `gestioni_contabili_tenant_id_anno_gestione_tipo_gestione_index` (`tenant_id`,`anno_gestione`,`tipo_gestione`),
KEY `gestioni_contabili_tenant_id_stato_index` (`tenant_id`,`stato`),
KEY `gestioni_contabili_stabile_id_foreign` (`stabile_id`),
KEY `idx_tenant_stabile_anno_tipo` (`tenant_id`,`stabile_id`,`anno_gestione`,`tipo_gestione`),
CONSTRAINT `gestioni_contabili_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=347 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `import_log`
--
DROP TABLE IF EXISTS `import_log`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `import_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`cod_stabile` varchar(10) NOT NULL,
`tabella_origine` varchar(255) NOT NULL,
`tabella_destinazione` varchar(255) NOT NULL,
`file_origine` varchar(255) NOT NULL,
`record_processati` int(11) NOT NULL DEFAULT 0,
`record_importati` int(11) NOT NULL DEFAULT 0,
`record_duplicati` int(11) NOT NULL DEFAULT 0,
`record_errori` int(11) NOT NULL DEFAULT 0,
`errori_dettaglio` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`errori_dettaglio`)),
`inizio_import` timestamp NOT NULL DEFAULT current_timestamp(),
`fine_import` timestamp NULL DEFAULT NULL,
`stato` enum('in_corso','completato','errore') NOT NULL DEFAULT 'in_corso',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `import_logs`
--
DROP TABLE IF EXISTS `import_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `import_logs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tipo` varchar(255) NOT NULL,
`file_originale` varchar(255) NOT NULL,
`records_importati` int(11) NOT NULL DEFAULT 0,
`errori` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`errori`)),
`user_id` bigint(20) unsigned NOT NULL,
`started_at` timestamp NULL DEFAULT NULL,
`completed_at` timestamp NULL DEFAULT NULL,
`status` enum('pending','running','completed','failed') NOT NULL DEFAULT 'pending',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `import_logs_tipo_index` (`tipo`),
KEY `import_logs_user_id_index` (`user_id`),
KEY `import_logs_status_index` (`status`),
CONSTRAINT `import_logs_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `impostazioni`
--
DROP TABLE IF EXISTS `impostazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `impostazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`chiave` varchar(255) NOT NULL,
`valore` longtext DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `impostazioni_chiave_unique` (`chiave`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `incarichi_contratti`
--
DROP TABLE IF EXISTS `incarichi_contratti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `incarichi_contratti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`denominazione` varchar(255) NOT NULL COMMENT 'Nome del contratto/incarico',
`tipologia` enum('incarico','contratto','fornitura','servizio') NOT NULL DEFAULT 'contratto',
`descrizione` text DEFAULT NULL COMMENT 'Descrizione dettagliata',
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`ragione_sociale` varchar(255) DEFAULT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`indirizzo_fornitore` text DEFAULT NULL,
`telefono_fornitore` varchar(20) DEFAULT NULL,
`email_fornitore` varchar(255) DEFAULT NULL,
`data_sottoscrizione` date NOT NULL,
`data_inizio_validita` date NOT NULL,
`data_fine_contratto` date DEFAULT NULL,
`data_scadenza_disdetta` date DEFAULT NULL COMMENT 'Data limite per comunicare la disdetta',
`periodicita` enum('mensile','bimestrale','trimestrale','semestrale','annuale','pluriennale','una_tantum') NOT NULL DEFAULT 'annuale',
`rinnovo_automatico` tinyint(1) NOT NULL DEFAULT 0,
`durata_mesi` int(11) DEFAULT NULL COMMENT 'Durata in mesi del contratto',
`preavviso_disdetta_giorni` int(11) NOT NULL DEFAULT 30 COMMENT 'Giorni di preavviso necessari per la disdetta',
`modalita_disdetta` set('raccomandata','raccomandata_rr','pec','email','fax','mano') NOT NULL DEFAULT 'raccomandata_rr',
`note_disdetta` text DEFAULT NULL COMMENT 'Note specifiche per la disdetta',
`importo_annuale` decimal(10,2) DEFAULT NULL,
`importo_mensile` decimal(10,2) DEFAULT NULL,
`fatturazione` enum('mensile','bimestrale','trimestrale','semestrale','annuale') NOT NULL DEFAULT 'annuale',
`iva_inclusa` tinyint(1) NOT NULL DEFAULT 0,
`percentuale_iva` decimal(5,2) NOT NULL DEFAULT 22.00,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`prossima_scadenza` date DEFAULT NULL COMMENT 'Prossima data di scadenza da monitorare',
`disdetta_richiesta` tinyint(1) NOT NULL DEFAULT 0,
`data_richiesta_disdetta` date DEFAULT NULL,
`note_disdetta_richiesta` text DEFAULT NULL,
`documenti_allegati` text DEFAULT NULL COMMENT 'JSON con i documenti collegati',
`categoria` enum('manutenzione','pulizie','sicurezza','assicurazione','energia','gas','acqua','telefonia','ascensori','giardini','amministrazione','consulenza','altro') NOT NULL DEFAULT 'altro',
`priorita_finanziaria` enum('bassa','media','alta','critica') NOT NULL DEFAULT 'media',
`note` text DEFAULT NULL,
`clausole_particolari` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `incarichi_contratti_stabile_id_attivo_index` (`stabile_id`,`attivo`),
KEY `incarichi_contratti_tipologia_categoria_index` (`tipologia`,`categoria`),
KEY `incarichi_contratti_data_scadenza_disdetta_index` (`data_scadenza_disdetta`),
KEY `incarichi_contratti_prossima_scadenza_index` (`prossima_scadenza`),
KEY `incarichi_contratti_data_fine_contratto_index` (`data_fine_contratto`),
KEY `incarichi_contratti_fornitore_id_foreign` (`fornitore_id`),
CONSTRAINT `incarichi_contratti_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `incarichi_contratti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `incassi`
--
DROP TABLE IF EXISTS `incassi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `incassi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`condominio_id` bigint(20) unsigned NOT NULL,
`conto_bancario_id` bigint(20) unsigned NOT NULL,
`cassa_id` bigint(20) unsigned DEFAULT NULL,
`cod_cassa_legacy` varchar(30) DEFAULT NULL,
`condomino_id` bigint(20) unsigned DEFAULT NULL,
`id_incasso_gescon` int(11) DEFAULT NULL COMMENT 'ID originale da incassi',
`cod_cond_gescon` varchar(10) DEFAULT NULL COMMENT 'Codice condominio Gescon',
`cond_inquil` varchar(10) DEFAULT NULL COMMENT 'Inquilino/Proprietario',
`n_riferimento` varchar(20) DEFAULT NULL COMMENT 'Numero riferimento pagamento',
`anno_rif` int(11) NOT NULL COMMENT 'Anno di riferimento',
`da_ricev_diretto` varchar(5) DEFAULT NULL COMMENT 'Flag ricevuta diretta',
`n_ricevuta` int(11) DEFAULT NULL COMMENT 'Numero ricevuta',
`posiz_riga` int(11) NOT NULL DEFAULT 0 COMMENT 'Posizione riga',
`anno_ricev` varchar(10) DEFAULT NULL COMMENT 'Anno ricevuta',
`n_mese` varchar(10) DEFAULT NULL COMMENT 'Numero mese',
`o_r_s` varchar(5) DEFAULT NULL COMMENT 'Tipo spesa: O=Ordinarie, R=Riscaldamento, S=Straordinarie',
`importo_pagato` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Importo pagato',
`importo_pagato_euro` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Importo in Euro',
`d_p_e` varchar(5) DEFAULT NULL COMMENT 'Flag Euro/Lire',
`dt_empag` datetime DEFAULT NULL COMMENT 'Data pagamento Gescon',
`data_pagamento` date DEFAULT NULL COMMENT 'Data pagamento normalizzata',
`data_competenza` date DEFAULT NULL COMMENT 'Data competenza rate',
`descrizione` text DEFAULT NULL COMMENT 'Descrizione pagamento',
`note` text DEFAULT NULL COMMENT 'Note aggiuntive',
`movimento_bancario_id` bigint(20) unsigned DEFAULT NULL,
`registrazione_id` bigint(20) unsigned DEFAULT NULL,
`stato_riconciliazione` enum('automatica','manuale','sospesa','anomala') NOT NULL DEFAULT 'sospesa',
`scostamento_importo` decimal(10,4) NOT NULL DEFAULT 0.0000 COMMENT 'Differenza con movimento bancario',
`giorni_scostamento` int(11) NOT NULL DEFAULT 0 COMMENT 'Giorni differenza con movimento',
`confidenza_match` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '% confidenza match automatico',
`rate_associate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Rate collegate a questo incasso' CHECK (json_valid(`rate_associate`)),
`tipo_incasso` enum('rata_ordinaria','rata_straordinaria','riscaldamento','altro') NOT NULL DEFAULT 'rata_ordinaria',
`modalita_incasso` varchar(30) DEFAULT NULL,
`cod_cassa_gescon` varchar(10) DEFAULT NULL COMMENT 'Codice cassa Gescon',
`totale` int(11) NOT NULL DEFAULT 0 COMMENT 'Campo totale Gescon',
`str_orig` int(11) NOT NULL DEFAULT 0 COMMENT 'Struttura origine',
`linea_sep_stp` varchar(20) DEFAULT NULL COMMENT 'Linea separazione',
`proviene_ors` varchar(20) DEFAULT NULL COMMENT 'Provenienza ORS',
`proviene_n_stra` int(11) NOT NULL DEFAULT 0 COMMENT 'Numero straordinaria',
`proviene_eserc` int(11) NOT NULL DEFAULT 0 COMMENT 'Esercizio provenienza',
`metadati_gescon` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Dati originali completi' CHECK (json_valid(`metadati_gescon`)),
`log_riconciliazione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Log tentativi riconciliazione' CHECK (json_valid(`log_riconciliazione`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `incassi_gestione_id_foreign` (`gestione_id`),
KEY `incassi_condominio_id_foreign` (`condominio_id`),
KEY `incassi_conto_bancario_id_foreign` (`conto_bancario_id`),
KEY `incassi_condomino_id_foreign` (`condomino_id`),
KEY `incassi_tenant_id_gestione_id_index` (`tenant_id`,`gestione_id`),
KEY `incassi_tenant_id_condominio_id_index` (`tenant_id`,`condominio_id`),
KEY `incassi_tenant_id_data_pagamento_index` (`tenant_id`,`data_pagamento`),
KEY `incassi_tenant_id_anno_rif_n_mese_index` (`tenant_id`,`anno_rif`,`n_mese`),
KEY `incassi_tenant_id_stato_riconciliazione_index` (`tenant_id`,`stato_riconciliazione`),
KEY `incassi_tenant_id_o_r_s_index` (`tenant_id`,`o_r_s`),
KEY `incassi_cod_cond_gescon_anno_rif_index` (`cod_cond_gescon`,`anno_rif`),
KEY `incassi_cassa_id_foreign` (`cassa_id`),
KEY `incassi_cod_cassa_legacy_index` (`cod_cassa_legacy`),
KEY `incassi_registrazione_idx` (`registrazione_id`),
KEY `incassi_tenant_id_modalita_incasso_index` (`tenant_id`,`modalita_incasso`),
CONSTRAINT `incassi_cassa_id_foreign` FOREIGN KEY (`cassa_id`) REFERENCES `casse` (`id`),
CONSTRAINT `incassi_condominio_id_foreign` FOREIGN KEY (`condominio_id`) REFERENCES `stabili` (`id`),
CONSTRAINT `incassi_condomino_id_foreign` FOREIGN KEY (`condomino_id`) REFERENCES `anagrafiche` (`id`),
CONSTRAINT `incassi_conto_bancario_id_foreign` FOREIGN KEY (`conto_bancario_id`) REFERENCES `conti_bancari` (`id`),
CONSTRAINT `incassi_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `incassi_registrazione_fk` FOREIGN KEY (`registrazione_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=76560 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `incassi_ai_feedback`
--
DROP TABLE IF EXISTS `incassi_ai_feedback`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `incassi_ai_feedback` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`incasso_id` bigint(20) unsigned NOT NULL,
`movimento_bancario_id` bigint(20) unsigned DEFAULT NULL,
`registrazione_id` bigint(20) unsigned DEFAULT NULL,
`ai_status` varchar(20) NOT NULL DEFAULT 'pending',
`ai_confidenza` decimal(5,2) DEFAULT NULL,
`ai_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`ai_payload`)),
`ai_note` text DEFAULT NULL,
`user_feedback` text DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `incassi_ai_feedback_incasso_id_ai_status_index` (`incasso_id`,`ai_status`),
KEY `incassi_ai_feedback_movimento_bancario_id_index` (`movimento_bancario_id`),
KEY `incassi_ai_feedback_registrazione_id_index` (`registrazione_id`),
KEY `incassi_ai_feedback_created_by_index` (`created_by`),
KEY `incassi_ai_feedback_updated_by_index` (`updated_by`),
CONSTRAINT `incassi_ai_feedback_incasso_id_foreign` FOREIGN KEY (`incasso_id`) REFERENCES `incassi` (`id`) ON DELETE CASCADE,
CONSTRAINT `incassi_ai_feedback_registrazione_fk` FOREIGN KEY (`registrazione_id`) REFERENCES `contabilita_registrazioni` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `incassi_estratto_conto`
--
DROP TABLE IF EXISTS `incassi_estratto_conto`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `incassi_estratto_conto` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`id_gescon` int(11) DEFAULT NULL COMMENT 'ID originale da Inc_da_ec',
`data_operazione` date NOT NULL COMMENT 'Data operazione bancaria',
`data_valuta` date NOT NULL COMMENT 'Data valuta bancaria',
`importo` decimal(15,4) NOT NULL COMMENT 'Importo movimento',
`descrizione` text NOT NULL COMMENT 'Descrizione da estratto conto',
`tipo_movimento` enum('entrata','uscita') NOT NULL DEFAULT 'entrata',
`causale_bancaria` varchar(10) DEFAULT NULL COMMENT 'Codice causale banca',
`ordinante` varchar(200) DEFAULT NULL COMMENT 'Nome ordinante/beneficiario',
`riferimento_bancario` varchar(100) DEFAULT NULL COMMENT 'Riferimento/TRN banca',
`incasso_id` bigint(20) unsigned DEFAULT NULL,
`movimento_bancario_id` bigint(20) unsigned DEFAULT NULL,
`operazione_id` bigint(20) unsigned DEFAULT NULL,
`stato` enum('da_riconciliare','riconciliato','parziale','anomalo','escluso') NOT NULL DEFAULT 'da_riconciliare',
`confidenza_match` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '% confidenza match automatico',
`note_riconciliazione` text DEFAULT NULL,
`candidati_match` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Possibili abbinamenti trovati' CHECK (json_valid(`candidati_match`)),
`tipo_riconciliazione` enum('automatica','manuale','assistita') DEFAULT NULL,
`riconciliato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`riconciliato_il` timestamp NULL DEFAULT NULL,
`pattern_scala` varchar(10) DEFAULT NULL COMMENT 'Scala estratta (A,B,C,D)',
`pattern_interno` varchar(20) DEFAULT NULL COMMENT 'Numero interno estratto',
`pattern_nome_estratto` varchar(200) DEFAULT NULL COMMENT 'Nome estratto da descrizione',
`pattern_keywords` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Keywords identificate' CHECK (json_valid(`pattern_keywords`)),
`anomalo` tinyint(1) NOT NULL DEFAULT 0,
`motivo_anomalia` text DEFAULT NULL,
`dettagli_anomalia` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dettagli_anomalia`)),
`file_origine` varchar(255) DEFAULT NULL COMMENT 'File estratto conto origine',
`formato_file` varchar(20) DEFAULT NULL COMMENT 'Formato file: WRI, CSV, OFX',
`riga_file` int(11) DEFAULT NULL COMMENT 'Riga nel file origine',
`hash_movimento` varchar(64) DEFAULT NULL COMMENT 'Hash per evitare duplicati',
`metadati_gescon` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Dati originali Gescon' CHECK (json_valid(`metadati_gescon`)),
`metadati_file` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Metadati file importazione' CHECK (json_valid(`metadati_file`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `incassi_estratto_conto_tenant_id_hash_movimento_unique` (`tenant_id`,`hash_movimento`),
KEY `incassi_estratto_conto_incasso_id_foreign` (`incasso_id`),
KEY `incassi_estratto_conto_movimento_bancario_id_foreign` (`movimento_bancario_id`),
KEY `incassi_estratto_conto_operazione_id_foreign` (`operazione_id`),
KEY `incassi_estratto_conto_gestione_id_data_operazione_index` (`gestione_id`,`data_operazione`),
KEY `incassi_estratto_conto_tenant_id_stato_index` (`tenant_id`,`stato`),
KEY `incassi_estratto_conto_tipo_movimento_importo_index` (`tipo_movimento`,`importo`),
KEY `incassi_estratto_conto_hash_movimento_index` (`hash_movimento`),
KEY `incassi_estratto_conto_pattern_scala_pattern_interno_index` (`pattern_scala`,`pattern_interno`),
KEY `idx_iec_riconciliato_user_il` (`riconciliato_da_user_id`,`riconciliato_il`),
CONSTRAINT `incassi_estratto_conto_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `incassi_estratto_conto_incasso_id_foreign` FOREIGN KEY (`incasso_id`) REFERENCES `incassi` (`id`),
CONSTRAINT `incassi_estratto_conto_movimento_bancario_id_foreign` FOREIGN KEY (`movimento_bancario_id`) REFERENCES `movimenti_bancari` (`id`),
CONSTRAINT `incassi_estratto_conto_operazione_id_foreign` FOREIGN KEY (`operazione_id`) REFERENCES `operazioni_contabili` (`id`),
CONSTRAINT `incassi_estratto_conto_riconciliato_da_user_id_foreign` FOREIGN KEY (`riconciliato_da_user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43543 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `incassi_pagamenti`
--
DROP TABLE IF EXISTS `incassi_pagamenti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `incassi_pagamenti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione_id` bigint(20) unsigned NOT NULL,
`rata_id` bigint(20) unsigned DEFAULT NULL,
`movimento_banca_id` bigint(20) unsigned DEFAULT NULL,
`condomino_id` bigint(20) unsigned DEFAULT NULL,
`cod_condomino` varchar(255) NOT NULL,
`n_riferimento` varchar(255) NOT NULL,
`data_pagamento` date NOT NULL,
`importo_pagato` decimal(10,2) NOT NULL,
`importo_pagato_euro` decimal(10,2) NOT NULL,
`n_ricevuta` varchar(255) DEFAULT NULL,
`tipo_gestione` varchar(1) NOT NULL,
`mese_riferimento` varchar(255) NOT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`cod_cassa` varchar(255) DEFAULT NULL,
`riconciliato` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `incassi_pagamenti_anno_gestione_id_foreign` (`anno_gestione_id`),
KEY `incassi_pagamenti_condomino_id_foreign` (`condomino_id`),
KEY `incassi_pagamenti_stabile_id_data_pagamento_index` (`stabile_id`,`data_pagamento`),
KEY `incassi_pagamenti_cod_condomino_mese_riferimento_index` (`cod_condomino`,`mese_riferimento`),
KEY `incassi_pagamenti_riconciliato_index` (`riconciliato`),
CONSTRAINT `incassi_pagamenti_anno_gestione_id_foreign` FOREIGN KEY (`anno_gestione_id`) REFERENCES `anni_gestione` (`id`),
CONSTRAINT `incassi_pagamenti_condomino_id_foreign` FOREIGN KEY (`condomino_id`) REFERENCES `condomini_stabile` (`id`),
CONSTRAINT `incassi_pagamenti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `insurance_claims`
--
DROP TABLE IF EXISTS `insurance_claims`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `insurance_claims` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`insurance_policy_id` bigint(20) unsigned DEFAULT NULL,
`policy_reference` varchar(255) DEFAULT NULL,
`claim_number` varchar(255) DEFAULT NULL,
`status` varchar(32) NOT NULL DEFAULT 'bozza',
`opened_at` timestamp NULL DEFAULT NULL,
`notes` text DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `insurance_claims_stabile_id_foreign` (`stabile_id`),
KEY `insurance_claims_ticket_id_status_index` (`ticket_id`,`status`),
KEY `insurance_claims_claim_number_index` (`claim_number`),
KEY `insurance_claims_insurance_policy_id_foreign` (`insurance_policy_id`),
CONSTRAINT `insurance_claims_insurance_policy_id_foreign` FOREIGN KEY (`insurance_policy_id`) REFERENCES `insurance_policies` (`id`) ON DELETE SET NULL,
CONSTRAINT `insurance_claims_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `insurance_claims_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `insurance_policies`
--
DROP TABLE IF EXISTS `insurance_policies`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `insurance_policies` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`broker_rubrica_id` bigint(20) unsigned DEFAULT NULL,
`company_rubrica_id` bigint(20) unsigned DEFAULT NULL,
`policy_name` varchar(255) DEFAULT NULL,
`policy_number` varchar(255) DEFAULT NULL,
`policy_reference` varchar(255) DEFAULT NULL,
`status` varchar(50) NOT NULL DEFAULT 'attiva',
`started_at` date DEFAULT NULL,
`expires_at` date DEFAULT NULL,
`renewal_at` date DEFAULT NULL,
`annual_amount` decimal(12,2) DEFAULT NULL,
`payment_split` varchar(255) DEFAULT NULL,
`payment_schedule_notes` text DEFAULT NULL,
`coverage_summary` text DEFAULT NULL,
`special_conditions` longtext DEFAULT NULL,
`claim_form_template` longtext DEFAULT NULL,
`policy_document_path` varchar(255) DEFAULT NULL,
`policy_document_name` varchar(255) DEFAULT NULL,
`policy_document_mime` varchar(255) DEFAULT NULL,
`signature_image_path` varchar(255) DEFAULT NULL,
`notes` text DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `insurance_policies_broker_rubrica_id_foreign` (`broker_rubrica_id`),
KEY `insurance_policies_company_rubrica_id_foreign` (`company_rubrica_id`),
KEY `insurance_policies_created_by_foreign` (`created_by`),
KEY `insurance_policies_stabile_id_status_index` (`stabile_id`,`status`),
KEY `insurance_policies_policy_number_index` (`policy_number`),
KEY `insurance_policies_expires_at_index` (`expires_at`),
CONSTRAINT `insurance_policies_broker_rubrica_id_foreign` FOREIGN KEY (`broker_rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `insurance_policies_company_rubrica_id_foreign` FOREIGN KEY (`company_rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `insurance_policies_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `insurance_policies_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `istat_indici_mensili`
--
DROP TABLE IF EXISTS `istat_indici_mensili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `istat_indici_mensili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_serie` varchar(50) NOT NULL DEFAULT 'FOI',
`anno` int(11) NOT NULL,
`mese` tinyint(4) NOT NULL,
`indice` decimal(10,4) NOT NULL,
`fonte` varchar(100) DEFAULT NULL,
`data_pubblicazione` date DEFAULT NULL,
`payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
`sincronizzato_il` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `istat_serie_anno_mese_unique` (`codice_serie`,`anno`,`mese`),
KEY `istat_indici_mensili_anno_mese_index` (`anno`,`mese`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `job_batches`
--
DROP TABLE IF EXISTS `job_batches`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `job_batches` (
`id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`total_jobs` int(11) NOT NULL,
`pending_jobs` int(11) NOT NULL,
`failed_jobs` int(11) NOT NULL,
`failed_job_ids` longtext NOT NULL,
`options` mediumtext DEFAULT NULL,
`cancelled_at` int(11) DEFAULT NULL,
`created_at` int(11) NOT NULL,
`finished_at` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `jobs`
--
DROP TABLE IF EXISTS `jobs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `jobs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`queue` varchar(255) NOT NULL,
`payload` longtext NOT NULL,
`attempts` tinyint(3) unsigned NOT NULL,
`reserved_at` int(10) unsigned DEFAULT NULL,
`available_at` int(10) unsigned NOT NULL,
`created_at` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `jobs_queue_index` (`queue`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `lavori_straordinari`
--
DROP TABLE IF EXISTS `lavori_straordinari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `lavori_straordinari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`legacy_id` int(11) DEFAULT NULL,
`codice` varchar(50) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`numero_rate` smallint(5) unsigned NOT NULL DEFAULT 0,
`data_inizio` date DEFAULT NULL,
`natura` enum('spesa','entrata') NOT NULL DEFAULT 'spesa',
`gruppo` varchar(100) DEFAULT NULL,
`periodicita` varchar(50) DEFAULT NULL,
`note_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`note_json`)),
`importo_previsto` decimal(15,4) DEFAULT NULL,
`importo_consuntivato` decimal(15,4) DEFAULT NULL,
`chiuso` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_lavori_gestione_codice` (`gestione_id`,`codice`),
KEY `lavori_straordinari_tenant_id_index` (`tenant_id`),
KEY `lavori_straordinari_legacy_id_index` (`legacy_id`),
KEY `lavori_straordinari_codice_index` (`codice`),
CONSTRAINT `lavori_straordinari_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `legacy_unita_tipo_mappings`
--
DROP TABLE IF EXISTS `legacy_unita_tipo_mappings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `legacy_unita_tipo_mappings` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`legacy_source` varchar(50) NOT NULL DEFAULT 'condomin',
`legacy_field` varchar(50) NOT NULL DEFAULT 'tipo_pr',
`legacy_value` varchar(50) DEFAULT NULL,
`descrizione` varchar(255) DEFAULT NULL,
`match_regex` varchar(255) DEFAULT NULL,
`tipo_unita` varchar(50) NOT NULL,
`tipologia_codice` varchar(50) DEFAULT NULL,
`tipologia_nome` varchar(100) DEFAULT NULL,
`tipologia_categoria` varchar(100) DEFAULT NULL,
`categoria_catastale` varchar(20) DEFAULT NULL,
`is_pertinenza` tinyint(1) NOT NULL DEFAULT 0,
`is_condominiale` tinyint(1) NOT NULL DEFAULT 0,
`fallback_interno_prefix` varchar(20) DEFAULT NULL,
`sort_order` int(10) unsigned NOT NULL DEFAULT 100,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `legacy_unita_tipo_lookup_idx` (`legacy_source`,`legacy_field`,`legacy_value`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `letture_contatori`
--
DROP TABLE IF EXISTS `letture_contatori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `letture_contatori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`contatore_id` bigint(20) unsigned NOT NULL,
`data_lettura` date NOT NULL,
`lettura_precedente` decimal(12,3) NOT NULL DEFAULT 0.000,
`lettura_attuale` decimal(12,3) NOT NULL,
`consumo_calcolato` decimal(12,3) GENERATED ALWAYS AS (`lettura_attuale` - `lettura_precedente`) STORED,
`tipo_lettura` enum('manuale','automatica','stimata','rettifica') NOT NULL,
`lettura_da` varchar(255) DEFAULT NULL,
`dati_telelettura` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_telelettura`)),
`validata` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_contatore_data` (`contatore_id`,`data_lettura`),
KEY `letture_contatori_created_by_foreign` (`created_by`),
KEY `letture_contatori_data_lettura_validata_index` (`data_lettura`,`validata`),
CONSTRAINT `letture_contatori_contatore_id_foreign` FOREIGN KEY (`contatore_id`) REFERENCES `contatori` (`id`) ON DELETE CASCADE,
CONSTRAINT `letture_contatori_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `log_modifiche_preventivo`
--
DROP TABLE IF EXISTS `log_modifiche_preventivo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `log_modifiche_preventivo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`entita` varchar(32) NOT NULL,
`entita_id` bigint(20) unsigned NOT NULL,
`versione_precedente` int(10) unsigned NOT NULL DEFAULT 0,
`versione_nuova` int(10) unsigned NOT NULL DEFAULT 0,
`utente_id` bigint(20) unsigned DEFAULT NULL,
`tipo_operazione` varchar(32) DEFAULT NULL,
`motivo` text DEFAULT NULL,
`dati_precedenti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_precedenti`)),
`dati_nuovi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_nuovi`)),
`diff` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`diff`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `log_modifiche_preventivo_utente_id_foreign` (`utente_id`),
KEY `log_modifiche_preventivo_entita_entita_id_index` (`entita`,`entita_id`),
CONSTRAINT `log_modifiche_preventivo_utente_id_foreign` FOREIGN KEY (`utente_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `migration_datasets`
--
DROP TABLE IF EXISTS `migration_datasets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `migration_datasets` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`source_id` bigint(20) unsigned NOT NULL,
`key` varchar(255) NOT NULL,
`title` varchar(255) DEFAULT NULL,
`state` varchar(20) NOT NULL DEFAULT 'ready',
`schema` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`schema`)),
`records_count` bigint(20) unsigned NOT NULL DEFAULT 0,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `migration_datasets_source_id_key_unique` (`source_id`,`key`),
CONSTRAINT `migration_datasets_source_id_foreign` FOREIGN KEY (`source_id`) REFERENCES `migration_sources` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `migration_records`
--
DROP TABLE IF EXISTS `migration_records`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `migration_records` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`dataset_id` bigint(20) unsigned NOT NULL,
`legacy_key` varchar(255) DEFAULT NULL,
`hash` varchar(64) DEFAULT NULL,
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`data`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `migration_records_dataset_id_legacy_key_index` (`dataset_id`,`legacy_key`),
KEY `migration_records_hash_index` (`hash`),
CONSTRAINT `migration_records_dataset_id_foreign` FOREIGN KEY (`dataset_id`) REFERENCES `migration_datasets` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `migration_sources`
--
DROP TABLE IF EXISTS `migration_sources`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `migration_sources` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(20) NOT NULL DEFAULT 'mdb',
`path` varchar(255) NOT NULL,
`enabled` tinyint(1) NOT NULL DEFAULT 1,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `migration_sources_type_index` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `migrations`
--
DROP TABLE IF EXISTS `migrations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `migrations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`migration` varchar(255) NOT NULL,
`batch` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=374 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `millesimi_unita`
--
DROP TABLE IF EXISTS `millesimi_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `millesimi_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`millesimi` decimal(10,3) NOT NULL,
`consumo_individuale` decimal(10,2) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `millesimi_unita_ui_tm_unique` (`unita_immobiliare_id`,`tabella_millesimale_id`),
KEY `millesimi_unita_tabella_millesimale_id_millesimi_index` (`tabella_millesimale_id`,`millesimi`),
CONSTRAINT `millesimi_unita_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `millesimi_unita_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `model_has_permissions`
--
DROP TABLE IF EXISTS `model_has_permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `model_has_permissions` (
`permission_id` bigint(20) unsigned NOT NULL,
`model_type` varchar(255) NOT NULL,
`model_id` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`permission_id`,`model_id`,`model_type`),
KEY `model_has_permissions_model_id_model_type_index` (`model_id`,`model_type`),
CONSTRAINT `model_has_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `model_has_roles`
--
DROP TABLE IF EXISTS `model_has_roles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `model_has_roles` (
`role_id` bigint(20) unsigned NOT NULL,
`model_type` varchar(255) NOT NULL,
`model_id` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`role_id`,`model_id`,`model_type`),
KEY `model_has_roles_model_id_model_type_index` (`model_id`,`model_type`),
CONSTRAINT `model_has_roles_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `modules`
--
DROP TABLE IF EXISTS `modules`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `modules` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`display_name` varchar(255) NOT NULL,
`description` varchar(255) DEFAULT NULL,
`version` varchar(255) NOT NULL,
`author` varchar(255) DEFAULT NULL,
`status` enum('active','inactive','installing','updating','error') NOT NULL DEFAULT 'inactive',
`license` enum('free','commercial','custom') NOT NULL DEFAULT 'free',
`price` decimal(10,2) DEFAULT NULL,
`currency` varchar(3) NOT NULL DEFAULT 'EUR',
`billing` enum('one-time','monthly','yearly') NOT NULL DEFAULT 'yearly',
`config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`config`)),
`dependencies` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dependencies`)),
`permissions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`permissions`)),
`license_key` varchar(255) DEFAULT NULL,
`license_expires_at` timestamp NULL DEFAULT NULL,
`installed_at` timestamp NULL DEFAULT NULL,
`last_updated` timestamp NULL DEFAULT NULL,
`installed_by` varchar(255) DEFAULT NULL,
`install_log` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `modules_name_unique` (`name`),
KEY `modules_status_name_index` (`status`,`name`),
KEY `modules_license_index` (`license`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `movimenti_bancari`
--
DROP TABLE IF EXISTS `movimenti_bancari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `movimenti_bancari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`conto_bancario_id` bigint(20) unsigned NOT NULL,
`incasso_id` bigint(20) unsigned DEFAULT NULL,
`operazione_id` bigint(20) unsigned DEFAULT NULL,
`data_operazione` date NOT NULL COMMENT 'Data operazione',
`data_valuta` date NOT NULL COMMENT 'Data valuta',
`importo` decimal(15,4) NOT NULL COMMENT 'Importo movimento',
`tipo_movimento` enum('entrata','uscita') NOT NULL COMMENT 'Tipo movimento',
`descrizione_completa` text NOT NULL COMMENT 'Descrizione completa dalla banca',
`causale_bancaria` varchar(10) DEFAULT NULL COMMENT 'Codice causale banca',
`causale_descrizione` varchar(100) DEFAULT NULL COMMENT 'Descrizione causale',
`controparte_nome` varchar(200) DEFAULT NULL COMMENT 'Nome ordinante/beneficiario',
`controparte_iban` varchar(27) DEFAULT NULL COMMENT 'IBAN controparte',
`controparte_banca` varchar(100) DEFAULT NULL COMMENT 'Banca controparte',
`pattern_scala` varchar(10) DEFAULT NULL COMMENT 'Scala estratta (A,B,C,D)',
`pattern_interno` varchar(20) DEFAULT NULL COMMENT 'Numero interno estratto',
`pattern_nome_estratto` varchar(200) DEFAULT NULL COMMENT 'Nome estratto dal bonifico',
`pattern_keywords` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Keywords identificate' CHECK (json_valid(`pattern_keywords`)),
`stato_riconciliazione` enum('automatica','manuale','sospesa','anomala','esclusa') NOT NULL DEFAULT 'sospesa',
`confidenza_match` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '% confidenza match automatico',
`candidati_match` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Possibili abbinamenti trovati' CHECK (json_valid(`candidati_match`)),
`note_riconciliazione` text DEFAULT NULL COMMENT 'Note per riconciliazione manuale',
`file_origine` varchar(255) DEFAULT NULL COMMENT 'File da cui è stato importato',
`formato_file` varchar(20) NOT NULL COMMENT 'WRI, CSV, MT940, etc.',
`riga_file` int(11) DEFAULT NULL COMMENT 'Riga nel file origine',
`hash_movimento` varchar(64) DEFAULT NULL COMMENT 'Hash per evitare duplicati',
`trn_reference` varchar(50) DEFAULT NULL COMMENT 'TRN reference Unicredit',
`unicredit_raw_line` varchar(1000) DEFAULT NULL COMMENT 'Riga originale file WRI',
`duplicato` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Movimento duplicato',
`anomalo` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Movimento anomalo da verificare',
`motivo_anomalia` text DEFAULT NULL COMMENT 'Dettaglio anomalia',
`metadati_import` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Metadati import file' CHECK (json_valid(`metadati_import`)),
`log_pattern_matching` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Log pattern recognition' CHECK (json_valid(`log_pattern_matching`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `movimenti_bancari_tenant_id_hash_movimento_unique` (`tenant_id`,`hash_movimento`),
KEY `movimenti_bancari_gestione_id_foreign` (`gestione_id`),
KEY `movimenti_bancari_conto_bancario_id_foreign` (`conto_bancario_id`),
KEY `movimenti_bancari_operazione_id_foreign` (`operazione_id`),
KEY `movimenti_bancari_tenant_id_gestione_id_index` (`tenant_id`,`gestione_id`),
KEY `movimenti_bancari_tenant_id_conto_bancario_id_index` (`tenant_id`,`conto_bancario_id`),
KEY `movimenti_bancari_tenant_id_data_operazione_index` (`tenant_id`,`data_operazione`),
KEY `movimenti_bancari_tenant_id_tipo_movimento_index` (`tenant_id`,`tipo_movimento`),
KEY `movimenti_bancari_tenant_id_stato_riconciliazione_index` (`tenant_id`,`stato_riconciliazione`),
KEY `movimenti_bancari_tenant_id_causale_bancaria_index` (`tenant_id`,`causale_bancaria`),
KEY `movimenti_bancari_hash_movimento_index` (`hash_movimento`),
KEY `movimenti_bancari_pattern_scala_pattern_interno_index` (`pattern_scala`,`pattern_interno`),
CONSTRAINT `movimenti_bancari_conto_bancario_id_foreign` FOREIGN KEY (`conto_bancario_id`) REFERENCES `conti_bancari` (`id`),
CONSTRAINT `movimenti_bancari_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `movimenti_bancari_operazione_id_foreign` FOREIGN KEY (`operazione_id`) REFERENCES `operazioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `movimenti_chiavi`
--
DROP TABLE IF EXISTS `movimenti_chiavi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `movimenti_chiavi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`chiave_id` bigint(20) unsigned NOT NULL,
`tipo_movimento` enum('assegnazione','riconsegna','smarrimento','sostituzione') NOT NULL,
`data_movimento` timestamp NOT NULL DEFAULT current_timestamp(),
`assegnata_da` varchar(255) DEFAULT NULL COMMENT 'Chi ha fatto l''assegnazione',
`assegnata_a` varchar(255) DEFAULT NULL COMMENT 'A chi è stata assegnata',
`motivo` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_chiave_data` (`chiave_id`,`data_movimento`),
CONSTRAINT `movimenti_chiavi_chiave_id_foreign` FOREIGN KEY (`chiave_id`) REFERENCES `chiavi_stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `movimenti_contabili`
--
DROP TABLE IF EXISTS `movimenti_contabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `movimenti_contabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_movimento` char(8) NOT NULL COMMENT 'Codice alfanumerico univoco 8 caratteri',
`stato` enum('bozza','confermato','annullato') NOT NULL DEFAULT 'bozza',
`stabile_id` bigint(20) unsigned NOT NULL,
`tipo_movimento` enum('entrata','uscita') NOT NULL DEFAULT 'uscita',
`categoria_movimento` enum('ordinario','straordinario','fondo','lavori') NOT NULL DEFAULT 'ordinario',
`stato_movimento` enum('prima_nota','bozza','confermato','chiuso') NOT NULL DEFAULT 'prima_nota',
`data_movimento` date NOT NULL,
`data_prima_nota` timestamp NULL DEFAULT NULL,
`data_conferma` timestamp NULL DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`note` text DEFAULT NULL,
`note_interne` text DEFAULT NULL,
`importo_lordo` decimal(10,2) NOT NULL,
`ritenuta_acconto` decimal(10,2) NOT NULL DEFAULT 0.00,
`iva` decimal(10,2) NOT NULL DEFAULT 0.00,
`importo_netto` decimal(10,2) NOT NULL,
`numero_documento` varchar(255) DEFAULT NULL,
`documento_id` bigint(20) unsigned DEFAULT NULL,
`dettagli_partita_doppia` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Struttura per dare/avere futuro' CHECK (json_valid(`dettagli_partita_doppia`)),
`confermato_da` bigint(20) unsigned DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `movimenti_contabili_codice_movimento_unique` (`codice_movimento`),
KEY `movimenti_contabili_confermato_da_foreign` (`confermato_da`),
KEY `movimenti_contabili_creato_da_foreign` (`creato_da`),
KEY `movimenti_contabili_modificato_da_foreign` (`modificato_da`),
KEY `movimenti_contabili_stabile_id_data_movimento_index` (`stabile_id`,`data_movimento`),
KEY `movimenti_contabili_stato_movimento_index` (`stato_movimento`),
KEY `movimenti_contabili_tipo_movimento_index` (`tipo_movimento`),
CONSTRAINT `movimenti_contabili_confermato_da_foreign` FOREIGN KEY (`confermato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `movimenti_contabili_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `movimenti_contabili_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `movimenti_contabili_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `movimenti_interni`
--
DROP TABLE IF EXISTS `movimenti_interni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `movimenti_interni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint(20) unsigned DEFAULT NULL,
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`legacy_id` int(11) DEFAULT NULL,
`riferimento` varchar(100) DEFAULT NULL,
`data` date NOT NULL,
`descrizione` varchar(255) NOT NULL,
`importo` decimal(15,4) NOT NULL,
`conto_from` varchar(30) NOT NULL,
`conto_to` varchar(30) NOT NULL,
`tipo` varchar(30) DEFAULT NULL,
`operazione_from_id` bigint(20) unsigned DEFAULT NULL,
`operazione_to_id` bigint(20) unsigned DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `movimenti_interni_operazione_from_id_foreign` (`operazione_from_id`),
KEY `movimenti_interni_operazione_to_id_foreign` (`operazione_to_id`),
KEY `movimenti_interni_gestione_id_data_index` (`gestione_id`,`data`),
KEY `movimenti_interni_tenant_id_index` (`tenant_id`),
KEY `movimenti_interni_legacy_id_index` (`legacy_id`),
KEY `movimenti_interni_riferimento_index` (`riferimento`),
CONSTRAINT `movimenti_interni_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `movimenti_interni_operazione_from_id_foreign` FOREIGN KEY (`operazione_from_id`) REFERENCES `operazioni_contabili` (`id`),
CONSTRAINT `movimenti_interni_operazione_to_id_foreign` FOREIGN KEY (`operazione_to_id`) REFERENCES `operazioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `operazioni_contabili`
--
DROP TABLE IF EXISTS `operazioni_contabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `operazioni_contabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) DEFAULT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`legacy_id` int(11) DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`compet` enum('C','P') NOT NULL DEFAULT 'C' COMMENT 'C=Corrente, P=Precedente (bilancio apertura)',
`natura2` varchar(10) DEFAULT NULL COMMENT 'Codice per scritture partita doppia',
`n_stra` int(11) NOT NULL DEFAULT 0 COMMENT 'Numero straordinaria (0 per ordinarie)',
`protocollo_numero` int(11) NOT NULL COMMENT 'Numero progressivo nella gestione',
`protocollo_completo` varchar(50) NOT NULL COMMENT 'Protocollo completo: O2024-001, S2024-003-015',
`voce_spesa_snapshot` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Snapshot voce spesa al momento registrazione' CHECK (json_valid(`voce_spesa_snapshot`)),
`fornitore_snapshot` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Snapshot fornitore al momento registrazione' CHECK (json_valid(`fornitore_snapshot`)),
`modificato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`modificato_il` timestamp NULL DEFAULT NULL,
`motivo_modifica` text DEFAULT NULL,
`storico_modifiche` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Log completo modifiche' CHECK (json_valid(`storico_modifiche`)),
`ritenuta_acconto_id` bigint(20) unsigned DEFAULT NULL,
`fattura_elettronica_id` bigint(20) unsigned DEFAULT NULL,
`dare` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Importo DARE per partita doppia',
`avere` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Importo AVERE per partita doppia',
`conto_contabile` varchar(20) DEFAULT NULL COMMENT 'Codice conto contabile',
`stato_operazione` enum('bozza','confermata','annullata') NOT NULL DEFAULT 'confermata',
`data_competenza` date DEFAULT NULL COMMENT 'Data competenza diversa da data operazione',
`data_operazione` date DEFAULT NULL,
`conto_bancario_id` bigint(20) unsigned DEFAULT NULL,
`cassa_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `operazioni_contabili_tenant_id_index` (`tenant_id`),
KEY `operazioni_contabili_legacy_id_index` (`legacy_id`),
KEY `operazioni_contabili_modificato_da_user_id_foreign` (`modificato_da_user_id`),
KEY `operazioni_contabili_gestione_id_protocollo_numero_index` (`gestione_id`,`protocollo_numero`),
KEY `operazioni_contabili_tenant_id_compet_index` (`tenant_id`,`compet`),
KEY `operazioni_contabili_natura2_index` (`natura2`),
KEY `operazioni_contabili_stato_operazione_index` (`stato_operazione`),
KEY `operazioni_contabili_data_competenza_index` (`data_competenza`),
KEY `operazioni_contabili_cassa_id_foreign` (`cassa_id`),
CONSTRAINT `operazioni_contabili_cassa_id_foreign` FOREIGN KEY (`cassa_id`) REFERENCES `casse` (`id`),
CONSTRAINT `operazioni_contabili_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `operazioni_contabili_modificato_da_user_id_foreign` FOREIGN KEY (`modificato_da_user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21877 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `palazzine`
--
DROP TABLE IF EXISTS `palazzine`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `palazzine` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`codice_palazzina` varchar(10) NOT NULL,
`denominazione` varchar(255) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`numero_scale` int(11) NOT NULL DEFAULT 1,
`numero_piani_fuori_terra` int(11) NOT NULL DEFAULT 3,
`numero_piani_interrati` int(11) NOT NULL DEFAULT 0,
`ha_piano_terra` tinyint(1) NOT NULL DEFAULT 1,
`appartamenti_per_piano` int(11) NOT NULL DEFAULT 2,
`superficie_totale` decimal(10,2) DEFAULT NULL,
`anno_costruzione` int(11) DEFAULT NULL,
`anno_ultima_ristrutturazione` int(11) DEFAULT NULL,
`stato_conservazione` enum('ottimo','buono','discreto','da_ristrutturare') NOT NULL DEFAULT 'buono',
`sezione_urbana` varchar(10) DEFAULT NULL,
`foglio` varchar(20) DEFAULT NULL,
`particella` varchar(20) DEFAULT NULL,
`tipo_riscaldamento` enum('centralizzato','autonomo','misto','assente') NOT NULL DEFAULT 'centralizzato',
`ha_ascensore` tinyint(1) NOT NULL DEFAULT 0,
`numero_ascensori` int(11) NOT NULL DEFAULT 0,
`ha_montacarichi` tinyint(1) NOT NULL DEFAULT 0,
`ha_videocitofono` tinyint(1) NOT NULL DEFAULT 0,
`ha_impianto_allarme` tinyint(1) NOT NULL DEFAULT 0,
`accessibile_disabili` tinyint(1) NOT NULL DEFAULT 0,
`note_accessibilita` text DEFAULT NULL,
`posti_auto_coperti` int(11) NOT NULL DEFAULT 0,
`posti_auto_scoperti` int(11) NOT NULL DEFAULT 0,
`ha_giardino_comune` tinyint(1) NOT NULL DEFAULT 0,
`mq_giardino_comune` decimal(8,2) DEFAULT NULL,
`ha_terrazza_comune` tinyint(1) NOT NULL DEFAULT 0,
`mq_terrazza_comune` decimal(8,2) DEFAULT NULL,
`ha_locale_caldaia` tinyint(1) NOT NULL DEFAULT 0,
`ha_locale_contatori` tinyint(1) NOT NULL DEFAULT 0,
`ha_locale_bici` tinyint(1) NOT NULL DEFAULT 0,
`ha_lavanderia` tinyint(1) NOT NULL DEFAULT 0,
`altri_locali_comuni` text DEFAULT NULL,
`note` text DEFAULT NULL,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `palazzine_stabile_id_codice_palazzina_unique` (`stabile_id`,`codice_palazzina`),
KEY `palazzine_created_by_foreign` (`created_by`),
KEY `palazzine_updated_by_foreign` (`updated_by`),
KEY `palazzine_stabile_id_codice_palazzina_index` (`stabile_id`,`codice_palazzina`),
KEY `palazzine_stabile_id_index` (`stabile_id`),
CONSTRAINT `palazzine_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`),
CONSTRAINT `palazzine_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `palazzine_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `password_reset_tokens`
--
DROP TABLE IF EXISTS `password_reset_tokens`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `password_reset_tokens` (
`email` varchar(255) NOT NULL,
`token` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `payment_methods`
--
DROP TABLE IF EXISTS `payment_methods`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `payment_methods` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL DEFAULT 'manuale',
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`details`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `pbx_click_to_call_requests`
--
DROP TABLE IF EXISTS `pbx_click_to_call_requests`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pbx_click_to_call_requests` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`requested_by_user_id` bigint(20) unsigned NOT NULL,
`assigned_user_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`communication_message_id` bigint(20) unsigned DEFAULT NULL,
`source_extension` varchar(20) NOT NULL,
`target_number` varchar(40) NOT NULL,
`status` varchar(20) NOT NULL DEFAULT 'pending',
`note` text DEFAULT NULL,
`requested_at` timestamp NULL DEFAULT NULL,
`processed_at` timestamp NULL DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `pbx_click_to_call_requests_requested_by_user_id_foreign` (`requested_by_user_id`),
KEY `pbx_click_to_call_requests_assigned_user_id_foreign` (`assigned_user_id`),
KEY `pbx_click_to_call_requests_stabile_id_foreign` (`stabile_id`),
KEY `pbx_click_to_call_requests_communication_message_id_foreign` (`communication_message_id`),
KEY `pbx_click_to_call_requests_status_requested_at_index` (`status`,`requested_at`),
KEY `pbx_click_to_call_requests_source_extension_created_at_index` (`source_extension`,`created_at`),
CONSTRAINT `pbx_click_to_call_requests_assigned_user_id_foreign` FOREIGN KEY (`assigned_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `pbx_click_to_call_requests_communication_message_id_foreign` FOREIGN KEY (`communication_message_id`) REFERENCES `communication_messages` (`id`) ON DELETE SET NULL,
CONSTRAINT `pbx_click_to_call_requests_requested_by_user_id_foreign` FOREIGN KEY (`requested_by_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `pbx_click_to_call_requests_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `permissions`
--
DROP TABLE IF EXISTS `permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `permissions` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`guard_name` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `permissions_name_guard_name_unique` (`name`,`guard_name`)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `personal_access_tokens`
--
DROP TABLE IF EXISTS `personal_access_tokens`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `personal_access_tokens` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tokenable_type` varchar(255) NOT NULL,
`tokenable_id` bigint(20) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`token` varchar(64) NOT NULL,
`abilities` text DEFAULT NULL,
`last_used_at` timestamp NULL DEFAULT NULL,
`expires_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `personal_access_tokens_token_unique` (`token`),
KEY `personal_access_tokens_tokenable_type_tokenable_id_index` (`tokenable_type`,`tokenable_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `persone`
--
DROP TABLE IF EXISTS `persone`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `persone` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_interno` varchar(8) DEFAULT NULL,
`tipologia` enum('fisica','giuridica','ditta_individuale') NOT NULL DEFAULT 'fisica',
`ruoli` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`ruoli`)),
`cognome` varchar(100) NOT NULL,
`nome` varchar(100) NOT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`data_nascita` date DEFAULT NULL,
`luogo_nascita_comune_id` int(11) DEFAULT NULL,
`residenza_via` varchar(255) DEFAULT NULL,
`residenza_comune_id` int(11) DEFAULT NULL,
`telefono_principale` varchar(20) DEFAULT NULL,
`telefono_secondario` varchar(20) DEFAULT NULL,
`email_principale` varchar(255) DEFAULT NULL,
`email_pec` varchar(255) DEFAULT NULL,
`whatsapp` varchar(20) DEFAULT NULL,
`modalita_comunicazione_preferita` enum('email','sms','whatsapp','telefono','posta') NOT NULL DEFAULT 'email',
`lingua_preferita` varchar(10) NOT NULL DEFAULT 'it',
`consenso_privacy` tinyint(1) NOT NULL DEFAULT 0,
`consenso_marketing` tinyint(1) NOT NULL DEFAULT 0,
`data_consenso_privacy` timestamp NULL DEFAULT NULL,
`ragione_sociale` varchar(255) DEFAULT NULL,
`forma_giuridica` varchar(50) DEFAULT NULL,
`codice_fiscale_societa` varchar(16) DEFAULT NULL,
`partita_iva_societa` varchar(11) DEFAULT NULL,
`note` text DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`canale_convocazione` varchar(255) DEFAULT 'Raccomandata AR',
`canale_verbali` varchar(255) DEFAULT 'Raccomandata AR',
`canale_solleciti` varchar(255) DEFAULT 'PEC',
PRIMARY KEY (`id`),
UNIQUE KEY `persone_codice_interno_unique` (`codice_interno`),
UNIQUE KEY `persone_codice_fiscale_unique` (`codice_fiscale`),
UNIQUE KEY `persone_telefono_principale_unique` (`telefono_principale`),
KEY `persone_cognome_nome_index` (`cognome`,`nome`),
KEY `persone_telefono_principale_index` (`telefono_principale`),
KEY `persone_email_principale_index` (`email_principale`),
KEY `persone_codice_fiscale_index` (`codice_fiscale`)
) ENGINE=InnoDB AUTO_INCREMENT=117 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `persone_audit`
--
DROP TABLE IF EXISTS `persone_audit`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `persone_audit` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`persona_id` bigint(20) unsigned NOT NULL,
`campo_modificato` varchar(100) NOT NULL,
`valore_precedente` text DEFAULT NULL,
`valore_nuovo` text DEFAULT NULL,
`utente_modifica` varchar(100) NOT NULL,
`ip_modifica` varchar(45) DEFAULT NULL,
`data_modifica` timestamp NOT NULL,
PRIMARY KEY (`id`),
KEY `persone_audit_persona_id_data_modifica_index` (`persona_id`,`data_modifica`),
CONSTRAINT `persone_audit_persona_id_foreign` FOREIGN KEY (`persona_id`) REFERENCES `persone` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `persone_email_multiple`
--
DROP TABLE IF EXISTS `persone_email_multiple`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `persone_email_multiple` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`persona_id` bigint(20) unsigned NOT NULL,
`email` varchar(255) NOT NULL,
`tipo_email` varchar(50) NOT NULL DEFAULT 'secondaria',
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `persone_email_multiple_persona_id_attiva_index` (`persona_id`,`attiva`),
CONSTRAINT `persone_email_multiple_persona_id_foreign` FOREIGN KEY (`persona_id`) REFERENCES `persone` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `persone_unita_relazioni`
--
DROP TABLE IF EXISTS `persone_unita_relazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `persone_unita_relazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`persona_id` bigint(20) unsigned NOT NULL,
`unita_id` bigint(20) unsigned NOT NULL,
`tipo_relazione` varchar(50) NOT NULL,
`ruolo_rate` varchar(1) DEFAULT NULL,
`quota_relazione` decimal(5,2) DEFAULT NULL,
`data_inizio` date NOT NULL,
`data_fine` date DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`riceve_comunicazioni` tinyint(1) NOT NULL DEFAULT 1,
`riceve_convocazioni` tinyint(1) NOT NULL DEFAULT 1,
`vota_assemblea` tinyint(1) NOT NULL DEFAULT 1,
`note_relazione` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `persone_unita_relazioni_persona_id_attivo_index` (`persona_id`,`attivo`),
KEY `persone_unita_relazioni_unita_id_attivo_index` (`unita_id`,`attivo`),
KEY `persone_unita_relazioni_tipo_relazione_index` (`tipo_relazione`),
KEY `persone_unita_relazioni_ruolo_rate_attivo_index` (`ruolo_rate`,`attivo`),
CONSTRAINT `persone_unita_relazioni_persona_id_foreign` FOREIGN KEY (`persona_id`) REFERENCES `persone` (`id`) ON DELETE CASCADE,
CONSTRAINT `persone_unita_relazioni_unita_id_foreign` FOREIGN KEY (`unita_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=13564 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `phone_country_prefixes`
--
DROP TABLE IF EXISTS `phone_country_prefixes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `phone_country_prefixes` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`iso2` varchar(2) NOT NULL,
`prefisso` varchar(10) NOT NULL,
`paese` varchar(255) NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `phone_country_prefixes_iso2_unique` (`iso2`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `piani_conti_modello`
--
DROP TABLE IF EXISTS `piani_conti_modello`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `piani_conti_modello` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`tipo_conto` varchar(50) NOT NULL COMMENT 'Es. PATRIMONIALE_ATTIVITA, ECONOMICO_COSTO, FINANZIARIO_ATTIVITA',
`natura_saldo_tipico` varchar(5) DEFAULT NULL COMMENT 'DARE o AVERE',
`is_conto_finanziario` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `piani_conti_modello_codice_unique` (`codice`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `piano_conti`
--
DROP TABLE IF EXISTS `piano_conti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `piano_conti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`mastro` varchar(4) NOT NULL,
`conto` varchar(8) NOT NULL,
`sottoconto` varchar(5) NOT NULL,
`quarto_livello` varchar(5) NOT NULL DEFAULT '',
`tipologia` varchar(3) NOT NULL DEFAULT 'SPE',
`denominazione` varchar(255) NOT NULL,
`tipo` enum('ATTIVO','PASSIVO','RICAVO','COSTO','PATRIMONIO') NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `piano_conti_mastro_conto_sottoconto_unique` (`mastro`,`conto`,`sottoconto`),
KEY `piano_conti_mastro_conto_index` (`mastro`,`conto`),
KEY `piano_conti_mastro_index` (`mastro`),
KEY `piano_conti_stabile_id_foreign` (`stabile_id`),
KEY `pc_idx_all` (`mastro`,`conto`,`sottoconto`,`quarto_livello`),
CONSTRAINT `piano_conti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `piano_conti_condominio`
--
DROP TABLE IF EXISTS `piano_conti_condominio`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `piano_conti_condominio` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`tipo_conto` varchar(20) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_conto_per_stabile` (`stabile_id`,`codice`),
CONSTRAINT `piano_conti_condominio_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `piano_conti_saldi`
--
DROP TABLE IF EXISTS `piano_conti_saldi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `piano_conti_saldi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`piano_conti_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`saldo_dare` decimal(15,2) NOT NULL DEFAULT 0.00,
`saldo_avere` decimal(15,2) NOT NULL DEFAULT 0.00,
`saldo_finale` decimal(15,2) NOT NULL DEFAULT 0.00,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `piano_conti_saldi_piano_conti_id_gestione_id_unique` (`piano_conti_id`,`gestione_id`),
KEY `piano_conti_saldi_gestione_id_saldo_finale_index` (`gestione_id`,`saldo_finale`),
CONSTRAINT `piano_conti_saldi_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni` (`id_gestione`) ON DELETE CASCADE,
CONSTRAINT `piano_conti_saldi_piano_conti_id_foreign` FOREIGN KEY (`piano_conti_id`) REFERENCES `piano_conti` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `piano_rateizzazione`
--
DROP TABLE IF EXISTS `piano_rateizzazione`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `piano_rateizzazione` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_piano` varchar(255) NOT NULL,
`ripartizione_spese_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`descrizione` varchar(255) NOT NULL,
`tipo_piano` varchar(255) NOT NULL DEFAULT 'standard',
`importo_totale` decimal(10,2) NOT NULL,
`numero_rate` int(11) NOT NULL,
`data_prima_rata` date NOT NULL,
`frequenza` varchar(255) NOT NULL DEFAULT 'mensile',
`stato` varchar(255) NOT NULL DEFAULT 'attivo',
`configurazione_rate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione_rate`)),
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`attivato_at` timestamp NULL DEFAULT NULL,
`attivato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `piano_rateizzazione_codice_piano_unique` (`codice_piano`),
KEY `piano_rateizzazione_ripartizione_spese_id_foreign` (`ripartizione_spese_id`),
KEY `piano_rateizzazione_stabile_id_foreign` (`stabile_id`),
KEY `piano_rateizzazione_creato_da_foreign` (`creato_da`),
KEY `piano_rateizzazione_attivato_da_foreign` (`attivato_da`),
CONSTRAINT `piano_rateizzazione_attivato_da_foreign` FOREIGN KEY (`attivato_da`) REFERENCES `users` (`id`),
CONSTRAINT `piano_rateizzazione_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`),
CONSTRAINT `piano_rateizzazione_ripartizione_spese_id_foreign` FOREIGN KEY (`ripartizione_spese_id`) REFERENCES `ripartizione_spese` (`id`) ON DELETE CASCADE,
CONSTRAINT `piano_rateizzazione_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `preventivi`
--
DROP TABLE IF EXISTS `preventivi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `preventivi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione` smallint(5) unsigned NOT NULL,
`tipo_gestione` varchar(32) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`stato` varchar(32) NOT NULL DEFAULT 'bozza',
`importo_totale` decimal(12,2) NOT NULL DEFAULT 0.00,
`data_creazione` date DEFAULT NULL,
`data_approvazione` date DEFAULT NULL,
`approvato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`note` text DEFAULT NULL,
`versione` int(10) unsigned NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `preventivi_approvato_da_user_id_foreign` (`approvato_da_user_id`),
KEY `preventivi_stabile_id_anno_gestione_index` (`stabile_id`,`anno_gestione`),
KEY `preventivi_stato_tipo_gestione_index` (`stato`,`tipo_gestione`),
CONSTRAINT `preventivi_approvato_da_user_id_foreign` FOREIGN KEY (`approvato_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `preventivi_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_identifiers`
--
DROP TABLE IF EXISTS `product_identifiers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_identifiers` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`product_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`code_type` varchar(32) NOT NULL,
`code_role` varchar(32) DEFAULT NULL,
`code_value` varchar(255) NOT NULL,
`normalized_code` varchar(255) NOT NULL,
`source` varchar(32) DEFAULT NULL,
`source_reference` varchar(255) DEFAULT NULL,
`is_primary` tinyint(1) NOT NULL DEFAULT 0,
`payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `product_identifiers_scope_unique` (`fornitore_id`,`code_type`,`normalized_code`),
KEY `product_identifiers_product_id_foreign` (`product_id`),
KEY `product_identifiers_code_type_index` (`code_type`),
KEY `product_identifiers_code_role_index` (`code_role`),
KEY `product_identifiers_normalized_code_index` (`normalized_code`),
KEY `product_identifiers_source_index` (`source`),
CONSTRAINT `product_identifiers_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `product_identifiers_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_media`
--
DROP TABLE IF EXISTS `product_media`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_media` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`product_id` bigint(20) unsigned NOT NULL,
`media_type` varchar(24) NOT NULL DEFAULT 'image',
`disk` varchar(32) NOT NULL DEFAULT 'local',
`path` varchar(255) NOT NULL,
`title` varchar(255) DEFAULT NULL,
`mime_type` varchar(120) DEFAULT NULL,
`size_bytes` bigint(20) unsigned DEFAULT NULL,
`sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `product_media_lookup_idx` (`product_id`,`media_type`,`sort_order`),
KEY `product_media_media_type_index` (`media_type`),
CONSTRAINT `product_media_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_offers`
--
DROP TABLE IF EXISTS `product_offers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_offers` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`product_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`offer_key` varchar(255) NOT NULL,
`source_type` varchar(32) NOT NULL,
`source_name` varchar(64) DEFAULT NULL,
`external_product_id` varchar(255) DEFAULT NULL,
`external_sku` varchar(255) DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`condition_label` varchar(32) DEFAULT NULL,
`currency` varchar(8) NOT NULL DEFAULT 'EUR',
`price_amount` decimal(12,2) DEFAULT NULL,
`price_compare_at` decimal(12,2) DEFAULT NULL,
`shipping_amount` decimal(12,2) DEFAULT NULL,
`availability` varchar(64) DEFAULT NULL,
`stock_qty` int(11) DEFAULT NULL,
`external_url` text DEFAULT NULL,
`referral_url` text DEFAULT NULL,
`referral_code` varchar(64) DEFAULT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`is_internal` tinyint(1) NOT NULL DEFAULT 0,
`last_seen_at` timestamp NULL DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `product_offers_offer_key_unique` (`offer_key`),
KEY `product_offers_fornitore_id_foreign` (`fornitore_id`),
KEY `product_offers_lookup_idx` (`product_id`,`is_active`,`price_amount`),
KEY `product_offers_source_idx` (`source_type`,`fornitore_id`,`is_active`),
KEY `product_offers_source_type_index` (`source_type`),
KEY `product_offers_source_name_index` (`source_name`),
KEY `product_offers_external_product_id_index` (`external_product_id`),
KEY `product_offers_external_sku_index` (`external_sku`),
CONSTRAINT `product_offers_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `product_offers_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=403 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `product_serials`
--
DROP TABLE IF EXISTS `product_serials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `product_serials` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`product_id` bigint(20) unsigned DEFAULT NULL,
`legacy_scheda_id` bigint(20) unsigned DEFAULT NULL,
`customer_name` varchar(255) DEFAULT NULL,
`product_model` varchar(255) DEFAULT NULL,
`product_code` varchar(255) DEFAULT NULL,
`serial_number` varchar(255) DEFAULT NULL,
`serial_number_2` varchar(255) DEFAULT NULL,
`date_received` datetime DEFAULT NULL,
`date_resold` datetime DEFAULT NULL,
`purchase_date` datetime DEFAULT NULL,
`purchase_price` decimal(12,2) DEFAULT NULL,
`purchase_currency` varchar(3) DEFAULT NULL,
`purchase_tax_rate` decimal(6,2) DEFAULT NULL,
`purchase_invoice_ref` varchar(255) DEFAULT NULL,
`purchase_invoice_line` int(10) unsigned DEFAULT NULL,
`internal_notes` text DEFAULT NULL,
`source` varchar(255) DEFAULT NULL,
`source_reference` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `product_serials_legacy_scheda_unique` (`legacy_scheda_id`),
KEY `product_serials_vendor_serial_idx` (`fornitore_id`,`serial_number`),
KEY `product_serials_product_serial_idx` (`product_id`,`serial_number`),
CONSTRAINT `product_serials_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `product_serials_legacy_scheda_id_foreign` FOREIGN KEY (`legacy_scheda_id`) REFERENCES `assistenza_tecnorepair_schede_legacy` (`id`) ON DELETE SET NULL,
CONSTRAINT `product_serials_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `products`
--
DROP TABLE IF EXISTS `products`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `products` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`default_fornitore_id` bigint(20) unsigned DEFAULT NULL,
`type` varchar(24) NOT NULL DEFAULT 'product',
`internal_code` varchar(255) DEFAULT NULL,
`canonical_key` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`brand` varchar(255) DEFAULT NULL,
`model` varchar(255) DEFAULT NULL,
`variant_group` varchar(255) DEFAULT NULL,
`variant_label` varchar(255) DEFAULT NULL,
`color_label` varchar(255) DEFAULT NULL,
`unit_measure` varchar(24) DEFAULT NULL,
`description` text DEFAULT NULL,
`track_serials` tinyint(1) NOT NULL DEFAULT 0,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `products_canonical_key_unique` (`canonical_key`),
UNIQUE KEY `products_internal_code_unique` (`internal_code`),
KEY `products_supplier_active_idx` (`default_fornitore_id`,`is_active`),
KEY `products_type_index` (`type`),
KEY `products_brand_index` (`brand`),
KEY `products_model_index` (`model`),
CONSTRAINT `products_default_fornitore_id_foreign` FOREIGN KEY (`default_fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=398 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `program_acl_rules`
--
DROP TABLE IF EXISTS `program_acl_rules`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `program_acl_rules` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`scope_type` varchar(16) NOT NULL,
`scope_key` varchar(191) NOT NULL,
`program_key` varchar(191) NOT NULL,
`is_allowed` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `program_acl_rules_unique` (`scope_type`,`scope_key`,`program_key`),
KEY `program_acl_rules_scope_type_index` (`scope_type`),
KEY `program_acl_rules_scope_key_index` (`scope_key`),
KEY `program_acl_rules_program_key_index` (`program_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `proprieta`
--
DROP TABLE IF EXISTS `proprieta`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `proprieta` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`anagrafica_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`tipo_diritto` varchar(50) DEFAULT NULL,
`percentuale_possesso` decimal(7,4) DEFAULT NULL,
`percentuale_detrazione` decimal(7,4) DEFAULT NULL,
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_proprieta_per_unita_soggetto` (`anagrafica_id`,`unita_immobiliare_id`,`tipo_diritto`),
KEY `proprieta_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
CONSTRAINT `proprieta_soggetto_id_foreign` FOREIGN KEY (`anagrafica_id`) REFERENCES `anagrafiche` (`id`) ON DELETE CASCADE,
CONSTRAINT `proprieta_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1652 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rappresentanti_legali`
--
DROP TABLE IF EXISTS `rappresentanti_legali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rappresentanti_legali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`societa_id` bigint(20) unsigned NOT NULL,
`rappresentante_id` bigint(20) unsigned NOT NULL,
`tipo_rappresentanza` varchar(50) NOT NULL,
`data_inizio` date NOT NULL,
`data_fine` date DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `rappresentanti_legali_societa_id_foreign` (`societa_id`),
KEY `rappresentanti_legali_rappresentante_id_foreign` (`rappresentante_id`),
CONSTRAINT `rappresentanti_legali_rappresentante_id_foreign` FOREIGN KEY (`rappresentante_id`) REFERENCES `persone` (`id`) ON DELETE CASCADE,
CONSTRAINT `rappresentanti_legali_societa_id_foreign` FOREIGN KEY (`societa_id`) REFERENCES `persone` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rate`
--
DROP TABLE IF EXISTS `rate`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rate` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_rata` varchar(255) NOT NULL,
`piano_rateizzazione_id` bigint(20) unsigned NOT NULL,
`ripartizione_spese_id` bigint(20) unsigned NOT NULL,
`numero_rata` int(11) NOT NULL,
`importo_rata` decimal(10,2) NOT NULL,
`data_scadenza` date NOT NULL,
`stato` varchar(255) NOT NULL DEFAULT 'attiva',
`data_pagamento` date DEFAULT NULL,
`importo_pagato` decimal(10,2) DEFAULT NULL,
`modalita_pagamento` varchar(255) DEFAULT NULL,
`riferimento_pagamento` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`registrato_da` bigint(20) unsigned DEFAULT NULL,
`registrato_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`importo` decimal(10,2) GENERATED ALWAYS AS (`importo_rata`) VIRTUAL,
PRIMARY KEY (`id`),
UNIQUE KEY `rate_codice_rata_unique` (`codice_rata`),
KEY `rate_piano_rateizzazione_id_foreign` (`piano_rateizzazione_id`),
KEY `rate_ripartizione_spese_id_foreign` (`ripartizione_spese_id`),
KEY `rate_registrato_da_foreign` (`registrato_da`),
CONSTRAINT `rate_piano_rateizzazione_id_foreign` FOREIGN KEY (`piano_rateizzazione_id`) REFERENCES `piano_rateizzazione` (`id`) ON DELETE CASCADE,
CONSTRAINT `rate_registrato_da_foreign` FOREIGN KEY (`registrato_da`) REFERENCES `users` (`id`),
CONSTRAINT `rate_ripartizione_spese_id_foreign` FOREIGN KEY (`ripartizione_spese_id`) REFERENCES `ripartizione_spese` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rate_emesse`
--
DROP TABLE IF EXISTS `rate_emesse`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rate_emesse` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`piano_rateizzazione_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`soggetto_responsabile_id` bigint(20) unsigned NOT NULL,
`numero_rata_progressivo` int(11) NOT NULL,
`descrizione` text DEFAULT NULL,
`importo_originario_unita` decimal(15,2) NOT NULL,
`percentuale_addebito_soggetto` decimal(7,4) NOT NULL DEFAULT 100.0000,
`importo_addebitato_soggetto` decimal(15,2) NOT NULL,
`data_emissione` date NOT NULL,
`data_scadenza` date NOT NULL,
`stato_rata` varchar(50) NOT NULL DEFAULT 'EMESSA',
`data_ultimo_pagamento` date DEFAULT NULL,
`importo_pagato` decimal(15,2) NOT NULL DEFAULT 0.00,
`note` text DEFAULT NULL,
`transazione_contabile_emissione_id` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_rata_per_soggetto_unita` (`piano_rateizzazione_id`,`unita_immobiliare_id`,`soggetto_responsabile_id`,`numero_rata_progressivo`),
KEY `rate_emesse_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `rate_emesse_soggetto_responsabile_id_foreign` (`soggetto_responsabile_id`),
CONSTRAINT `rate_emesse_soggetto_responsabile_id_foreign` FOREIGN KEY (`soggetto_responsabile_id`) REFERENCES `anagrafiche` (`id`),
CONSTRAINT `rate_emesse_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=62903 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rate_lavori_straord`
--
DROP TABLE IF EXISTS `rate_lavori_straord`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rate_lavori_straord` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`lavoro_straordinario_id` bigint(20) unsigned NOT NULL,
`progressivo` smallint(5) unsigned NOT NULL,
`scadenza_prevista` date DEFAULT NULL,
`importo_previsto` decimal(15,4) DEFAULT NULL,
`importo_consuntivo` decimal(15,4) DEFAULT NULL,
`emessa` tinyint(1) NOT NULL DEFAULT 0,
`incassata` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_rate_lavoro_prog` (`lavoro_straordinario_id`,`progressivo`),
CONSTRAINT `rate_lavori_straord_lavoro_straordinario_id_foreign` FOREIGN KEY (`lavoro_straordinario_id`) REFERENCES `lavori_straordinari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rate_scadenze_preventivo`
--
DROP TABLE IF EXISTS `rate_scadenze_preventivo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rate_scadenze_preventivo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`anno` varchar(4) NOT NULL,
`num_rata` int(11) DEFAULT NULL,
`tipo_gestione` varchar(50) DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`importo` decimal(12,2) NOT NULL DEFAULT 0.00,
`cod_cond` varchar(50) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_rate_scad_prev_unita` (`unita_immobiliare_id`,`anno`),
CONSTRAINT `rate_scadenze_preventivo_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=26597 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `regimi_fiscali`
--
DROP TABLE IF EXISTS `regimi_fiscali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `regimi_fiscali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `regimi_fiscali_codice_unique` (`codice`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `registro_ritenute_acconto`
--
DROP TABLE IF EXISTS `registro_ritenute_acconto`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `registro_ritenute_acconto` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`numero_progressivo` int(11) NOT NULL COMMENT 'Numero progressivo annuale',
`data_competenza` date NOT NULL COMMENT 'Data competenza ritenuta',
`data_pagamento_fattura` date DEFAULT NULL COMMENT 'Data pagamento fattura (base per scadenza 16 mese successivo)',
`fornitore_id` bigint(20) unsigned NOT NULL,
`operazione_id` bigint(20) unsigned DEFAULT NULL,
`fattura_id` bigint(20) unsigned DEFAULT NULL COMMENT 'Collegamento fattura se presente',
`imponibile` decimal(15,4) NOT NULL COMMENT 'Imponibile soggetto a ritenuta',
`aliquota_ritenuta` decimal(5,2) NOT NULL COMMENT 'Aliquota ritenuta (es: 20.00)',
`importo_ritenuta` decimal(15,4) NOT NULL COMMENT 'Importo ritenuta calcolato',
`codice_tributo` varchar(10) NOT NULL DEFAULT '1040' COMMENT 'Codice tributo F24',
`tipo_ritenuta` varchar(20) NOT NULL DEFAULT 'professionale' COMMENT 'professionale, dipendente, altro',
`rif_rda` varchar(50) DEFAULT NULL COMMENT 'Riferimento originale Gescon',
`stato_versamento` enum('da_versare','versata','compensata','annullata') NOT NULL DEFAULT 'da_versare',
`data_scadenza_versamento` date DEFAULT NULL COMMENT 'Scadenza versamento (16 del mese successivo)',
`data_versamento` date DEFAULT NULL COMMENT 'Data effettiva versamento',
`f24_riferimento` varchar(100) DEFAULT NULL COMMENT 'Riferimento F24 versamento',
`importo_versato` decimal(15,4) DEFAULT NULL COMMENT 'Importo effettivamente versato',
`sanzioni` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Sanzioni per ritardato versamento',
`interessi` decimal(15,4) NOT NULL DEFAULT 0.0000 COMMENT 'Interessi per ritardato versamento',
`comunicazione_fornitore_inviata` tinyint(1) NOT NULL DEFAULT 0,
`data_comunicazione_fornitore` date DEFAULT NULL,
`modalita_comunicazione` varchar(50) DEFAULT NULL COMMENT 'email, pec, cartaceo',
`note_comunicazione` text DEFAULT NULL,
`inclusa_770` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Inclusa in dichiarazione 770',
`inclusa_cu` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Inclusa in Certificazione Unica',
`anno_dichiarazione` int(11) DEFAULT NULL COMMENT 'Anno dichiarazione fiscale',
`metadati_gescon` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Dati originali Gescon' CHECK (json_valid(`metadati_gescon`)),
`dettagli_versamento` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Dettagli versamento F24' CHECK (json_valid(`dettagli_versamento`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `registro_ritenute_acconto_gestione_id_numero_progressivo_unique` (`gestione_id`,`numero_progressivo`),
KEY `registro_ritenute_acconto_operazione_id_foreign` (`operazione_id`),
KEY `registro_ritenute_acconto_gestione_id_numero_progressivo_index` (`gestione_id`,`numero_progressivo`),
KEY `registro_ritenute_acconto_fornitore_id_data_competenza_index` (`fornitore_id`,`data_competenza`),
KEY `idx_rda_stato_scadenza` (`stato_versamento`,`data_scadenza_versamento`),
KEY `registro_ritenute_acconto_data_versamento_index` (`data_versamento`),
KEY `registro_ritenute_acconto_tenant_id_anno_dichiarazione_index` (`tenant_id`,`anno_dichiarazione`),
CONSTRAINT `registro_ritenute_acconto_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`),
CONSTRAINT `registro_ritenute_acconto_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`),
CONSTRAINT `registro_ritenute_acconto_operazione_id_foreign` FOREIGN KEY (`operazione_id`) REFERENCES `operazioni_contabili` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `revisione_precedenti_amministratori`
--
DROP TABLE IF EXISTS `revisione_precedenti_amministratori`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `revisione_precedenti_amministratori` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`precedente_amministratore` varchar(255) NOT NULL,
`gestionale` varchar(255) DEFAULT NULL,
`passaggio_consegne_path` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_revpa_stabile` (`stabile_id`),
KEY `idx_revpa_prevamm` (`precedente_amministratore`),
KEY `idx_revpa_gestionale` (`gestionale`),
KEY `revisione_precedenti_amministratori_creato_da_foreign` (`creato_da`),
KEY `revisione_precedenti_amministratori_modificato_da_foreign` (`modificato_da`),
KEY `idx_revpa_rubrica` (`rubrica_id`),
CONSTRAINT `revisione_precedenti_amministratori_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `revisione_precedenti_amministratori_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `revisione_precedenti_amministratori_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL,
CONSTRAINT `revisione_precedenti_amministratori_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `revisione_precedenti_movimenti_banca`
--
DROP TABLE IF EXISTS `revisione_precedenti_movimenti_banca`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `revisione_precedenti_movimenti_banca` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`revisione_precedente_amministratore_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`data` date DEFAULT NULL,
`numero` varchar(50) DEFAULT NULL,
`tipo_riga` varchar(50) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`descrizione_estesa` text DEFAULT NULL,
`importo` decimal(12,2) DEFAULT NULL,
`saldo` decimal(12,2) DEFAULT NULL,
`source_file` varchar(255) DEFAULT NULL,
`raw_line` text DEFAULT NULL,
`row_hash` varchar(64) DEFAULT NULL,
`payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `rev_prev_mov_banca_admin_idx` (`revisione_precedente_amministratore_id`),
KEY `rev_prev_mov_banca_rev_data_idx` (`revisione_precedente_amministratore_id`,`data`),
KEY `revisione_precedenti_movimenti_banca_stabile_id_index` (`stabile_id`),
KEY `revisione_precedenti_movimenti_banca_data_index` (`data`),
KEY `revisione_precedenti_movimenti_banca_numero_index` (`numero`),
KEY `revisione_precedenti_movimenti_banca_row_hash_index` (`row_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ripartizione_presets`
--
DROP TABLE IF EXISTS `ripartizione_presets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ripartizione_presets` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`nome` varchar(150) NOT NULL,
`dati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ripartizione_presets_stabile_id_nome_index` (`stabile_id`,`nome`),
CONSTRAINT `ripartizione_presets_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ripartizione_spese`
--
DROP TABLE IF EXISTS `ripartizione_spese`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ripartizione_spese` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_ripartizione` varchar(255) NOT NULL,
`voce_spesa_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`importo_totale` decimal(10,2) NOT NULL,
`importo_ripartito` decimal(10,2) NOT NULL DEFAULT 0.00,
`tipo_ripartizione` varchar(255) NOT NULL DEFAULT 'millesimale',
`data_ripartizione` date NOT NULL,
`stato` varchar(255) NOT NULL DEFAULT 'bozza',
`note` text DEFAULT NULL,
`configurazione_ripartizione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione_ripartizione`)),
`creato_da` bigint(20) unsigned NOT NULL,
`approvato_at` timestamp NULL DEFAULT NULL,
`approvato_da` bigint(20) unsigned DEFAULT NULL,
`contabilizzato_at` timestamp NULL DEFAULT NULL,
`contabilizzato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ripartizione_spese_codice_ripartizione_unique` (`codice_ripartizione`),
KEY `ripartizione_spese_voce_spesa_id_foreign` (`voce_spesa_id`),
KEY `ripartizione_spese_stabile_id_foreign` (`stabile_id`),
KEY `ripartizione_spese_creato_da_foreign` (`creato_da`),
KEY `ripartizione_spese_tabella_millesimale_id_foreign` (`tabella_millesimale_id`),
KEY `ripartizione_spese_approvato_da_foreign` (`approvato_da`),
KEY `ripartizione_spese_contabilizzato_da_foreign` (`contabilizzato_da`),
CONSTRAINT `ripartizione_spese_approvato_da_foreign` FOREIGN KEY (`approvato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ripartizione_spese_contabilizzato_da_foreign` FOREIGN KEY (`contabilizzato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ripartizione_spese_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`),
CONSTRAINT `ripartizione_spese_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `ripartizione_spese_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE,
CONSTRAINT `ripartizione_spese_voce_spesa_id_foreign` FOREIGN KEY (`voce_spesa_id`) REFERENCES `voci_spesa` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ripartizione_spese_inquilini`
--
DROP TABLE IF EXISTS `ripartizione_spese_inquilini`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ripartizione_spese_inquilini` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`categoria` varchar(50) NOT NULL COMMENT 'Categoria spesa (AMMINISTRATIVE, ASCENSORE, etc.)',
`descrizione` text NOT NULL COMMENT 'Descrizione della spesa',
`percentuale_locatore` decimal(5,2) NOT NULL COMMENT 'Percentuale a carico del proprietario',
`percentuale_conduttore` decimal(5,2) NOT NULL COMMENT 'Percentuale a carico dell''inquilino',
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Se la regola è attiva',
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ripartizione_spese_inquilini_categoria_attivo_index` (`categoria`,`attivo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ripartizioni_preventivo`
--
DROP TABLE IF EXISTS `ripartizioni_preventivo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ripartizioni_preventivo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`voce_preventivo_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`quota_calcolata` decimal(12,2) DEFAULT NULL,
`quota_modificata` decimal(12,2) DEFAULT NULL,
`quota_finale` decimal(12,2) DEFAULT NULL,
`versione` int(10) unsigned NOT NULL DEFAULT 1,
`modificato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`motivo_modifica` text DEFAULT NULL,
`data_modifica` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_rip_prev_voce_unita` (`voce_preventivo_id`,`unita_immobiliare_id`),
KEY `ripartizioni_preventivo_modificato_da_user_id_foreign` (`modificato_da_user_id`),
CONSTRAINT `ripartizioni_preventivo_modificato_da_user_id_foreign` FOREIGN KEY (`modificato_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ripartizioni_preventivo_voce_preventivo_id_foreign` FOREIGN KEY (`voce_preventivo_id`) REFERENCES `voci_preventivo` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ripartizioni_spese`
--
DROP TABLE IF EXISTS `ripartizioni_spese`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ripartizioni_spese` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`voce_spesa_id` bigint(20) unsigned NOT NULL,
`gestione_id` bigint(20) unsigned NOT NULL,
`importo_spettante` decimal(10,2) NOT NULL,
`millesimi_applicati` decimal(10,3) NOT NULL,
`tipo_calcolo` enum('PREVENTIVO','CONSUNTIVO') NOT NULL,
`anno_competenza` year(4) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ripartizioni_spese_voce_spesa_id_foreign` (`voce_spesa_id`),
KEY `ripartizioni_spese_unita_immobiliare_id_anno_competenza_index` (`unita_immobiliare_id`,`anno_competenza`),
KEY `rip_spese_gest_anno_tipo_idx` (`gestione_id`,`anno_competenza`,`tipo_calcolo`),
CONSTRAINT `ripartizioni_spese_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_condominiali` (`id`) ON DELETE CASCADE,
CONSTRAINT `ripartizioni_spese_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE,
CONSTRAINT `ripartizioni_spese_voce_spesa_id_foreign` FOREIGN KEY (`voce_spesa_id`) REFERENCES `voci_spesa_millesimali` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `role_has_permissions`
--
DROP TABLE IF EXISTS `role_has_permissions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `role_has_permissions` (
`permission_id` bigint(20) unsigned NOT NULL,
`role_id` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`permission_id`,`role_id`),
KEY `role_has_permissions_role_id_foreign` (`role_id`),
CONSTRAINT `role_has_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE,
CONSTRAINT `role_has_permissions_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `roles`
--
DROP TABLE IF EXISTS `roles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `roles` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`guard_name` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `roles_name_guard_name_unique` (`name`,`guard_name`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rubrica_contatti_canali`
--
DROP TABLE IF EXISTS `rubrica_contatti_canali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rubrica_contatti_canali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`rubrica_id` bigint(20) unsigned NOT NULL,
`tipo` enum('email','pec','telefono','cellulare','fax','whatsapp','telegram','altro') NOT NULL DEFAULT 'email',
`etichetta` varchar(255) DEFAULT NULL,
`valore` varchar(255) NOT NULL,
`is_principale` tinyint(1) NOT NULL DEFAULT 0,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `rubrica_canale_unico` (`rubrica_id`,`tipo`,`valore`,`stabile_id`,`unita_immobiliare_id`),
KEY `rubrica_contatti_canali_rubrica_id_tipo_index` (`rubrica_id`,`tipo`),
KEY `rubrica_contatti_canali_stabile_id_index` (`stabile_id`),
KEY `rubrica_contatti_canali_unita_immobiliare_id_index` (`unita_immobiliare_id`),
KEY `rubrica_contatti_canali_is_principale_index` (`is_principale`),
CONSTRAINT `rubrica_contatti_canali_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE CASCADE,
CONSTRAINT `rubrica_contatti_canali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `rubrica_contatti_canali_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4299 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rubrica_ruoli`
--
DROP TABLE IF EXISTS `rubrica_ruoli`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rubrica_ruoli` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`rubrica_id` bigint(20) unsigned NOT NULL,
`ruolo_standard` enum('super_admin','amministratore','condomino','inquilino','fornitore','manutentore','banca','assicurazione','collaboratore','tester','ospite','altro') NOT NULL DEFAULT 'altro',
`ruolo_custom` varchar(255) DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`legacy_anno_dir` varchar(10) DEFAULT NULL,
`legacy_anno_o` int(11) DEFAULT NULL,
`is_preferito` tinyint(1) NOT NULL DEFAULT 0,
`is_attivo` tinyint(1) NOT NULL DEFAULT 1,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `rubrica_ruoli_rubrica_id_ruolo_standard_index` (`rubrica_id`,`ruolo_standard`),
KEY `rubrica_ruoli_stabile_id_index` (`stabile_id`),
KEY `rubrica_ruoli_unita_immobiliare_id_index` (`unita_immobiliare_id`),
KEY `rubrica_ruoli_is_attivo_index` (`is_attivo`),
KEY `rruoli_stab_unita_anno_idx` (`stabile_id`,`unita_immobiliare_id`,`legacy_anno_o`),
CONSTRAINT `rubrica_ruoli_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE CASCADE,
CONSTRAINT `rubrica_ruoli_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `rubrica_ruoli_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=2286 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `rubrica_universale`
--
DROP TABLE IF EXISTS `rubrica_universale`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `rubrica_universale` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned DEFAULT NULL,
`titolo_id` bigint(20) unsigned DEFAULT NULL,
`nome` varchar(255) DEFAULT NULL,
`cognome` varchar(255) DEFAULT NULL,
`ragione_sociale` varchar(255) DEFAULT NULL,
`codice_univoco` varchar(8) DEFAULT NULL,
`tipo_contatto` enum('persona_fisica','persona_giuridica') NOT NULL DEFAULT 'persona_fisica',
`codice_fiscale` varchar(16) DEFAULT NULL,
`partita_iva` varchar(11) DEFAULT NULL,
`sesso` varchar(1) DEFAULT NULL,
`data_nascita` date DEFAULT NULL,
`luogo_nascita` varchar(100) DEFAULT NULL,
`provincia_nascita` varchar(2) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`civico` varchar(10) DEFAULT NULL,
`cap` varchar(5) DEFAULT NULL,
`citta` varchar(100) DEFAULT NULL,
`provincia` varchar(2) DEFAULT NULL,
`nazione` varchar(50) NOT NULL DEFAULT 'Italia',
`telefono_ufficio` varchar(20) DEFAULT NULL,
`telefono_cellulare` varchar(20) DEFAULT NULL,
`prefisso_cellulare` varchar(8) DEFAULT '+39',
`telefono_cellulare_nazionale` varchar(24) DEFAULT NULL,
`telefono_casa` varchar(20) DEFAULT NULL,
`fax` varchar(20) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pec` varchar(255) DEFAULT NULL,
`sito_web` varchar(255) DEFAULT NULL,
`google_person_resource_name` varchar(255) DEFAULT NULL,
`note` text DEFAULT NULL,
`note_segreteria` text DEFAULT NULL,
`categoria` enum('banca','fornitore','assicurazione','cliente','condomino','altro') NOT NULL DEFAULT 'altro',
`tipo_utenza_call` varchar(50) DEFAULT NULL,
`riferimento_stabile` varchar(255) DEFAULT NULL,
`riferimento_unita` varchar(255) DEFAULT NULL,
`stato` enum('attivo','sospeso','inattivo') NOT NULL DEFAULT 'attivo',
`data_inserimento` date DEFAULT NULL,
`data_ultima_modifica` date DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `rubrica_universale_codice_univoco_unique` (`codice_univoco`),
KEY `rubrica_universale_tipo_contatto_index` (`tipo_contatto`),
KEY `rubrica_universale_categoria_index` (`categoria`),
KEY `rubrica_universale_stato_index` (`stato`),
KEY `rubrica_universale_codice_fiscale_index` (`codice_fiscale`),
KEY `rubrica_universale_partita_iva_index` (`partita_iva`),
KEY `rubrica_universale_email_index` (`email`),
KEY `rubrica_universale_creato_da_foreign` (`creato_da`),
KEY `rubrica_universale_modificato_da_foreign` (`modificato_da`),
KEY `rubrica_universale_amministratore_id_ragione_sociale_index` (`amministratore_id`,`ragione_sociale`),
KEY `rubrica_universale_amministratore_id_partita_iva_index` (`amministratore_id`,`partita_iva`),
KEY `rubrica_universale_amministratore_id_codice_fiscale_index` (`amministratore_id`,`codice_fiscale`),
KEY `rubrica_universale_titolo_id_index` (`titolo_id`),
KEY `ru_google_person_resource_name_idx` (`google_person_resource_name`),
CONSTRAINT `rubrica_universale_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `rubrica_universale_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `rubrica_universale_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=1750 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_rubrica_universale_codice_univoco BEFORE INSERT ON rubrica_universale
FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('RUBRICA', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `scadenze`
--
DROP TABLE IF EXISTS `scadenze`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `scadenze` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`legacy_id` int(10) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`stabile_contratto_id` bigint(20) unsigned DEFAULT NULL,
`codice_stabile_legacy` varchar(20) DEFAULT NULL,
`descrizione_sintetica` varchar(255) DEFAULT NULL,
`data_scadenza` date DEFAULT NULL,
`ora_scadenza` time DEFAULT NULL,
`natura` varchar(20) DEFAULT NULL,
`natura_label` varchar(120) DEFAULT NULL,
`gestione_tipo` varchar(20) DEFAULT NULL,
`num_assemblea` int(10) unsigned DEFAULT NULL,
`numero_straordinaria` int(10) unsigned DEFAULT NULL,
`anno` varchar(20) DEFAULT NULL,
`rata` int(10) unsigned DEFAULT NULL,
`fatto` varchar(20) DEFAULT NULL,
`tipo_riga` varchar(60) DEFAULT NULL,
`rif_f24` bigint(20) unsigned DEFAULT NULL,
`importo_f24` decimal(12,2) DEFAULT NULL,
`richiede_pop_up` tinyint(1) NOT NULL DEFAULT 0,
`giorni_anticipo` int(10) unsigned DEFAULT NULL,
`popup_dal` date DEFAULT NULL,
`calendar_event_id` varchar(255) DEFAULT NULL,
`calendar_synced_at` timestamp NULL DEFAULT NULL,
`legacy_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`legacy_payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `scadenze_legacy_id_unique` (`legacy_id`),
KEY `scadenze_stabile_id_foreign` (`stabile_id`),
KEY `scadenze_codice_stabile_legacy_index` (`codice_stabile_legacy`),
KEY `scadenze_data_scadenza_index` (`data_scadenza`),
KEY `scadenze_natura_index` (`natura`),
KEY `scadenze_calendar_event_id_index` (`calendar_event_id`),
KEY `scadenze_stabile_contratto_id_foreign` (`stabile_contratto_id`),
CONSTRAINT `scadenze_stabile_contratto_id_foreign` FOREIGN KEY (`stabile_contratto_id`) REFERENCES `stabile_contratti` (`id`) ON DELETE SET NULL,
CONSTRAINT `scadenze_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=394 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `sessions`
--
DROP TABLE IF EXISTS `sessions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `sessions` (
`id` varchar(255) NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`ip_address` varchar(45) DEFAULT NULL,
`user_agent` text DEFAULT NULL,
`payload` longtext NOT NULL,
`last_activity` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `sessions_user_id_index` (`user_id`),
KEY `sessions_last_activity_index` (`last_activity`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `soggetti_riferimenti_bancari`
--
DROP TABLE IF EXISTS `soggetti_riferimenti_bancari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `soggetti_riferimenti_bancari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`soggetto_id` bigint(20) unsigned NOT NULL,
`legacy_cond_id` varchar(50) DEFAULT NULL,
`unita_id` bigint(20) unsigned DEFAULT NULL,
`ordinante_nome` varchar(255) DEFAULT NULL,
`ordinante_iban` varchar(34) DEFAULT NULL,
`banca_ordinante` varchar(255) DEFAULT NULL,
`bic_swift` varchar(11) DEFAULT NULL,
`cro` varchar(80) DEFAULT NULL,
`bank_reference_fingerprint` varchar(64) DEFAULT NULL,
`ultimo_movimento_banca_id` bigint(20) unsigned DEFAULT NULL,
`ultimo_movimento_data` date DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `srb_stabile_soggetto_idx` (`stabile_id`,`soggetto_id`),
KEY `srb_stabile_legacy_idx` (`stabile_id`,`legacy_cond_id`),
KEY `soggetti_riferimenti_bancari_stabile_id_index` (`stabile_id`),
KEY `soggetti_riferimenti_bancari_soggetto_id_index` (`soggetto_id`),
KEY `soggetti_riferimenti_bancari_legacy_cond_id_index` (`legacy_cond_id`),
KEY `soggetti_riferimenti_bancari_unita_id_index` (`unita_id`),
KEY `soggetti_riferimenti_bancari_ordinante_iban_index` (`ordinante_iban`),
KEY `soggetti_riferimenti_bancari_bic_swift_index` (`bic_swift`),
KEY `soggetti_riferimenti_bancari_bank_reference_fingerprint_index` (`bank_reference_fingerprint`),
KEY `soggetti_riferimenti_bancari_ultimo_movimento_banca_id_index` (`ultimo_movimento_banca_id`),
KEY `soggetti_riferimenti_bancari_ultimo_movimento_data_index` (`ultimo_movimento_data`),
KEY `soggetti_riferimenti_bancari_attivo_index` (`attivo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabile_amministratore_transfers`
--
DROP TABLE IF EXISTS `stabile_amministratore_transfers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabile_amministratore_transfers` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`from_amministratore_id` bigint(20) unsigned DEFAULT NULL,
`to_amministratore_id` bigint(20) unsigned NOT NULL,
`changed_by_user_id` bigint(20) unsigned DEFAULT NULL,
`changed_by_name` varchar(150) DEFAULT NULL,
`source` varchar(50) NOT NULL DEFAULT 'portal-superadmin',
`reason` text DEFAULT NULL,
`also_rubrica` tinyint(1) NOT NULL DEFAULT 1,
`ip_address` varchar(45) DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stabile_amministratore_transfers_from_amministratore_id_foreign` (`from_amministratore_id`),
KEY `stabile_amministratore_transfers_changed_by_user_id_foreign` (`changed_by_user_id`),
KEY `stabile_transfer_stabile_created_idx` (`stabile_id`,`created_at`),
KEY `stabile_transfer_dest_created_idx` (`to_amministratore_id`,`created_at`),
CONSTRAINT `stabile_amministratore_transfers_changed_by_user_id_foreign` FOREIGN KEY (`changed_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_amministratore_transfers_from_amministratore_id_foreign` FOREIGN KEY (`from_amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_amministratore_transfers_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_amministratore_transfers_to_amministratore_id_foreign` FOREIGN KEY (`to_amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabile_contratti`
--
DROP TABLE IF EXISTS `stabile_contratti`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabile_contratti` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`documento_principale_id` bigint(20) unsigned DEFAULT NULL,
`titolo` varchar(255) NOT NULL,
`tipo_contratto` varchar(60) NOT NULL,
`categoria_impianto` varchar(60) DEFAULT NULL,
`servizio_label` varchar(255) DEFAULT NULL,
`codice_contratto` varchar(80) DEFAULT NULL,
`riferimento_esterno` varchar(120) DEFAULT NULL,
`stato` varchar(30) NOT NULL DEFAULT 'attivo',
`data_stipula` date DEFAULT NULL,
`decorrenza_dal` date DEFAULT NULL,
`decorrenza_al` date DEFAULT NULL,
`frequenza_scadenze` varchar(30) DEFAULT NULL,
`giorno_scadenza` tinyint(3) unsigned DEFAULT NULL,
`giorni_preavviso` smallint(5) unsigned NOT NULL DEFAULT 30,
`rinnovo_automatico` tinyint(1) NOT NULL DEFAULT 0,
`importo_periodico` decimal(12,2) DEFAULT NULL,
`valuta` varchar(8) NOT NULL DEFAULT 'EUR',
`dati_contratto` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_contratto`)),
`codici_collegati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`codici_collegati`)),
`note` text DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stabile_contratti_stabile_id_foreign` (`stabile_id`),
KEY `stabile_contratti_fornitore_id_foreign` (`fornitore_id`),
KEY `stabile_contratti_documento_principale_id_foreign` (`documento_principale_id`),
KEY `stabile_contratti_created_by_foreign` (`created_by`),
KEY `stabile_contratti_updated_by_foreign` (`updated_by`),
KEY `stabile_contratti_tipo_contratto_index` (`tipo_contratto`),
KEY `stabile_contratti_categoria_impianto_index` (`categoria_impianto`),
KEY `stabile_contratti_codice_contratto_index` (`codice_contratto`),
KEY `stabile_contratti_stato_index` (`stato`),
KEY `stabile_contratti_decorrenza_dal_index` (`decorrenza_dal`),
KEY `stabile_contratti_decorrenza_al_index` (`decorrenza_al`),
CONSTRAINT `stabile_contratti_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_contratti_documento_principale_id_foreign` FOREIGN KEY (`documento_principale_id`) REFERENCES `documenti` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_contratti_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_contratti_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_contratti_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabile_servizi`
--
DROP TABLE IF EXISTS `stabile_servizi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabile_servizi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`tipo` varchar(50) NOT NULL,
`nome` varchar(255) DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`voce_spesa_id` bigint(20) unsigned DEFAULT NULL,
`documento_collegato_id` bigint(20) unsigned DEFAULT NULL,
`codice_utenza` varchar(255) DEFAULT NULL,
`codice_cliente` varchar(255) DEFAULT NULL,
`codice_contratto` varchar(255) DEFAULT NULL,
`contatore_matricola` varchar(255) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stabile_servizi_stabile_id_tipo_index` (`stabile_id`,`tipo`),
KEY `stabile_servizi_fornitore_id_index` (`fornitore_id`),
KEY `stabile_servizi_voce_spesa_id_index` (`voce_spesa_id`),
KEY `stabile_servizi_documento_collegato_id_index` (`documento_collegato_id`),
KEY `stabile_servizi_contatore_matricola_index` (`contatore_matricola`),
CONSTRAINT `stabile_servizi_documento_collegato_id_foreign` FOREIGN KEY (`documento_collegato_id`) REFERENCES `documenti_collegati` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizi_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizi_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_servizi_voce_spesa_id_foreign` FOREIGN KEY (`voce_spesa_id`) REFERENCES `voci_spesa` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabile_servizio_letture`
--
DROP TABLE IF EXISTS `stabile_servizio_letture`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabile_servizio_letture` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`stabile_servizio_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`fattura_elettronica_id` bigint(20) unsigned DEFAULT NULL,
`voce_spesa_id` bigint(20) unsigned DEFAULT NULL,
`periodo_dal` date DEFAULT NULL,
`periodo_al` date DEFAULT NULL,
`tipologia_lettura` varchar(255) DEFAULT NULL,
`canale_acquisizione` varchar(32) DEFAULT NULL,
`riferimento_acquisizione` varchar(191) DEFAULT NULL,
`workflow_stato` varchar(40) DEFAULT NULL,
`protocollo_categoria` varchar(40) DEFAULT NULL,
`protocollo_numero` varchar(50) DEFAULT NULL,
`richiesta_lettura_inviata_at` datetime DEFAULT NULL,
`prossima_lettura_scadenza_at` datetime DEFAULT NULL,
`deadline_lettura_at` datetime DEFAULT NULL,
`sollecito_inviato_at` datetime DEFAULT NULL,
`rilevatore_tipo` varchar(40) DEFAULT NULL,
`rilevatore_nome` varchar(255) DEFAULT NULL,
`archivio_documentale_path` varchar(500) DEFAULT NULL,
`archivio_documentale_sha256` varchar(64) DEFAULT NULL,
`lettura_inizio` decimal(12,3) DEFAULT NULL,
`lettura_precedente_valore` decimal(12,3) DEFAULT NULL,
`lettura_fine` decimal(12,3) DEFAULT NULL,
`lettura_foto_path` varchar(255) DEFAULT NULL,
`lettura_foto_original_name` varchar(255) DEFAULT NULL,
`lettura_foto_metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`lettura_foto_metadata`)),
`lettura_precedente_foto_path` varchar(255) DEFAULT NULL,
`lettura_ocr_valore` varchar(64) DEFAULT NULL,
`lettura_ocr_confidenza` decimal(5,2) DEFAULT NULL,
`consumo_valore` decimal(12,3) DEFAULT NULL,
`consumo_unita` varchar(16) NOT NULL DEFAULT '',
`importo_totale` decimal(12,2) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stabile_servizio_letture_stabile_id_stabile_servizio_id_index` (`stabile_id`,`stabile_servizio_id`),
KEY `stabile_servizio_letture_fornitore_id_index` (`fornitore_id`),
KEY `stabile_servizio_letture_fattura_elettronica_id_index` (`fattura_elettronica_id`),
KEY `stabile_servizio_letture_voce_spesa_id_index` (`voce_spesa_id`),
KEY `stabile_servizio_letture_periodo_dal_periodo_al_index` (`periodo_dal`,`periodo_al`),
KEY `stabile_servizio_letture_stabile_servizio_id_foreign` (`stabile_servizio_id`),
KEY `stabile_servizio_letture_created_by_foreign` (`created_by`),
KEY `ssletture_stabile_unita_idx` (`stabile_id`,`unita_immobiliare_id`),
KEY `ssletture_unita_fk` (`unita_immobiliare_id`),
KEY `ssletture_canale_idx` (`canale_acquisizione`),
CONSTRAINT `ssletture_unita_fk` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizio_letture_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizio_letture_fattura_elettronica_id_foreign` FOREIGN KEY (`fattura_elettronica_id`) REFERENCES `fatture_elettroniche` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizio_letture_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizio_letture_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_servizio_letture_stabile_servizio_id_foreign` FOREIGN KEY (`stabile_servizio_id`) REFERENCES `stabile_servizi` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_servizio_letture_voce_spesa_id_foreign` FOREIGN KEY (`voce_spesa_id`) REFERENCES `voci_spesa` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabile_servizio_tariffe`
--
DROP TABLE IF EXISTS `stabile_servizio_tariffe`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabile_servizio_tariffe` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`stabile_servizio_id` bigint(20) unsigned DEFAULT NULL,
`fattura_elettronica_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`data_fattura` date DEFAULT NULL,
`decorrenza_tariffe` date DEFAULT NULL,
`profilo_tariffario` varchar(255) DEFAULT NULL,
`delibera_ato` varchar(255) DEFAULT NULL,
`delibera_arera` varchar(255) DEFAULT NULL,
`codice_iva` varchar(10) DEFAULT NULL,
`aliquota_iva_percentuale` decimal(6,2) DEFAULT NULL,
`iva_descrizione` varchar(255) DEFAULT NULL,
`tariffe_scaglioni` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`tariffe_scaglioni`)),
`tariffe_componenti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`tariffe_componenti`)),
`payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stabile_servizio_tariffe_fattura_elettronica_id_unique` (`fattura_elettronica_id`),
KEY `stabile_servizio_tariffe_stabile_id_stabile_servizio_id_index` (`stabile_id`,`stabile_servizio_id`),
KEY `stabile_servizio_tariffe_fornitore_id_index` (`fornitore_id`),
KEY `stabile_servizio_tariffe_decorrenza_tariffe_index` (`decorrenza_tariffe`),
KEY `stabile_servizio_tariffe_stabile_servizio_id_foreign` (`stabile_servizio_id`),
CONSTRAINT `stabile_servizio_tariffe_fattura_elettronica_id_foreign` FOREIGN KEY (`fattura_elettronica_id`) REFERENCES `fatture_elettroniche` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_servizio_tariffe_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `stabile_servizio_tariffe_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabile_servizio_tariffe_stabile_servizio_id_foreign` FOREIGN KEY (`stabile_servizio_id`) REFERENCES `stabile_servizi` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stabili`
--
DROP TABLE IF EXISTS `stabili`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabili` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice_stabile` varchar(8) NOT NULL,
`cod_stabile` varchar(20) DEFAULT NULL,
`codice_univoco` varchar(8) DEFAULT NULL,
`amministratore_id` bigint(20) unsigned NOT NULL,
`rubrica_id` bigint(20) unsigned DEFAULT NULL,
`denominazione` varchar(255) NOT NULL,
`indirizzo` varchar(255) NOT NULL,
`cap` varchar(10) NOT NULL,
`citta` varchar(60) NOT NULL,
`provincia` varchar(2) NOT NULL,
`codice_comune_catasto` varchar(4) DEFAULT NULL COMMENT 'Codice comune catasto (es: H501 per Roma)',
`foglio_catasto` varchar(10) DEFAULT NULL COMMENT 'Foglio del catasto',
`particella_catasto` varchar(20) DEFAULT NULL COMMENT 'Particella catastale',
`codice_destinatario_sdi` varchar(7) DEFAULT NULL COMMENT 'Codice destinatario per fatturazione elettronica SDI',
`pec_condominio` varchar(255) DEFAULT NULL COMMENT 'PEC del condominio',
`configurazione_default_unita` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Configurazione default per nuove unità immobiliari' CHECK (json_valid(`configurazione_default_unita`)),
`modalita_rateizzazione` enum('mensile','bimestrale','trimestrale','quadrimestrale','semestrale','annuale') NOT NULL DEFAULT 'trimestrale' COMMENT 'Modalità di rateizzazione ordinaria',
`inizio_esercizio` date DEFAULT NULL COMMENT 'Data inizio esercizio (se diverso da 1 gennaio)',
`fine_esercizio` date DEFAULT NULL COMMENT 'Data fine esercizio (se diverso da 31 dicembre)',
`codice_fiscale` varchar(20) DEFAULT NULL,
`cod_fisc_amministratore` varchar(20) DEFAULT NULL,
`note` text DEFAULT NULL,
`iban_principale` varchar(255) DEFAULT NULL,
`banca_principale` varchar(255) DEFAULT NULL,
`filiale` varchar(255) DEFAULT NULL,
`iban_secondario` varchar(255) DEFAULT NULL,
`banca_secondaria` varchar(255) DEFAULT NULL,
`filiale_secondaria` varchar(255) DEFAULT NULL,
`amministratore_nome` varchar(255) DEFAULT NULL,
`amministratore_email` varchar(255) DEFAULT NULL,
`data_nomina` date DEFAULT NULL,
`scadenza_mandato` date DEFAULT NULL,
`foglio` varchar(255) DEFAULT NULL,
`mappale` varchar(255) DEFAULT NULL,
`subalterno` varchar(255) DEFAULT NULL,
`categoria` varchar(255) DEFAULT NULL,
`rendita_catastale` decimal(10,2) DEFAULT NULL,
`superficie_catastale` decimal(10,2) DEFAULT NULL,
`palazzine_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`palazzine_data`)),
`locali_servizio` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`locali_servizio`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`struttura_fisica_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`struttura_fisica_json`)),
`numero_palazzine` int(11) NOT NULL DEFAULT 1,
`numero_scale_per_palazzina` int(11) NOT NULL DEFAULT 1,
`numero_piani` int(11) NOT NULL DEFAULT 3,
`piano_seminterrato` tinyint(1) NOT NULL DEFAULT 0,
`piano_sottotetto` tinyint(1) NOT NULL DEFAULT 0,
`presenza_ascensore` tinyint(1) NOT NULL DEFAULT 0,
`cortile_giardino` tinyint(1) NOT NULL DEFAULT 0,
`superficie_cortile` decimal(8,2) DEFAULT NULL,
`riscaldamento_centralizzato` tinyint(1) NOT NULL DEFAULT 0,
`acqua_centralizzata` tinyint(1) NOT NULL DEFAULT 0,
`gas_centralizzato` tinyint(1) NOT NULL DEFAULT 0,
`servizio_portineria` tinyint(1) NOT NULL DEFAULT 0,
`orari_portineria` varchar(255) DEFAULT NULL,
`videocitofono` tinyint(1) NOT NULL DEFAULT 0,
`antenna_tv_centralizzata` tinyint(1) NOT NULL DEFAULT 0,
`internet_condominiale` tinyint(1) NOT NULL DEFAULT 0,
`fondo_riserva_minimo` decimal(12,2) NOT NULL DEFAULT 0.00,
`importo_rata_standard` decimal(8,2) NOT NULL DEFAULT 0.00,
`frequenza_rate` enum('mensile','bimestrale','trimestrale','quadrimestrale','semestrale','annuale') NOT NULL DEFAULT 'trimestrale',
`giorno_scadenza_rate` int(11) NOT NULL DEFAULT 15,
`iban_condominio` varchar(255) DEFAULT NULL,
`millesimi_generali_calcolati` tinyint(1) NOT NULL DEFAULT 0,
`millesimi_riscaldamento_separati` tinyint(1) NOT NULL DEFAULT 0,
`millesimi_acqua_separati` tinyint(1) NOT NULL DEFAULT 0,
`millesimi_ascensore_separati` tinyint(1) NOT NULL DEFAULT 0,
`configurazione_avanzata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione_avanzata`)),
`ultima_generazione_unita` timestamp NULL DEFAULT NULL,
`rate_ordinarie_mesi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`rate_ordinarie_mesi`)),
`rate_riscaldamento_mesi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`rate_riscaldamento_mesi`)),
`descrizione_rate` text DEFAULT NULL,
`stato` varchar(50) NOT NULL DEFAULT 'attivo',
`old_id` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`registro_data_nomina` date DEFAULT NULL COMMENT 'Data nomina amministratore attuale',
`registro_scadenza` date DEFAULT NULL COMMENT 'Data scadenza mandato amministratore',
`registro_delibera` varchar(255) DEFAULT NULL COMMENT 'Numero delibera di nomina',
`registro_note` text DEFAULT NULL COMMENT 'Note aggiuntive sul mandato',
PRIMARY KEY (`id`),
UNIQUE KEY `stabili_admin_codice_unique` (`amministratore_id`,`codice_stabile`),
UNIQUE KEY `stabili_codice_fiscale_unique` (`codice_fiscale`),
UNIQUE KEY `stabili_old_id_unique` (`old_id`),
UNIQUE KEY `stabili_codice_univoco_unique` (`codice_univoco`),
KEY `stabili_amministratore_id_foreign` (`amministratore_id`),
KEY `stabili_rubrica_id_index` (`rubrica_id`),
KEY `stabili_cod_stabile_index` (`cod_stabile`),
CONSTRAINT `stabili_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE CASCADE,
CONSTRAINT `stabili_rubrica_id_foreign` FOREIGN KEY (`rubrica_id`) REFERENCES `rubrica_universale` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_stabili_codice_univoco BEFORE INSERT ON stabili
FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('STABILI', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `stabili_gescon`
--
DROP TABLE IF EXISTS `stabili_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stabili_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL,
`cod_stabile_old` int(11) DEFAULT NULL,
`denominazione` varchar(255) NOT NULL,
`indirizzo` varchar(255) NOT NULL,
`cap` varchar(5) NOT NULL,
`citta` varchar(255) NOT NULL,
`provincia` varchar(2) NOT NULL,
`codice_fiscale` varchar(16) DEFAULT NULL,
`codice_directory` varchar(4) NOT NULL,
`scale` int(11) NOT NULL DEFAULT 0,
`interni` int(11) NOT NULL DEFAULT 0,
`iban_principale` varchar(255) DEFAULT NULL,
`coordinate_bancarie` varchar(255) DEFAULT NULL,
`intestazione_stampe` text DEFAULT NULL,
`flags_gestione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`flags_gestione`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`data_ultima_modifica` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stabili_gescon_amministratore_id_attivo_index` (`amministratore_id`,`attivo`),
KEY `stabili_gescon_codice_directory_index` (`codice_directory`),
KEY `stabili_gescon_provincia_citta_index` (`provincia`,`citta`),
CONSTRAINT `stabili_gescon_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate`
--
DROP TABLE IF EXISTS `stampe_rate`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`tipo_documento` enum('rata_singola','rata_multipla','avviso_scadenza','riepilogo') NOT NULL,
`status` enum('bozza','generata','inviata','archiviata') NOT NULL DEFAULT 'bozza',
`template_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`rate_selezionate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`rate_selezionate`)),
`proprietari_selezionati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`proprietari_selezionati`)),
`parametri_stampa` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`parametri_stampa`)),
`filtri_applicati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`filtri_applicati`)),
`formato_output` varchar(20) NOT NULL DEFAULT 'pdf',
`includi_logo` tinyint(1) NOT NULL DEFAULT 1,
`includi_header` tinyint(1) NOT NULL DEFAULT 1,
`includi_footer` tinyint(1) NOT NULL DEFAULT 1,
`file_generati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`file_generati`)),
`file_count` int(11) NOT NULL DEFAULT 0,
`file_size_total` bigint(20) NOT NULL DEFAULT 0,
`zip_path` varchar(255) DEFAULT NULL,
`email_abilitata` tinyint(1) NOT NULL DEFAULT 0,
`email_subject` varchar(255) DEFAULT NULL,
`email_body` text DEFAULT NULL,
`email_destinatari` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`email_destinatari`)),
`email_inviata_at` timestamp NULL DEFAULT NULL,
`email_inviate_count` int(11) NOT NULL DEFAULT 0,
`email_aperte_count` int(11) NOT NULL DEFAULT 0,
`download_count` int(11) NOT NULL DEFAULT 0,
`ultimo_download_at` timestamp NULL DEFAULT NULL,
`ultimo_accesso_at` timestamp NULL DEFAULT NULL,
`statistiche` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`statistiche`)),
`is_scheduled` tinyint(1) NOT NULL DEFAULT 0,
`scheduled_at` timestamp NULL DEFAULT NULL,
`auto_send_email` tinyint(1) NOT NULL DEFAULT 0,
`auto_delete_after_days` tinyint(1) NOT NULL DEFAULT 0,
`delete_after_days` int(11) DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`deleted_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stampe_rate_status_created_at_index` (`status`,`created_at`),
KEY `stampe_rate_stabile_id_created_at_index` (`stabile_id`,`created_at`),
KEY `stampe_rate_template_id_index` (`template_id`),
KEY `stampe_rate_is_scheduled_scheduled_at_index` (`is_scheduled`,`scheduled_at`),
KEY `stampe_rate_created_by_index` (`created_by`),
KEY `stampe_rate_updated_by_foreign` (`updated_by`),
KEY `stampe_rate_deleted_by_foreign` (`deleted_by`),
CONSTRAINT `stampe_rate_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_rate_deleted_by_foreign` FOREIGN KEY (`deleted_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_rate_template_id_foreign` FOREIGN KEY (`template_id`) REFERENCES `stampe_templates` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_rate_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate_config`
--
DROP TABLE IF EXISTS `stampe_rate_config`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate_config` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`chiave` varchar(100) NOT NULL,
`valore` text NOT NULL,
`tipo` varchar(20) NOT NULL DEFAULT 'string',
`descrizione` text DEFAULT NULL,
`is_public` tinyint(1) NOT NULL DEFAULT 0,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stampe_rate_config_chiave_unique` (`chiave`),
KEY `stampe_rate_config_updated_by_foreign` (`updated_by`),
CONSTRAINT `stampe_rate_config_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate_email_attachments`
--
DROP TABLE IF EXISTS `stampe_rate_email_attachments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate_email_attachments` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`email_log_id` bigint(20) unsigned NOT NULL,
`filename` varchar(255) NOT NULL,
`original_name` varchar(255) NOT NULL,
`mime_type` varchar(255) NOT NULL,
`file_size` bigint(20) NOT NULL,
`file_path` varchar(255) NOT NULL,
`file_hash` varchar(64) DEFAULT NULL,
`is_inline` tinyint(1) NOT NULL DEFAULT 0,
`content_id` varchar(255) DEFAULT NULL,
`download_count` int(11) NOT NULL DEFAULT 0,
`last_downloaded_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stampe_rate_email_attachments_email_log_id_index` (`email_log_id`),
KEY `stampe_rate_email_attachments_file_hash_index` (`file_hash`),
CONSTRAINT `stampe_rate_email_attachments_email_log_id_foreign` FOREIGN KEY (`email_log_id`) REFERENCES `stampe_rate_email_log` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate_email_log`
--
DROP TABLE IF EXISTS `stampe_rate_email_log`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate_email_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stampa_id` bigint(20) unsigned NOT NULL,
`tracking_id` varchar(36) NOT NULL,
`unsubscribe_token` varchar(64) DEFAULT NULL,
`recipient_email` varchar(255) NOT NULL,
`recipient_name` varchar(255) DEFAULT NULL,
`recipient_type` varchar(20) NOT NULL DEFAULT 'proprietario',
`proprietario_id` bigint(20) unsigned DEFAULT NULL,
`subject` varchar(255) NOT NULL,
`body_html` text DEFAULT NULL,
`body_text` text DEFAULT NULL,
`attachments` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`attachments`)),
`attachments_count` int(11) NOT NULL DEFAULT 0,
`attachments_size` bigint(20) NOT NULL DEFAULT 0,
`status` enum('pending','sent','failed','bounced','spam') NOT NULL DEFAULT 'pending',
`sent_at` timestamp NULL DEFAULT NULL,
`delivered_at` timestamp NULL DEFAULT NULL,
`failed_at` timestamp NULL DEFAULT NULL,
`error_message` text DEFAULT NULL,
`external_id` varchar(255) DEFAULT NULL,
`opened_at` timestamp NULL DEFAULT NULL,
`opened_count` int(11) NOT NULL DEFAULT 0,
`opened_ip` varchar(45) DEFAULT NULL,
`opened_user_agent` varchar(255) DEFAULT NULL,
`opened_location` varchar(255) DEFAULT NULL,
`clicked_at` timestamp NULL DEFAULT NULL,
`clicked_count` int(11) NOT NULL DEFAULT 0,
`clicked_links` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`clicked_links`)),
`unsubscribed_at` timestamp NULL DEFAULT NULL,
`unsubscribe_reason` varchar(255) DEFAULT NULL,
`sent_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stampe_rate_email_log_tracking_id_unique` (`tracking_id`),
UNIQUE KEY `stampe_rate_email_log_unsubscribe_token_unique` (`unsubscribe_token`),
KEY `stampe_rate_email_log_stampa_id_sent_at_index` (`stampa_id`,`sent_at`),
KEY `stampe_rate_email_log_recipient_email_sent_at_index` (`recipient_email`,`sent_at`),
KEY `stampe_rate_email_log_status_sent_at_index` (`status`,`sent_at`),
KEY `stampe_rate_email_log_tracking_id_index` (`tracking_id`),
KEY `stampe_rate_email_log_sent_at_index` (`sent_at`),
KEY `stampe_rate_email_log_sent_by_foreign` (`sent_by`),
CONSTRAINT `stampe_rate_email_log_sent_by_foreign` FOREIGN KEY (`sent_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_rate_email_log_stampa_id_foreign` FOREIGN KEY (`stampa_id`) REFERENCES `stampe_rate` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate_email_tracking`
--
DROP TABLE IF EXISTS `stampe_rate_email_tracking`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate_email_tracking` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`email_log_id` bigint(20) unsigned NOT NULL,
`action` varchar(30) NOT NULL,
`link_url` varchar(255) DEFAULT NULL,
`data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`data`)),
`tracked_at` timestamp NOT NULL,
`ip_address` varchar(45) DEFAULT NULL,
`user_agent` varchar(255) DEFAULT NULL,
`referer` varchar(255) DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
PRIMARY KEY (`id`),
KEY `stampe_rate_email_tracking_email_log_id_tracked_at_index` (`email_log_id`,`tracked_at`),
KEY `stampe_rate_email_tracking_action_tracked_at_index` (`action`,`tracked_at`),
CONSTRAINT `stampe_rate_email_tracking_email_log_id_foreign` FOREIGN KEY (`email_log_id`) REFERENCES `stampe_rate_email_log` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_rate_history`
--
DROP TABLE IF EXISTS `stampe_rate_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_rate_history` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stampa_id` bigint(20) unsigned DEFAULT NULL,
`action` varchar(50) NOT NULL,
`dettagli` text DEFAULT NULL,
`dati_precedenti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_precedenti`)),
`dati_nuovi` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`dati_nuovi`)),
`ip_address` varchar(45) DEFAULT NULL,
`user_agent` varchar(255) DEFAULT NULL,
`session_id` varchar(255) DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NOT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stampe_rate_history_stampa_id_created_at_index` (`stampa_id`,`created_at`),
KEY `stampe_rate_history_action_created_at_index` (`action`,`created_at`),
KEY `stampe_rate_history_created_by_created_at_index` (`created_by`,`created_at`),
KEY `stampe_rate_history_created_at_index` (`created_at`),
CONSTRAINT `stampe_rate_history_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_rate_history_stampa_id_foreign` FOREIGN KEY (`stampa_id`) REFERENCES `stampe_rate` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stampe_templates`
--
DROP TABLE IF EXISTS `stampe_templates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stampe_templates` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`categoria` enum('rate_standard','rate_scadute','rate_personalizzate','avvisi','riepilogativo') NOT NULL,
`module` varchar(50) NOT NULL DEFAULT 'stampe_rate',
`html_content` longtext NOT NULL,
`css_content` longtext DEFAULT NULL,
`variabili` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`variabili`)),
`configurazione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione`)),
`tags` varchar(255) DEFAULT NULL,
`status` enum('bozza','attivo','deprecato') NOT NULL DEFAULT 'bozza',
`versione` varchar(20) NOT NULL DEFAULT '1.0.0',
`file_path` varchar(255) DEFAULT NULL,
`utilizzi_count` int(11) NOT NULL DEFAULT 0,
`ultimo_utilizzo` timestamp NULL DEFAULT NULL,
`rating_medio` decimal(3,2) NOT NULL DEFAULT 0.00,
`rating_count` int(11) NOT NULL DEFAULT 0,
`pubblicato_at` timestamp NULL DEFAULT NULL,
`is_pubblico` tinyint(1) NOT NULL DEFAULT 0,
`is_marketplace` tinyint(1) NOT NULL DEFAULT 0,
`prezzo` decimal(8,2) DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`deleted_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stampe_templates_categoria_status_index` (`categoria`,`status`),
KEY `stampe_templates_module_status_index` (`module`,`status`),
KEY `stampe_templates_is_pubblico_status_index` (`is_pubblico`,`status`),
KEY `stampe_templates_utilizzi_count_index` (`utilizzi_count`),
KEY `stampe_templates_created_by_foreign` (`created_by`),
KEY `stampe_templates_updated_by_foreign` (`updated_by`),
KEY `stampe_templates_deleted_by_foreign` (`deleted_by`),
FULLTEXT KEY `stampe_templates_nome_descrizione_tags_fulltext` (`nome`,`descrizione`,`tags`),
CONSTRAINT `stampe_templates_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_templates_deleted_by_foreign` FOREIGN KEY (`deleted_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `stampe_templates_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_fatture_ade`
--
DROP TABLE IF EXISTS `stg_fatture_ade`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_fatture_ade` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`cartella_legacy` varchar(10) DEFAULT NULL,
`tipo_documento` varchar(50) DEFAULT NULL,
`numero_documento` varchar(100) DEFAULT NULL,
`data_emissione` date DEFAULT NULL,
`identificativo_fornitore` varchar(32) DEFAULT NULL,
`denominazione_fornitore` varchar(255) DEFAULT NULL,
`imponibile` decimal(15,4) NOT NULL DEFAULT 0.0000,
`imposta` decimal(15,4) NOT NULL DEFAULT 0.0000,
`sdi_file` varchar(32) NOT NULL,
`stato_visualizzazione` varchar(50) DEFAULT NULL,
`source_file` varchar(255) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_stg_fatture_ade_target_sdi` (`amministratore_id`,`stabile_id`,`sdi_file`),
KEY `stg_fatture_ade_stabile_id_foreign` (`stabile_id`),
KEY `stg_fatture_ade_amministratore_id_data_emissione_index` (`amministratore_id`,`data_emissione`),
KEY `stg_fatture_ade_amministratore_id_identificativo_fornitore_index` (`amministratore_id`,`identificativo_fornitore`),
KEY `stg_fatture_ade_amministratore_id_cartella_legacy_index` (`amministratore_id`,`cartella_legacy`),
CONSTRAINT `stg_fatture_ade_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE CASCADE,
CONSTRAINT `stg_fatture_ade_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=273 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_fatture_fe`
--
DROP TABLE IF EXISTS `stg_fatture_fe`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_fatture_fe` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`tabella` varchar(50) NOT NULL DEFAULT 'FE_caricate_aut',
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`anno` year(4) NOT NULL,
`numero` varchar(50) DEFAULT NULL,
`data` date DEFAULT NULL,
`fornitore_cod` varchar(50) DEFAULT NULL,
`fornitore_nome` varchar(200) DEFAULT NULL,
`imponibile` decimal(15,4) NOT NULL DEFAULT 0.0000,
`iva` decimal(15,4) NOT NULL DEFAULT 0.0000,
`totale` decimal(15,4) NOT NULL DEFAULT 0.0000,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stg_fatture_fe_gestione_id_foreign` (`gestione_id`),
KEY `stg_fatture_fe_tenant_id_anno_index` (`tenant_id`,`anno`),
CONSTRAINT `stg_fatture_fe_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_fatture_gescon`
--
DROP TABLE IF EXISTS `stg_fatture_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_fatture_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`legacy_id_fatture` bigint(20) unsigned DEFAULT NULL,
`legacy_id_stabile` bigint(20) unsigned DEFAULT NULL,
`riferimento` bigint(20) unsigned DEFAULT NULL,
`cod_fornitore` bigint(20) unsigned DEFAULT NULL,
`data_fattura` date DEFAULT NULL,
`data_pagamento` date DEFAULT NULL,
`numero_fattura` varchar(50) DEFAULT NULL,
`descrizione_sintetica` varchar(255) DEFAULT NULL,
`descrizione_corpo` varchar(500) DEFAULT NULL,
`imponibile` decimal(15,4) NOT NULL DEFAULT 0.0000,
`importo_iva` decimal(15,4) NOT NULL DEFAULT 0.0000,
`totale_fattura` decimal(15,4) NOT NULL DEFAULT 0.0000,
`importo_netto` decimal(15,4) NOT NULL DEFAULT 0.0000,
`onorario` decimal(15,4) NOT NULL DEFAULT 0.0000,
`rimborsi` decimal(15,4) NOT NULL DEFAULT 0.0000,
`aliq_cassa` decimal(10,4) DEFAULT NULL,
`importo_cassa` decimal(15,4) NOT NULL DEFAULT 0.0000,
`aliq_rda` decimal(10,4) DEFAULT NULL,
`importo_rda` decimal(15,4) NOT NULL DEFAULT 0.0000,
`aliq_inps` decimal(10,4) DEFAULT NULL,
`importo_inps` decimal(15,4) NOT NULL DEFAULT 0.0000,
`aliq_iva` decimal(10,4) DEFAULT NULL,
`legacy_id_anno` bigint(20) unsigned DEFAULT NULL,
`reg_gestione` varchar(30) DEFAULT NULL,
`reg_nstra` smallint(5) unsigned DEFAULT NULL,
`note` varchar(255) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_stg_fatture_gescon_tenant_legacy` (`tenant_id`,`legacy_id_fatture`),
KEY `stg_fatture_gescon_tenant_id_legacy_id_fatture_index` (`tenant_id`,`legacy_id_fatture`),
KEY `stg_fatture_gescon_legacy_id_stabile_index` (`legacy_id_stabile`),
KEY `stg_fatture_gescon_cod_fornitore_index` (`cod_fornitore`),
KEY `stg_fatture_gescon_data_fattura_index` (`data_fattura`),
KEY `stg_fatture_gescon_legacy_id_anno_index` (`legacy_id_anno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_fornitori_gescon`
--
DROP TABLE IF EXISTS `stg_fornitori_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_fornitori_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`legacy_id_fornitore` bigint(20) unsigned DEFAULT NULL,
`cod_forn` bigint(20) unsigned DEFAULT NULL,
`denominazione` varchar(255) DEFAULT NULL,
`cognome` varchar(100) DEFAULT NULL,
`nome` varchar(100) DEFAULT NULL,
`codice_fiscale` varchar(32) DEFAULT NULL,
`partita_iva` varchar(32) DEFAULT NULL,
`natura` varchar(8) DEFAULT NULL,
`sesso` varchar(4) DEFAULT NULL,
`indirizzo` varchar(255) DEFAULT NULL,
`cap` varchar(10) DEFAULT NULL,
`citta` varchar(100) DEFAULT NULL,
`provincia` varchar(10) DEFAULT NULL,
`data_nascita` date DEFAULT NULL,
`luogo_nascita` varchar(100) DEFAULT NULL,
`provincia_nascita` varchar(10) DEFAULT NULL,
`telefono_1` varchar(50) DEFAULT NULL,
`telefono_2` varchar(50) DEFAULT NULL,
`telefono_3` varchar(50) DEFAULT NULL,
`telefono_4` varchar(50) DEFAULT NULL,
`fax` varchar(50) DEFAULT NULL,
`cellulare` varchar(50) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`pec` varchar(255) DEFAULT NULL,
`iban` varchar(64) DEFAULT NULL,
`regime_fiscale` varchar(10) DEFAULT NULL,
`tipo_cassa` varchar(10) DEFAULT NULL,
`aliq_iva_abituale` smallint(5) unsigned DEFAULT NULL,
`note` text DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_stg_fornitori_gescon_tenant_legacy` (`tenant_id`,`legacy_id_fornitore`),
KEY `stg_fornitori_gescon_tenant_id_cod_forn_index` (`tenant_id`,`cod_forn`),
KEY `stg_fornitori_gescon_tenant_id_legacy_id_fornitore_index` (`tenant_id`,`legacy_id_fornitore`),
KEY `stg_fornitori_gescon_codice_fiscale_index` (`codice_fiscale`),
KEY `stg_fornitori_gescon_partita_iva_index` (`partita_iva`)
) ENGINE=InnoDB AUTO_INCREMENT=5405 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_incassi_da_estratto`
--
DROP TABLE IF EXISTS `stg_incassi_da_estratto`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_incassi_da_estratto` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`tabella` varchar(50) NOT NULL DEFAULT 'Inc_da_ec',
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`anno` year(4) NOT NULL,
`cod_cassa` varchar(10) DEFAULT NULL,
`riferimento_banca` varchar(100) DEFAULT NULL,
`data_banca` date DEFAULT NULL,
`importo` decimal(15,4) NOT NULL DEFAULT 0.0000,
`note` varchar(500) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stg_incassi_da_estratto_gestione_id_foreign` (`gestione_id`),
KEY `stg_incassi_da_estratto_tenant_id_anno_index` (`tenant_id`,`anno`),
CONSTRAINT `stg_incassi_da_estratto_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_operazioni_gescon`
--
DROP TABLE IF EXISTS `stg_operazioni_gescon`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_operazioni_gescon` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL COMMENT 'Path MDB o codice archivio',
`tabella` varchar(50) NOT NULL DEFAULT 'operazioni',
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`anno` year(4) NOT NULL,
`gestione_tipo` enum('O','R','S') NOT NULL,
`n_stra` varchar(20) DEFAULT NULL,
`compet` varchar(1) DEFAULT NULL COMMENT 'C=Competenza corrente, P=Precedente (apertura)',
`natura2` varchar(10) DEFAULT NULL COMMENT 'Codice natura movimento per partita doppia',
`conto_dare` varchar(50) DEFAULT NULL,
`conto_avere` varchar(50) DEFAULT NULL,
`protocollo` varchar(50) DEFAULT NULL COMMENT 'Numero/chiave documento interno',
`data_registrazione` date DEFAULT NULL,
`data_competenza` date DEFAULT NULL,
`importo` decimal(15,4) NOT NULL DEFAULT 0.0000,
`valuta` varchar(3) NOT NULL DEFAULT 'EUR',
`fornitore_cod` varchar(50) DEFAULT NULL,
`fornitore_nome` varchar(200) DEFAULT NULL,
`descrizione` varchar(500) DEFAULT NULL,
`cod_cassa` varchar(10) DEFAULT NULL,
`n_riferimento` varchar(30) DEFAULT NULL,
`numero_fattura` varchar(50) DEFAULT NULL,
`data_fattura` date DEFAULT NULL,
`gestione_raw` varchar(10) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stg_operazioni_gescon_gestione_id_foreign` (`gestione_id`),
KEY `stg_operazioni_gescon_tenant_id_anno_gestione_tipo_index` (`tenant_id`,`anno`,`gestione_tipo`),
KEY `stg_operazioni_gescon_tenant_id_gestione_id_index` (`tenant_id`,`gestione_id`),
KEY `stg_operazioni_gescon_tenant_id_compet_index` (`tenant_id`,`compet`),
KEY `stg_operazioni_gescon_tenant_id_natura2_index` (`tenant_id`,`natura2`),
CONSTRAINT `stg_operazioni_gescon_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_rate_emesse`
--
DROP TABLE IF EXISTS `stg_rate_emesse`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_rate_emesse` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`tabella` varchar(50) NOT NULL DEFAULT 'EMESS_*',
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`anno` year(4) NOT NULL,
`cod_cond` varchar(20) DEFAULT NULL,
`unita` varchar(50) DEFAULT NULL,
`o_r_s` varchar(1) DEFAULT NULL,
`n_mese` varchar(5) DEFAULT NULL,
`importo` decimal(15,4) NOT NULL DEFAULT 0.0000,
`data_emissione` date DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stg_rate_emesse_gestione_id_foreign` (`gestione_id`),
KEY `stg_rate_emesse_tenant_id_anno_o_r_s_index` (`tenant_id`,`anno`,`o_r_s`),
CONSTRAINT `stg_rate_emesse_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stg_ritenute_rda`
--
DROP TABLE IF EXISTS `stg_ritenute_rda`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `stg_ritenute_rda` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(50) NOT NULL,
`sorgente_archivio` varchar(255) NOT NULL,
`tabella` varchar(50) NOT NULL DEFAULT 'Nettovers_RDA',
`gestione_id` bigint(20) unsigned DEFAULT NULL,
`anno` year(4) NOT NULL,
`rif_rda` varchar(50) DEFAULT NULL COMMENT 'Riferimento RDA Gescon',
`imponibile` decimal(15,4) NOT NULL DEFAULT 0.0000,
`aliquota` decimal(6,3) NOT NULL DEFAULT 0.000,
`ritenuta` decimal(15,4) NOT NULL DEFAULT 0.0000,
`data_sorgente` date DEFAULT NULL COMMENT 'Data in cui sorge il debito RA',
`data_versamento` date DEFAULT NULL COMMENT 'Data versamento RA',
`fornitore_cod` varchar(50) DEFAULT NULL,
`fornitore_nome` varchar(200) DEFAULT NULL,
`raw` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`raw`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `stg_ritenute_rda_gestione_id_foreign` (`gestione_id`),
KEY `stg_ritenute_rda_tenant_id_anno_index` (`tenant_id`,`anno`),
KEY `stg_ritenute_rda_tenant_id_rif_rda_index` (`tenant_id`,`rif_rda`),
CONSTRAINT `stg_ritenute_rda_gestione_id_foreign` FOREIGN KEY (`gestione_id`) REFERENCES `gestioni_contabili` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `struttura_fisica_dettaglio`
--
DROP TABLE IF EXISTS `struttura_fisica_dettaglio`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `struttura_fisica_dettaglio` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`palazzina` varchar(10) NOT NULL,
`scala` varchar(10) DEFAULT NULL,
`piano` int(11) NOT NULL,
`numero_interni` int(11) NOT NULL DEFAULT 1,
`presenza_ascensore` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_stabile_struttura` (`stabile_id`,`palazzina`,`scala`,`piano`),
CONSTRAINT `struttura_fisica_dettaglio_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `subentri_unita`
--
DROP TABLE IF EXISTS `subentri_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `subentri_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`soggetto_precedente_id` bigint(20) unsigned DEFAULT NULL,
`soggetto_nuovo_id` bigint(20) unsigned NOT NULL,
`data_subentro` date NOT NULL,
`tipo_subentro` enum('vendita','eredita','donazione','locazione','comodato') NOT NULL,
`quota_precedente` decimal(5,4) NOT NULL DEFAULT 1.0000,
`quota_nuova` decimal(5,4) NOT NULL DEFAULT 1.0000,
`numero_atto` varchar(100) DEFAULT NULL,
`data_atto` date DEFAULT NULL,
`notaio` varchar(200) DEFAULT NULL,
`prezzo_vendita` decimal(12,2) DEFAULT NULL,
`stato_subentro` enum('proposto','in_corso','completato','annullato') NOT NULL DEFAULT 'proposto',
`data_completamento` timestamp NULL DEFAULT NULL,
`ripartizioni_aggiornate` tinyint(1) NOT NULL DEFAULT 0,
`comunicazioni_inviate` tinyint(1) NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`allegati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`allegati`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `subentri_unita_soggetto_precedente_id_foreign` (`soggetto_precedente_id`),
KEY `subentri_unita_soggetto_nuovo_id_foreign` (`soggetto_nuovo_id`),
KEY `subentri_unita_created_by_foreign` (`created_by`),
KEY `idx_subentri_unita` (`unita_immobiliare_id`),
KEY `idx_subentri_data` (`data_subentro`),
KEY `idx_subentri_stato` (`stato_subentro`),
KEY `subentri_unita_tipo_subentro_index` (`tipo_subentro`),
CONSTRAINT `subentri_unita_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `subentri_unita_soggetto_nuovo_id_foreign` FOREIGN KEY (`soggetto_nuovo_id`) REFERENCES `anagrafiche` (`id`) ON DELETE CASCADE,
CONSTRAINT `subentri_unita_soggetto_precedente_id_foreign` FOREIGN KEY (`soggetto_precedente_id`) REFERENCES `anagrafiche` (`id`) ON DELETE SET NULL,
CONSTRAINT `subentri_unita_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `subscription_plans`
--
DROP TABLE IF EXISTS `subscription_plans`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `subscription_plans` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`slug` varchar(255) NOT NULL,
`price_monthly` decimal(10,2) NOT NULL DEFAULT 0.00,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`features` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`features`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `subscription_plans_slug_unique` (`slug`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `superfici_unita`
--
DROP TABLE IF EXISTS `superfici_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `superfici_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`tipo_superficie_id` bigint(20) unsigned NOT NULL,
`valore` decimal(10,2) NOT NULL,
`unita_misura` varchar(255) NOT NULL DEFAULT 'mq',
`validita_da` date DEFAULT NULL,
`validita_a` date DEFAULT NULL,
`note` text DEFAULT NULL,
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_unita_superficie_data` (`unita_immobiliare_id`,`tipo_superficie_id`,`validita_da`),
KEY `superfici_unita_tipo_superficie_id_foreign` (`tipo_superficie_id`),
KEY `superfici_unita_created_by_foreign` (`created_by`),
KEY `superfici_unita_unita_immobiliare_id_validita_da_index` (`unita_immobiliare_id`,`validita_da`),
CONSTRAINT `superfici_unita_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `superfici_unita_tipo_superficie_id_foreign` FOREIGN KEY (`tipo_superficie_id`) REFERENCES `tipi_superficie` (`id`) ON DELETE CASCADE,
CONSTRAINT `superfici_unita_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `support_bug_registries`
--
DROP TABLE IF EXISTS `support_bug_registries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `support_bug_registries` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`fingerprint` varchar(64) NOT NULL,
`bug_id` int(10) unsigned NOT NULL,
`status` varchar(20) NOT NULL DEFAULT 'open',
`title` varchar(255) DEFAULT NULL,
`first_seen` varchar(40) DEFAULT NULL,
`last_seen` varchar(40) DEFAULT NULL,
`resolved_at` varchar(40) DEFAULT NULL,
`resolution_note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `support_bug_registries_fingerprint_unique` (`fingerprint`),
UNIQUE KEY `support_bug_registries_bug_id_unique` (`bug_id`),
KEY `support_bug_registries_status_index` (`status`),
KEY `support_bug_registries_last_seen_index` (`last_seen`)
) ENGINE=InnoDB AUTO_INCREMENT=3052 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `support_update_entries`
--
DROP TABLE IF EXISTS `support_update_entries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `support_update_entries` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`release_key` varchar(255) NOT NULL,
`category` varchar(32) NOT NULL,
`audience` varchar(32) NOT NULL DEFAULT 'supporto',
`title` varchar(255) NOT NULL,
`summary` text NOT NULL,
`impact` text DEFAULT NULL,
`page_label` varchar(255) DEFAULT NULL,
`page_class` varchar(255) DEFAULT NULL,
`related_path` varchar(255) DEFAULT NULL,
`related_commit` varchar(40) DEFAULT NULL,
`is_visible` tinyint(1) NOT NULL DEFAULT 1,
`is_highlighted` tinyint(1) NOT NULL DEFAULT 0,
`recorded_at` varchar(40) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `support_update_entries_release_key_unique` (`release_key`),
KEY `support_update_entries_category_index` (`category`),
KEY `support_update_entries_audience_index` (`audience`),
KEY `support_update_entries_related_commit_index` (`related_commit`),
KEY `support_update_entries_is_visible_index` (`is_visible`),
KEY `support_update_entries_recorded_at_index` (`recorded_at`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `system_settings`
--
DROP TABLE IF EXISTS `system_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `system_settings` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`key` varchar(255) NOT NULL,
`value` longtext DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `system_settings_key_unique` (`key`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tabelle_millesimali`
--
DROP TABLE IF EXISTS `tabelle_millesimali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tabelle_millesimali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno_gestione` smallint(5) unsigned DEFAULT NULL,
`nome_tabella` varchar(255) NOT NULL,
`denominazione` varchar(255) DEFAULT NULL,
`codice_tabella` varchar(255) DEFAULT NULL,
`legacy_codice` varchar(120) DEFAULT NULL,
`ordine_visualizzazione` int(11) DEFAULT NULL,
`tipo_tabella` enum('proprieta','riscaldamento','ascensore','scale','pulizie','antenna_tv','portineria','cortile','custom','temporanea') NOT NULL DEFAULT 'custom',
`conto_pd` varchar(120) DEFAULT NULL,
`sottoconto_pd` varchar(120) DEFAULT NULL,
`tipo_calcolo` enum('millesimi','parti','fisso') NOT NULL DEFAULT 'millesimi',
`descrizione` text DEFAULT NULL,
`note` text DEFAULT NULL,
`creato_da` bigint(20) unsigned DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`ordinamento` int(11) NOT NULL DEFAULT 0,
`nord` int(11) DEFAULT NULL,
`stato_tabella` enum('attiva','sospesa','archiviata') NOT NULL DEFAULT 'attiva',
`temporanea` tinyint(1) NOT NULL DEFAULT 0,
`validita_da` date DEFAULT NULL,
`data_decorrenza` date DEFAULT NULL,
`validita_a` date DEFAULT NULL,
`totale_millesimi` decimal(10,4) NOT NULL DEFAULT 1000.0000,
`configurazione` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`configurazione`)),
`meta_legacy` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta_legacy`)),
`created_by` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_tabella_per_stabile` (`stabile_id`,`nome_tabella`),
KEY `tabelle_millesimali_created_by_foreign` (`created_by`),
KEY `stabile_id_tipo_tabella_index` (`stabile_id`,`tipo_tabella`),
KEY `stabile_id_attiva_index` (`stabile_id`,`attiva`),
KEY `tabelle_millesimali_stato_tabella_index` (`stato_tabella`),
KEY `tabelle_millesimali_creato_da_foreign` (`creato_da`),
KEY `tabelle_millesimali_modificato_da_foreign` (`modificato_da`),
KEY `tabelle_millesimali_legacy_codice_index` (`legacy_codice`),
KEY `tabelle_millesimali_conto_pd_index` (`conto_pd`),
KEY `tabelle_millesimali_anno_gestione_index` (`anno_gestione`),
CONSTRAINT `tabelle_millesimali_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `tabelle_millesimali_creato_da_foreign` FOREIGN KEY (`creato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `tabelle_millesimali_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `tabelle_millesimali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `template_configurazioni`
--
DROP TABLE IF EXISTS `template_configurazioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `template_configurazioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome_template` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`configurazioni_default` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`configurazioni_default`)),
`tabelle_millesimali_default` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`tabelle_millesimali_default`)),
`tipi_superficie_incluse` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`tipi_superficie_incluse`)),
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `template_history`
--
DROP TABLE IF EXISTS `template_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `template_history` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`template_id` bigint(20) unsigned NOT NULL,
`versione_precedente` varchar(20) NOT NULL,
`modifiche` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`modifiche`)),
`note_modifica` text DEFAULT NULL,
`modificato_da` bigint(20) unsigned DEFAULT NULL,
`created_at` timestamp NOT NULL,
PRIMARY KEY (`id`),
KEY `template_history_template_id_created_at_index` (`template_id`,`created_at`),
KEY `template_history_modificato_da_foreign` (`modificato_da`),
CONSTRAINT `template_history_modificato_da_foreign` FOREIGN KEY (`modificato_da`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `template_history_template_id_foreign` FOREIGN KEY (`template_id`) REFERENCES `stampe_templates` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `template_ratings`
--
DROP TABLE IF EXISTS `template_ratings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `template_ratings` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`template_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned NOT NULL,
`rating` tinyint(4) NOT NULL,
`recensione` text DEFAULT NULL,
`is_verified` tinyint(1) NOT NULL DEFAULT 0,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `template_ratings_template_id_user_id_unique` (`template_id`,`user_id`),
KEY `template_ratings_template_id_rating_index` (`template_id`,`rating`),
KEY `template_ratings_user_id_foreign` (`user_id`),
CONSTRAINT `template_ratings_template_id_foreign` FOREIGN KEY (`template_id`) REFERENCES `stampe_templates` (`id`) ON DELETE CASCADE,
CONSTRAINT `template_ratings_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tenant_archive_registries`
--
DROP TABLE IF EXISTS `tenant_archive_registries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tenant_archive_registries` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`archive_type` varchar(30) NOT NULL,
`archive_code` varchar(80) NOT NULL,
`amministratore_id` bigint(20) unsigned DEFAULT NULL,
`stabile_id` bigint(20) unsigned DEFAULT NULL,
`owner_amministratore_id` bigint(20) unsigned DEFAULT NULL,
`owner_amministratore_code` varchar(80) DEFAULT NULL,
`database_name` varchar(120) DEFAULT NULL,
`database_strategy` varchar(30) NOT NULL DEFAULT 'shared',
`storage_disk` varchar(40) NOT NULL DEFAULT 'local',
`storage_relative_path` varchar(255) NOT NULL,
`status` varchar(30) NOT NULL DEFAULT 'active',
`last_aligned_at` timestamp NULL DEFAULT NULL,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tenant_archive_type_code_unique` (`archive_type`,`archive_code`),
KEY `tenant_archive_registries_amministratore_id_foreign` (`amministratore_id`),
KEY `tenant_archive_owner_type_idx` (`owner_amministratore_id`,`archive_type`),
KEY `tenant_archive_stabile_status_idx` (`stabile_id`,`status`),
CONSTRAINT `tenant_archive_registries_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `tenant_archive_registries_owner_amministratore_id_foreign` FOREIGN KEY (`owner_amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `tenant_archive_registries_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_attachments`
--
DROP TABLE IF EXISTS `ticket_attachments`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_attachments` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` bigint(20) unsigned NOT NULL,
`ticket_update_id` bigint(20) unsigned DEFAULT NULL,
`user_id` bigint(20) unsigned NOT NULL COMMENT 'Utente che ha caricato l allegato',
`file_path` varchar(255) NOT NULL,
`original_file_name` varchar(255) NOT NULL,
`mime_type` varchar(255) DEFAULT NULL,
`size` bigint(20) unsigned DEFAULT NULL COMMENT 'Dimensione in bytes',
`description` varchar(255) DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ticket_attachments_ticket_id_foreign` (`ticket_id`),
KEY `ticket_attachments_ticket_update_id_foreign` (`ticket_update_id`),
KEY `ticket_attachments_user_id_foreign` (`user_id`),
CONSTRAINT `ticket_attachments_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_attachments_ticket_update_id_foreign` FOREIGN KEY (`ticket_update_id`) REFERENCES `ticket_updates` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_attachments_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_interventi`
--
DROP TABLE IF EXISTS `ticket_interventi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_interventi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned DEFAULT NULL,
`creato_da_user_id` bigint(20) unsigned DEFAULT NULL,
`preso_in_carico_da_user_id` bigint(20) unsigned DEFAULT NULL,
`eseguito_da_dipendente_id` bigint(20) unsigned DEFAULT NULL,
`stato` varchar(40) NOT NULL DEFAULT 'assegnato',
`note_amministratore` text DEFAULT NULL,
`rapporto_fornitore` text DEFAULT NULL,
`articoli_utilizzati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`articoli_utilizzati`)),
`materiali_utilizzati` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`materiali_utilizzati`)),
`tempo_minuti` int(10) unsigned DEFAULT NULL,
`iniziato_at` timestamp NULL DEFAULT NULL,
`terminato_at` timestamp NULL DEFAULT NULL,
`foto_path` varchar(255) DEFAULT NULL,
`qr_token` varchar(255) DEFAULT NULL,
`qr_scansionato_at` timestamp NULL DEFAULT NULL,
`check_foto_ok` tinyint(1) NOT NULL DEFAULT 0,
`check_qr_ok` tinyint(1) NOT NULL DEFAULT 0,
`check_admin_ok` tinyint(1) NOT NULL DEFAULT 0,
`riferimento_chiusura` varchar(255) DEFAULT NULL,
`fattura_numero` varchar(255) DEFAULT NULL,
`fattura_data` date DEFAULT NULL,
`fattura_imponibile` decimal(12,2) DEFAULT NULL,
`fattura_totale` decimal(12,2) DEFAULT NULL,
`fe_riferimento` varchar(255) DEFAULT NULL,
`notifica_chiusura_inviata_at` timestamp NULL DEFAULT NULL,
`chiuso_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ticket_interventi_creato_da_user_id_foreign` (`creato_da_user_id`),
KEY `ticket_interventi_preso_in_carico_da_user_id_foreign` (`preso_in_carico_da_user_id`),
KEY `ticket_interventi_fornitore_id_stato_index` (`fornitore_id`,`stato`),
KEY `ticket_interventi_ticket_id_stato_index` (`ticket_id`,`stato`),
KEY `ticket_interventi_eseguito_da_dipendente_id_foreign` (`eseguito_da_dipendente_id`),
KEY `ticket_int_forn_dip_idx` (`fornitore_id`,`eseguito_da_dipendente_id`),
CONSTRAINT `ticket_interventi_creato_da_user_id_foreign` FOREIGN KEY (`creato_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_interventi_eseguito_da_dipendente_id_foreign` FOREIGN KEY (`eseguito_da_dipendente_id`) REFERENCES `fornitore_dipendenti` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_interventi_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_interventi_preso_in_carico_da_user_id_foreign` FOREIGN KEY (`preso_in_carico_da_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_interventi_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_intervento_sessioni`
--
DROP TABLE IF EXISTS `ticket_intervento_sessioni`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_intervento_sessioni` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_intervento_id` bigint(20) unsigned NOT NULL,
`ticket_id` bigint(20) unsigned NOT NULL,
`fornitore_id` bigint(20) unsigned NOT NULL,
`fornitore_dipendente_id` bigint(20) unsigned DEFAULT NULL,
`created_by_user_id` bigint(20) unsigned DEFAULT NULL,
`closed_by_user_id` bigint(20) unsigned DEFAULT NULL,
`session_type` varchar(24) NOT NULL DEFAULT 'work',
`note` varchar(255) DEFAULT NULL,
`started_at` timestamp NULL DEFAULT NULL,
`ended_at` timestamp NULL DEFAULT NULL,
`duration_minutes` int(10) unsigned DEFAULT NULL,
`start_latitude` decimal(10,7) DEFAULT NULL,
`start_longitude` decimal(10,7) DEFAULT NULL,
`start_accuracy_meters` int(10) unsigned DEFAULT NULL,
`start_source` varchar(24) DEFAULT NULL,
`end_latitude` decimal(10,7) DEFAULT NULL,
`end_longitude` decimal(10,7) DEFAULT NULL,
`end_accuracy_meters` int(10) unsigned DEFAULT NULL,
`end_source` varchar(24) DEFAULT NULL,
`geo_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`geo_payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ticket_intervento_sessioni_ticket_id_foreign` (`ticket_id`),
KEY `ticket_intervento_sessioni_fornitore_dipendente_id_foreign` (`fornitore_dipendente_id`),
KEY `ticket_intervento_sessioni_created_by_user_id_foreign` (`created_by_user_id`),
KEY `ticket_intervento_sessioni_closed_by_user_id_foreign` (`closed_by_user_id`),
KEY `ticket_int_sessioni_forn_start_idx` (`fornitore_id`,`started_at`),
KEY `ticket_int_sessioni_type_idx` (`ticket_intervento_id`,`session_type`),
KEY `ticket_intervento_sessioni_session_type_index` (`session_type`),
KEY `ticket_intervento_sessioni_started_at_index` (`started_at`),
KEY `ticket_intervento_sessioni_ended_at_index` (`ended_at`),
CONSTRAINT `ticket_intervento_sessioni_closed_by_user_id_foreign` FOREIGN KEY (`closed_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_intervento_sessioni_created_by_user_id_foreign` FOREIGN KEY (`created_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_intervento_sessioni_fornitore_dipendente_id_foreign` FOREIGN KEY (`fornitore_dipendente_id`) REFERENCES `fornitore_dipendenti` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_intervento_sessioni_fornitore_id_foreign` FOREIGN KEY (`fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_intervento_sessioni_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_intervento_sessioni_ticket_intervento_id_foreign` FOREIGN KEY (`ticket_intervento_id`) REFERENCES `ticket_interventi` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_messages`
--
DROP TABLE IF EXISTS `ticket_messages`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_messages` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`messaggio` text NOT NULL,
`canale` varchar(20) NOT NULL DEFAULT 'interno',
`direzione` varchar(20) NOT NULL DEFAULT 'interno',
`oggetto` varchar(255) DEFAULT NULL,
`email_mittente` varchar(255) DEFAULT NULL,
`email_destinatario` varchar(255) DEFAULT NULL,
`external_message_id` varchar(255) DEFAULT NULL,
`inviato_il` timestamp NULL DEFAULT NULL,
`eml_documento_id` bigint(20) unsigned DEFAULT NULL,
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ticket_messages_ticket_id_foreign` (`ticket_id`),
KEY `ticket_messages_user_id_foreign` (`user_id`),
KEY `ticket_messages_eml_documento_id_foreign` (`eml_documento_id`),
KEY `ticket_messages_ticket_canale_idx` (`ticket_id`,`canale`),
KEY `ticket_messages_external_message_id_idx` (`external_message_id`),
CONSTRAINT `ticket_messages_eml_documento_id_foreign` FOREIGN KEY (`eml_documento_id`) REFERENCES `documenti` (`id`) ON DELETE SET NULL,
CONSTRAINT `ticket_messages_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_messages_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ticket_updates`
--
DROP TABLE IF EXISTS `ticket_updates`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `ticket_updates` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`update_text` text NOT NULL COMMENT 'Testo dell''aggiornamento o nota interna',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ticket_updates_ticket_id_foreign` (`ticket_id`),
KEY `ticket_updates_user_id_foreign` (`user_id`),
CONSTRAINT `ticket_updates_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE,
CONSTRAINT `ticket_updates_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tickets`
--
DROP TABLE IF EXISTS `tickets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tickets` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`unita_immobiliare_id` bigint(20) unsigned DEFAULT NULL,
`soggetto_richiedente_id` bigint(20) unsigned DEFAULT NULL,
`aperto_da_user_id` bigint(20) unsigned NOT NULL,
`categoria_ticket_id` bigint(20) unsigned DEFAULT NULL,
`titolo` varchar(255) NOT NULL,
`descrizione` text NOT NULL,
`luogo_intervento` varchar(255) DEFAULT NULL COMMENT 'Es. Scala A, Piano 3, Interno 5',
`stato` enum('Aperto','Preso in Carico','In Lavorazione','In Attesa Approvazione','In Attesa Ricambi','Risolto','Chiuso','Annullato') NOT NULL DEFAULT 'Aperto',
`priorita` enum('Bassa','Media','Alta','Urgente') NOT NULL DEFAULT 'Media',
`assegnato_a_user_id` bigint(20) unsigned DEFAULT NULL,
`assegnato_a_fornitore_id` bigint(20) unsigned DEFAULT NULL,
`data_apertura` timestamp NOT NULL DEFAULT current_timestamp(),
`data_scadenza_prevista` date DEFAULT NULL,
`data_risoluzione_effettiva` timestamp NULL DEFAULT NULL,
`data_chiusura_effettiva` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `tickets_stabile_id_foreign` (`stabile_id`),
KEY `tickets_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `tickets_soggetto_richiedente_id_foreign` (`soggetto_richiedente_id`),
KEY `tickets_aperto_da_user_id_foreign` (`aperto_da_user_id`),
KEY `tickets_categoria_ticket_id_foreign` (`categoria_ticket_id`),
KEY `tickets_assegnato_a_user_id_foreign` (`assegnato_a_user_id`),
KEY `tickets_assegnato_a_fornitore_id_foreign` (`assegnato_a_fornitore_id`),
CONSTRAINT `tickets_aperto_da_user_id_foreign` FOREIGN KEY (`aperto_da_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `tickets_assegnato_a_fornitore_id_foreign` FOREIGN KEY (`assegnato_a_fornitore_id`) REFERENCES `fornitori` (`id`) ON DELETE SET NULL,
CONSTRAINT `tickets_assegnato_a_user_id_foreign` FOREIGN KEY (`assegnato_a_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `tickets_categoria_ticket_id_foreign` FOREIGN KEY (`categoria_ticket_id`) REFERENCES `categorie_ticket` (`id`) ON DELETE SET NULL,
CONSTRAINT `tickets_soggetto_richiedente_id_foreign` FOREIGN KEY (`soggetto_richiedente_id`) REFERENCES `anagrafiche` (`id`) ON DELETE SET NULL,
CONSTRAINT `tickets_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `tickets_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tipi_relazione_persona_unita`
--
DROP TABLE IF EXISTS `tipi_relazione_persona_unita`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tipi_relazione_persona_unita` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(50) NOT NULL,
`descrizione` varchar(100) NOT NULL,
`richiede_quota` tinyint(1) NOT NULL DEFAULT 0,
`vota_assemblea` tinyint(1) NOT NULL DEFAULT 0,
`riceve_convocazioni` tinyint(1) NOT NULL DEFAULT 1,
`ordine_visualizzazione` int(11) NOT NULL DEFAULT 0,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tipi_relazione_persona_unita_codice_unique` (`codice`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tipi_superficie`
--
DROP TABLE IF EXISTS `tipi_superficie`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tipi_superficie` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`codice` varchar(255) NOT NULL,
`descrizione` text DEFAULT NULL,
`obbligatoria` tinyint(1) NOT NULL DEFAULT 0,
`per_millesimi` tinyint(1) NOT NULL DEFAULT 1,
`unita_misura` varchar(255) NOT NULL DEFAULT 'mq',
`moltiplicatore_default` decimal(5,3) NOT NULL DEFAULT 1.000,
`ordine_visualizzazione` int(11) NOT NULL DEFAULT 100,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tipi_superficie_codice_unique` (`codice`),
KEY `tipi_superficie_attiva_index` (`attiva`),
KEY `tipi_superficie_ordine_visualizzazione_index` (`ordine_visualizzazione`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tipi_utilizzo`
--
DROP TABLE IF EXISTS `tipi_utilizzo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tipi_utilizzo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(10) NOT NULL COMMENT 'Codice tipo utilizzo (es: ABT, NEG, CAN)',
`descrizione` varchar(255) NOT NULL COMMENT 'Descrizione tipo utilizzo',
`note` text DEFAULT NULL COMMENT 'Note aggiuntive',
`attivo` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Se il tipo è utilizzabile',
`configurazioni_default` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Configurazioni default per questo tipo' CHECK (json_valid(`configurazioni_default`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tipi_utilizzo_codice_unique` (`codice`),
KEY `tipi_utilizzo_codice_index` (`codice`),
KEY `tipi_utilizzo_attivo_index` (`attivo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tipologie_cassa`
--
DROP TABLE IF EXISTS `tipologie_cassa`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tipologie_cassa` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`aliquota` decimal(5,2) DEFAULT NULL,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tipologie_cassa_codice_unique` (`codice`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `titoli`
--
DROP TABLE IF EXISTS `titoli`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `titoli` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`sigla` varchar(255) DEFAULT NULL,
`ordine` int(11) NOT NULL DEFAULT 0,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_anagrafica_periodo`
--
DROP TABLE IF EXISTS `unita_anagrafica_periodo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_anagrafica_periodo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`anagrafica_id` bigint(20) unsigned NOT NULL,
`ruolo_occupazione` varchar(50) DEFAULT NULL,
`data_inizio` date NOT NULL,
`data_fine` date DEFAULT NULL,
`percentuale_spesa` decimal(6,3) NOT NULL DEFAULT 100.000,
`sussidiata_da_proprietario` tinyint(1) NOT NULL DEFAULT 0,
`proprietario_garante_id` bigint(20) unsigned DEFAULT NULL,
`legacy_metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`legacy_metadata`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `unita_anagrafica_periodo_unita_immobiliare_id_foreign` (`unita_immobiliare_id`),
KEY `unita_anagrafica_periodo_anagrafica_id_foreign` (`anagrafica_id`),
CONSTRAINT `unita_anagrafica_periodo_anagrafica_id_foreign` FOREIGN KEY (`anagrafica_id`) REFERENCES `anagrafiche` (`id`),
CONSTRAINT `unita_anagrafica_periodo_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1178 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_immobiliare_nominativi`
--
DROP TABLE IF EXISTS `unita_immobiliare_nominativi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_immobiliare_nominativi` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_immobiliare_id` bigint(20) unsigned NOT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`legacy_cond_id` varchar(50) DEFAULT NULL,
`ruolo` enum('C','I') NOT NULL,
`nominativo` varchar(255) DEFAULT NULL,
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`percentuale` decimal(6,3) DEFAULT NULL,
`fonte` varchar(50) DEFAULT NULL,
`legacy_payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`legacy_payload`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `unita_immobiliare_nominativi_unita_immobiliare_id_ruolo_index` (`unita_immobiliare_id`,`ruolo`),
KEY `uin_stabile_ruolo_legacy_idx` (`stabile_id`,`ruolo`,`legacy_cond_id`),
KEY `unita_immobiliare_nominativi_legacy_cond_id_index` (`legacy_cond_id`),
KEY `unita_immobiliare_nominativi_ruolo_index` (`ruolo`),
KEY `unita_immobiliare_nominativi_data_inizio_index` (`data_inizio`),
KEY `unita_immobiliare_nominativi_data_fine_index` (`data_fine`),
CONSTRAINT `unita_immobiliare_nominativi_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `unita_immobiliare_nominativi_unita_immobiliare_id_foreign` FOREIGN KEY (`unita_immobiliare_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14977 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_immobiliari`
--
DROP TABLE IF EXISTS `unita_immobiliari`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_immobiliari` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`riscaldamento` enum('centralizzato','autonomo','assente') NOT NULL DEFAULT 'centralizzato',
`millesimi_riscaldamento` decimal(6,3) DEFAULT NULL,
`millesimi_acqua` decimal(6,3) DEFAULT NULL,
`acqua_contatore_seriale` varchar(255) DEFAULT NULL,
`acqua_gateway_device_id` varchar(255) DEFAULT NULL,
`acqua_gateway_meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`acqua_gateway_meta`)),
`millesimi_ascensore` decimal(6,3) DEFAULT NULL,
`millesimi_scale` decimal(6,3) DEFAULT NULL,
`stabile_id` bigint(20) unsigned NOT NULL,
`palazzina_id` bigint(20) unsigned DEFAULT NULL,
`codice_unita` varchar(20) DEFAULT NULL,
`denominazione` varchar(255) DEFAULT NULL,
`descrizione` text DEFAULT NULL,
`palazzina` varchar(10) DEFAULT NULL COMMENT 'Palazzina/Fabbricato',
`palazzina_old` varchar(255) DEFAULT NULL,
`interno` varchar(255) DEFAULT NULL,
`posizione_dettagliata` varchar(255) DEFAULT NULL,
`sezione_urbana` varchar(10) DEFAULT NULL,
`scala` varchar(255) DEFAULT NULL,
`piano` varchar(255) DEFAULT NULL,
`subalterno` varchar(255) DEFAULT NULL,
`tipo_utilizzo_id` bigint(20) unsigned DEFAULT NULL COMMENT 'FK verso tipi_utilizzo',
`categoria_catastale` varchar(10) DEFAULT NULL,
`superficie` decimal(8,2) DEFAULT NULL,
`numero_vani` tinyint(4) DEFAULT NULL,
`numero_bagni` tinyint(4) DEFAULT NULL,
`numero_camere` tinyint(4) DEFAULT NULL,
`tipo_cucina` enum('abitabile','cucinotto','angolo_cottura','assente') DEFAULT NULL,
`ha_balconi` tinyint(1) NOT NULL DEFAULT 0,
`numero_balconi` tinyint(4) DEFAULT NULL,
`ha_giardino_privato` tinyint(1) NOT NULL DEFAULT 0,
`ha_posto_auto_assegnato` tinyint(1) NOT NULL DEFAULT 0,
`ha_cantina_assegnata` tinyint(1) NOT NULL DEFAULT 0,
`ha_soffitta_assegnata` tinyint(1) NOT NULL DEFAULT 0,
`anno_costruzione` year(4) DEFAULT NULL,
`anno_ristrutturazione` year(4) DEFAULT NULL,
`necessita_lavori` tinyint(1) NOT NULL DEFAULT 0,
`note_tecniche` text DEFAULT NULL,
`struttura_fisica_id` bigint(20) unsigned DEFAULT NULL,
`calcolo_automatico_millesimi` tinyint(1) NOT NULL DEFAULT 1,
`notifiche_subentri` tinyint(1) NOT NULL DEFAULT 1,
`created_by` bigint(20) unsigned DEFAULT NULL,
`updated_by` bigint(20) unsigned DEFAULT NULL,
`vani` decimal(5,2) DEFAULT NULL,
`millesimi_proprieta` decimal(8,4) DEFAULT NULL COMMENT 'Millesimi di proprietà generale',
`legacy_cond_id` varchar(50) DEFAULT NULL,
`rendita_catastale` decimal(10,2) DEFAULT NULL COMMENT 'Rendita catastale',
`codice_univoco` varchar(8) DEFAULT NULL COMMENT 'Codice univoco unità (8 caratteri)',
`stato` enum('attiva','inattiva','venduta','demolita') NOT NULL DEFAULT 'attiva',
`indirizzo` varchar(255) DEFAULT NULL COMMENT 'Indirizzo specifico se diverso da quello del condominio',
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`superficie_calpestabile` decimal(8,2) DEFAULT NULL,
`superficie_balconi` decimal(6,2) DEFAULT NULL,
`superficie_giardino_privato` decimal(8,2) DEFAULT NULL,
`tipo_unita` enum('abitazione','studio_professionale','attivita_commerciale','magazzino_deposito','box_garage','cantina','soffitta','spazio_comune_redditizio','locale_tecnico','altro') NOT NULL DEFAULT 'abitazione',
`tipologia_id` bigint(20) unsigned DEFAULT NULL,
`utilizzo_attuale` enum('abitazione_principale','abitazione_secondaria','studio_medico','studio_legale','struttura_ricettiva','attivita_commerciale','locale_commerciale_affitto','sala_eventi_affittabile','parcheggio_pagamento','lavanderia_comune','deposito_attrezzature','ufficio','magazzino','non_utilizzato') NOT NULL DEFAULT 'abitazione_principale',
`numero_locali` tinyint(4) DEFAULT NULL,
`ha_climatizzazione` tinyint(1) NOT NULL DEFAULT 0,
`anno_impianto_elettrico` int(11) DEFAULT NULL,
`anno_impianto_idraulico` int(11) DEFAULT NULL,
`ha_impianto_gas` tinyint(1) NOT NULL DEFAULT 0,
`anno_sostituzione_infissi` int(11) DEFAULT NULL,
`millesimi_generali` decimal(6,3) DEFAULT NULL,
`cin` varchar(20) DEFAULT NULL,
`licenza_commerciale` varchar(50) DEFAULT NULL,
`autorizzazione_professionale` varchar(100) DEFAULT NULL,
`ha_cambio_destinazione_uso` tinyint(1) NOT NULL DEFAULT 0,
`data_scadenza_autorizzazioni` date DEFAULT NULL,
`note_autorizzazioni` text DEFAULT NULL,
`stato_conservazione` enum('ottimo','buono','discreto','da_ristrutturare') NOT NULL DEFAULT 'buono',
`anno_ultima_ristrutturazione` int(11) DEFAULT NULL,
`stato_occupazione` enum('occupata_proprietario','occupata_inquilino','libera','in_vendita','in_affitto') NOT NULL DEFAULT 'occupata_proprietario',
`valore_commerciale_stimato` decimal(12,2) DEFAULT NULL,
`canone_locazione_mensile` decimal(8,2) DEFAULT NULL,
`data_ultima_valutazione` date DEFAULT NULL,
`unita_demo` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `unita_immobiliari_codice_univoco_unique` (`codice_univoco`),
UNIQUE KEY `unita_stabile_codice_unique` (`stabile_id`,`codice_unita`),
KEY `idx_unita_stabile_stato` (`stabile_id`,`stato`),
KEY `idx_unita_tipo_utilizzo` (`tipo_utilizzo_id`),
KEY `unita_immobiliari_struttura_fisica_id_foreign` (`struttura_fisica_id`),
KEY `unita_immobiliari_created_by_foreign` (`created_by`),
KEY `unita_immobiliari_updated_by_foreign` (`updated_by`),
KEY `unita_immobiliari_necessita_lavori_index` (`necessita_lavori`),
KEY `unita_immobiliari_palazzina_id_foreign` (`palazzina_id`),
KEY `unita_immobiliari_tipologia_id_foreign` (`tipologia_id`),
KEY `ui_stabile_legacy_cond_idx` (`stabile_id`,`legacy_cond_id`),
KEY `unita_immobiliari_acqua_contatore_seriale_index` (`acqua_contatore_seriale`),
KEY `unita_immobiliari_acqua_gateway_device_id_index` (`acqua_gateway_device_id`),
CONSTRAINT `unita_immobiliari_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `unita_immobiliari_palazzina_id_foreign` FOREIGN KEY (`palazzina_id`) REFERENCES `palazzine` (`id`) ON DELETE CASCADE,
CONSTRAINT `unita_immobiliari_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `unita_immobiliari_struttura_fisica_id_foreign` FOREIGN KEY (`struttura_fisica_id`) REFERENCES `struttura_fisica_dettaglio` (`id`) ON DELETE SET NULL,
CONSTRAINT `unita_immobiliari_tipologia_id_foreign` FOREIGN KEY (`tipologia_id`) REFERENCES `unita_tipologie` (`id`) ON DELETE SET NULL,
CONSTRAINT `unita_immobiliari_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=1751 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_pertinenze`
--
DROP TABLE IF EXISTS `unita_pertinenze`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_pertinenze` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`unita_principale_id` bigint(20) unsigned NOT NULL,
`unita_accessoria_id` bigint(20) unsigned NOT NULL,
`tipo` enum('cantina','box_garage','soffitta','altro') NOT NULL DEFAULT 'cantina',
`cumulo` tinyint(1) NOT NULL DEFAULT 1,
`note` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_pertinenza_pair` (`unita_principale_id`,`unita_accessoria_id`),
KEY `unita_pertinenze_unita_accessoria_id_foreign` (`unita_accessoria_id`),
KEY `unita_pertinenze_stabile_id_tipo_index` (`stabile_id`,`tipo`),
CONSTRAINT `unita_pertinenze_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `unita_pertinenze_unita_accessoria_id_foreign` FOREIGN KEY (`unita_accessoria_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE,
CONSTRAINT `unita_pertinenze_unita_principale_id_foreign` FOREIGN KEY (`unita_principale_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_recapiti_servizio`
--
DROP TABLE IF EXISTS `unita_recapiti_servizio`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_recapiti_servizio` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`unita_id` bigint(20) unsigned NOT NULL,
`persona_id` bigint(20) unsigned DEFAULT NULL,
`tipo_servizio` varchar(50) NOT NULL,
`email` varchar(255) NOT NULL,
`etichetta` varchar(120) DEFAULT NULL,
`note` text DEFAULT NULL,
`ordine` int(10) unsigned NOT NULL DEFAULT 1,
`is_default` tinyint(1) NOT NULL DEFAULT 1,
`attivo` tinyint(1) NOT NULL DEFAULT 1,
`sorgente` varchar(50) NOT NULL DEFAULT 'manuale',
`last_confirmed_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unita_recapito_servizio_unico` (`unita_id`,`persona_id`,`tipo_servizio`,`email`),
KEY `unita_recapiti_servizio_unita_id_tipo_servizio_index` (`unita_id`,`tipo_servizio`),
KEY `unita_recapiti_servizio_persona_id_tipo_servizio_index` (`persona_id`,`tipo_servizio`),
KEY `unita_recapiti_servizio_attivo_tipo_servizio_index` (`attivo`,`tipo_servizio`),
CONSTRAINT `unita_recapiti_servizio_persona_id_foreign` FOREIGN KEY (`persona_id`) REFERENCES `persone` (`id`) ON DELETE SET NULL,
CONSTRAINT `unita_recapiti_servizio_unita_id_foreign` FOREIGN KEY (`unita_id`) REFERENCES `unita_immobiliari` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `unita_tipologie`
--
DROP TABLE IF EXISTS `unita_tipologie`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `unita_tipologie` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`codice` varchar(50) NOT NULL,
`nome` varchar(255) NOT NULL,
`categoria` varchar(255) DEFAULT NULL,
`is_pertinenza` tinyint(1) NOT NULL DEFAULT 0,
`is_condominiale` tinyint(1) NOT NULL DEFAULT 0,
`meta` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unita_tipologie_codice_unique` (`codice`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_settings`
--
DROP TABLE IF EXISTS `user_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_settings` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned NOT NULL,
`key` varchar(255) NOT NULL,
`value` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_settings_user_id_key_unique` (`user_id`,`key`),
CONSTRAINT `user_settings_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`amministratore_id` bigint(20) unsigned DEFAULT NULL,
`created_by_user_id` bigint(20) unsigned DEFAULT NULL,
`last_stabile_id` bigint(20) unsigned DEFAULT NULL,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`codice_univoco` varchar(8) DEFAULT NULL,
`email_verified_at` timestamp NULL DEFAULT NULL,
`expires_at` timestamp NULL DEFAULT NULL,
`password` varchar(255) NOT NULL,
`two_factor_secret` text DEFAULT NULL,
`two_factor_recovery_codes` text DEFAULT NULL,
`two_factor_confirmed_at` timestamp NULL DEFAULT NULL,
`pbx_extension` varchar(20) DEFAULT NULL,
`pbx_popup_enabled` tinyint(1) NOT NULL DEFAULT 0,
`pbx_click_to_call_enabled` tinyint(1) NOT NULL DEFAULT 0,
`remember_token` varchar(100) DEFAULT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`registration_status` varchar(32) NOT NULL DEFAULT 'approved',
`requested_role` varchar(64) DEFAULT NULL,
`subscription_plan_id` bigint(20) unsigned DEFAULT NULL,
`approved_by_user_id` bigint(20) unsigned DEFAULT NULL,
`approved_at` timestamp NULL DEFAULT NULL,
`rejected_at` timestamp NULL DEFAULT NULL,
`rejection_reason` varchar(500) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`),
UNIQUE KEY `users_codice_univoco_unique` (`codice_univoco`),
KEY `users_amministratore_id_foreign` (`amministratore_id`),
KEY `users_created_by_user_id_foreign` (`created_by_user_id`),
KEY `users_last_stabile_id_foreign` (`last_stabile_id`),
KEY `users_subscription_plan_id_foreign` (`subscription_plan_id`),
KEY `users_approved_by_user_id_foreign` (`approved_by_user_id`),
CONSTRAINT `users_amministratore_id_foreign` FOREIGN KEY (`amministratore_id`) REFERENCES `amministratori` (`id`) ON DELETE SET NULL,
CONSTRAINT `users_approved_by_user_id_foreign` FOREIGN KEY (`approved_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `users_created_by_user_id_foreign` FOREIGN KEY (`created_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `users_last_stabile_id_foreign` FOREIGN KEY (`last_stabile_id`) REFERENCES `stabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `users_subscription_plan_id_foreign` FOREIGN KEY (`subscription_plan_id`) REFERENCES `subscription_plans` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`netgescon_user`@`localhost`*/ /*!50003 TRIGGER trg_users_codice_univoco BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF NEW.codice_univoco IS NULL OR NEW.codice_univoco = '' THEN
CALL sp_next_codice_univoco('USERS', @generated_code);
SET NEW.codice_univoco = @generated_code;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `versamenti_fiscali`
--
DROP TABLE IF EXISTS `versamenti_fiscali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `versamenti_fiscali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`anno` int(11) NOT NULL,
`mese` int(11) NOT NULL,
`codice` varchar(255) NOT NULL,
`importo_ritenute` decimal(10,2) NOT NULL,
`importo_versato` decimal(10,2) NOT NULL,
`data_versamento` date NOT NULL,
`riferimento_f24` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `versamenti_fiscali_stabile_id_anno_mese_index` (`stabile_id`,`anno`,`mese`),
CONSTRAINT `versamenti_fiscali_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili_gescon` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `voci_preventivo`
--
DROP TABLE IF EXISTS `voci_preventivo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `voci_preventivo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`preventivo_id` bigint(20) unsigned NOT NULL,
`codice` varchar(20) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`importo_preventivato` decimal(12,2) NOT NULL DEFAULT 0.00,
`importo_effettivo` decimal(12,2) DEFAULT NULL,
`tabella_millesimale_id` bigint(20) unsigned DEFAULT NULL,
`voce_spesa_id` bigint(20) unsigned DEFAULT NULL,
`ricorrente` tinyint(1) NOT NULL DEFAULT 0,
`frequenza` varchar(32) DEFAULT NULL,
`data_scadenza_prevista` date DEFAULT NULL,
`ordinamento` int(10) unsigned NOT NULL DEFAULT 0,
`note` text DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `voci_preventivo_preventivo_id_ordinamento_index` (`preventivo_id`,`ordinamento`),
KEY `voci_preventivo_tabella_millesimale_id_index` (`tabella_millesimale_id`),
KEY `voci_preventivo_voce_spesa_id_index` (`voce_spesa_id`),
CONSTRAINT `voci_preventivo_preventivo_id_foreign` FOREIGN KEY (`preventivo_id`) REFERENCES `preventivi` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `voci_spesa`
--
DROP TABLE IF EXISTS `voci_spesa`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `voci_spesa` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`stabile_id` bigint(20) unsigned NOT NULL,
`gestione_contabile_id` bigint(20) unsigned DEFAULT NULL,
`codice` varchar(255) DEFAULT NULL,
`legacy_codice` varchar(120) DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`categoria` varchar(255) NOT NULL,
`tipo_gestione` varchar(255) NOT NULL DEFAULT 'ordinaria',
`tabella_millesimale_default_id` bigint(20) unsigned DEFAULT NULL,
`ritenuta_acconto_default` decimal(5,2) NOT NULL DEFAULT 0.00,
`importo_default` decimal(12,2) DEFAULT NULL,
`importo_consuntivo` decimal(15,2) DEFAULT NULL,
`percentuale_condomino` decimal(5,2) NOT NULL DEFAULT 100.00,
`percentuale_inquilino` decimal(5,2) NOT NULL DEFAULT 0.00,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`ordinamento` int(11) NOT NULL DEFAULT 0,
`nord` int(11) DEFAULT NULL,
`tipo` varchar(50) DEFAULT NULL COMMENT 'ordinaria/straordinaria/riscaldamento/altro',
`legacy_tipo` varchar(60) DEFAULT NULL,
`conto_pd` varchar(120) DEFAULT NULL,
`sottoconto_pd` varchar(120) DEFAULT NULL,
`note` text DEFAULT NULL,
`meta_legacy` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`meta_legacy`)),
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `voci_spesa_stabile_gestione_codice_unique` (`stabile_id`,`gestione_contabile_id`,`codice`),
KEY `voci_spesa_tabella_millesimale_default_id_foreign` (`tabella_millesimale_default_id`),
KEY `voci_spesa_stabile_id_categoria_index` (`stabile_id`,`categoria`),
KEY `voci_spesa_stabile_id_attiva_index` (`stabile_id`,`attiva`),
KEY `voci_spesa_legacy_codice_index` (`legacy_codice`),
KEY `voci_spesa_conto_pd_index` (`conto_pd`),
KEY `voci_spesa_gestione_contabile_id_foreign` (`gestione_contabile_id`),
CONSTRAINT `voci_spesa_gestione_contabile_id_foreign` FOREIGN KEY (`gestione_contabile_id`) REFERENCES `gestioni_contabili` (`id`) ON DELETE SET NULL,
CONSTRAINT `voci_spesa_stabile_id_foreign` FOREIGN KEY (`stabile_id`) REFERENCES `stabili` (`id`) ON DELETE CASCADE,
CONSTRAINT `voci_spesa_tabella_millesimale_default_id_foreign` FOREIGN KEY (`tabella_millesimale_default_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=1715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `voci_spesa_millesimali`
--
DROP TABLE IF EXISTS `voci_spesa_millesimali`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `voci_spesa_millesimali` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tabella_millesimale_id` bigint(20) unsigned NOT NULL,
`codice_voce` varchar(5) NOT NULL,
`descrizione` varchar(255) NOT NULL,
`importo_preventivo` decimal(10,2) DEFAULT NULL,
`importo_consuntivo` decimal(10,2) DEFAULT NULL,
`attiva` tinyint(1) NOT NULL DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `voci_spesa_millesimali_tabella_millesimale_id_codice_voce_unique` (`tabella_millesimale_id`,`codice_voce`),
CONSTRAINT `voci_spesa_millesimali_tabella_millesimale_id_foreign` FOREIGN KEY (`tabella_millesimale_id`) REFERENCES `tabelle_millesimali` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Temporary table structure for view `vw_gescon_import_addebiti_personali`
--
DROP TABLE IF EXISTS `vw_gescon_import_addebiti_personali`;
/*!50001 DROP VIEW IF EXISTS `vw_gescon_import_addebiti_personali`*/;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8mb4;
/*!50001 CREATE VIEW `vw_gescon_import_addebiti_personali` AS SELECT
1 AS `id`,
1 AS `tipo_gestione`,
1 AS `numero_straordinaria`,
1 AS `codice_spesa`,
1 AS `natura2`,
1 AS `importo`,
1 AS `unita_immobiliare_id`,
1 AS `soggetto_id`,
1 AS `ruolo`,
1 AS `is_unico` */;
SET character_set_client = @saved_cs_client;
--
-- Temporary table structure for view `vw_gescon_import_detrazioni`
--
DROP TABLE IF EXISTS `vw_gescon_import_detrazioni`;
/*!50001 DROP VIEW IF EXISTS `vw_gescon_import_detrazioni`*/;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8mb4;
/*!50001 CREATE VIEW `vw_gescon_import_detrazioni` AS SELECT
1 AS `id`,
1 AS `legacy_rif`,
1 AS `descrizione`,
1 AS `tipologia`,
1 AS `importo`,
1 AS `cessione_flag`,
1 AS `soggetto_id`,
1 AS `unita_immobiliare_id`,
1 AS `percentuale`,
1 AS `parte_sconto`,
1 AS `importo_riconosciuto` */;
SET character_set_client = @saved_cs_client;
--
-- Final view structure for view `vw_gescon_import_addebiti_personali`
--
/*!50001 DROP VIEW IF EXISTS `vw_gescon_import_addebiti_personali`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
/*!50001 SET character_set_client = utf8mb4 */;
/*!50001 SET character_set_results = utf8mb4 */;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`netgescon_user`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `vw_gescon_import_addebiti_personali` AS select `a`.`id` AS `id`,`a`.`tipo_gestione` AS `tipo_gestione`,`a`.`numero_straordinaria` AS `numero_straordinaria`,`a`.`codice_spesa` AS `codice_spesa`,`a`.`natura2` AS `natura2`,`a`.`importo` AS `importo`,`a`.`unita_immobiliare_id` AS `unita_immobiliare_id`,`a`.`soggetto_id` AS `soggetto_id`,`a`.`ruolo` AS `ruolo`,`a`.`is_unico` AS `is_unico` from `addebiti_personalizzati` `a` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
--
-- Final view structure for view `vw_gescon_import_detrazioni`
--
/*!50001 DROP VIEW IF EXISTS `vw_gescon_import_detrazioni`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
/*!50001 SET character_set_client = utf8mb4 */;
/*!50001 SET character_set_results = utf8mb4 */;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`netgescon_user`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `vw_gescon_import_detrazioni` AS select `d`.`id` AS `id`,`d`.`legacy_rif` AS `legacy_rif`,`d`.`descrizione` AS `descrizione`,`d`.`tipologia` AS `tipologia`,`d`.`importo` AS `importo`,`d`.`cessione_flag` AS `cessione_flag`,`p`.`soggetto_id` AS `soggetto_id`,`p`.`unita_immobiliare_id` AS `unita_immobiliare_id`,`p`.`percentuale` AS `percentuale`,`p`.`parte_sconto` AS `parte_sconto`,`p`.`importo_riconosciuto` AS `importo_riconosciuto` from (`detrazioni_fiscali_dom` `d` left join `detrazioni_partecipanti` `p` on(`p`.`detrazione_id` = `d`.`id`)) */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-07-18 20:17:05