﻿-- Alterar datatype da coluna mensagem na tabela portal_notificacao_motorista
ALTER TABLE cmb_standard.portal_notificacao_motorista 
ADD COLUMN temp_mensagem text;

UPDATE cmb_standard.portal_notificacao_motorista 
SET temp_mensagem = cast(mensagem as text);

ALTER TABLE cmb_standard.portal_notificacao_motorista 
DROP COLUMN mensagem;

ALTER TABLE cmb_standard.portal_notificacao_motorista 
ADD COLUMN mensagem text;

UPDATE cmb_standard.portal_notificacao_motorista 
SET mensagem = temp_mensagem;

ALTER TABLE  cmb_standard.portal_notificacao_motorista 
DROP COLUMN temp_mensagem;

-- Alterar datatype da coluna mensagem na tabela portal_notificacao_motorista_aud
ALTER TABLE cmb_standard.portal_notificacao_motorista_aud 
ADD COLUMN temp_mensagem text;

UPDATE cmb_standard.portal_notificacao_motorista_aud 
SET temp_mensagem = cast(mensagem as text);

ALTER TABLE cmb_standard.portal_notificacao_motorista_aud 
DROP COLUMN mensagem;

ALTER TABLE cmb_standard.portal_notificacao_motorista_aud 
ADD COLUMN mensagem text;

UPDATE cmb_standard.portal_notificacao_motorista_aud 
SET mensagem = temp_mensagem;

ALTER TABLE  cmb_standard.portal_notificacao_motorista_aud 
DROP COLUMN temp_mensagem;

-- Apagar chaves únicas existentes
DO 
$$
DECLARE constraint_name text;
BEGIN
  SELECT table_constraints.constraint_name INTO constraint_name
  FROM information_schema.table_constraints
  WHERE table_name = 'portal_notificacao_motorista'
  AND constraint_type = 'UNIQUE'
  LIMIT 1;

  WHILE (constraint_name IS NOT NULL) LOOP
    EXECUTE 'ALTER TABLE cmb_standard.portal_notificacao_motorista DROP CONSTRAINT ' || constraint_name;

    SELECT table_constraints.constraint_name INTO constraint_name
    FROM information_schema.table_constraints
    WHERE table_name = 'portal_notificacao_motorista'
    AND constraint_type = 'UNIQUE'
    LIMIT 1;
  END LOOP;

END;
$$

-- Gerar nova chave única
ALTER TABLE cmb_standard.portal_notificacao_motorista 
ADD CONSTRAINT empresa_status_fluxo_uk UNIQUE (id_empresa, stagendamento, tpfluxo);
