-- DBCGO_VO_MESI_RIFERIMENTO
CREATE TABLE DBCGO.DBCGO_VO_MESI_RIFERIMENTO
(
  ID             INTEGER,
  LABEL          VARCHAR2(30 BYTE),
  VALUE          VARCHAR2(30 BYTE),
  TRIMESTRE_RIF  VARCHAR2(2 BYTE)
)
TABLESPACE DBCGO_DATA_SMALL;

ALTER TABLE DBCGO.DBCGO_VO_MESI_RIFERIMENTO
 ADD CONSTRAINT DBCGO_VO_MESI_RIFERIMENTO_PK
 PRIMARY KEY
 (ID);


-- DBCGO_VO_LISTA_STATI_PROCESSO
CREATE TABLE DBCGO.DBCGO_VO_LISTA_STATI_PROCESSO
(
  ID     INTEGER,
  DESCR  VARCHAR2(30 BYTE)
)
TABLESPACE DBCGO_DATA_SMALL;

ALTER TABLE DBCGO.DBCGO_VO_LISTA_STATI_PROCESSO
 ADD CONSTRAINT DBCGO_VO_LISTA_STATI_PROCES_PK
 PRIMARY KEY
 (ID);

-- DBCGO_FILE_PENALI
CREATE TABLE DBCGO.DBCGO_FILE_PENALI
(
  VERSIONE        INTEGER,
  FILE_BLOB       BLOB,
  IS_CONSOLIDATO  VARCHAR2(1 BYTE),
  ID_PROCESSO     INTEGER,
  TIPO_FILE       VARCHAR2(3 BYTE)
)
TABLESPACE DBCGO_DATA_BIG
LOGGING 
LOB (FILE_BLOB) STORE AS 
      ( TABLESPACE  DBCGO_DATA_BIG 
        ENABLE      STORAGE IN ROW
        CHUNK       8192
        RETENTION
        NOCACHE
        INDEX (TABLESPACE DBCGO_IDX_BIG      )
       )
NOCACHE
NOPARALLEL
NOMONITORING;


CREATE UNIQUE INDEX DBCGO.DBCGO_FILE_PENALI_PK ON DBCGO.DBCGO_FILE_PENALI
(VERSIONE, TIPO_FILE, ID_PROCESSO)
LOGGING
TABLESPACE DBCGO_IDX_BIG
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;


ALTER TABLE DBCGO.DBCGO_FILE_PENALI ADD (
  CONSTRAINT DBCGO_FILE_PENALI_PK
 PRIMARY KEY
 (VERSIONE, TIPO_FILE, ID_PROCESSO)
    USING INDEX 
    TABLESPACE DBCGO_IDX_BIG
    PCTFREE    10
    INITRANS   2
    MAXTRANS   255
 );
 
-- DBCGO_PROCESSO_PENALI
CREATE TABLE DBCGO.DBCGO_PROCESSO_PENALI
(
  ID_PROCESSO       INTEGER,
  MESE_RIFERIMENTO  INTEGER,
  OPERATORE         VARCHAR2(4 BYTE),
  PROCESSO          VARCHAR2(1 BYTE),
  STATO             INTEGER,
  IS_LOCK_BY_USER   VARCHAR2(1 BYTE),
  USERNAME          VARCHAR2(30 BYTE),
  IS_VALID          VARCHAR2(1 BYTE),
  ANNO              INTEGER,
  STEP              INTEGER,
  TIPO_SLA          VARCHAR2(3 BYTE)
)
TABLESPACE DBCGO_DATA_SMALL;

ALTER TABLE DBCGO_PROCESSO_PENALI ADD CONSTRAINT DBCGO_PROCESSO_PENALI_PK PRIMARY KEY (mese_riferimento, operatore, processo, anno, tipo_sla,step)
USING INDEX TABLESPACE DBCGO_IDX_SMALL;

CREATE TABLE DBCGO.DBCGO_STORICO_FILE (
  NOME_FILE VARCHAR2(100) NOT NULL ,
  DATA_CREAZIONE DATE NOT NULL ,
  USERNAME  VARCHAR2(30) NOT NULL,
  primary key (NOME_FILE, DATA_CREAZIONE, USERNAME)
  );
 
create sequence s_dbcgo_processo_penali
minvalue 1
maxvalue 99999999999999999999999999
start with 1
increment by 1;

CREATE TABLE DBCGO.DBCGO_ANAG_DISSERVIZI
(
  TIPOLOGIA_PENALE        VARCHAR2(3 BYTE)      NOT NULL,
  SLA                     VARCHAR2(10 BYTE),
  OPERATORE               VARCHAR2(4 BYTE),
  DATA_COMUNICAZIONE      DATE,
  DATA_INIZIO             DATE,
  DATA_FINE               DATE,
  CAUSALE_STORNO          VARCHAR2(50 BYTE),
  DATA_CAUSALE_STORNO     DATE,
  DISABILITA_DISSERVIZIO  CHAR(1 BYTE),
  NOTE                    VARCHAR2(1000 BYTE),
  MATRICOLA_USER          VARCHAR2(30 BYTE),
  TIPO_PROCESSO           CHAR(1 BYTE)
)
TABLESPACE DBCGO_DATA_SMALL;

create index idx_anagdiss_dtini_dtfn_causst on DBCGO_ANAG_DISSERVIZI (data_inizio, data_fine, causale_storno)
tablespace DBCGO_IDX_SMALL;

CREATE TABLE DBCGO.DBCGO_ANAG_FRANCHIGIE
(
  DONATING_OSPITATO      VARCHAR2(4),
  DONATING_RETE          VARCHAR2(4),
  RECIPIENT_OSPITATO     VARCHAR2(4),
  RECIPIENT_RETE         VARCHAR2(4),
  DATA_EVENTO            DATE,
  TIPO_EVENTO            VARCHAR2(4),
  EVENTI_ATTESI          NUMBER(22),
  EVENTI_SLA             NUMBER(22),
  EVENTI_FUORI_SLA       NUMBER(22),
  PERCENTUALE_FRANCHIGIA NUMBER(22),
  SUPERAMENTO_SOGLIA     VARCHAR2(1),
  TIPO_PROCESSO          VARCHAR2(1),
  NUMERO_RIGA            NUMBER(10) not null
)
TABLESPACE DBCGO_DATA_SMALL;

alter table DBCGO_ANAG_FRANCHIGIE
add constraint PK_DBCGO_ANAG_FRANCHIGIE primary key (NUMERO_RIGA)
using index 
tablespace DBCGO_IDX_SMALL;


--unique A31
ALTER TABLE DBCGO_ANAG_FRANCHIGIE
 ADD UNIQUE (DONATING_OSPITATO,DONATING_RETE,RECIPIENT_OSPITATO,RECIPIENT_RETE,DATA_EVENTO,TIPO_EVENTO,TIPO_PROCESSO);