--------------------------------------------
----- Create table MNP_DBSS_SCARTI_IN  -----
--------------------------------------------
CREATE SEQUENCE SEQ_REC_DBSS_SCARTI_IN
  START WITH 1
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;

CREATE TABLE MNP_DBSS_SCARTI_IN
(
  ID_PROG                  NUMBER(18)           NOT NULL,
  NOME_FILE                VARCHAR2(100 BYTE),
  COD_SERVICE_ORDER        VARCHAR2(15 BYTE),
  DONATING_COD_OP          VARCHAR2(4 BYTE),
  COD_PRE_POST             VARCHAR2(3 BYTE),
  PREFISSO_TIM             VARCHAR2(3 BYTE),
  NUMERO_TIM               VARCHAR2(10 BYTE),
  PREFISSO_OLO             VARCHAR2(5 BYTE),
  NUMERO_OLO               VARCHAR2(10 BYTE),
  ICCID_OLO                VARCHAR2(30 BYTE),
  COD_FIS_CLI_OLO          VARCHAR2(16 BYTE),
  TIPO_DOC_IDENTITA        VARCHAR2(3 BYTE),
  NUM_DOC_IDENTITA         VARCHAR2(30 BYTE),
  DATA_RICHIESTA           VARCHAR2(15 BYTE),
  COD_CONTRATTO            VARCHAR2(12 BYTE),
  CLIENTE_INTESTATARIO_ID  VARCHAR2(30 BYTE),
  ORDER_ITEM_ID            VARCHAR2(30 BYTE),
  OT_COD                   VARCHAR2(2 BYTE),
  NOME_CLIENTE_PF          VARCHAR2(20 BYTE),
  COGNOME_CLIENTE_PF       VARCHAR2(50 BYTE),
  DENOMINAZIONE_PG         VARCHAR2(70 BYTE),
  DATA_CUT_OVER            VARCHAR2(15 BYTE),
  IMSI_TIM                 VARCHAR2(15 BYTE),
  DATA_INVIO_RICHIESTA     VARCHAR2(15 BYTE),
  COD_RICHIESTA            VARCHAR2(18 BYTE),
  DA_PROCESSARE            NUMBER(1)            DEFAULT 0,
  ASSET_USES               VARCHAR2(22 BYTE),
  CAUSALE_SCARTO           VARCHAR2(200 BYTE),
  RECORD_SCARTATO          VARCHAR2(500 BYTE),
  PROGETTO_AD_HOC          VARCHAR2(1 BYTE),
  DATA_INSERIMENTO         DATE                 DEFAULT SYSDATE               NOT NULL,
  TIPO_SPEDIZIONE          VARCHAR2(2 BYTE),
  UNIQUE_ID                VARCHAR2(50 BYTE),
  DA_SCODARE               NUMBER(1)            DEFAULT 0                     NOT NULL,
  COD_PROFILO_TARIFFARIO   VARCHAR2(10 BYTE),
  DESC_PROFILO_TARIFFARIO  VARCHAR2(50 BYTE),
  COD_OFFERTA              VARCHAR2(5 BYTE),
  DESC_OFFERTA             VARCHAR2(50 BYTE),
  COD_ACCORDO              VARCHAR2(10 BYTE),
  DESC_ACCORDO             VARCHAR2(150 BYTE),
  DESCANALE_VENDITA        VARCHAR2(50 BYTE),
  FLAG_TC                  VARCHAR2(1 BYTE),
  FLAG_FURTO               VARCHAR2(1 BYTE)     DEFAULT 'N'                   NOT NULL,
  MSISDN_PARLI_SUBITO      VARCHAR2(13 BYTE)
)
TABLESPACE TAB_SMALL;

CREATE INDEX IDX_MNP_DBSS_SCARTI_IN_1 ON MNP_DBSS_SCARTI_IN
(UNIQUE_ID)
LOGGING
TABLESPACE TAB_IDX_SMALL;

CREATE INDEX IDX_MNP_DBSS_SCARTI_IN_2 ON MNP_DBSS_SCARTI_IN
(DATA_INSERIMENTO)
LOGGING
TABLESPACE TAB_IDX_MEDIUM;

CREATE UNIQUE INDEX PK_DBSS_SCARTI_IN ON MNP_DBSS_SCARTI_IN
(ID_PROG)
LOGGING
TABLESPACE TAB_IDX_SMALL;

ALTER TABLE MNP_DBSS_SCARTI_IN ADD (
  CONSTRAINT PK_DBSS_SCARTI_IN
  PRIMARY KEY
  (ID_PROG)
  USING INDEX PK_DBSS_SCARTI_IN
  ENABLE VALIDATE);
  
-------------------------------------------
-----  Create table MNP_DBSS_IN_REC   -----
-------------------------------------------  
CREATE SEQUENCE SEQ_REC_DBSS_IN
  START WITH 1
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;  
  
