
# ---------------------------------------------------------------------- #
# Modify table "ARTICOLO"                                                #
# ---------------------------------------------------------------------- #

ALTER TABLE `ARTICOLO` ADD COLUMN `flgEscludiWeb` INTEGER;

# ---------------------------------------------------------------------- #
# Modify table "TIPO"                                                    #
# ---------------------------------------------------------------------- #

ALTER TABLE `TIPO` ADD COLUMN `flgEscludiWeb` INTEGER;


# ---------------------------------------------------------------------- #
# Add table "ORDINE"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `ORDINE` (
    `id_ordine` INTEGER NOT NULL AUTO_INCREMENT,
    `id_usersCliente` INTEGER,
    `dataOrdine` DATE,
    `nota` TEXT,
    `flgStato` INTEGER,
    `costoSpedizione` DECIMAL(18,4),
    `notaCliente` TEXT,
    `flgTipoPagamento` INTEGER,
    `lastUpdId_user` INTEGER,
    `lastUpdTmst` TIMESTAMP,
    `capSped` VARCHAR(10),
    `cittaSped` VARCHAR(30),
    `indirizzoSped` VARCHAR(60),
    `numeroCivicoSped` VARCHAR(10),
    `presso` VARCHAR(60),
    `provinciaSped` VARCHAR(30),
    `dataPagamento` DATE,
    `descTransaction` VARCHAR(60),
    `tracking` VARCHAR(60),
    `flgPagato` INTEGER DEFAULT 0,
    `flgExport` INTEGER DEFAULT 0,
    `id_spedizioniere` INTEGER,
    `dataRichiestaReso` DATE,
    `motivoRichiestaReso` VARCHAR(254),
    `dataAccettazioneReso` DATE,
    `dataRespintaReso` DATE,
    `motivoRespintaReso` VARCHAR(254),
    `dataConclusioneReso` DATE,
    `flgStatoReso` INTEGER,
    `percSconto` DECIMAL(5,2),
    `descrizioneSconto` VARCHAR(254),
    `flgFatt` INTEGER,
    `flgRegalo` INTEGER,
    `indSpedRegalo` VARCHAR(254),
    `testoRegalo` VARCHAR(254),
    `id_users` INTEGER,
    `dataTransazione` DATE,
    `flgProcediPagamento` INTEGER,
    CONSTRAINT `PK_ORDINE` PRIMARY KEY (`id_ordine`)
);

CREATE INDEX `IDX_ORDINE_1` ON `ORDINE` (`id_spedizioniere`);

# ---------------------------------------------------------------------- #
# Add table "RIGA_ORDINE"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_ORDINE` (
    `id_rigaOrdine` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER NOT NULL,
    `id_ordine` INTEGER NOT NULL,
    `quantita` DECIMAL(18,4),
    `prezzoVendita` DECIMAL(18,4),
    `costoAcquisto` DECIMAL(18,4),
    `descrizioneArticolo` VARCHAR(60),
    `descrizioneMarca` VARCHAR(60),
    `descrizioneTipo` VARCHAR(60),
    `lastUpdId_user` INTEGER,
    `lastUpdTmst` TIMESTAMP,
    `id_articoloVariante` INTEGER,
    `id_taglia` INTEGER,
    `flgDispoAgg` INTEGER DEFAULT 0,
    `flgSaldo` INTEGER,
    `flgUdm` INTEGER,
    CONSTRAINT `PK_RIGA_ORDINE` PRIMARY KEY (`id_rigaOrdine`)
);

CREATE INDEX `IDX_RIGA_ORDINE_1` ON `RIGA_ORDINE` (`id_ordine`);

CREATE INDEX `IDX_RIGA_ORDINE_2` ON `RIGA_ORDINE` (`id_articolo`);

CREATE INDEX `IDX_RIGA_ORDINE_3` ON `RIGA_ORDINE` (`id_articoloVariante`);

CREATE INDEX `IDX_RIGA_ORDINE_4` ON `RIGA_ORDINE` (`id_taglia`);

# ---------------------------------------------------------------------- #
# Add table "SPEDIZIONIERE"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `SPEDIZIONIERE` (
    `id_spedizioniere` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `linkTracking` VARCHAR(254),
    `lastUpdId_user` INTEGER,
    `lastUpdTmst` TIMESTAMP,
    CONSTRAINT `PK_SPEDIZIONIERE` PRIMARY KEY (`id_spedizioniere`)
);

# ---------------------------------------------------------------------- #
# Add table "PROMOZIONE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `PROMOZIONE` (
    `id_promozione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione_it` VARCHAR(254),
    `dataInizio` DATE,
    `dataFine` DATE,
    `percSconto` INTEGER,
    `lastUpdId_user` INTEGER,
    `lastUpdTmst` TIMESTAMP,
    `codicePromozione` VARCHAR(30),
    `descrizione_en` VARCHAR(254),
    CONSTRAINT `PK_PROMOZIONE` PRIMARY KEY (`id_promozione`)
);

CREATE UNIQUE INDEX `IDX_PROMOZIONE_1` ON `PROMOZIONE` (`codicePromozione`);

ALTER TABLE `ORDINE` ADD CONSTRAINT `SPEDIZIONIERE_ORDINE` 
    FOREIGN KEY (`id_spedizioniere`) REFERENCES `SPEDIZIONIERE` (`id_spedizioniere`);

ALTER TABLE `ORDINE` ADD CONSTRAINT `USERS_ORDINE` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `RIGA_ORDINE` ADD CONSTRAINT `ORDINE_RIGA_ORDINE` 
    FOREIGN KEY (`id_ordine`) REFERENCES `ORDINE` (`id_ordine`);

ALTER TABLE `RIGA_ORDINE` ADD CONSTRAINT `ARTICOLO_VARIANTE_RIGA_ORDINE` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `RIGA_ORDINE` ADD CONSTRAINT `ARTICOLO_RIGA_ORDINE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `RIGA_ORDINE` ADD CONSTRAINT `TAGLIA_RIGA_ORDINE` 
    FOREIGN KEY (`id_taglia`) REFERENCES `TAGLIA` (`id_taglia`);



ALTER TABLE `ARTICOLO` ADD COLUMN `costoSpedizione` DECIMAL(18,4);

ALTER TABLE `ARTICOLO` CHANGE `descrizioneCommeciale_it` `descrizioneCommerciale_it` TEXT;

# ---------------------------------------------------------------------- #
# Modify table "TIPO"                                                    #
# ---------------------------------------------------------------------- #

ALTER TABLE `TIPO` ADD COLUMN `costoSpedizione` DECIMAL(18,4);
