ALTER TABLE TBREFEICOES_PESSOAS
    ADD CODIGO VARCHAR(30) DEFAULT '',
    ADD BIOMETRIA_FACIAL_CALC BLOB SUB_TYPE 1 SEGMENT SIZE 80;

COMMENT ON COLUMN TBREFEICOES_PESSOAS.BIOMETRIA_FACIAL IS
'dados de biometria facial';

COMMENT ON COLUMN TBREFEICOES_PESSOAS.CODIGO IS
'codigo identificador da pessoa, serve como um cracha';

COMMENT ON COLUMN TBREFEICOES_PESSOAS.BIOMETRIA_FACIAL_CALC IS
'biometria facial confirmada';

ALTER TABLE TBCOLABORADOR
    ADD BIOMETRIA_FACIAL_CALC BLOB SUB_TYPE 1 SEGMENT SIZE 80;

ALTER TABLE TBREFEICOES_TIPO
    ADD PRAZO_RESERVAR INTEGER;

COMMENT ON COLUMN TBREFEICOES_TIPO.RESERVAR IS
'se pode reservar';

COMMENT ON COLUMN TBREFEICOES_TIPO.PRAZO_RESERVAR IS
'tempo para rezevar em horas';

SET TERM ^ ;

CREATE OR ALTER trigger itbrefeicoes_reserva_b02i for tbrefeicoes_reserva
active before insert or update position 2
AS
declare variable EXPIROU integer;
declare variable DATA_LIMITE varchar(30);
declare variable data_refeicao varchar(30);
declare variable descricao varchar(100);
begin
    for
        select
            iif(DATA_LIMITE <= current_timestamp, 1,0) as EXPIROU,
            formatdatetime(DATA_LIMITE) as DATA_LIMITE,
            formatdate(data_refeicao) as data_refeicao,
            descricao
        from(
            select
                c.data_refeicao,
                cast(c.data_refeicao + t.hora_inicio as timestamp) as DATA_INICIO,
                dateadd(hour, (t.prazo_reservar * -1), cast(c.data_refeicao + t.hora_inicio as timestamp)) as DATA_LIMITE,
                t.descricao
            from tbrefeicoes_cardapio c, tbrefeicoes_tipo t
            where c.id = NEW.cardapio_id
            and t.id = c.tipo_id
        )
    into
        EXPIROU,
        DATA_LIMITE,
        data_refeicao,
        descricao
    do begin
        if(EXPIROU = 1)then
        begin
            exception "..." 'RESERVA INDISPONIVEL, DATA LIMITE PARA RESERVAR "'||coalesce(descricao,'')||' de '||coalesce(data_refeicao,'')||'" FOI EM '||coalesce(DATA_LIMITE,'');
        end
    end
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbrefeicoes_pessoas_b02u for tbrefeicoes_pessoas
active before update position 2
AS
begin
  if(new.tipo_registro is distinct from old.tipo_registro)then
  begin
    update tbrefeicoes_pessoas_tipo t set t.tipo_pessoa = new.tipo_registro where t.tipo_pessoa = old.tipo_registro and t.pessoa_id = new.id;
  end
end
^

SET TERM ; ^

ALTER TABLE TBREFEICOES_REGISTRO
    ADD DISPOSITIVO_ID INTEGER;

COMMENT ON COLUMN TBREFEICOES_REGISTRO.DISPOSITIVO_ID IS
'id do dispositivo';