CREATE TABLE MNP_DBSS_IN_REC
(
  ID_PROG                  NUMBER(18)           NOT NULL,
  UNIQUE_ID                VARCHAR2(50 BYTE),
  DA_SCODARE               NUMBER(1)            DEFAULT 0                     NOT NULL,
  TIPO_SPEDIZIONE          VARCHAR2(2 BYTE)     NOT NULL,
  COD_SERVICE_ORDER        VARCHAR2(15 BYTE)    NOT NULL,
  ASSET_USES               VARCHAR2(22 BYTE)    NOT NULL,
  DONATING_COD_OP          VARCHAR2(4 BYTE)     NOT NULL,
  COD_PRE_POST             VARCHAR2(3 BYTE)     NOT NULL,
  PREFISSO_TIM             VARCHAR2(3 BYTE),
  NUMERO_TIM               VARCHAR2(10 BYTE),
  PREFISSO_OLO             VARCHAR2(3 BYTE)     NOT NULL,
  NUMERO_OLO               VARCHAR2(10 BYTE)    NOT NULL,
  ICCID_OLO                VARCHAR2(30 BYTE),
  ORDER_ITEM_ID            VARCHAR2(30 BYTE)    NOT NULL,
  CLIENTE_INTESTATARIO_ID  VARCHAR2(30 BYTE)    NOT NULL,
  COD_FIS_CLI_OLO          VARCHAR2(18 BYTE),
  TIPO_DOC_IDENTITA        VARCHAR2(3 BYTE)     NOT NULL,
  NUM_DOC_IDENTITA         VARCHAR2(30 BYTE)    NOT NULL,
  DATA_RICHIESTA           DATE                 NOT NULL,
  COD_CONTRATTO            VARCHAR2(12 BYTE)    NOT NULL,
  OT_COD                   VARCHAR2(2 BYTE)     NOT NULL,
  NOME_CLIENTE_PF          VARCHAR2(20 BYTE),
  COGNOME_CLIENTE_PF       VARCHAR2(50 BYTE),
  DENOMINAZIONE_PG         VARCHAR2(70 BYTE),
  DATA_CUT_OVER            DATE,
  IMSI_TIM                 VARCHAR2(15 BYTE)    NOT NULL,
  DATA_EFF_VALIDAZIONE     DATE                 NOT NULL,
  REQUEST_ID               VARCHAR2(18 BYTE)    NOT NULL,
  PROGETTO_HOC             VARCHAR2(1 BYTE),
  COD_OFFERTA              VARCHAR2(5 BYTE),
  DES_OFFERTA              VARCHAR2(50 BYTE),  
  ID_ACCORDO               VARCHAR2(10 BYTE),
  DEN_ACCORDO              VARCHAR2(150 BYTE),
  COD_PROFILO_TARIFFARIO   VARCHAR2(10 BYTE),
  DESC_PROFILO_TARIFFARIO  VARCHAR2(50 BYTE),
  DESCANALE_VENDITA        VARCHAR2(50 BYTE),
  FLAG_TC                  VARCHAR2(1 BYTE)     DEFAULT 'N'                   NOT NULL,
  FLAG_FURTO               VARCHAR2(1 BYTE)     DEFAULT 'N'                   NOT NULL,
  MSISDN_PARLI_SUBITO      VARCHAR2(13 BYTE),
  ID_RICHIESTA             VARCHAR2(23 BYTE)
)
TABLESPACE TAB_BIG;

CREATE INDEX IDX_MNP_DBSS_IN_REC ON MNP_DBSS_IN_REC
(UNIQUE_ID)
TABLESPACE TAB_IDX_SMALL;

CREATE INDEX IDX_MNP_DBSS_IN_REC_1 ON MNP_DBSS_IN_REC
(ID_RICHIESTA)
TABLESPACE TAB_IDX_MEDIUM;

CREATE UNIQUE INDEX PK_DBSS_IN_REC ON MNP_DBSS_IN_REC
(ID_PROG)
TABLESPACE TAB_IDX_SMALL;

ALTER TABLE MNP_DBSS_IN_REC ADD (
  CONSTRAINT PK_DBSS_IN_REC
  PRIMARY KEY
  (ID_PROG)
  USING INDEX PK_DBSS_IN_REC
  ENABLE VALIDATE);

GRANT SELECT ON MNP_DBSS_IN_REC TO DWH;

-----------------------------------------
----- Create table MNP_DBSS_OUT_REC -----
-----------------------------------------
CREATE SEQUENCE SEQ_REC_DBSS_OUT
  START WITH 1
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;
  
