CREATE TABLE TBTRANSACAO_TEF (
    ID INTEGER NOT NULL,
    ESTABELECIMENTO_ID INTEGER,
    INTENCAO_VENDA_ID INTEGER,
    FORMA_PAGAMENTO_TEF INTEGER,
	TERMINAL_ID INTEGER,
    CLIENTE_ID INTEGER,
    COLABORADOR_ID INTEGER,
    NOME VARCHAR(500),
    VALOR NUMERIC(15,2),
    DATA_TRANSACAO DATE,
    NUMERO_CARTAO VARCHAR(200),
    NUMERO_ESTABELECIMENTO VARCHAR(200),
    ADQUIRENTE VARCHAR(200),
    CODIGO_AUTORIZACAO VARCHAR(200),
    CODIGO_ADQUIRENTE VARCHAR(200),
    NSU VARCHAR(200),
    PARCELAS INTEGER,
    ID_PAGAMENTO VARCHAR(200),
    MENSAGEM_ADQUIRENTE VARCHAR(500),
    BANDEIRA VARCHAR(200),
    SITUACAO INTEGER DEFAULT 0 NOT NULL,
    STATUS INTEGER DEFAULT 0 NOT NULL,
    DATAHORA TIMESTAMP DEFAULT 'NOW' NOT NULL);

ALTER TABLE TBTRANSACAO_TEF
ADD CONSTRAINT PK_TBTRANSACAO_TEF
PRIMARY KEY (ID);

COMMENT ON COLUMN TBTRANSACAO_TEF.FORMA_PAGAMENTO_TEF IS
'FORMA DE PAGAMENTO DE ACORDO COM A CONTROLPAY
21 - TEF - CREDITO;
22 - TEF - DEBITO;
23 - TEF - VOUCHER;
25 - TEF - CARTEIRA DIGITAL;
51 - LINK DE PAGAMENTO CREDITO;
52 - LINK DE PAGAMENTO DEBITO;';

COMMENT ON COLUMN TBTRANSACAO_TEF.SITUACAO IS
'0 - PENDENTE;
1 - APROVADO;
2 - EXPIRADO;
3 - PROCESSO DE CANCELAMENTO;
4 - SOLICITACAO DE CANCELAMENTO RECEBIDA;
5 - CANCELADO;
6 - PAGAMENTO NAO APROVADO;';

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

CREATE INDEX ITBTRANSACAO_TEF_01
ON TBTRANSACAO_TEF (ESTABELECIMENTO_ID);

CREATE INDEX ITBTRANSACAO_TEF_02
ON TBTRANSACAO_TEF (INTENCAO_VENDA_ID);

CREATE INDEX ITBTRANSACAO_TEF_03
ON TBTRANSACAO_TEF (FORMA_PAGAMENTO_TEF);

CREATE INDEX ITBTRANSACAO_TEF_04
ON TBTRANSACAO_TEF (CLIENTE_ID);

CREATE INDEX ITBTRANSACAO_TEF_05
ON TBTRANSACAO_TEF (COLABORADOR_ID);

CREATE INDEX ITBTRANSACAO_TEF_06
ON TBTRANSACAO_TEF (DATA_TRANSACAO);

CREATE INDEX ITBTRANSACAO_TEF_07
ON TBTRANSACAO_TEF (SITUACAO);

CREATE INDEX ITBTRANSACAO_TEF_08
ON TBTRANSACAO_TEF (STATUS);

CREATE SEQUENCE GTBTRANSACAO_TEF;

SET TERM ^ ;

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

SET TERM ; ^

