﻿
/******************************************************************************/
/****                                Tables                                ****/
/******************************************************************************/
CREATE GENERATOR GEN_MINERADO_TVR_ID;

CREATE TABLE MINERADO_TVR (
    CODIGO        INTEGER NOT NULL,
    CODIGO_GRUPO  INTEGER
);

/******************************************************************************/
/****                             Primary Keys                             ****/
/******************************************************************************/

ALTER TABLE MINERADO_TVR ADD CONSTRAINT PK_MINERADO_TVR PRIMARY KEY (CODIGO);


/******************************************************************************/
/****                               Indices                                ****/
/******************************************************************************/

CREATE INDEX IX_CODIGO_GRUPO ON MINERADO_TVR (CODIGO_GRUPO);


/******************************************************************************/
/****                               Triggers                               ****/
/******************************************************************************/

/* Trigger: MINERADO_TVR_BI */
CREATE TRIGGER MINERADO_TVR_BI FOR MINERADO_TVR
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.CODIGO IS NULL) THEN
    NEW.CODIGO = GEN_ID(GEN_MINERADO_TVR_ID,1);
END

/* Trigger: TAB_VERT_REPOSITORIO_MTVR */
CREATE TRIGGER TAB_VERT_REPOSITORIO_MTVR FOR TAB_VERT_REPOSITORIO
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
declare variable NUMREG integer;
begin
    NUMREG = 0;

    SELECT COUNT (*) FROM MINERADO_TVR WHERE CODIGO_GRUPO = NEW.CODIGO_GRUPO INTO :NUMREG;

    IF(NUMREG < 1) THEN
    BEGIN
        INSERT INTO MINERADO_TVR(CODIGO_GRUPO) VALUES(NEW.CODIGO_GRUPO);
    END
end;


CREATE TRIGGER DEMANDA_TAREFA_LOG_MINERADO FOR DEMANDA_TAREFA_LOG_ALTERACOES
ACTIVE BEFORE INSERT OR UPDATE POSITION 1
AS
BEGIN
    IF (NEW.MINERADO = OLD.MINERADO) THEN
        NEW.MINERADO = 'F';
END;