CREATE TABLE MNP_DBSS_OUT_REC
(
  ID_PROG                         NUMBER(18)    NOT NULL,
  ORDER_ITEM_ID                   VARCHAR2(30 BYTE) NOT NULL,
  STATO_RICHIESTA                 VARCHAR2(30 BYTE) NOT NULL,
  CAUSALE_RIFIUTO                 VARCHAR2(1000 BYTE),
  DATA_ORA_EFFETTIVA_VALIDAZIONE  DATE,
  DATA_CUT_OVER                   DATE,
  NOME_FILE                       VARCHAR2(50 BYTE),
  DA_INVIARE                      NUMBER(1)     DEFAULT 0                     NOT NULL,
  TIPO_FILE                       NUMBER(1),
  ID_RICHIESTA_DBC                VARCHAR2(23 BYTE) NOT NULL,
  DATA_INVIO                      DATE          DEFAULT SYSDATE               NOT NULL,
  UNIQUE_ID                       VARCHAR2(50 BYTE),
  DA_SCODARE                      NUMBER(1)     DEFAULT 0                     NOT NULL,
  NOME_FILE_TP                    VARCHAR2(28 BYTE),
  TIPO_SPEDIZIONE                 VARCHAR2(2 BYTE) DEFAULT NULL NOT NULL,
  CREDITO                         VARCHAR2(8 BYTE),
  DATA_NOTIFICA_CREDITO           VARCHAR2(8 BYTE),
  ORA_NOTIFICA_CREDITO            VARCHAR2(5 BYTE),
  DATA_INVIO_EFFETTIVA            DATE
)
TABLESPACE TAB_MEDIUM;

CREATE INDEX IDX_MNP_DBSS_OUT_REC_NEW ON MNP_DBSS_OUT_REC
(UNIQUE_ID)
LOGGING
TABLESPACE TAB_IDX_BIG;

CREATE INDEX IDX_MNP_DBSS_OUT_REC_NEW1 ON MNP_DBSS_OUT_REC
(ID_RICHIESTA_DBC)
LOGGING
TABLESPACE TAB_IDX_BIG;

CREATE UNIQUE INDEX PK_DBSS_OUT_REC_NEW ON MNP_DBSS_OUT_REC
(ID_PROG)
LOGGING
TABLESPACE TAB_IDX_MEDIUM;

ALTER TABLE MNP_DBSS_OUT_REC ADD (
  CONSTRAINT PK_DBSS_OUT_REC_NEW
  PRIMARY KEY
  (ID_PROG)
  USING INDEX PK_DBSS_OUT_REC_NEW
  ENABLE VALIDATE);

------------------------------------------------
----- Create table MNP_DBSS_PORT_IN_HEADER -----
------------------------------------------------
CREATE TABLE MNP_DBSS_PORT_IN_HEADER
(
  UNIQUE_ID       NUMBER,
  SOURCE_SYSTEM   VARCHAR2(20 BYTE),
  BUSINESS_ID     VARCHAR2(36 BYTE),
  MESSAGE_ID      VARCHAR2(36 BYTE),
  TRANSACTION_ID  VARCHAR2(36 BYTE),
  ORDER_ITEM_ID   VARCHAR2(30 BYTE),
  DATA_RICEZIONE  DATE DEFAULT SYSDATE,
  PAYLOAD         CLOB
)
LOB (PAYLOAD) STORE AS (
  TABLESPACE  TAB_SMALL
  ENABLE      STORAGE IN ROW
  CHUNK       8192)
TABLESPACE TAB_SMALL;


CREATE UNIQUE INDEX PK_MNP_DBSS_PORT_IN_HEADER ON MNP_DBSS_PORT_IN_HEADER
(UNIQUE_ID)
TABLESPACE TAB_SMALL;

CREATE INDEX MNP_DBSS_PORT_IN_HEADER_1 ON MNP_DBSS_PORT_IN_HEADER
(ORDER_ITEM_ID)
TABLESPACE TAB_SMALL;

ALTER TABLE MNP_DBSS_PORT_IN_HEADER ADD (
  CONSTRAINT PK_MNP_DBSS_PORT_IN_HEADER
  PRIMARY KEY
  (UNIQUE_ID)
  USING INDEX PK_MNP_DBSS_PORT_IN_HEADER
  ENABLE VALIDATE);

  
------------------------
----- ALTER TABLES -----
------------------------
ALTER TABLE MNP_GESTIONE_RICHIESTA_REC
MODIFY(CODICE_RICHIESTA_BIT VARCHAR2(30 BYTE));

ALTER TABLE MNP.HIST_GESTIONE_RICHIESTA_REC
MODIFY(CODICE_RICHIESTA_BIT VARCHAR2(30 BYTE));

ALTER TABLE MNP_GEST_RICH_DONOR_VIRT
MODIFY(CODICE_RICHIESTA_BIT VARCHAR2(30 BYTE));

ALTER TABLE HIST_GEST_RICH_DONOR_VIRT
MODIFY(CODICE_RICHIESTA_BIT VARCHAR2(30 BYTE));


