CREATE TABLE TBTRANSACAO_PIX (
    ID INTEGER NOT NULL,
    ESTABELECIMENTO_ID INTEGER,
    TX_ID VARCHAR(500),
    TEXTO_IMG_QRCODE VARCHAR(500),
    CLIENTE_ID INTEGER,
    COLABORADOR_ID INTEGER,
    NOME VARCHAR(500),
    VALOR NUMERIC(15,2),
    DATA_TRANSACAO DATE,
    DATA_CRIACAO TIMESTAMP,
    DATA_EXPIRACAO TIMESTAMP,
    SITUACAO INTEGER DEFAULT 1 NOT NULL,
    STATUS INTEGER DEFAULT 0 NOT NULL,
    DATAHORA TIMESTAMP DEFAULT 'NOW');

ALTER TABLE TBTRANSACAO_PIX
ADD CONSTRAINT PK_TBTRANSACAO_PIX
PRIMARY KEY (ID);

COMMENT ON COLUMN TBTRANSACAO_PIX.SITUACAO IS
'1 - PENDENTE;
2 - APROVADO;
3 - EM PROCESSAMENTO;
4 - DEVOLUCAO NAO REALIZADA;
5 - DEVOLVIDO;
6 - REMOVIDA PELO USUARIO;
7 - REMOVIDA PELO RECEBEDOR;';

COMMENT ON COLUMN TBTRANSACAO_PIX.STATUS IS
'0 - NAO UTILIZADO;
1 - UTILIZADO;';

CREATE SEQUENCE GTBTRANSACAO_PIX;

SET TERM ^ ;

create trigger ttbtransacao_pix_b01i for tbtransacao_pix
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbtransacao_pix,1);
end
^

SET TERM ; ^

CREATE INDEX ITBTRANSACAO_PIX_01
ON TBTRANSACAO_PIX (ESTABELECIMENTO_ID);

CREATE INDEX ITBTRANSACAO_PIX_02
ON TBTRANSACAO_PIX (TX_ID);

CREATE INDEX ITBTRANSACAO_PIX_03
ON TBTRANSACAO_PIX (CLIENTE_ID);

CREATE INDEX ITBTRANSACAO_PIX_04
ON TBTRANSACAO_PIX (COLABORADOR_ID);

CREATE INDEX ITBTRANSACAO_PIX_05
ON TBTRANSACAO_PIX (DATA_TRANSACAO);

CREATE INDEX ITBTRANSACAO_PIX_06
ON TBTRANSACAO_PIX (DATA_CRIACAO);

CREATE INDEX ITBTRANSACAO_PIX_07
ON TBTRANSACAO_PIX (DATA_EXPIRACAO);

CREATE INDEX ITBTRANSACAO_PIX_08
ON TBTRANSACAO_PIX (SITUACAO);

CREATE INDEX ITBTRANSACAO_PIX_09
ON TBTRANSACAO_PIX (STATUS);

ALTER TABLE TBPDV_CFE_FORMA_PAGAMENTO
    ADD TRANSACAO_PIX_ID INTEGER DEFAULT 0 NOT NULL;

CREATE INDEX ITBPDV_CFE_FORMA_PAGAMENTO_07
ON TBPDV_CFE_FORMA_PAGAMENTO (TRANSACAO_PIX_ID);

UPDATE OR INSERT INTO TBPARAMETRO (TABELA, CODIGO, DESCRICAO, VALOR, OBSERVACAO, GRUPO, USUARIO_ID)
                           VALUES ('SISTEMA', 'TEMPO_EXPIRACAO_PIX_VENDA', 'TEMPO EXPIRACAO PIX VENDA', '5', 'TEMPO EM MINUTOS PARA EXPIRACAO DO CODIGO PIX NAS VENDAS', 'WEB19010', 837)
                         MATCHING (TABELA, CODIGO);
