-- MySQL dump 10.13  Distrib 5.7.28, for Linux (x86_64)
--
-- Host: 127.0.0.1    Database: sr_company
-- ------------------------------------------------------
-- Server version	5.5.5-10.2.11-MariaDB-log

/*!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 utf8 */;
/*!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 `billing_info`
--

DROP TABLE IF EXISTS `billing_info`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `billing_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `billing` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'riferimento a company_billing.id',
  `document_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'uid del documento',
  `document_type` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'tipo del documento',
  `order_head` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'riferimento a order_head.id',
  `date_document` date DEFAULT NULL,
  `message_class` enum('none','info','warning','error','fatal') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'classe del messaggio associato all''''ultima action elaborata (none: non specificato, fatal: errore permanente nel senso che ripetere la stessa action produrrà lo stesso errore; error (errore), warning (operazione completata con avviso), info (informazioni di corredo fornite dal corriere)',
  `message_content` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'messaggio associato all''''elaborazione dell''''ultima action',
  `message_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice errore',
  `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0 (none), 1 (entity created awaiting for elaboration), 2 (waiting for gateway elaboration), 3 (elaboration completed), 4 (cancelled), 5 (failed)',
  `driver_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json ad uso esclusivo del driver per salvare informazioni aggiuntive sulle transazioni eseguite',
  `extra_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `billing_info_ibfk_1` (`order_head`),
  KEY `billing_info_ibfk_2` (`billing`),
  CONSTRAINT `billing_info_ibfk_1` FOREIGN KEY (`order_head`) REFERENCES `order_head` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `billing_info_ibfk_2` FOREIGN KEY (`billing`) REFERENCES `company_billing` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='ordini fatturati a partire dagli ordini cliente (order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `billing_info`
--

LOCK TABLES `billing_info` WRITE;
/*!40000 ALTER TABLE `billing_info` DISABLE KEYS */;
/*!40000 ALTER TABLE `billing_info` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `catalog`
--

DROP TABLE IF EXISTS `catalog`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `catalog` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome del catalog, ereditato di default da catalog_template',
  `company` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della company a cui il catalog appartiene',
  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome o breve descrizione',
  `code` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice parlante del catalog, ereditato da catalog_template',
  `lang` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO 639-1 della lingua',
  `currency` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO 4217 della valuta',
  `adult_content` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 indica che il listino è per soli adulti',
  `catalog_template` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del catalog_template da cui questo catalogo è derivato; in setting si trovano le informazioni da applicare al catalog_template per poter elaborare il catalog (es: username e password)',
  `catalog_type` enum('none','custom','supplier','danea','data_entry','marketplace','fattureincloud') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'tipo di catalog (catalog_type.code); serve a distinguere i catalog importati automaticamente da quelli di tipo magazzino (warehouse) in cui l''eventuale importazione definita nel template è da farsi a mani',
  `definition` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che definisce il template usato per importare il catalogo; questo campo combinato con setting e catalog_template produce il template a runtime per l''effettiva elaborazione',
  `setting` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json delle impostazioni specifiche del catalogo (username, password per scarico dati, url sostitutiva, etc.)',
  `credential` bigint(20) unsigned DEFAULT NULL COMMENT 'id della credential da usare per scaricare i dati, solo per catalog di tipo marketplace',
  `channel` bigint(20) unsigned DEFAULT NULL COMMENT 'id del channel da usare per scaricare i dati, solo per catalog di tipo marketplace',
  `status` enum('none','active','disabled','suspended') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'active indica che il catalog deve essere elaborato, disabled che l''utente non lo può vedere, suspended che l''importazione catalogo è sospesa',
  `source_date` datetime DEFAULT NULL COMMENT 'date di modifica dell''origine dati',
  `hide_wizard` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che l''utente user NON può eseguire il wizard',
  `import_date` datetime DEFAULT NULL COMMENT 'data ultima importazione',
  `split_variations` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per creare una riga di prodotto per ogni variante',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `company` (`company`),
  KEY `catalog_template` (`catalog_template`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='cataloghi definiti a livello di company, ogni catalog può essere un magazzino prodotti gestito a mano (eventualmente importato una tantum) oppure linkato ad una origine dati esterna: in questo caso l''importazione è schedulata';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `catalog`
--

LOCK TABLES `catalog` WRITE;
/*!40000 ALTER TABLE `catalog` DISABLE KEYS */;
/*!40000 ALTER TABLE `catalog` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `catalog_brand`
--

DROP TABLE IF EXISTS `catalog_brand`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `catalog_brand` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del catalog (catalog.id) in cui compare il brand',
  `brand` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome del brand così come compare nell''anagrafica prodotti del catalogo',
  `phantom` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 indica che il valore scritto in name non compare più nell'' anagrafica prodotti (product) del catalog; le procedure dovranno evidenziare questi valori (es: celle colorate) per consentire all''operatore di intervenire ovunque il valore è utilizzato',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `catalog` (`catalog`),
  CONSTRAINT `catalog_brand_ibfk_1` FOREIGN KEY (`catalog`) REFERENCES `catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='nomi dei brand associati vari cataloghi';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `catalog_brand`
--

LOCK TABLES `catalog_brand` WRITE;
/*!40000 ALTER TABLE `catalog_brand` DISABLE KEYS */;
/*!40000 ALTER TABLE `catalog_brand` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `catalog_category`
--

DROP TABLE IF EXISTS `catalog_category`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `catalog_category` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del catalog (catalog.id) a cui appartiene questo record di categoie',
  `category1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria di livello 1',
  `category2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria di livello 2',
  `category3` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria di livello 3',
  `phantom` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che la categoria non è in uso (non esiste nel listino o comunque non è stata importata)',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `catalog` (`catalog`),
  KEY `catalog_categories` (`category1`,`category2`,`category3`),
  CONSTRAINT `catalog_category_ibfk_1` FOREIGN KEY (`catalog`) REFERENCES `catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='nomi deelle categorie associate vari cataloghi; sono sempre gestite in tuple di al massimo 3 elementi';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `catalog_category`
--

LOCK TABLES `catalog_category` WRITE;
/*!40000 ALTER TABLE `catalog_category` DISABLE KEYS */;
/*!40000 ALTER TABLE `catalog_category` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `catalog_rule`
--

DROP TABLE IF EXISTS `catalog_rule`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `catalog_rule` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del catalog (catalog.id) a cui si applica questa catalog_rule',
  `setting` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json delle impostazioni specifiche che servono a calcolare gli effetti della regola applicata (es: qta_delta per incremento quantità, markup_perc per incremento percentuale prezzo)',
  `catalog_category1` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'filtro su category1 del product',
  `catalog_category2` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'filtro su category2 del product',
  `catalog_category3` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'filtro su category3 del product',
  `brand` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'filtro su brand del product',
  `price_start` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su price1 del product',
  `price_end` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su price1 del product',
  `quantity_start` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su quantity del product',
  `quantity_end` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su quantity del product',
  `inclusive` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 per indicare che la regola è di inclusione',
  `priority` int(11) NOT NULL DEFAULT 0 COMMENT 'ordine di applicazione delle regole, viene applicata la prima regola che fa match nell''ordine determinato da priority',
  `date_start` datetime DEFAULT NULL COMMENT 'data di inizio validità della regola',
  `date_end` datetime DEFAULT NULL COMMENT 'data di fine validità della regola',
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'usato per filtrare su campo title di product (parole contenute)',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `catalog` (`catalog`),
  CONSTRAINT `catalog_rule_ibfk_1` FOREIGN KEY (`catalog`) REFERENCES `catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='insieme di regole da applicare ai prodotti di un dato catalogo in relazione a determinate operaizoni (es: importazione)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `catalog_rule`
--

LOCK TABLES `catalog_rule` WRITE;
/*!40000 ALTER TABLE `catalog_rule` DISABLE KEYS */;
/*!40000 ALTER TABLE `catalog_rule` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `company_billing`
--

DROP TABLE IF EXISTS `company_billing`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `company_billing` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco parlante del sw fatturazione',
  `billing` bigint(20) unsigned DEFAULT NULL COMMENT 'identifica un record in sr_master.billing',
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome (o descrizione breve)',
  `description` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione dettagliata',
  `definition` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json contenente meta dati necessari alle procedure di interfacciamento verso il sw fatturazione',
  `country` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice nazione ISO3166-1 Alpha 3, usato per proporre la selezione in funzione del paese dell''utente',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `extra_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='tabella dei software di fatturazione';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `company_billing`
--

LOCK TABLES `company_billing` WRITE;
/*!40000 ALTER TABLE `company_billing` DISABLE KEYS */;
/*!40000 ALTER TABLE `company_billing` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `company_courier`
--

DROP TABLE IF EXISTS `company_courier`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `company_courier` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `courier` bigint(20) unsigned DEFAULT NULL COMMENT 'id del corriere (courier.id)',
  `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco parlante del corriere',
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome (o descrizione breve)',
  `description` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione dettagliata',
  `definition` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json contenente meta dati necessari alle procedure di interfacciamento verso il corriere',
  `country` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice nazione ISO3166-1 Alpha 3, usato per proporre la selezione in funzione del paese dell''utente',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='tabella dei corrieri';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `company_courier`
--

LOCK TABLES `company_courier` WRITE;
/*!40000 ALTER TABLE `company_courier` DISABLE KEYS */;
/*!40000 ALTER TABLE `company_courier` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `company_supplier`
--

DROP TABLE IF EXISTS `company_supplier`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `company_supplier` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `supplier` bigint(20) unsigned DEFAULT NULL COMMENT 'id del fornitore (supplier.id)',
  `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco del fornitore (può essere usato come prefisso per altri codici all''interno di altre entità)',
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome (o breve descrizione)',
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `phone` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `country` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice nazione ISO3166-1 Alpha 3, usato per proporre la selezione in funzione del paese dell''utente',
  `definition` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json contenente informazioni necessarie alle procedure di interfacciamento verso il fornitore',
  `extra_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'dati aggiuntivi configurazione fornitore',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `status` enum('none','active','disabled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'active' COMMENT 'stato del fornitore',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='anagrafica dei fornitori';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `company_supplier`
--

LOCK TABLES `company_supplier` WRITE;
/*!40000 ALTER TABLE `company_supplier` DISABLE KEYS */;
/*!40000 ALTER TABLE `company_supplier` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `company_value_map`
--

DROP TABLE IF EXISTS `company_value_map`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `company_value_map` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `company` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'company cui appartengono i codici inseriti',
  `object_type` enum('none','shipping','payment','insurance') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'identifica il contesto di codifica',
  `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0' COMMENT 'codice assegnato dalla company',
  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'descrizione',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='corrispondenza tra codici sellrapido e codici specifici dei channel relativi a vari tipi di oggetto identificati da object_type';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `company_value_map`
--

LOCK TABLES `company_value_map` WRITE;
/*!40000 ALTER TABLE `company_value_map` DISABLE KEYS */;
/*!40000 ALTER TABLE `company_value_map` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `customer`
--

DROP TABLE IF EXISTS `customer`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `customer` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `buyer_fiscal_code` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice fiscale',
  `buyer_vat` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'partita iva',
  `buyer_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'email del buyer',
  `buyer_user_id` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'user id assegnato dal marketplace al buyer',
  `buyer_loc_place` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'località normalizzata del buyer',
  `buyer_loc_place_dd` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'località normalizzata di destinazione diversa del buyer ',
  `buyer_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome compratore',
  `buyer_address1` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo compratore (via e civico)',
  `buyer_address2` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo compratore (dati aggiuntivi: interno, stabile, etc.)',
  `buyer_zip` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cap',
  `buyer_city` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome località',
  `buyer_province` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sigla provincia (se normalizzabile) o valore nativo del marketplace',
  `buyer_country` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice  ISO3166-1 Alpha 3 della nazione (se normalizzabile) o valore nativo del marketplace',
  `buyer_latitude` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'per geolocalizzazione',
  `buyer_longitude` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'per geolocalizzazione',
  `buyer_phone` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'telefono',
  `buyer_fax` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fax',
  `buyer_mobile` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cellulare',
  `note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note generali sul customer',
  `buyer_name_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome (destinazione diversa)',
  `buyer_address1_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo (via e civico) compratore (destinazione diversa)',
  `buyer_address2_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo (dati aggiuntivi) compratore (destinazione diversa)',
  `buyer_zip_dd` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cap (destinazione diversa)',
  `buyer_city_dd` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'località (destinazione diversa)',
  `buyer_province_dd` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice provincia (destinazione diversa); valore preso da loc_province se normalizzabile altrimenti si usa il valore nativo',
  `buyer_country_dd` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO3166-1 Alpha 3 della nazione (destinazione diversa); valore preso da loc_country se normalizzabile altrimenti si usa il valore nativo',
  `buyer_latitude_dd` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'latitudine compratore (destinazione diversa) per geolocalizzazione',
  `buyer_longitude_dd` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'longitudine compratore (destinazione diversa) per geolocalizzazione',
  `buyer_phone_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'telefono (destinazione diversa)',
  `buyer_fax_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fax (destinazione diversa)',
  `buyer_mobile_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cellulare (destinazione diversa)',
  `shipping_note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note di spedizione',
  `paypal_transaction_id` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice transazione paypal',
  `buyer_invoice_ecode` varchar(20) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'fatturazione elettronica, codice destinatario',
  `buyer_pec` varchar(100) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'posta elettronica certificata',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `buyer_email` (`buyer_email`),
  KEY `buyer_pec` (`buyer_pec`),
  KEY `buyer_user_id` (`buyer_user_id`),
  KEY `buyer_vat` (`buyer_vat`),
  KEY `buyer_fiscal_code` (`buyer_fiscal_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='anagrafica compratori (clienti); è popolata a mano o dalle procedure di scarico ordini, i campi buyer_email/fiscal_code/vat, se valorizzati, sono usati come chiavi per evitare la duplicazione delle anagrafiche';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `customer`
--

LOCK TABLES `customer` WRITE;
/*!40000 ALTER TABLE `customer` DISABLE KEYS */;
/*!40000 ALTER TABLE `customer` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `listing`
--

DROP TABLE IF EXISTS `listing`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `listing` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `product` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del product (product.id) da cui origina questo listing',
  `shop` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dello shop (shop.id) a cui appartiene questo listing',
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'catalog.id a cui appartiene il product da cui origina il listing',
  `status` enum('none','pending','waiting','done') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stato di elaborazione del listing in relazione alle operazioni sul marketplace',
  `action` enum('none','insert','update','close','delete') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'identifica l''azione da effettuare (di norma calcolata a seguito di una importazione listino o forzata dall''utente)',
  `next_action` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'utilizzato per memorizzare il valore da impostare sul campo action quando non può essere fatto immediatamente perchè il listing è in elaborazione',
  `sku` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sku offerta calcolata a partire dai dati di product; ogni sku è tassativamente prefissato dai due id [shop]_[product]_',
  `url` text COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'link all''inserzione, valorizzata dal driver ove disponibile',
  `listing_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco inserzione assegnato dal marketplace',
  `last_listing_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'ultimo valore non vuoto di listing_id',
  `message_class` enum('none','fatal','error','warning','info') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'classe del messaggio associato all''ultima action elaborata (none: non specificato, fatal: errore permanente nel senso che ripetere la stessa action produrrà lo stesso errore; error (errore), warning (operazione completata con avviso), info (informazioni di corredo fornite dal marketplace)',
  `message_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '\'\'' COMMENT 'messaggio associato all''elaborazione dell''ultima action',
  `message_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice errore',
  `channel_category` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  `channel_condition` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice di condizione prodotto (nuovo, usato, etc); se vuoto si assume che il prodotto è nuovo (ovvero non viene inviata la condizione al marketplace); i codici variano in funzione del marketplace',
  `title` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'titolo del listing (calcolato a partire dai dati di product)',
  `description` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'descrizione del listing (calcolato a runtime a partire dai dati di product, non viene salvato nel db per motivi di performance)',
  `quantity` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'quantità del listing (calcolato a partire dai dati di product)',
  `price` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo del listing (calcolato a partire dai dati di product)',
  `price_noshipping` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo al netto delle spese di spedizione',
  `vat_perc` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 'iva percentuale',
  `variations` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json delle varianti; i valori dei campi non specificati sono ereditati dal listing (es: price)',
  `priority` int(11) NOT NULL DEFAULT 0 COMMENT 'listing a priorità più alta debbono essere elaborati prima',
  `lowest_price` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo della miglior offerta disponibile sul marketplace',
  `lowest_price_date` datetime DEFAULT NULL COMMENT 'data in cui è stato scaricato il prezzo della miglior offerta',
  `skip` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica che l''inserzione non deve essere sincronizzata con il marketplace (usato in caso di errori persistenti)',
  `skip_reason` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'motivazione per cui skip=1',
  `update_description` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0 per indicare al sistema che il campo descritpion non deve essere inviato al marketplace',
  `run_request` bigint(20) unsigned DEFAULT NULL COMMENT 'id della run_request in corso di elaborazione associata al listing',
  `shipping_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata nell''''ultima elaborazione effettuata per calcolo shipping',
  `payment_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata nell''''ultima elaborazione effettuata per calcolo payment',
  `markup_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata nell''''ultima elaborazione effettuata per calcolo di price',
  `template_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata per il calcolo di description',
  `title_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata per il calcolo di title',
  `quantity_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata per il calcolo di quantity',
  `policy_rule` bigint(20) unsigned DEFAULT NULL COMMENT 'shop_rule applicata per le condizioni di restituzione, ubicazione merce, etc.',
  `fields_lock` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco separato da , dei campi che non debbono essere sovrascritti dalle procedure che calcolano le inserzioni (di norma è vuoto)',
  `work_flag` int(11) NOT NULL DEFAULT 0 COMMENT 'usato per marcare il record durante le lavorazioni',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `uuid` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'global unique id: utilizzato per identificare il nostro listing presso il marketplace',
  `price_shipping1` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo spedizione calcolato',
  `price_shipping2` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping3` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping4` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping5` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping6` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional1` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo spedizione oggetto aggiuntivo',
  `fee_additional2` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional3` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional4` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional5` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional6` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `delivery_days` int(11) NOT NULL DEFAULT 0 COMMENT 'giorni per preparare la spedizione',
  `driver_data` text COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json di dati gestiti esclusivamente dal driver',
  `active` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il listing è caricato sul marketplace',
  `extra_info` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json per informazioni extra come la history degli aggiornamenti',
  `price_b2b` varchar(1024) COLLATE utf8_unicode_ci DEFAULT NULL,
  `markup_b2b_rule` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `shop_product` (`shop`,`product`),
  KEY `product` (`product`),
  KEY `listing_id` (`listing_id`),
  KEY `message_class` (`message_class`),
  KEY `action` (`action`),
  KEY `catalog` (`catalog`),
  KEY `sku` (`sku`),
  KEY `message_code` (`message_code`),
  KEY `skip` (`skip`),
  KEY `status` (`status`),
  KEY `rsa` (`run_request`,`status`,`action`),
  KEY `ssc` (`shop`,`status`,`catalog`),
  KEY `shop_catalog` (`shop`,`catalog`),
  KEY `active` (`active`),
  CONSTRAINT `listing_ibfk_1` FOREIGN KEY (`shop`) REFERENCES `shop` (`id`),
  CONSTRAINT `listing_ibfk_2` FOREIGN KEY (`product`) REFERENCES `product` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED COMMENT='tabella delle offerte (inserzioni) pubblicate sui vari marketplace da una data company';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `listing`
--

LOCK TABLES `listing` WRITE;
/*!40000 ALTER TABLE `listing` DISABLE KEYS */;
/*!40000 ALTER TABLE `listing` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `listing_history`
--

DROP TABLE IF EXISTS `listing_history`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `listing_history` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `product` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del product (product.id) da cui origina questo listing_history',
  `shop` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dello shop (shop.id) a cui appartiene questo listing_history',
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'catalog.id a cui appartiene il product da cui origina il listing',
  `sku` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sku storicizzato (calcolato a partire da product.sku)',
  `listing_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco del listing assegnato dal marketplace',
  `action` enum('none','insert','update','close','delete') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'action che ha prodotto questa storicizazione',
  `quantity` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'quantità storicizzata',
  `price` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo storicizzato',
  `extra_info` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json di eventuali altri dati storicizzati',
  `price_b2b` varchar(1024) COLLATE utf8_unicode_ci DEFAULT NULL,
  `markup_b2b_rule` bigint(20) DEFAULT NULL,
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `uuid` varchar(50) COLLATE utf8_unicode_ci DEFAULT '',
  `price_shipping1` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping2` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping3` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping4` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping5` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `price_shipping6` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional1` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional2` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional3` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional4` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional5` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `fee_additional6` decimal(11,4) NOT NULL DEFAULT 0.0000,
  `delivery_days` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `shop_product` (`shop`,`product`),
  KEY `product` (`product`),
  CONSTRAINT `listing_history_ibfk_1` FOREIGN KEY (`shop`) REFERENCES `shop` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `listing_history_ibfk_2` FOREIGN KEY (`product`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='storicizzazione dei listing; viene aggiunto un record per ogni operazione (action) completata con successo sul marketplace di destinazione';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `listing_history`
--

LOCK TABLES `listing_history` WRITE;
/*!40000 ALTER TABLE `listing_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `listing_history` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `message`
--

DROP TABLE IF EXISTS `message`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `message` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `account` bigint(20) unsigned DEFAULT NULL COMMENT 'se valorizzato il messaggio è visibile solo da quell''account',
  `priority` enum('none','low','medium','high','highest') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'priorità del messaggio',
  `shop` bigint(20) unsigned DEFAULT NULL,
  `shop_message` bigint(20) unsigned DEFAULT NULL,
  `message_date` datetime DEFAULT NULL COMMENT 'data del messaggio (ricezione o invio)',
  `expiration_date` datetime DEFAULT NULL COMMENT 'data entro cui occorre rispondere',
  `is_read` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il messaggio è stato letto',
  `message` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'testo del messaggio',
  `message_info` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json contenente ulteriori informazioni relative al messaggio',
  `from_email` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `from_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `subject` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'oggetto del messaggio',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `expiration_date` (`expiration_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='message scambiati tra seller e buyer rispetto ai vari channel';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `message`
--

LOCK TABLES `message` WRITE;
/*!40000 ALTER TABLE `message` DISABLE KEYS */;
/*!40000 ALTER TABLE `message` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `olap_cube`
--

DROP TABLE IF EXISTS `olap_cube`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `olap_cube` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `count_listing` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'conteggio listing',
  `marketplace` bigint(20) unsigned NOT NULL COMMENT 'markeplace di riferimento marketplace.id',
  `channel` bigint(20) unsigned NOT NULL COMMENT 'canale del markeplace di riferimento channel.id',
  `action` enum('none','insert','update','close','delete') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'identifica l''azione da effettuare (di norma calcolata a seguito di una importazione listino o forzata dall''utente)',
  `message_class` enum('none','fatal','error','warning','info') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'classe del messaggio associato all''ultima action elaborata (none: non specificato, fatal: errore permanente nel senso che ripetere la stessa action produrrà lo stesso errore; error (errore), warning (operazione completata con avviso), info (informazioni di corredo fornite dal marketplace)',
  `skip` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica indica listing da non caricare',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'catalog.id a cui appartiene il product da cui origina il dato',
  `message_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice errore',
  `active` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il listing è caricato sul marketplace',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='dati per olap';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `olap_cube`
--

LOCK TABLES `olap_cube` WRITE;
/*!40000 ALTER TABLE `olap_cube` DISABLE KEYS */;
/*!40000 ALTER TABLE `olap_cube` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `order_head`
--

DROP TABLE IF EXISTS `order_head`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `order_head` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `shop` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dello shop (shop.id) da cui è stato scaricato l''ordine',
  `customer` bigint(20) unsigned DEFAULT NULL COMMENT 'id del cliente (customer.id)',
  `courier` bigint(20) unsigned DEFAULT NULL COMMENT 'id del corriere (company_courier.id)',
  `code` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ordine univoco assegnato dal marketplace',
  `code_number` bigint(11) NOT NULL DEFAULT 0 COMMENT 'codice numerico aggiuntivo al code (solo per alcuni marketplace)',
  `marketplace_code` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco del marketplace (marketplace.code)',
  `channel_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice del channel (channel.code)',
  `courier_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice corriere; è un campo di appoggio, usato dal core/driver; il dato del corriere viene gestito tramite il campo courier',
  `shipping_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice metodo di spedizione, è preso da channel_shipping (chennel_shipping.code) oppure fornito direttamente dal marketplace: i valori possibili sono l''unione dei due insiemi',
  `insurance_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice del metodo di assicurazione, è preso da channel_insurance (channel_insurance.code) oppure fornito direttamente dal marketplace: i valori possibili sono l''unione dei due insiemi',
  `payment_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice del metodo di pagamento, è preso da channel_payment (channel_payment.code) oppure fornito direttamente dal marketplace: i valori possibili sono l''unione dei due insiemi',
  `supplier_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice che identifica il fornitore, è usato come etichetta (quindi l''utente può farne quello che vuole), il riferimento preciso al fornitore sta in order_row',
  `buyer_loc_place` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'località normalizzata del buyer',
  `buyer_loc_place_dd` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'località normalizzata di destinazione diversa del buyer ',
  `merchant_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice del venditore assegnato dal marketplace (credential.merchant.id)',
  `fields_lock` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco separato da , dei campi che non debbono essere sovrascritti se si riscarica l''ordine dal marketplace (di norma è vuoto)',
  `date_order` datetime DEFAULT NULL COMMENT 'data in cui è stato effettuatol''ordine (se disponibile)',
  `reference_1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nominativo 1 di riferimento buyer',
  `reference_2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nominativo 2 di riferimento buyer',
  `buyer_user_id` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'user id assegnato dal marketplace al buyer',
  `buyer_checkout_message` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'messaggio lasciato dal buyer al momento del checkout',
  `buyer_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'email del buyer',
  `buyer_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'token di autorizzazione/identificazione del buyer (usata in rari casi)',
  `shipping_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese di spedizione',
  `shipping_insurance_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese di assicurazione spedizione',
  `marketplace_fee` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'commissioni di vendita applicate dal marketplace',
  `paypal_fee` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'commissioni di vendita paypal',
  `shipped_by_marketplace` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica che la spedizione è gestita dal marketplace (ex campo: shipping_transport_by_thirdparty)',
  `is_prime` tinyint(1) DEFAULT 0 COMMENT '1 per indicare che è un prodotto PRIME (Amazon) o in generale un prodotto ad alta qualifica per il marketplace',
  `cod_cash_only` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica che il pagamento alla consegna accetta solo contanti',
  `cod_option` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'eventuali opzioni del pagamento alla consegna',
  `cod_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese aggiuntive per il pagamento alla consegna',
  `price_discount_markup` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'eventuali sconti/maggiorazioni. la somma di tutti gli altri importi più questo deve sempre dare il valore price',
  `buyer_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome compratore',
  `buyer_address1` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo compratore (via e civico)',
  `buyer_address2` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo compratore (dati aggiuntivi: interno, stabile, etc.)',
  `buyer_zip` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cap',
  `buyer_city` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome località',
  `buyer_province` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sigla provincia (se normalizzabile) o valore nativo del marketplace',
  `buyer_country` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO3166-1 Alpha 3 della nazione (se normalizzabile) o valore nativo del marketplace',
  `buyer_latitude` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'per geolocalizzazione',
  `buyer_longitude` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'per geolocalizzazione',
  `buyer_phone` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'telefono',
  `buyer_fax` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fax',
  `buyer_mobile` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cellulare',
  `buyer_fiscal_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice fiscale',
  `buyer_vat` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'partita iva',
  `currency` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO della valuta',
  `price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'totale ordine (di norma deve essere comprensivo di tasse)',
  `status` enum('none','standby','accepted','sent','cancelled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stati di spedizione: standby (ricevuto e in attesa di accettazione), unpacked (accettato e da imballare), packed (imballtato e da spedire), sent (spedito), cancelled (annullato)',
  `status_old` enum('none','standby','accepted','sent','cancelled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stato precedente a una richiesta di cambio stato',
  `status_message` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'messaggi di errore relativi all''aggiornamento stato di spedizione sul marketplace',
  `date_payment` datetime DEFAULT NULL COMMENT 'data del pagamento',
  `date_shipping` datetime DEFAULT NULL COMMENT 'data di spedizione',
  `weight` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'peso',
  `tracking` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice di tracking della spedizione',
  `note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note generali sull''ordine',
  `payment_note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note sul pagamento',
  `buyer_name_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome (destinazione diversa)',
  `buyer_address1_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo (via e civico) compratore (destinazione diversa)',
  `buyer_address2_dd` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'indirizzo (dati aggiuntivi) compratore (destinazione diversa)',
  `buyer_zip_dd` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cap (destinazione diversa)',
  `buyer_city_dd` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'località (destinazione diversa)',
  `buyer_province_dd` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice provincia (destinazione diversa); valore preso da loc_province se normalizzabile altrimenti si usa il valore nativo',
  `buyer_country_dd` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO3166-1 Alpha 3 della nazione (destinazione diversa); valore preso da loc_country se normalizzabile altrimenti si usa il valore nativo',
  `buyer_latitude_dd` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'latitudine compratore (destinazione diversa) per geolocalizzazione',
  `buyer_longitude_dd` decimal(9,6) NOT NULL DEFAULT 0.000000 COMMENT 'longitudine compratore (destinazione diversa) per geolocalizzazione',
  `buyer_phone_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'telefono (destinazione diversa)',
  `buyer_fax_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fax (destinazione diversa)',
  `buyer_mobile_dd` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'cellulare (destinazione diversa)',
  `shipping_note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note di spedizione',
  `paypal_transaction_id` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice transazione paypal',
  `billed` int(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che l''ordine è stato fatturato (verosimilmente esportato verso software di fatturazione)',
  `tags` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco tag associate all''ordine (per filtri selettivi su tag colorate)',
  `courier_info` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json contenente informazioni aggiuntive da passare al corriere (ex-campi: 	shipping_declared_value, packs_number, pack_dimensions, courier_box_type, custom_code, custom_subcode, courier_contact)',
  `problem_description` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione di un eventuale problema associato all''ordine',
  `marketplace_payment_info` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json dei dati di pagamento effettuati dal marketplace al seller',
  `marketplace_payment_info_date` datetime DEFAULT NULL COMMENT 'data di scarico del contenuto di marketplace_payment_info',
  `shipping_cost` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese spedizione addebitate dal supplier al seller per invio merce (ex-campo: supplier_shipping_price)',
  `feedbacks` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json dei feedback degli utenti',
  `feedbacks_date` datetime DEFAULT NULL COMMENT 'data di scarico dei feedbacks',
  `content_type` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione del tipo di contenuto',
  `hidden` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che l''ordine è archiviato e NON deve essere visualizzato all''utente (gli utenti NON possono eliminare ordini ma solo archiviarli)',
  `run_request` bigint(20) unsigned DEFAULT NULL COMMENT 'id della run_request in corso di elaborazione associata all''ordine',
  `driver_info` mediumtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '\'\'' COMMENT 'blob json ad uso esclusivo del driver per salvare informazioni aggiuntive sulle transazioni eseguite',
  `marketplace_country` varchar(10) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice ISO3166-1 Alpha 3 della nazione del marketplace su cui è stato fatto l''ordine',
  `agent` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nominativo agente',
  `buyer_invoice_ecode` varchar(20) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'fatturazione elettronica, codice destinatario',
  `buyer_pec` varchar(100) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'posta elettronica certificata',
  `date_last_ship` datetime DEFAULT NULL COMMENT 'ultima data utile per la spedizione',
  `date_last_delivery` datetime DEFAULT NULL COMMENT 'ultima data utile per la consegna',
  `is_b2b` tinyint(4) DEFAULT 0 COMMENT '1 per indicare che è un ordine b2b',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `billing_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL,
  `total_tax` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'tasse complessive in valore assoluto',
  `force_profit_loss_calculation` tinyint(4) DEFAULT 0 COMMENT '1 per indicare di calcolare utile obbligatoriamente',
  `reservation` tinyint(4) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `buyer_loc_place` (`buyer_loc_place`),
  KEY `buyer_loc_place_dd` (`buyer_loc_place_dd`),
  KEY `code` (`code`) USING BTREE,
  KEY `date_order` (`date_order`),
  KEY `customer` (`customer`),
  KEY `run_request` (`run_request`),
  KEY `courier` (`courier`),
  KEY `hidden` (`hidden`) USING BTREE,
  KEY `is_prime` (`is_prime`),
  KEY `shipped_by_marketplace` (`shipped_by_marketplace`),
  KEY `is_b2b` (`is_b2b`),
  KEY `shop_date_order` (`shop`,`date_order`),
  KEY `shop` (`shop`),
  CONSTRAINT `order_head_ibfk_1` FOREIGN KEY (`shop`) REFERENCES `shop` (`id`),
  CONSTRAINT `order_head_ibfk_2` FOREIGN KEY (`customer`) REFERENCES `customer` (`id`),
  CONSTRAINT `order_head_ibfk_3` FOREIGN KEY (`courier`) REFERENCES `company_courier` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='ordini scaricati dai marketplace';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `order_head`
--

LOCK TABLES `order_head` WRITE;
/*!40000 ALTER TABLE `order_head` DISABLE KEYS */;
/*!40000 ALTER TABLE `order_head` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `order_head_supplier`
--

DROP TABLE IF EXISTS `order_head_supplier`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `order_head_supplier` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `supplier` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'riferimento a company_supplier.id',
  `code` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice dell''ordine fornitore',
  `date_pending` datetime DEFAULT NULL COMMENT 'data di trasmissione ordine al fornitore',
  `status` enum('none','pending','accepted_partial','accepted','shipped_partial','shipped','refused','standby') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stati di evasione ordine: standby (in attesa che il sistema lo invii al fornitore), pending (in attesa che il fornitore lo accetti), accepted_partial (parzialmente accettato), accepted (accettato), shipped_partial (il fornitore ha fatto una spedizione parziale), shipped (il fornitore ha spedito), refused (il fornitore rifiuta l''ordine)',
  `message_class` enum('none','info','warning','error','fatal') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'classe del messaggio di stato',
  `message_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice del messaggio di stato',
  `message_content` text COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'contenuto del messaggio di stato',
  `pending` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il record deve essere passato al driver per l''elaborazione',
  `date_accepted` datetime DEFAULT NULL COMMENT 'data di accettazione (parziale) ordine',
  `date_shipped` datetime DEFAULT NULL COMMENT 'data in cui il fornitore ha inviato l''ordine',
  `date_refused` datetime DEFAULT NULL COMMENT 'data in cui il fornitore ha rifiutato l''ordine',
  `note` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'note generali sull''ordine fornitore',
  `driver_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json che contiene i dati (dipendenti dal fornitore), non codificati in campi specifici, necessari a gestire il flusso di evasione ordine',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `order_head` (`supplier`) USING BTREE,
  KEY `status` (`status`),
  CONSTRAINT `order_head_supplier_ibfk_1` FOREIGN KEY (`supplier`) REFERENCES `company_supplier` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='ordini fornitore elaborati a partire dagli ordini cliente (order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `order_head_supplier`
--

LOCK TABLES `order_head_supplier` WRITE;
/*!40000 ALTER TABLE `order_head_supplier` DISABLE KEYS */;
/*!40000 ALTER TABLE `order_head_supplier` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `order_row`
--

DROP TABLE IF EXISTS `order_row`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `order_row` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `order_head` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della testata ordine (order_head.id)',
  `order_row_supplier` bigint(20) unsigned DEFAULT NULL COMMENT 'riferimento a order_row_supplier.id',
  `supplier` bigint(20) unsigned DEFAULT NULL COMMENT 'riferimento a company_supplier.id, shortcut per non passare attraverso order_row_supplier e order_head_supplier, inoltre permette di associare un fornitore senza che vi sia il relativo ordine',
  `order_supplier_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice ordine fornitore, per inserimento diretto senza creazione del record order_row_supplier',
  `courier_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice corriere (prevale su quello di order_head)',
  `tracking` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice tracking (prevale su quello di order_head)',
  `fields_lock` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'elenco separato da , dei campi che non debbono essere sovrascritti se si riscarica l''ordine dal marketplace (di norma è vuoto)',
  `shipping_cost` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'costo della spedizione (costo fornitore/corriere)',
  `shipping_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice del metodo di spedizione (prevale su quello in order_head se presente)',
  `transaction_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice transazione assegnato dal marketplace',
  `product_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univo del prodotto assegnato dal marketplace',
  `sku` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice SKU prodotto originato da listing, è prefissato da [shop]_[product]_ per identificare il punto di origine',
  `ean` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'codice ean',
  `brand` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'valore incrociato col pre vendita',
  `mpn` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'valore incrociato col pre vendita',
  `sku_parent` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'come per sku, solo che è relativo al prodotto padre',
  `title` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione prodotto venduto',
  `title_extra` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione ulteriore (ex-campo: title_variation)',
  `quantity` int(11) NOT NULL DEFAULT 0 COMMENT 'quantità venduta',
  `stock_unloaded` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il product associato è stato scaricato di questa order_row.quantity',
  `price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'prezzo unitario di vendita',
  `price_total` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'totale di riga a meno di price_discount_markup',
  `price_discount_markup` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'eventuali sconti/maggiorazioni (valori assoluti)',
  `price_cost` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'costo unitario del prodotto',
  `refund_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'importo rimborsato',
  `refund_date` datetime DEFAULT NULL COMMENT 'data rimborso',
  `refund_reason` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'ragione del rimborso',
  `shipping_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese di spedizione (se valorizzato deve essere coerente col dato di testata)',
  `shipping_insurance_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese di assicurazione spedizione  (se valorizzato deve essere coerente col dato di testata)',
  `date_shipping` datetime DEFAULT NULL COMMENT 'data di spedizione dell''oggetto',
  `shipping_note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note spedizione sull''oggetto',
  `cod_price` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'spese di contrassegno (se valorizzato deve essere coerente col dato di testata)',
  `marketplace_fee` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'commissioni marketplace a livello di riga (se valorizzato deve essere coerente col dato di testata)',
  `weight` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'peso unitario',
  `note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note sul prodotto acquistato',
  `vat_perc` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 'iva applicata',
  `image_url` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'immagine del prodotto',
  `category_id` varchar(100) COLLATE utf8_unicode_ci DEFAULT '''''' COMMENT 'id della categoria principale marketplace',
  `category_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT '''''' COMMENT 'nome della categoria principale marketplace',
  `date_payment` datetime DEFAULT NULL COMMENT 'data pagamento a livello di riga',
  `product_info` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json contenente informazioni del product venduto originato dal pre vendita',
  `on_demand_date` datetime DEFAULT NULL COMMENT 'data entro cui effettuare la spedizione',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `order_supplier` bigint(20) unsigned DEFAULT NULL COMMENT 'da eliminare',
  `refund_supplier_quantity` int(11) NOT NULL DEFAULT 0 COMMENT 'quantità rimborsata dal fornitore',
  `product_tax` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'tasse unitarie',
  `refund_marketplace_fee` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'commissioni marketplace rimborsate',
  `no_vat` tinyint(4) DEFAULT 0 COMMENT '1 per indicare che IVA non si applica',
  `courier_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '{}',
  PRIMARY KEY (`id`),
  KEY `order_head` (`order_head`) USING BTREE,
  KEY `order_row_supplier` (`order_row_supplier`),
  KEY `order_row_ibfk_3` (`supplier`),
  KEY `transaction_id` (`transaction_id`),
  CONSTRAINT `order_row_ibfk_1` FOREIGN KEY (`order_head`) REFERENCES `order_head` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='righe di dettaglio degli ordini (order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `order_row`
--

LOCK TABLES `order_row` WRITE;
/*!40000 ALTER TABLE `order_row` DISABLE KEYS */;
/*!40000 ALTER TABLE `order_row` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `order_row_supplier`
--

DROP TABLE IF EXISTS `order_row_supplier`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `order_row_supplier` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `sku` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sku prodotto ordinato',
  `order_row` bigint(20) unsigned DEFAULT NULL COMMENT 'riferimento order_row.id',
  `order_head_supplier` bigint(20) unsigned NOT NULL COMMENT 'riferimento a order_head_supplier.id',
  `status` enum('none','pending','accepted_partial','accepted','shipped_partial','shipped','refused','standby') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stati di evasione riga ordine: usato come ulteriore specifica rispetto order_head_supplier.status, se vuoto vale quest''ultimo',
  `quantity` int(11) DEFAULT NULL COMMENT 'quantità inviata',
  `quantity_confirmed` int(11) DEFAULT NULL COMMENT 'quantità confermata',
  `warehouse` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice magazzino fornitore',
  `note` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'note generali sull''ordine fornitore',
  `driver_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json che contiene i dati (dipendenti dal fornitore), non codificati in campi specifici, necessari a gestire il flusso di evasione riga ordine',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `order_head_supplier` (`order_head_supplier`),
  KEY `sku` (`sku`),
  KEY `status` (`status`),
  KEY `order_row` (`order_row`),
  CONSTRAINT `order_row_supplier_ibfk_1` FOREIGN KEY (`order_head_supplier`) REFERENCES `order_head_supplier` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='ordini fornitore elaborati a partire dagli ordini cliente (order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `order_row_supplier`
--

LOCK TABLES `order_row_supplier` WRITE;
/*!40000 ALTER TABLE `order_row_supplier` DISABLE KEYS */;
/*!40000 ALTER TABLE `order_row_supplier` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `product`
--

DROP TABLE IF EXISTS `product`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `product` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'catalogo di origine',
  `sku` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice univoco del prodotto all''interno del catalog',
  `catalog_category1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria catalogo di livello 1',
  `catalog_category2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria catalogo di livello 2',
  `catalog_category3` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria catalogo di livello 3',
  `channel_categories` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json delle categorie di pubblicazione del prodotto su specifici marketplace (channel); serve a bypassare la compilazione di shop_category_map lavorando direttamente sui singoli prodotti a monte (v. listing.channel_category); la forma dle json é {categories: [{channel: channel.id , category_id: ...}, ...]}',
  `condition_code` enum('none','new','used','refurbished_seller','refurbished_manufacturer','like_new','used_very_good','used_good','used_fairly_good') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'condizione del prodotto',
  `condition_description` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione della condizione',
  `sku_label` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sku parlante o alternativo usato in casi rarissimi; non sostituisce lo sku ma può essere usato per l''invio al marketplace al posto di sku; ex-campo: label_input',
  `title` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'titolo',
  `subtitle` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'sottotitolo',
  `description` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione dettagliata',
  `description_changed` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il campo descritpion è stato modificato',
  `description_extra` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione extra',
  `brand` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'marchio (o produttore); questi valori vanno a popolare catalog_brand',
  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ISO 639-1 della lingua',
  `quantity` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'quantità',
  `availability` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 indica che il prodotto è disponibile; normalmente è usato in alternativa a quantity ma se sono usati entrambi allora vanno sempre in OR',
  `url` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url della scheda prodotto',
  `url_image1` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image2` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image3` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image4` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image5` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image6` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image7` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image8` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `url_image9` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url immagine',
  `price1` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price2` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price3` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price4` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price5` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price6` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'prezzo',
  `price_cost` decimal(11,4) DEFAULT 0.0000 COMMENT 'costo del prodotto',
  `price_shipping1` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `price_shipping2` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `price_shipping3` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `price_shipping4` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `price_shipping5` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `price_shipping6` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione',
  `fee_additional1` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `fee_additional2` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `fee_additional3` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `fee_additional4` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `fee_additional5` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `fee_additional6` decimal(11,4) NOT NULL DEFAULT 0.0000 COMMENT 'spese spedizione per oggetto aggiuntivo',
  `vat_perc` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT 'iva percentuale',
  `ean` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice ean',
  `ean_new` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'valore che deve sostituire il valore di ean appena possibile, - per indicare che ean dovrà essere svuotato',
  `isbn` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice isbn',
  `mpn` varchar(150) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice produttore',
  `asin` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice prodotto amazon',
  `fupid` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice prodotto pix_place',
  `weight` decimal(11,3) NOT NULL DEFAULT 0.000 COMMENT 'peso',
  `weight_um` varchar(5) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'sigla unità di misura del peso',
  `raee` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'tassa raee',
  `variations` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json delle varianti',
  `is_variation` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il prodotto è parte di un set di varianti',
  `extra1` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra2` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra3` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra4` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra5` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra6` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra7` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra8` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `extra9` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'campo extra (jolly)',
  `item_note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note oggetto',
  `import_action` enum('none','insert','update','deplete','delete') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'azione eseguita in fase di importazione: insert (prodotto nuovo), update (prodotto variato), deplete (prodotto esaurito), delete (prodotto uscito dal listino)',
  `delivery_days` int(11) NOT NULL DEFAULT 0 COMMENT 'giorni necessari a preparare la spedizione',
  `compatibility` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'blob json contenente la chiave compatibility che punta ha un array di coppie  di attributi name, value',
  `attributes` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json delle item specifics, attributi aggiuntivi dell''oggetto',
  `channel_flags` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'marcatori usati per indicare che il prodotto è stato inviato almeno una volta su determinati channel',
  `run_request` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della run_request in corso di elaborazione associata al product',
  `on_demand` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il prodotto non è immediatamente disponibile',
  `on_demand_days` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'numero di giorni entro cui effettuare la spedizione al buyer, da usare solo se on_demand=1',
  `fields_lock` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'elenco separato da , dei campi soggetti a blocco dati perché gestiti a mano',
  `warehouse` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice del magazzino da cui proviene il prodotto',
  `extra_info` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob josn di info extra sul prodotto',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `has_variations` tinyint(3) unsigned GENERATED ALWAYS AS (case when (`variations` = '' or `variations` is null or `variations` = '[]') then 0 else json_valid(`variations`) end) STORED,
  `checks` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '{}' COMMENT 'blob json di checks sul prodotto',
  `promo` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il prodotto è in promo',
  PRIMARY KEY (`id`),
  KEY `sku` (`sku`),
  KEY `ean` (`ean`),
  KEY `catalog_category_123` (`catalog_category1`,`catalog_category2`,`catalog_category3`),
  KEY `import_action` (`import_action`),
  KEY `catalog_category2` (`catalog_category2`) USING BTREE,
  KEY `catalog_category3` (`catalog_category3`) USING BTREE,
  KEY `ean_new` (`ean_new`),
  KEY `asin` (`asin`),
  KEY `has_variations` (`has_variations`),
  KEY `isbn` (`isbn`),
  KEY `mpn` (`mpn`),
  KEY `brand_catalog` (`brand`,`catalog`),
  KEY `catalog_sku` (`catalog`,`sku`),
  CONSTRAINT `product_ibfk_1` FOREIGN KEY (`catalog`) REFERENCES `catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED COMMENT='anagrafica dei prodotti';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `product`
--

LOCK TABLES `product` WRITE;
/*!40000 ALTER TABLE `product` DISABLE KEYS */;
/*!40000 ALTER TABLE `product` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `run_request`
--

DROP TABLE IF EXISTS `run_request`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `run_request` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `account` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dell''account (account.id) che ha creato la run_request',
  `company` bigint(20) NOT NULL DEFAULT 0 COMMENT 'id della company (company.id) da cui origina questa richiesta',
  `run_schedule` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'eventuale id della run_schedule che ha generato questa run_request',
  `object_ids` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'lista di id dei record oggetto della run_request',
  `object_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome dell''entità i cui id sono in object_ids; vuoto in caso si tratti di una attività di sistema',
  `status` enum('none','pending','fetching','working','waiting','done','cancelled','suspended') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stato della richiesta: pending (in attesa di essere evasa), fetching (letta ma non ancora presa in carico), working (un task la sta elaborando), waiting (in attesa di elaborazioni esterne: non c''è un task attivo), done (completata), cancelled (annullata), suspended (temporaneamente sospesa)',
  `message` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'messaggio da visualizzare all''utente relativamente all''esecuzione (in corso o terminata)',
  `description` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione della richiesta',
  `exit_code` enum('none','error','ok') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'indica l''esito al termine della esecuzione (status=done), error (esecuzione fallita, questa condizione in genera intende un fallimento generale con rollback dei dati), ok (esecuzione avvenuto con successo)',
  `crash` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 indica che il processo che evadeva la run_request è crashato',
  `operation` enum('none','order_download','catalog_import','listing_upload','listing_download','order_upload','system','schedule_rebuild','company_maintainance','catalog_delete','listing_action_update') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'operazione da effettuare: order_download (scarico ordini), catalog_import (importazione catalogo), listing_upload (invio inserzioni), listing_download (scarico inserzioni/inventario), order_upload (aggiornamento ordini), other (altre operazioni), schedule_rebuild (riallinea company scheduling)',
  `arguments` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json con argomenti aggiuntivi da passare alla run_request',
  `driver_data` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json di dati provenienti dal driver utilizzato; il blob viene inviato al driver per la gestione asincrona delle chiamate',
  `priority` int(11) NOT NULL DEFAULT 0 COMMENT 'priorità: maggiore è il valore prima verrà evasa la richiesta',
  `simulation` enum('none','marketplace') COLLATE utf8_unicode_ci DEFAULT 'none' COMMENT 'usate per eseguire le run_request simulando certe caratteristiche invece che eseguirle direttamente',
  `runner` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'informazioni sul processo/thread che ha correntemente in carico la richiesta',
  `pid` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'pid del processo',
  `run_command` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'comando eseguito per elaborare la richiesta',
  `run_log` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'log delle principali operazioni effettuate; serve agli amministratore per identificare e gestire eventuali problemi',
  `run_start` datetime DEFAULT NULL COMMENT 'data inizio elaborazione',
  `run_end` datetime DEFAULT NULL COMMENT 'data di fine elaborazione',
  `run_not_before` datetime DEFAULT NULL COMMENT 'eventuale data non prima della quale avviare l''elaborazione',
  `log_level` enum('none','trace','debug','error','warning','info') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none',
  `created` datetime(5) NOT NULL DEFAULT current_timestamp(5),
  `modified` datetime(5) NOT NULL DEFAULT current_timestamp(5),
  `pre_run_request` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'eventuale elenco separato da , di run_request.id che debbono completarsi prima che venga eseguita quella corrente',
  `pre_run_request_check` enum('none','all_ok','any_ok','all_error','any_error') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'indica il tipo di verifica da fare sulle richieste indicate in pre_run_request',
  `extra_info` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'campo json che contiene informazioni aggiuntive',
  PRIMARY KEY (`id`),
  KEY `created` (`created`),
  KEY `status` (`status`) USING BTREE,
  KEY `object_type` (`object_type`),
  KEY `operation` (`operation`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED COMMENT='coda delle richieste da evadere';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `run_request`
--

LOCK TABLES `run_request` WRITE;
/*!40000 ALTER TABLE `run_request` DISABLE KEYS */;
/*!40000 ALTER TABLE `run_request` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `run_schedule`
--

DROP TABLE IF EXISTS `run_schedule`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `run_schedule` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `account` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dell''account (acocunt.id) per il quale è schedulata l''attività',
  `company` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della company (company.id) per il quale è schedulata l''attività',
  `object_ids` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'lista di id dei record oggetto della run_request',
  `enabled` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica che la schedulazione è abilitata e deve generare una run_request',
  `object_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome dell''entità i cui id sono in object_ids; vuoto in caso non ci sia una dipendenza da una unica entità (es: scarico ordini)',
  `operation` enum('none','order_download','catalog_import','listing_upload','listing_download','order_upload','company_maintainance') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'operazione da effettuare: order_download (scarico ordini), catalog_import (importazione catalogo), listing_upload (invio inserzioni), listing_download (scarico inserzioni/inventario), order_upload (aggiornamento ordini), other (altre operazioni)',
  `arguments` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json con argomenti aggiuntivi da passare alla run_request',
  `priority` int(11) NOT NULL DEFAULT 0 COMMENT 'priorità predefinita con cui deve essere generata la relativa run_request',
  `run_when` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che indica quando effettuare l''esecuzione',
  `run_last` datetime DEFAULT NULL COMMENT 'data in cui il record è stato processato l''ultima volta',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='definizione dei task da eseguire periodicamente';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `run_schedule`
--

LOCK TABLES `run_schedule` WRITE;
/*!40000 ALTER TABLE `run_schedule` DISABLE KEYS */;
/*!40000 ALTER TABLE `run_schedule` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shipping_info`
--

DROP TABLE IF EXISTS `shipping_info`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shipping_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `code` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice spedizione',
  `order_head` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'riferimento a order_head.id',
  `tracking` varchar(255) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice/numero tracking attribuito dal corriere; in linea di massima è uguale al code',
  `date_request` date DEFAULT NULL,
  `date_accept` date DEFAULT NULL,
  `date_pick` date DEFAULT NULL,
  `date_delivery` date DEFAULT NULL,
  `date_got_back` date DEFAULT NULL,
  `date_cancel` date DEFAULT NULL,
  `status` enum('none','requested','request_warning','request_error','accepted','transit','delivered','got_back','cancelled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stati di evasione ordine: standby (in attesa che il sistema lo invii al fornitore), pending (in attesa che il fornitore lo accetti), accepted_partial (parzialmente accettato), accepted (accettato), shipped_partial (il fornitore ha fatto una spedizione parziale), shipped (il fornitore ha spedito), refused (il fornitore rifiuta l''ordine)',
  `message_class` enum('none','info','warning','error','fatal') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'classe del messaggio associato all''''ultima action elaborata (none: non specificato, fatal: errore permanente nel senso che ripetere la stessa action produrrà lo stesso errore; error (errore), warning (operazione completata con avviso), info (informazioni di corredo fornite dal corriere)',
  `message_content` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'messaggio associato all''''elaborazione dell''''ultima action',
  `message_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'codice errore',
  `pending` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il record deve essere passato al driver per l''elaborazione',
  `status_date` date DEFAULT NULL COMMENT 'data di modifica stato',
  `note` text COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'note sulla spedizione da poter appoore da parte del seller',
  `driver_info` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'driver_info: blob json ad uso esclusivo del driver per salvare informazioni aggiuntive sulle transazioni eseguite',
  `label1` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label2` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label3` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label4` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label5` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label6` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label7` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label8` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label9` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `label10` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere il pdf stampabile dell''etichetta/manifest/lettera di vettura da applicare al pacco',
  `tracking_history` longtext COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'buffer destinato a contenere l''ultimo resoconto di tracking restituito dal corriere; ogni rilevamento separato da newline',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `order_head` (`order_head`) USING BTREE,
  KEY `status` (`status`),
  CONSTRAINT `shipping_info_ibfk_1` FOREIGN KEY (`order_head`) REFERENCES `order_head` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='ordini fornitore elaborati a partire dagli ordini cliente (order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shipping_info`
--

LOCK TABLES `shipping_info` WRITE;
/*!40000 ALTER TABLE `shipping_info` DISABLE KEYS */;
/*!40000 ALTER TABLE `shipping_info` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shop`
--

DROP TABLE IF EXISTS `shop`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shop` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `company` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della company (company.id) cui questo shop appartiene',
  `channel` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id del channel (channel.id) a cui questo shop è collegato',
  `credential` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id della credential (credential.id) che permette di accedere al channel del marketplace',
  `status` enum('none','active','disabled','blocked') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'lo stato dello shop deve essere active affinchè i dati associati possano essere elaborati in relazione alle operazioni da eseguire sul channel, blocked è impostato solo dagli admin e ha lo stesso effetto di disabled',
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione breve dello shop (etichetta)',
  `description` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'descrizione dettagliata dello shop/eventuali note',
  `setting` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che contiene le configurazioni dello shop (es: ex campi return_time, return_instructions, allow_duplicated_ean,	automatisms, shipping_from_info, action_on_missing_data, skip_deplete_deletion, skip_deplete_deletion_msg, upload_url, upload_username, upload_password, upload port, upload_passive, upload_whole_catalog,	upload_to_system, delete_on_error)',
  `product_template` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che contiene specifiche per caricamento nuovi prodotti: definito a partire da un channel_template  (usato solo nei casi in cui le specifiche variano per company, ad esempio per gli e-commerce)',
  `listing_template` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che contiene specifiche per scarico ordini: definito a partire da uno o più channel_template (usato solo nei casi in cui le specifiche variano per company, ad esempio per gli e-commerce)',
  `order_template` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che contiene specifiche per scarico ordini: definito a partire da uno o più channel_template (usato solo nei casi in cui le specifiche variano per company, ad esempio per gli e-commerce)',
  `used_for` enum('none','post_sales','pre_sales') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'finalità d''uso dello shop; es: per scaricare gli ordini amazon di una data credential dovrà esserci uno shop (post_sales) per ogni channel, mentre per pixplace sono previste credential distinte per channel e quindi uno shop solo (post_sales) per ogni credential ',
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `channel_2` (`channel`,`credential`,`used_for`),
  KEY `company` (`company`),
  KEY `credential` (`credential`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='contenitore di dati associati a un channel (listing oppure order); è alimentato dai product di catalog dagli order_head scaricati dal channel associato allo shop';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shop`
--

LOCK TABLES `shop` WRITE;
/*!40000 ALTER TABLE `shop` DISABLE KEYS */;
/*!40000 ALTER TABLE `shop` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shop_catalog`
--

DROP TABLE IF EXISTS `shop_catalog`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shop_catalog` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `shop` bigint(20) unsigned DEFAULT 0 COMMENT 'id dello shop (shop.id)',
  `catalog` bigint(20) unsigned DEFAULT 0 COMMENT 'id del catalog (catalog.id)',
  `status` enum('none','active','disabled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'stato del catalog; deve essere active affinchè venga incluso nelle operazioni di elaborazione',
  `setting` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'impostazioni da utilizzare per l''elaborazione di un catalog di un dato shop (contiene ad esempio ex-campi quali: shp_capitalized_words, shp_category_level, action_block_perc, last_import_date va in shop_catalog)',
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `shop_2` (`shop`,`catalog`),
  KEY `catalog` (`catalog`),
  CONSTRAINT `shop_catalog_ibfk_1` FOREIGN KEY (`shop`) REFERENCES `shop` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `shop_catalog_ibfk_2` FOREIGN KEY (`catalog`) REFERENCES `catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='definisce l''associazione dei catalog sui vari shop, ovvero i dati di origine per popolare lo shop a partire dai catalog';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shop_catalog`
--

LOCK TABLES `shop_catalog` WRITE;
/*!40000 ALTER TABLE `shop_catalog` DISABLE KEYS */;
/*!40000 ALTER TABLE `shop_catalog` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shop_category_map`
--

DROP TABLE IF EXISTS `shop_category_map`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shop_category_map` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `shop_catalog` bigint(20) unsigned NOT NULL COMMENT 'id in shop_catalog',
  `channel_templates` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json che contiene gli identificati dei channel_template (channel_template.id) da utilizzare in situazioni in cui la struttura delle richieste dipende dal contenuto dei dati (es: caricamento nuovi prodotti su Amazon usa modelli differenti a seconda della macrocategoria)',
  `catalog_category1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'categoria catalogo 1',
  `catalog_category2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'categoria catalogo 2',
  `catalog_category3` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'categoria catalogo 3',
  `shop_category1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria shop 1',
  `shop_category2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria shop 2',
  `shop_category3` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'nome categoria shop 3',
  `shop_category_id` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'id assegnato dal marketplace alle tripla di shop_category1,2,3',
  `channel_category` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  `tax_code` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'codice IVA comunicato al marketplace',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `shop_category_map_ibfk_1` (`shop_catalog`),
  KEY `catalog_category1` (`catalog_category1`),
  KEY `catalog_category2` (`catalog_category2`),
  KEY `catalog_category3` (`catalog_category3`),
  CONSTRAINT `shop_category_map_ibfk_1` FOREIGN KEY (`shop_catalog`) REFERENCES `shop_catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='mappa delle categorie catalogo (catalog_category1,2,3) sulle categorie channel (channel_category.category_id), serve principalmente a determine le commissioni che verranno applicate; il legame con channel_template avviene tramite channel_templates limitatamente ai casi in cui la forma della comunicazione col marketplace varia in funzione dei dati';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shop_category_map`
--

LOCK TABLES `shop_category_map` WRITE;
/*!40000 ALTER TABLE `shop_category_map` DISABLE KEYS */;
/*!40000 ALTER TABLE `shop_category_map` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shop_message`
--

DROP TABLE IF EXISTS `shop_message`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shop_message` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `shop` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'id dello shop (shop.id) a cui il messaggio è associato; lo shop identifica la credenziale e il channel da cui origina il messaggio',
  `message_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'id del messaggio assegnato dal channel o da sellrapido nel caso il messaggio origini da sellrapido',
  `order_code` varchar(50) COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'codice ordine a cui il messaggio fa riferimento',
  `order_info` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json contenente evnetuali altr einformazioni sull''ordine (item_id, item_tite, etc.)',
  `message_date` datetime DEFAULT NULL COMMENT 'data del messaggio (ricezione o invio)',
  `expiration_date` datetime DEFAULT NULL COMMENT 'data entro cui occorre rispondere',
  `is_read` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che il messaggio è stato letto',
  `is_replied` int(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che questo messaggio è stato risposto',
  `is_response_allowed` int(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che si può rispondere al messaggio',
  `is_response_public` int(1) NOT NULL DEFAULT 0 COMMENT '1 per indicare che la risposta è visibile a tutti nell''inserzione associato al prodotto acquistato',
  `message` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'testo del messaggio',
  `message_info` longtext COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'blob json contenente ulteriori informazioni relative al messaggio (es: response url di eBay)',
  `subject` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'oggetto del messaggio',
  `from_email` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'email del mittente',
  `from_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT '''''' COMMENT 'nome del mittente',
  `to_email` text COLLATE utf8_unicode_ci DEFAULT '' COMMENT 'email del destinatario',
  `to_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT '''''' COMMENT 'nome del destinatario',
  `origin` enum('none','sellrapido','marketplace') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'indica l''origine del messaggio (sellrapido: spedito dall''interfaccia web, marketplace: scaricato dal marketplace)',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `catalog_template` (`message_id`),
  KEY `shop_order_code` (`shop`,`order_code`),
  CONSTRAINT `shop_message_ibfk_1` FOREIGN KEY (`shop`) REFERENCES `shop` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='message scambiati tra seller e buyer rispetto ai vari channel';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shop_message`
--

LOCK TABLES `shop_message` WRITE;
/*!40000 ALTER TABLE `shop_message` DISABLE KEYS */;
/*!40000 ALTER TABLE `shop_message` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `shop_rule`
--

DROP TABLE IF EXISTS `shop_rule`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `shop_rule` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `shop_catalog` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT 'identifica il catalog all''interno dello shop a cui si applica la shop_rule',
  `rule_type` enum('none','shipping','payment','markup','template','filter','title','quantity','policy','markup_b2b','gpsr_manufacturer','gpsr_responsible_persons','gpsr_product_safety','gpsr_hazmat') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'none' COMMENT 'tipo di regola',
  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'breve descrizione',
  `note` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'note inserite dall''utente',
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'filtro sul campo title',
  `catalog_category1` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fltro su category1 di product',
  `catalog_category2` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fltro su category2 di product',
  `catalog_category3` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'fltro su category3 di product',
  `price_start` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su price1 di product (prezzo minimo)',
  `price_end` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su price1 di product (prezzo massimo)',
  `weight_start` decimal(11,3) NOT NULL DEFAULT 0.000 COMMENT 'filtro su weight di product (peso minimo)',
  `weight_end` decimal(11,3) NOT NULL DEFAULT 0.000 COMMENT 'filtro su weight di product (peso massimo)',
  `brands` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco separato da , dei brand a cui si applica questa shop_rule',
  `skus` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco separato da , degli sku a cui si applica questa shop_rule',
  `eans` text COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'elenco separato da , degli ean a cui si applica questa shop_rule',
  `inclusive` int(1) NOT NULL DEFAULT 0 COMMENT '1 indica che è una regola di inclusione',
  `priority` int(11) NOT NULL DEFAULT 0 COMMENT 'la prima regola che fa match in ordine di priorità è quella applicata',
  `quantity_start` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su quantity di product (quantità minima)',
  `quantity_end` decimal(11,2) NOT NULL DEFAULT 0.00 COMMENT 'filtro su quantity di product (quantità massima)',
  `setting` longtext COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'blob json dei settings da utilizzare per calcolare gli effetti della shop_rule sui dati matchati',
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `delivery_days_min` int(11) NOT NULL DEFAULT 0 COMMENT 'filtro su delivery_days di product (delivery_days minimo)',
  `delivery_days_max` int(11) NOT NULL DEFAULT 0 COMMENT 'filtro su delivery_days di product (delivery_days massimo)',
  PRIMARY KEY (`id`),
  KEY `shop_catalog` (`shop_catalog`),
  CONSTRAINT `shop_rule_ibfk_1` FOREIGN KEY (`shop_catalog`) REFERENCES `shop_catalog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='definizione delle regole da applicare ai dati da pubblicare (per trasformare product in listing) oppure ai dati scaricati (es: order_head)';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `shop_rule`
--

LOCK TABLES `shop_rule` WRITE;
/*!40000 ALTER TABLE `shop_rule` DISABLE KEYS */;
/*!40000 ALTER TABLE `shop_rule` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `statistic`
--

DROP TABLE IF EXISTS `statistic`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `statistic` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `content` longtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'blob json che contiene i dati della statistica',
  `expire` datetime NOT NULL COMMENT 'data che indica quando la statistica scade',
  `statistic_type` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'identifica la tipologia della statistica',
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='cache statistiche web';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `statistic`
--

LOCK TABLES `statistic` WRITE;
/*!40000 ALTER TABLE `statistic` DISABLE KEYS */;
/*!40000 ALTER TABLE `statistic` ENABLE KEYS */;
UNLOCK TABLES;
/*!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-01-27  0:00:03
