-- Table: crm.lead

-- DROP TABLE crm.lead;

CREATE TABLE crm.lead
(
  id_lead bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  nome character varying(300), -- Text::NOME::::::::::::nao::::::::::::::::::::::
  nome_fantasia character varying(300), -- Text::NOME FANTASIA::::::::::::nao::::::::::::::::::::::
  cpf_cnpj character varying(18), -- Text::CPF/CNPJ::::::::::::nao::::::::::::::::::::::
  documento_id character varying(15), -- Text::DOCUMENTO::::::::::::nao::::::::::::::::::::::
  inscricao_municipal character varying(15), -- Text::INSCRICAO MUNICIPAL::::::::::::nao::::::::::::::::::::::
  dt_nascimento date, -- Data::DATA NACIMENTO::::::::::::nao::::::::::::::::::::::
  endereco character varying(300), -- Text::Endereco::::::::::::nao::::::::::::::::::::::
  numero character varying(30), -- Text::NUMERO::::::::::::nao::::::::::::::::::::::
  complemento character varying(300), -- Text::COMPLEMENTO::::::::::::nao::::::::::::::::::::::
  bairro character varying(300), -- Text::BAIRRO::::::::::::nao::::::::::::::::::::::
  cidade character varying(300), -- Text::CIDADE::::::::::::nao::::::::::::::::::::::
  uf character varying(2), -- Text::UF::::::::::::nao::::::::::::::::::::::
  pais character varying(40), -- Text::PAIS::::::::::::nao::::::::::::::::::::::
  referencia character varying(300), -- Text::REFERENCIA::::::::::::nao::::::::::::::::::::::
  nome_mae character varying(200), -- Text::NOME MAE::::::::::::nao::::::::::::::::::::::
  nome_pai character varying(200), -- Text::NOME PAI::::::::::::nao::::::::::::::::::::::
  estado_civil character varying(3), -- Text::ESTADO CIVIL::::::::::::nao::::::::::::::::::::::
  email character varying(60), -- Text::E-MAIL::::::::::::nao::::::::::::::::::::::
  cep character varying(10), -- Text::CEP::::::::::::nao::::::::::::::::::::::
  tipo_cadastro character varying(3), -- Text::TIPO CADASTRO::::::::::::nao::::::::::::::::::::::
  observacao text, -- TextArea::OBSERVACAO::::::::::::nao::::::::::::::::::::::
  e_string1 character varying(300), -- Text::Extra String 1::::::::::::nao::::::::::::::::::::::
  e_string2 character varying(300), -- Text::Extra String 2::::::::::::nao::::::::::::::::::::::
  e_string3 character varying(300), -- Text::Extra String 3::::::::::::nao::::::::::::::::::::::
  e_string4 character varying(300), -- Text::Extra String 4::::::::::::nao::::::::::::::::::::::
  e_string5 character varying(300), -- Text::Extra String 5::::::::::::nao::::::::::::::::::::::
  e_string6 character varying(300), -- Text::Extra String 6::::::::::::nao::::::::::::::::::::::
  e_string7 character varying(300), -- Text::Extra String 7::::::::::::nao::::::::::::::::::::::
  e_string8 character varying(300), -- Text::Extra String 8::::::::::::nao::::::::::::::::::::::
  e_string9 character varying(300), -- Text::Extra String 9::::::::::::nao::::::::::::::::::::::
  e_string10 character varying(300), -- Text::Extra String 10::::::::::::nao::::::::::::::::::::::
  e_string11 character varying(300), -- Text::Extra String 11::::::::::::nao::::::::::::::::::::::
  e_string12 character varying(300), -- Text::Extra String 12::::::::::::nao::::::::::::::::::::::
  e_string13 character varying(300), -- Text::Extra String 13::::::::::::nao::::::::::::::::::::::
  e_string14 character varying(300), -- Text::Extra String 14::::::::::::nao::::::::::::::::::::::
  e_string15 character varying(300), -- Text::Extra String 15::::::::::::nao::::::::::::::::::::::
  e_string16 character varying(300), -- Text::Extra String 16::::::::::::nao::::::::::::::::::::::
  e_string17 character varying(300), -- Text::Extra String 17::::::::::::nao::::::::::::::::::::::
  e_string18 character varying(300), -- Text::Extra String 18::::::::::::nao::::::::::::::::::::::
  e_string19 character varying(300), -- Text::Extra String 19::::::::::::nao::::::::::::::::::::::
  e_string20 character varying(300), -- Text::Extra String 20::::::::::::nao::::::::::::::::::::::
  e_string21 character varying(300), -- Text::Extra String 21::::::::::::nao::::::::::::::::::::::
  e_string22 character varying(300), -- Text::Extra String 22::::::::::::nao::::::::::::::::::::::
  e_string23 character varying(300), -- Text::Extra String 23::::::::::::nao::::::::::::::::::::::
  e_string24 character varying(300), -- Text::Extra String 24::::::::::::nao::::::::::::::::::::::
  e_string25 character varying(300), -- Text::Extra String 25::::::::::::nao::::::::::::::::::::::
  e_string26 character varying(300), -- Text::Extra String 26::::::::::::nao::::::::::::::::::::::
  e_string27 character varying(300), -- Text::Extra String 27::::::::::::nao::::::::::::::::::::::
  e_string28 character varying(300), -- Text::Extra String 28::::::::::::nao::::::::::::::::::::::
  e_string29 character varying(300), -- Text::Extra String 29::::::::::::nao::::::::::::::::::::::
  e_string30 character varying(300), -- Text::Extra String 30::::::::::::nao::::::::::::::::::::::
  e_data1 date, -- Data::Extra Data 1::::::::::::nao::::::::::::::::::::::
  e_data2 date, -- Data::Extra Data 2::::::::::::nao::::::::::::::::::::::
  e_data3 date, -- Data::Extra Data 3::::::::::::nao::::::::::::::::::::::
  e_data4 date, -- Data::Extra Data 4::::::::::::nao::::::::::::::::::::::
  e_data5 date, -- Data::Extra Data 5::::::::::::nao::::::::::::::::::::::
  e_data6 date, -- Data::Extra Data 6::::::::::::nao::::::::::::::::::::::
  e_data7 date, -- Data::Extra Data 7::::::::::::nao::::::::::::::::::::::
  e_data8 date, -- Data::Extra Data 8::::::::::::nao::::::::::::::::::::::
  e_data9 date, -- Data::Extra Data 9::::::::::::nao::::::::::::::::::::::
  e_data10 date, -- Data::Extra Data 10::::::::::::nao::::::::::::::::::::::
  e_int1 integer, -- Num::Extra Inteiro 1::::::::::::nao::::::::::::::::::::::
  e_int2 integer, -- Num::Extra Inteiro 2::::::::::::nao::::::::::::::::::::::
  e_int3 integer, -- Num::Extra Inteiro 3::::::::::::nao::::::::::::::::::::::
  e_int4 integer, -- Num::Extra Inteiro 4::::::::::::nao::::::::::::::::::::::
  e_int5 integer, -- Num::Extra Inteiro 5::::::::::::nao::::::::::::::::::::::
  e_int6 integer, -- Num::Extra Inteiro 6::::::::::::nao::::::::::::::::::::::
  e_int7 integer, -- Num::Extra Inteiro 7::::::::::::nao::::::::::::::::::::::
  e_int8 integer, -- Num::Extra Inteiro 8::::::::::::nao::::::::::::::::::::::
  e_int9 integer, -- Num::Extra Inteiro 9::::::::::::nao::::::::::::::::::::::
  e_int10 integer, -- Num::Extra Inteiro 10::::::::::::nao::::::::::::::::::::::
  e_monetario1 numeric(9,2), -- Moeda::e_monetario1::::::::::::nao::::::::::::::::::::::
  e_monetario2 numeric(9,2), -- Moeda::e_monetario2::::::::::::nao::::::::::::::::::::::
  e_monetario3 numeric(9,2), -- Moeda::e_monetario3::::::::::::nao::::::::::::::::::::::
  e_monetario4 numeric(9,2), -- Moeda::e_monetario4::::::::::::nao::::::::::::::::::::::
  e_monetario5 numeric(9,2), -- Moeda::e_monetario5::::::::::::nao::::::::::::::::::::::
  e_monetario6 numeric(9,2), -- Moeda::e_monetario6::::::::::::nao::::::::::::::::::::::
  e_monetario7 numeric(9,2), -- Moeda::e_monetario7::::::::::::nao::::::::::::::::::::::
  e_monetario8 numeric(9,2), -- Moeda::e_monetario8::::::::::::nao::::::::::::::::::::::
  e_monetario9 numeric(9,2), -- Moeda::e_monetario9::::::::::::nao::::::::::::::::::::::
  e_monetario10 numeric(9,2), -- Moeda::e_monetario10::::::::::::nao::::::::::::::::::::::
  dt_cadastro timestamp without time zone, -- HiddenDateTime::DATA CADASTRO::::::::::::nao::::::::::::::::::::::
  id_integracao bigint, -- ::id_integracao::::::::::::nao::::::::::::
  id_carga bigint, -- ::id_carga::::::::::::nao::::::::::::
  CONSTRAINT pk_lead_id_lead PRIMARY KEY (id_lead)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.lead
  OWNER TO dbcallcenter;
COMMENT ON COLUMN crm.lead.id_lead IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.nome IS 'Text::NOME::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.nome_fantasia IS 'Text::NOME FANTASIA::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.cpf_cnpj IS 'Text::CPF/CNPJ::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.documento_id IS 'Text::DOCUMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.inscricao_municipal IS 'Text::INSCRICAO MUNICIPAL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.dt_nascimento IS 'Data::DATA NACIMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.endereco IS 'Text::ENDERECO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.numero IS 'Text::NUMERO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.complemento IS 'Text::COMPLEMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.bairro IS 'Text::BAIRRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.cidade IS 'Text::CIDADE::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.uf IS 'Text::UF::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.pais IS 'Text::PAIS::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.referencia IS 'Text::REFERENCIA::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.nome_mae IS 'Text::NOME MAE::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.nome_pai IS 'Text::NOME PAI::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.estado_civil IS 'Text::ESTADO CIVIL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.email IS 'Text::E-MAIL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.cep IS 'Text::CEP::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.tipo_cadastro IS 'Text::TIPO CADASTRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.observacao IS 'TextArea::OBSERVACAO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string1 IS 'Text::Extra String 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string2 IS 'Text::Extra String 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string3 IS 'Text::Extra String 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string4 IS 'Text::Extra String 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string5 IS 'Text::Extra String 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string6 IS 'Text::Extra String 6::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string7 IS 'Text::Extra String 7::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string8 IS 'Text::Extra String 8::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string9 IS 'Text::Extra String 9::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string10 IS 'Text::Extra String 10::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string11 IS 'Text::Extra String 11::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string12 IS 'Text::Extra String 12::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string13 IS 'Text::Extra String 13::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string14 IS 'Text::Extra String 14::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string15 IS 'Text::Extra String 15::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string16 IS 'Text::Extra String 16::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string17 IS 'Text::Extra String 17::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string18 IS 'Text::Extra String 18::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string19 IS 'Text::Extra String 19::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string20 IS 'Text::Extra String 20::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string21 IS 'Text::Extra String 21::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string22 IS 'Text::Extra String 22::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string23 IS 'Text::Extra String 23::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string24 IS 'Text::Extra String 24::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string25 IS 'Text::Extra String 25::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string26 IS 'Text::Extra String 26::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string27 IS 'Text::Extra String 27::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string28 IS 'Text::Extra String 28::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string29 IS 'Text::Extra String 29::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_string30 IS 'Text::Extra String 30::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data1 IS 'Data::Extra Data 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data2 IS 'Data::Extra Data 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data3 IS 'Data::Extra Data 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data4 IS 'Data::Extra Data 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data5 IS 'Data::Extra Data 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data6 IS 'Data::Extra Data 6::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data7 IS 'Data::Extra Data 7::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data8 IS 'Data::Extra Data 8::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data9 IS 'Data::Extra Data 9::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_data10 IS 'Data::Extra Data 10::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int1 IS 'Num::Extra Inteiro 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int2 IS 'Num::Extra Inteiro 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int3 IS 'Num::Extra Inteiro 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int4 IS 'Num::Extra Inteiro 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int5 IS 'Num::Extra Inteiro 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int6 IS 'Num::Extra Inteiro 6::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int7 IS 'Num::Extra Inteiro 7::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int8 IS 'Num::Extra Inteiro 8::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int9 IS 'Num::Extra Inteiro 9::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_int10 IS 'Num::Extra Inteiro 10::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario1 IS 'Moeda::e_monetario1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario2 IS 'Moeda::e_monetario2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario3 IS 'Moeda::e_monetario3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario4 IS 'Moeda::e_monetario4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario5 IS 'Moeda::e_monetario5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario6 IS 'Moeda::e_monetario6::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario7 IS 'Moeda::e_monetario7::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario8 IS 'Moeda::e_monetario8::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario9 IS 'Moeda::e_monetario9::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.e_monetario10 IS 'Moeda::e_monetario10::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.dt_cadastro IS 'HiddenDateTime::DATA CADASTRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead.id_integracao IS '::id_integracao::::::::::::nao::::::::::::';
COMMENT ON COLUMN crm.lead.id_carga IS '::id_carga::::::::::::nao::::::::::::';


-- Index: crm.idx_lead_bairro

-- DROP INDEX crm.idx_lead_bairro;
CREATE TABLE IF NOT EXISTS callcenter.renitencia (
  id_renitencia serial,
  id_chamada int4 NULL,
  id_cliente int4 NULL,
  id_telefone int4 NULL,
  telefone varchar(50) NULL,
  datahora_gerar timestamp NOT NULL,
  id_campanha_rediscagem_status_chamada int4 NULL,
  CONSTRAINT renitencia_pkey PRIMARY KEY (id_renitencia)
)
WITH (
  OIDS=FALSE
);




CREATE INDEX idx_renitencia_datahora_gerar ON
    callcenter.renitencia
        USING btree(datahora_gerar) ;


CREATE INDEX idx_lead_bairro
  ON crm.lead
  USING btree
  (bairro COLLATE pg_catalog."default");

-- Index: crm.idx_lead_cep

-- DROP INDEX crm.idx_lead_cep;

CREATE INDEX idx_lead_cep
  ON crm.lead
  USING btree
  (cep COLLATE pg_catalog."default");

-- Index: crm.idx_lead_cidade

-- DROP INDEX crm.idx_lead_cidade;

CREATE INDEX idx_lead_cidade
  ON crm.lead
  USING btree
  (cidade COLLATE pg_catalog."default");

-- Index: crm.idx_lead_complemento

-- DROP INDEX crm.idx_lead_complemento;

CREATE INDEX idx_lead_complemento
  ON crm.lead
  USING btree
  (complemento COLLATE pg_catalog."default");

-- Index: crm.idx_lead_cpf_cnpj

-- DROP INDEX crm.idx_lead_cpf_cnpj;

CREATE INDEX idx_lead_cpf_cnpj
  ON crm.lead
  USING btree
  (cpf_cnpj COLLATE pg_catalog."default");

-- Index: crm.idx_lead_documento_id

-- DROP INDEX crm.idx_lead_documento_id;

CREATE INDEX idx_lead_documento_id
  ON crm.lead
  USING btree
  (documento_id COLLATE pg_catalog."default");

-- Index: crm.idx_lead_dt_cadastro

-- DROP INDEX crm.idx_lead_dt_cadastro;

CREATE INDEX idx_lead_dt_cadastro
  ON crm.lead
  USING btree
  (dt_cadastro);

-- Index: crm.idx_lead_dt_nascimento

-- DROP INDEX crm.idx_lead_dt_nascimento;

CREATE INDEX idx_lead_dt_nascimento
  ON crm.lead
  USING btree
  (dt_nascimento);

-- Index: crm.idx_lead_e_data1

-- DROP INDEX crm.idx_lead_e_data1;

CREATE INDEX idx_lead_e_data1
  ON crm.lead
  USING btree
  (e_data1);

-- Index: crm.idx_lead_e_data10

-- DROP INDEX crm.idx_lead_e_data10;

CREATE INDEX idx_lead_e_data10
  ON crm.lead
  USING btree
  (e_data10);

-- Index: crm.idx_lead_e_data2

-- DROP INDEX crm.idx_lead_e_data2;

CREATE INDEX idx_lead_e_data2
  ON crm.lead
  USING btree
  (e_data2);

-- Index: crm.idx_lead_e_data3

-- DROP INDEX crm.idx_lead_e_data3;

CREATE INDEX idx_lead_e_data3
  ON crm.lead
  USING btree
  (e_data3);

-- Index: crm.idx_lead_e_data4

-- DROP INDEX crm.idx_lead_e_data4;

CREATE INDEX idx_lead_e_data4
  ON crm.lead
  USING btree
  (e_data4);

-- Index: crm.idx_lead_e_data5

-- DROP INDEX crm.idx_lead_e_data5;

CREATE INDEX idx_lead_e_data5
  ON crm.lead
  USING btree
  (e_data5);

-- Index: crm.idx_lead_e_data6

-- DROP INDEX crm.idx_lead_e_data6;

CREATE INDEX idx_lead_e_data6
  ON crm.lead
  USING btree
  (e_data6);

-- Index: crm.idx_lead_e_data7

-- DROP INDEX crm.idx_lead_e_data7;

CREATE INDEX idx_lead_e_data7
  ON crm.lead
  USING btree
  (e_data7);

-- Index: crm.idx_lead_e_data8

-- DROP INDEX crm.idx_lead_e_data8;

CREATE INDEX idx_lead_e_data8
  ON crm.lead
  USING btree
  (e_data8);

-- Index: crm.idx_lead_e_data9

-- DROP INDEX crm.idx_lead_e_data9;

CREATE INDEX idx_lead_e_data9
  ON crm.lead
  USING btree
  (e_data9);

-- Index: crm.idx_lead_e_int1

-- DROP INDEX crm.idx_lead_e_int1;

CREATE INDEX idx_lead_e_int1
  ON crm.lead
  USING btree
  (e_int1);

-- Index: crm.idx_lead_e_int10

-- DROP INDEX crm.idx_lead_e_int10;

CREATE INDEX idx_lead_e_int10
  ON crm.lead
  USING btree
  (e_int10);

-- Index: crm.idx_lead_e_int2

-- DROP INDEX crm.idx_lead_e_int2;

CREATE INDEX idx_lead_e_int2
  ON crm.lead
  USING btree
  (e_int2);

-- Index: crm.idx_lead_e_int3

-- DROP INDEX crm.idx_lead_e_int3;

CREATE INDEX idx_lead_e_int3
  ON crm.lead
  USING btree
  (e_int3);

-- Index: crm.idx_lead_e_int4

-- DROP INDEX crm.idx_lead_e_int4;

CREATE INDEX idx_lead_e_int4
  ON crm.lead
  USING btree
  (e_int4);

-- Index: crm.idx_lead_e_int5

-- DROP INDEX crm.idx_lead_e_int5;

CREATE INDEX idx_lead_e_int5
  ON crm.lead
  USING btree
  (e_int5);

-- Index: crm.idx_lead_e_int6

-- DROP INDEX crm.idx_lead_e_int6;

CREATE INDEX idx_lead_e_int6
  ON crm.lead
  USING btree
  (e_int6);

-- Index: crm.idx_lead_e_int7

-- DROP INDEX crm.idx_lead_e_int7;

CREATE INDEX idx_lead_e_int7
  ON crm.lead
  USING btree
  (e_int7);

-- Index: crm.idx_lead_e_int8

-- DROP INDEX crm.idx_lead_e_int8;

CREATE INDEX idx_lead_e_int8
  ON crm.lead
  USING btree
  (e_int8);

-- Index: crm.idx_lead_e_int9

-- DROP INDEX crm.idx_lead_e_int9;

CREATE INDEX idx_lead_e_int9
  ON crm.lead
  USING btree
  (e_int9);

-- Index: crm.idx_lead_e_monetario1

-- DROP INDEX crm.idx_lead_e_monetario1;

CREATE INDEX idx_lead_e_monetario1
  ON crm.lead
  USING btree
  (e_monetario1);

-- Index: crm.idx_lead_e_monetario10

-- DROP INDEX crm.idx_lead_e_monetario10;

CREATE INDEX idx_lead_e_monetario10
  ON crm.lead
  USING btree
  (e_monetario10);

-- Index: crm.idx_lead_e_monetario2

-- DROP INDEX crm.idx_lead_e_monetario2;

CREATE INDEX idx_lead_e_monetario2
  ON crm.lead
  USING btree
  (e_monetario2);

-- Index: crm.idx_lead_e_monetario3

-- DROP INDEX crm.idx_lead_e_monetario3;

CREATE INDEX idx_lead_e_monetario3
  ON crm.lead
  USING btree
  (e_monetario3);

-- Index: crm.idx_lead_e_monetario4

-- DROP INDEX crm.idx_lead_e_monetario4;

CREATE INDEX idx_lead_e_monetario4
  ON crm.lead
  USING btree
  (e_monetario4);

-- Index: crm.idx_lead_e_monetario5

-- DROP INDEX crm.idx_lead_e_monetario5;

CREATE INDEX idx_lead_e_monetario5
  ON crm.lead
  USING btree
  (e_monetario5);

-- Index: crm.idx_lead_e_monetario6

-- DROP INDEX crm.idx_lead_e_monetario6;

CREATE INDEX idx_lead_e_monetario6
  ON crm.lead
  USING btree
  (e_monetario6);

-- Index: crm.idx_lead_e_monetario7

-- DROP INDEX crm.idx_lead_e_monetario7;

CREATE INDEX idx_lead_e_monetario7
  ON crm.lead
  USING btree
  (e_monetario7);

-- Index: crm.idx_lead_e_monetario8

-- DROP INDEX crm.idx_lead_e_monetario8;

CREATE INDEX idx_lead_e_monetario8
  ON crm.lead
  USING btree
  (e_monetario8);

-- Index: crm.idx_lead_e_monetario9

-- DROP INDEX crm.idx_lead_e_monetario9;

CREATE INDEX idx_lead_e_monetario9
  ON crm.lead
  USING btree
  (e_monetario9);

-- Index: crm.idx_lead_e_string1

-- DROP INDEX crm.idx_lead_e_string1;

CREATE INDEX idx_lead_e_string1
  ON crm.lead
  USING btree
  (e_string1 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string10

-- DROP INDEX crm.idx_lead_e_string10;

CREATE INDEX idx_lead_e_string10
  ON crm.lead
  USING btree
  (e_string10 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string11

-- DROP INDEX crm.idx_lead_e_string11;

CREATE INDEX idx_lead_e_string11
  ON crm.lead
  USING btree
  (e_string11 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string12

-- DROP INDEX crm.idx_lead_e_string12;

CREATE INDEX idx_lead_e_string12
  ON crm.lead
  USING btree
  (e_string12 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string13

-- DROP INDEX crm.idx_lead_e_string13;

CREATE INDEX idx_lead_e_string13
  ON crm.lead
  USING btree
  (e_string13 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string14

-- DROP INDEX crm.idx_lead_e_string14;

CREATE INDEX idx_lead_e_string14
  ON crm.lead
  USING btree
  (e_string14 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string15

-- DROP INDEX crm.idx_lead_e_string15;

CREATE INDEX idx_lead_e_string15
  ON crm.lead
  USING btree
  (e_string15 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string16

-- DROP INDEX crm.idx_lead_e_string16;

CREATE INDEX idx_lead_e_string16
  ON crm.lead
  USING btree
  (e_string16 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string17

-- DROP INDEX crm.idx_lead_e_string17;

CREATE INDEX idx_lead_e_string17
  ON crm.lead
  USING btree
  (e_string17 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string18

-- DROP INDEX crm.idx_lead_e_string18;

CREATE INDEX idx_lead_e_string18
  ON crm.lead
  USING btree
  (e_string18 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string19

-- DROP INDEX crm.idx_lead_e_string19;

CREATE INDEX idx_lead_e_string19
  ON crm.lead
  USING btree
  (e_string19 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string2

-- DROP INDEX crm.idx_lead_e_string2;

CREATE INDEX idx_lead_e_string2
  ON crm.lead
  USING btree
  (e_string2 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string20

-- DROP INDEX crm.idx_lead_e_string20;

CREATE INDEX idx_lead_e_string20
  ON crm.lead
  USING btree
  (e_string20 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string21

-- DROP INDEX crm.idx_lead_e_string21;

CREATE INDEX idx_lead_e_string21
  ON crm.lead
  USING btree
  (e_string21 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string22

-- DROP INDEX crm.idx_lead_e_string22;

CREATE INDEX idx_lead_e_string22
  ON crm.lead
  USING btree
  (e_string22 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string23

-- DROP INDEX crm.idx_lead_e_string23;

CREATE INDEX idx_lead_e_string23
  ON crm.lead
  USING btree
  (e_string23 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string24

-- DROP INDEX crm.idx_lead_e_string24;

CREATE INDEX idx_lead_e_string24
  ON crm.lead
  USING btree
  (e_string24 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string25

-- DROP INDEX crm.idx_lead_e_string25;

CREATE INDEX idx_lead_e_string25
  ON crm.lead
  USING btree
  (e_string25 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string26

-- DROP INDEX crm.idx_lead_e_string26;

CREATE INDEX idx_lead_e_string26
  ON crm.lead
  USING btree
  (e_string26 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string27

-- DROP INDEX crm.idx_lead_e_string27;

CREATE INDEX idx_lead_e_string27
  ON crm.lead
  USING btree
  (e_string27 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string28

-- DROP INDEX crm.idx_lead_e_string28;

CREATE INDEX idx_lead_e_string28
  ON crm.lead
  USING btree
  (e_string28 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string29

-- DROP INDEX crm.idx_lead_e_string29;

CREATE INDEX idx_lead_e_string29
  ON crm.lead
  USING btree
  (e_string29 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string3

-- DROP INDEX crm.idx_lead_e_string3;

CREATE INDEX idx_lead_e_string3
  ON crm.lead
  USING btree
  (e_string3 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string30

-- DROP INDEX crm.idx_lead_e_string30;

CREATE INDEX idx_lead_e_string30
  ON crm.lead
  USING btree
  (e_string30 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string4

-- DROP INDEX crm.idx_lead_e_string4;

CREATE INDEX idx_lead_e_string4
  ON crm.lead
  USING btree
  (e_string4 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string5

-- DROP INDEX crm.idx_lead_e_string5;

CREATE INDEX idx_lead_e_string5
  ON crm.lead
  USING btree
  (e_string5 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string6

-- DROP INDEX crm.idx_lead_e_string6;

CREATE INDEX idx_lead_e_string6
  ON crm.lead
  USING btree
  (e_string6 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string7

-- DROP INDEX crm.idx_lead_e_string7;

CREATE INDEX idx_lead_e_string7
  ON crm.lead
  USING btree
  (e_string7 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string8

-- DROP INDEX crm.idx_lead_e_string8;

CREATE INDEX idx_lead_e_string8
  ON crm.lead
  USING btree
  (e_string8 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_e_string9

-- DROP INDEX crm.idx_lead_e_string9;

CREATE INDEX idx_lead_e_string9
  ON crm.lead
  USING btree
  (e_string9 COLLATE pg_catalog."default");

-- Index: crm.idx_lead_email

-- DROP INDEX crm.idx_lead_email;

CREATE INDEX idx_lead_email
  ON crm.lead
  USING btree
  (email COLLATE pg_catalog."default");

-- Index: crm.idx_lead_endereco

-- DROP INDEX crm.idx_lead_endereco;

CREATE INDEX idx_lead_endereco
  ON crm.lead
  USING btree
  (endereco COLLATE pg_catalog."default");

-- Index: crm.idx_lead_estado_civil

-- DROP INDEX crm.idx_lead_estado_civil;

CREATE INDEX idx_lead_estado_civil
  ON crm.lead
  USING btree
  (estado_civil COLLATE pg_catalog."default");

-- Index: crm.idx_lead_id_carga

-- DROP INDEX crm.idx_lead_id_carga;

CREATE INDEX idx_lead_id_carga
  ON crm.lead
  USING btree
  (id_carga);

-- Index: crm.idx_lead_id_integracao

-- DROP INDEX crm.idx_lead_id_integracao;

CREATE INDEX idx_lead_id_integracao
  ON crm.lead
  USING btree
  (id_integracao);

-- Index: crm.idx_lead_inscricao_municipal

-- DROP INDEX crm.idx_lead_inscricao_municipal;

CREATE INDEX idx_lead_inscricao_municipal
  ON crm.lead
  USING btree
  (inscricao_municipal COLLATE pg_catalog."default");

-- Index: crm.idx_lead_nome

-- DROP INDEX crm.idx_lead_nome;

CREATE INDEX idx_lead_nome
  ON crm.lead
  USING btree
  (nome COLLATE pg_catalog."default");

-- Index: crm.idx_lead_nome_fantasia

-- DROP INDEX crm.idx_lead_nome_fantasia;

CREATE INDEX idx_lead_nome_fantasia
  ON crm.lead
  USING btree
  (nome_fantasia COLLATE pg_catalog."default");

-- Index: crm.idx_lead_nome_mae

-- DROP INDEX crm.idx_lead_nome_mae;

CREATE INDEX idx_lead_nome_mae
  ON crm.lead
  USING btree
  (nome_mae COLLATE pg_catalog."default");

-- Index: crm.idx_lead_nome_pai

-- DROP INDEX crm.idx_lead_nome_pai;

CREATE INDEX idx_lead_nome_pai
  ON crm.lead
  USING btree
  (nome_pai COLLATE pg_catalog."default");

-- Index: crm.idx_lead_numero

-- DROP INDEX crm.idx_lead_numero;

CREATE INDEX idx_lead_numero
  ON crm.lead
  USING btree
  (numero COLLATE pg_catalog."default");

-- Index: crm.idx_lead_observacao

-- DROP INDEX crm.idx_lead_observacao;

CREATE INDEX idx_lead_observacao
  ON crm.lead
  USING btree
  (observacao COLLATE pg_catalog."default");

-- Index: crm.idx_lead_pais

-- DROP INDEX crm.idx_lead_pais;

CREATE INDEX idx_lead_pais
  ON crm.lead
  USING btree
  (pais COLLATE pg_catalog."default");

-- Index: crm.idx_lead_referencia

-- DROP INDEX crm.idx_lead_referencia;

CREATE INDEX idx_lead_referencia
  ON crm.lead
  USING btree
  (referencia COLLATE pg_catalog."default");

-- Index: crm.idx_lead_tipo_cadastro

-- DROP INDEX crm.idx_lead_tipo_cadastro;

CREATE INDEX idx_lead_tipo_cadastro
  ON crm.lead
  USING btree
  (tipo_cadastro COLLATE pg_catalog."default");

-- Index: crm.idx_lead_uf

-- DROP INDEX crm.idx_lead_uf;

CREATE INDEX idx_lead_uf
  ON crm.lead
  USING btree
  (uf COLLATE pg_catalog."default");

-- Table: crm.lead_telefone

-- DROP TABLE crm.lead_telefone;

CREATE TABLE crm.lead_telefone
(
  id_lead_telefone bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  nome_contato character varying(300), -- Text::Nome do contato::::::::::::nao::::::::::::::::::::::
  email character varying(100), -- Text::E-mail::::::::::::nao::::::::::::::::::::::
  cargo character varying(150), -- Text::cargo::::::::::::nao::::::::::::::::::::::
  telefone character varying(20), -- Text::num_telefone::::::::::::nao::::::::::::::::::::::
  telefone_f character varying(20), -- Text::num_telefone_f::::::::::::nao::::::::::::::::::::::
  id_lead bigint, -- Hidden::id_lead::::::::::::nao::::::::crm.lead::::::::::::::
  ddd integer, -- Text::ddd::::::::::::nao::::::::::::::::::::::
  operadora character varying(30), -- Text::operadora::::::::::::nao::::::::::::::::::::::
  tipo_tel integer, -- Text::tipo_tel::::::::::::nao::::::::::::::::::::::
  id_carga bigint, -- Hidden::id_carga::::::::::::nao::::::::::::::::::::::
  CONSTRAINT pk_lead_telefone_id_lead_telefone PRIMARY KEY (id_lead_telefone),
  CONSTRAINT fk_lead_telefone_id_lead FOREIGN KEY (id_lead)
      REFERENCES crm.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.lead_telefone
  OWNER TO dbcallcenter;
COMMENT ON COLUMN crm.lead_telefone.id_lead_telefone IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.nome_contato IS 'Text::Nome do contato::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.email IS 'Text::E-mail::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.cargo IS 'Text::cargo::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.telefone IS 'Text::num_telefone::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.telefone_f IS 'Text::num_telefone_f::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.id_lead IS 'Hidden::id_lead::::::::::::nao::::::::crm.lead::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.ddd IS 'Text::ddd::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.operadora IS 'Text::operadora::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.tipo_tel IS 'Text::tipo_tel::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.lead_telefone.id_carga IS 'Hidden::id_carga::::::::::::nao::::::::::::::::::::::';


-- Index: crm.idx_lead_telefone_cargo

-- DROP INDEX crm.idx_lead_telefone_cargo;

CREATE INDEX idx_lead_telefone_cargo
  ON crm.lead_telefone
  USING btree
  (cargo COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_ddd

-- DROP INDEX crm.idx_lead_telefone_ddd;

CREATE INDEX idx_lead_telefone_ddd
  ON crm.lead_telefone
  USING btree
  (ddd);

-- Index: crm.idx_lead_telefone_email

-- DROP INDEX crm.idx_lead_telefone_email;

CREATE INDEX idx_lead_telefone_email
  ON crm.lead_telefone
  USING btree
  (email COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_id_carga

-- DROP INDEX crm.idx_lead_telefone_id_carga;

CREATE INDEX idx_lead_telefone_id_carga
  ON crm.lead_telefone
  USING btree
  (id_carga);

-- Index: crm.idx_lead_telefone_id_lead

-- DROP INDEX crm.idx_lead_telefone_id_lead;

CREATE INDEX idx_lead_telefone_id_lead
  ON crm.lead_telefone
  USING btree
  (id_lead);

-- Index: crm.idx_lead_telefone_nome_contato

-- DROP INDEX crm.idx_lead_telefone_nome_contato;

CREATE INDEX idx_lead_telefone_nome_contato
  ON crm.lead_telefone
  USING btree
  (nome_contato COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_num_telefone

-- DROP INDEX crm.idx_lead_telefone_num_telefone;

CREATE INDEX idx_lead_telefone_num_telefone
  ON crm.lead_telefone
  USING btree
  (telefone COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_num_telefone_f

-- DROP INDEX crm.idx_lead_telefone_num_telefone_f;

CREATE INDEX idx_lead_telefone_num_telefone_f
  ON crm.lead_telefone
  USING btree
  (telefone_f COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_operadora

-- DROP INDEX crm.idx_lead_telefone_operadora;

CREATE INDEX idx_lead_telefone_operadora
  ON crm.lead_telefone
  USING btree
  (operadora COLLATE pg_catalog."default");

-- Index: crm.idx_lead_telefone_tipo_tel

-- DROP INDEX crm.idx_lead_telefone_tipo_tel;

CREATE INDEX idx_lead_telefone_tipo_tel
  ON crm.lead_telefone
  USING btree
  (tipo_tel);





-- Table: crm.carga_m_lead

-- DROP TABLE crm.carga_m_lead;

CREATE TABLE crm.carga_m_lead
(
  id_carga_m_lead bigserial NOT NULL,
  id_carga bigint NOT NULL,
  id_carga_registro bigint NOT NULL,
  tipo character varying(1),
  id_lead bigint NOT NULL,
  status smallint NOT NULL DEFAULT 0,
  CONSTRAINT pk_carga_m_lead_id_carga_m_lead PRIMARY KEY (id_carga_m_lead),
  CONSTRAINT fk_carga_m_lead_id_carga FOREIGN KEY (id_carga)
      REFERENCES crm.carga (id_carga) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_carga_m_lead_id_lead FOREIGN KEY (id_lead)
      REFERENCES crm.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.carga_m_lead
  OWNER TO dbcallcenter;

-- Index: crm.idx_carga_m_lead_id_carga

-- DROP INDEX crm.idx_carga_m_lead_id_carga;

CREATE INDEX idx_carga_m_lead_id_carga
  ON crm.carga_m_lead
  USING btree
  (id_lead);

-- Index: crm.idx_carga_m_lead_id_carga_registro

-- DROP INDEX crm.idx_carga_m_lead_id_carga_registro;

CREATE INDEX idx_carga_m_lead_id_carga_registro
  ON crm.carga_m_lead
  USING btree
  (id_carga_registro);

-- Index: crm.idx_carga_m_lead_id_lead

-- DROP INDEX crm.idx_carga_m_lead_id_lead;

CREATE INDEX idx_carga_m_lead_id_lead
  ON crm.carga_m_lead
  USING btree
  (id_lead);

-- Index: crm.idx_carga_m_lead_status

-- DROP INDEX crm.idx_carga_m_lead_status;

CREATE INDEX idx_carga_m_lead_status
  ON crm.carga_m_lead
  USING btree
  (status);

-- Index: crm.idx_carga_m_lead_tipo

-- DROP INDEX crm.idx_carga_m_lead_tipo;

CREATE INDEX idx_carga_m_lead_tipo
  ON crm.carga_m_lead
  USING btree
  (tipo COLLATE pg_catalog."default");


  -- Table: crm.carga_m_lead_telefone

-- DROP TABLE crm.carga_m_lead_telefone;

CREATE TABLE crm.carga_m_lead_telefone
(
  id_carga_m_lead_telefone bigserial NOT NULL,
  id_carga bigint NOT NULL,
  id_carga_registro bigint NOT NULL,
  id_lead bigint NOT NULL,
  telefone character varying(20) NOT NULL,
  telefonen character varying(20) NOT NULL,
  tipotel smallint NOT NULL,
  operadora character varying(75),
  cnl character varying(50),
  status smallint NOT NULL DEFAULT 0,
  CONSTRAINT pk_carga_m_lead_telefone_id_carga_m_lead_telefone PRIMARY KEY (id_carga_m_lead_telefone),
  CONSTRAINT fk_carga_m_lead_id_lead FOREIGN KEY (id_lead)
      REFERENCES crm.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_carga_m_lead_telefone_id_carga FOREIGN KEY (id_carga)
      REFERENCES crm.carga (id_carga) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.carga_m_lead_telefone
  OWNER TO dbcallcenter;

-- Index: crm.idx_carga_m_lead_telefone_id_carga

-- DROP INDEX crm.idx_carga_m_lead_telefone_id_carga;

CREATE INDEX idx_carga_m_lead_telefone_id_carga
  ON crm.carga_m_lead_telefone
  USING btree
  (id_carga);

-- Index: crm.idx_carga_m_lead_telefone_id_carga_registro

-- DROP INDEX crm.idx_carga_m_lead_telefone_id_carga_registro;

CREATE INDEX idx_carga_m_lead_telefone_id_carga_registro
  ON crm.carga_m_lead_telefone
  USING btree
  (id_carga_registro);

-- Index: crm.idx_carga_m_lead_telefone_id_lead

-- DROP INDEX crm.idx_carga_m_lead_telefone_id_lead;

CREATE INDEX idx_carga_m_lead_telefone_id_lead
  ON crm.carga_m_lead_telefone
  USING btree
  (id_lead);

-- Index: crm.idx_carga_m_lead_telefone_status

-- DROP INDEX crm.idx_carga_m_lead_telefone_status;

CREATE INDEX idx_carga_m_lead_telefone_status
  ON crm.carga_m_lead_telefone
  USING btree
  (status);

-- Index: crm.idx_carga_m_lead_telefone_telefone

-- DROP INDEX crm.idx_carga_m_lead_telefone_telefone;

CREATE INDEX idx_carga_m_lead_telefone_telefone
  ON crm.carga_m_lead_telefone
  USING btree
  (telefone COLLATE pg_catalog."default");

-- Index: crm.idx_carga_m_lead_telefone_telefonen

-- DROP INDEX crm.idx_carga_m_lead_telefone_telefonen;

CREATE INDEX idx_carga_m_lead_telefone_telefonen
  ON crm.carga_m_lead_telefone
  USING btree
  (telefonen COLLATE pg_catalog."default");

-- Index: crm.idx_carga_m_lead_telefone_tipotel

-- DROP INDEX crm.idx_carga_m_lead_telefone_tipotel;

CREATE INDEX idx_carga_m_lead_telefone_tipotel
  ON crm.carga_m_lead_telefone
  USING btree
  (tipotel);





CREATE SCHEMA discador
  AUTHORIZATION dbcallcenter;

GRANT ALL ON SCHEMA discador TO dbcallcenter;

-- Sequence: discador.campanha_estrategia_seq

-- DROP SEQUENCE discador.campanha_estrategia_seq;

CREATE SEQUENCE discador.campanha_estrategia_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 62
  CACHE 1;
ALTER TABLE discador.campanha_estrategia_seq
  OWNER TO dbcallcenter;
GRANT ALL ON SEQUENCE discador.campanha_estrategia_seq TO dbcallcenter;


-- Sequence: discador.campanha_lead_estrategia_seq

-- DROP SEQUENCE discador.campanha_lead_estrategia_seq;

CREATE SEQUENCE discador.campanha_lead_estrategia_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 42
  CACHE 1;
ALTER TABLE discador.campanha_lead_estrategia_seq
  OWNER TO dbcallcenter;
GRANT ALL ON SEQUENCE discador.campanha_lead_estrategia_seq TO dbcallcenter;


-- Sequence: discador.campanha_lead_seq

-- DROP SEQUENCE discador.campanha_lead_seq;

CREATE SEQUENCE discador.campanha_lead_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 325442
  CACHE 1;
ALTER TABLE discador.campanha_lead_seq
  OWNER TO dbcallcenter;
GRANT ALL ON SEQUENCE discador.campanha_lead_seq TO dbcallcenter;


-- Sequence: discador.chamada_lead_seq

-- DROP SEQUENCE discador.chamada_lead_seq;

CREATE SEQUENCE discador.chamada_lead_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 4643
  CACHE 1;
ALTER TABLE discador.chamada_lead_seq
  OWNER TO dbcallcenter;
GRANT ALL ON SEQUENCE discador.chamada_lead_seq TO dbcallcenter;


-- Sequence: discador.estrategia_filtro_id_estrategia_filtro_seq1

-- DROP SEQUENCE discador.estrategia_filtro_id_estrategia_filtro_seq1;

CREATE SEQUENCE discador.estrategia_filtro_id_estrategia_filtro_seq1
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 37
  CACHE 1;
ALTER TABLE discador.estrategia_filtro_id_estrategia_filtro_seq1
  OWNER TO dbcallcenter;



  -- Sequence: discador.estrategia_ordenacao_id_estrategia_ordenacao_seq

-- DROP SEQUENCE discador.estrategia_ordenacao_id_estrategia_ordenacao_seq;

CREATE SEQUENCE discador.estrategia_ordenacao_id_estrategia_ordenacao_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 24
  CACHE 1;
ALTER TABLE discador.estrategia_ordenacao_id_estrategia_ordenacao_seq
  OWNER TO dbcallcenter;


  -- Sequence: discador.filtro_id_filtro_seq

-- DROP SEQUENCE discador.filtro_id_filtro_seq;

CREATE SEQUENCE discador.filtro_id_filtro_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 38
  CACHE 1;
ALTER TABLE discador.filtro_id_filtro_seq
  OWNER TO dbcallcenter;


  -- Sequence: discador.lead_chamadas_processando_seq

-- DROP SEQUENCE discador.lead_chamadas_processando_seq;

CREATE SEQUENCE discador.lead_chamadas_processando_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 27554
  CACHE 1;
ALTER TABLE discador.lead_chamadas_processando_seq
  OWNER TO dbcallcenter;

  -- Sequence: discador.lead_id_lead_seq

-- DROP SEQUENCE discador.lead_id_lead_seq;

CREATE SEQUENCE discador.lead_id_lead_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 30499
  CACHE 1;
ALTER TABLE discador.lead_id_lead_seq
  OWNER TO dbcallcenter;


  -- Sequence: discador.lead_id_lead_seq1

-- DROP SEQUENCE discador.lead_id_lead_seq1;

CREATE SEQUENCE discador.lead_id_lead_seq1
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 63180
  CACHE 1;
ALTER TABLE discador.lead_id_lead_seq1
  OWNER TO dbcallcenter;



  -- Sequence: discador.lead_telefone_id_lead_telefone_seq

-- DROP SEQUENCE discador.lead_telefone_id_lead_telefone_seq;

CREATE SEQUENCE discador.lead_telefone_id_lead_telefone_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 226494
  CACHE 1;
ALTER TABLE discador.lead_telefone_id_lead_telefone_seq
  OWNER TO dbcallcenter;




  -- Sequence: discador.lead_telefone_id_lead_telefone_seq2

-- DROP SEQUENCE discador.lead_telefone_id_lead_telefone_seq2;

CREATE SEQUENCE discador.lead_telefone_id_lead_telefone_seq2
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 77827
  CACHE 1;
ALTER TABLE discador.lead_telefone_id_lead_telefone_seq2
  OWNER TO dbcallcenter;



  -- Sequence: discador.plano_horario_id_plano_horario_seq

-- DROP SEQUENCE discador.plano_horario_id_plano_horario_seq;

CREATE SEQUENCE discador.plano_horario_id_plano_horario_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 49
  CACHE 1;
ALTER TABLE discador.plano_horario_id_plano_horario_seq
  OWNER TO dbcallcenter;



  -- Sequence: discador.plano_horario_itens_id_plano_horario_itens_seq

-- DROP SEQUENCE discador.plano_horario_itens_id_plano_horario_itens_seq;

CREATE SEQUENCE discador.plano_horario_itens_id_plano_horario_itens_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 163
  CACHE 1;
ALTER TABLE discador.plano_horario_itens_id_plano_horario_itens_seq
  OWNER TO dbcallcenter;


  -- Sequence: discador.tabulacao_chamada_id_tabulacao_chamada_seq

-- DROP SEQUENCE discador.tabulacao_chamada_id_tabulacao_chamada_seq;

CREATE SEQUENCE discador.tabulacao_chamada_id_tabulacao_chamada_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 87
  CACHE 1;
ALTER TABLE discador.tabulacao_chamada_id_tabulacao_chamada_seq
  OWNER TO dbcallcenter;

  -- Sequence: discador.tabulacao_id_tabulacao_seq

-- DROP SEQUENCE discador.tabulacao_id_tabulacao_seq;

CREATE SEQUENCE discador.tabulacao_id_tabulacao_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 8
  CACHE 1;
ALTER TABLE discador.tabulacao_id_tabulacao_seq
  OWNER TO dbcallcenter;




  -- Table: discador.campanha_lead

-- DROP TABLE discador.campanha_lead;

CREATE TABLE discador.campanha_lead
(
  id_campanha_lead integer NOT NULL DEFAULT nextval('discador.campanha_lead_seq'::regclass),
  id_campanha integer NOT NULL,
  id_carga integer NOT NULL,
  ativo smallint DEFAULT 0, -- 1 ativo e 0 inativo
  datahora_inicio timestamp with time zone NOT NULL DEFAULT now(),
  datahora_termino timestamp with time zone,
  lead_carregado smallint NOT NULL DEFAULT 0,
  participacao_discagem smallint NOT NULL DEFAULT 100, -- aqui deve ser gravado o numeral percentual de participacao do lead na discagem para a campanha
  lead_apagado smallint NOT NULL DEFAULT 0, -- 1 apagado - nao vai trabalhar mais , 0 nao apagado continua trabalhando
  CONSTRAINT pk_campanha_lead PRIMARY KEY (id_campanha_lead)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.campanha_lead
  OWNER TO dbcallcenter;
COMMENT ON COLUMN discador.campanha_lead.ativo IS '1 ativo e 0 inativo';
COMMENT ON COLUMN discador.campanha_lead.participacao_discagem IS 'aqui deve ser gravado o numeral percentual de participacao do lead na discagem para a campanha';
COMMENT ON COLUMN discador.campanha_lead.lead_apagado IS '1 apagado - nao vai trabalhar mais , 0 nao apagado continua trabalhando';


-- Index: discador.idx_campanha_lead_ativo

-- DROP INDEX discador.idx_campanha_lead_ativo;

CREATE INDEX idx_campanha_lead_ativo
  ON discador.campanha_lead
  USING btree
  (ativo DESC);

-- Index: discador.idx_campanha_lead_datahora_inicio

-- DROP INDEX discador.idx_campanha_lead_datahora_inicio;

CREATE INDEX idx_campanha_lead_datahora_inicio
  ON discador.campanha_lead
  USING btree
  (datahora_inicio DESC);

-- Index: discador.idx_campanha_lead_datahora_termino

-- DROP INDEX discador.idx_campanha_lead_datahora_termino;

CREATE INDEX idx_campanha_lead_datahora_termino
  ON discador.campanha_lead
  USING btree
  (datahora_termino DESC);

-- Index: discador.idx_campanha_lead_id_campanha

-- DROP INDEX discador.idx_campanha_lead_id_campanha;

CREATE INDEX idx_campanha_lead_id_campanha
  ON discador.campanha_lead
  USING btree
  (id_campanha DESC);

-- Index: discador.idx_campanha_lead_id_lead

-- DROP INDEX discador.idx_campanha_lead_id_lead;

CREATE INDEX idx_campanha_lead_id_lead
  ON discador.campanha_lead
  USING btree
  (id_carga DESC);

-- Table: discador.campanha_lead_estrategia

-- DROP TABLE discador.campanha_lead_estrategia;

CREATE TABLE discador.campanha_lead_estrategia
(
  id_lead_estrategia integer NOT NULL DEFAULT nextval('discador.campanha_lead_estrategia_seq'::regclass),
  id_estrategia integer NOT NULL,
  id_carga integer NOT NULL,
  id_campanha integer NOT NULL,
  CONSTRAINT pk_id_lead_estrategia PRIMARY KEY (id_lead_estrategia)
)
WITH (
  FILLFACTOR=80,
  OIDS=FALSE
);
ALTER TABLE discador.campanha_lead_estrategia
  OWNER TO dbcallcenter;



  -- Table: discador.carrega_lead

-- DROP TABLE discador.carrega_lead;

CREATE TABLE discador.carrega_lead
(
  id_carrega_lead integer NOT NULL DEFAULT nextval('discador.campanha_lead_seq'::regclass),
  id_lead integer NOT NULL
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.carrega_lead
  OWNER TO dbcallcenter;

-- Index: discador.idx_carrega_lead_id_carrega_lead

-- DROP INDEX discador.idx_carrega_lead_id_carrega_lead;

CREATE INDEX idx_carrega_lead_id_carrega_lead
  ON discador.carrega_lead
  USING btree
  (id_carrega_lead DESC);

-- Index: discador.idx_carrega_lead_id_lead

-- DROP INDEX discador.idx_carrega_lead_id_lead;

CREATE INDEX idx_carrega_lead_id_lead
  ON discador.carrega_lead
  USING btree
  (id_lead DESC);


  -- Table: discador.carrega_lead_telefone

-- DROP TABLE discador.carrega_lead_telefone;

CREATE TABLE discador.carrega_lead_telefone
(
  id_carrega_lead_telefone integer NOT NULL DEFAULT nextval('discador.campanha_lead_seq'::regclass),
  id_lead integer NOT NULL,
  telefone bigint
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.carrega_lead_telefone
  OWNER TO dbcallcenter;

-- Index: discador.idx_carrega_lead_id_carrega_lead_telefone

-- DROP INDEX discador.idx_carrega_lead_id_carrega_lead_telefone;

CREATE INDEX idx_carrega_lead_id_carrega_lead_telefone
  ON discador.carrega_lead_telefone
  USING btree
  (id_carrega_lead_telefone DESC);

-- Index: discador.idx_carrega_lead_id_lead_telefone

-- DROP INDEX discador.idx_carrega_lead_id_lead_telefone;

CREATE INDEX idx_carrega_lead_id_lead_telefone
  ON discador.carrega_lead_telefone
  USING btree
  (id_lead DESC);

-- Index: discador.idx_carrega_lead_telefone_telefone_lead_telefone

-- DROP INDEX discador.idx_carrega_lead_telefone_telefone_lead_telefone;

CREATE INDEX idx_carrega_lead_telefone_telefone_lead_telefone
  ON discador.carrega_lead_telefone
  USING btree
  (telefone DESC);

-- Table: discador.chamadas_lead

-- DROP TABLE discador.chamadas_lead;

CREATE TABLE discador.chamadas_lead
(
  id_chamada_lead bigint NOT NULL DEFAULT nextval('discador.chamada_lead_seq'::regclass),
  id_lead bigint NOT NULL,
  nome character varying(300),
  nome_fantasia character varying(300),
  cpf_cnpj character varying(18),
  documento_id character varying(15),
  inscricao_municipal character varying(15),
  dt_nascimento date,
  endereco character varying(300),
  numero character varying(30),
  complemento character varying(300),
  bairro character varying(300),
  cidade character varying(300),
  uf character varying(2),
  pais character varying(40),
  referencia character varying(300),
  nome_mae character varying(200),
  nome_pai character varying(200),
  estado_civil character varying(3),
  email character varying(60),
  cep character varying(10),
  tipo_cadastro character varying(3),
  observacao text,
  e_string1 character varying(300),
  e_string2 character varying(300),
  e_string3 character varying(300),
  e_string4 character varying(300),
  e_string5 character varying(300),
  e_string6 character varying(300),
  e_string7 character varying(300),
  e_string8 character varying(300),
  e_string9 character varying(300),
  e_string10 character varying(300),
  e_data1 date,
  e_data2 date,
  e_data3 date,
  e_data4 date,
  e_data5 date,
  e_int1 integer,
  e_int2 integer,
  e_int3 integer,
  e_int4 integer,
  e_int5 integer,
  e_monetario1 numeric(9,3),
  e_monetario2 numeric(9,3),
  e_monetario3 numeric(9,3),
  e_monetario4 numeric(9,3),
  e_monetario5 numeric(9,3),
  dt_cadastro timestamp with time zone,
  telefone bigint,
  telefone_f character varying(20),
  id_integracao bigint,
  id_carga bigint,
  id_agente integer,
  datahora_inicio_chamada timestamp with time zone,
  datahora_termino_chamada timestamp with time zone,
  duracao_chamada integer,
  id_status_chamada integer,
  uniqueid character varying(40),
  id_campanha integer NOT NULL,
  CONSTRAINT pk2_id_chamada_lead PRIMARY KEY (id_chamada_lead)
)
WITH (
  FILLFACTOR=90,
  OIDS=FALSE
);
ALTER TABLE discador.chamadas_lead
  OWNER TO dbcallcenter;

-- Index: discador.idx_chamadas_lead_id_campanha

-- DROP INDEX discador.idx_chamadas_lead_id_campanha;

CREATE INDEX idx_chamadas_lead_id_campanha
  ON discador.chamadas_lead
  USING btree
  (id_campanha DESC);

-- Index: discador.idx_chamadas_lead_id_carga

-- DROP INDEX discador.idx_chamadas_lead_id_carga;

CREATE INDEX idx_chamadas_lead_id_carga
  ON discador.chamadas_lead
  USING btree
  (id_carga DESC);

-- Index: discador.idx_chamadas_lead_id_lead

-- DROP INDEX discador.idx_chamadas_lead_id_lead;

CREATE INDEX idx_chamadas_lead_id_lead
  ON discador.chamadas_lead
  USING btree
  (id_lead DESC);


  -- Table: discador.estrategia

-- DROP TABLE discador.estrategia;

CREATE TABLE discador.estrategia
(
  id_estrategia integer NOT NULL DEFAULT nextval('discador.campanha_estrategia_seq'::regclass),
  descricao character varying(50),
  created_at timestamp with time zone,
  updated_at timestamp with time zone,
  id_layout bigint,
  id_plano_horario bigint,
  updated_by bigint,
  habilitado integer DEFAULT 1,
  status integer DEFAULT 1,
  sql_where character varying,
  agendado smallint DEFAULT 0, -- se for agendado e 1 se nao e 0
  sql_order character varying DEFAULT ''::character varying,
  CONSTRAINT discador_campanha_estrategia_pkey PRIMARY KEY (id_estrategia)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.estrategia
  OWNER TO dbcallcenter;
COMMENT ON COLUMN discador.estrategia.agendado IS 'se for agendado e 1 se nao e 0';


-- Index: discador.idx_campanha_estrategia

-- DROP INDEX discador.idx_campanha_estrategia;

CREATE INDEX idx_campanha_estrategia
  ON discador.estrategia
  USING btree
  (id_estrategia);



  -- Table: discador.estrategia_filtro

-- DROP TABLE discador.estrategia_filtro;

CREATE TABLE discador.estrategia_filtro
(
  id_estrategia_filtro integer NOT NULL DEFAULT nextval('discador.estrategia_filtro_id_estrategia_filtro_seq1'::regclass),
  id_estrategia integer,
  id_filtro integer,
  prioridade integer DEFAULT 1,
  created_at timestamp with time zone,
  updated_at timestamp with time zone,
  updated_by bigint,
  CONSTRAINT pk_estrategia_filtros PRIMARY KEY (id_estrategia_filtro)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.estrategia_filtro
  OWNER TO dbcallcenter;




  -- Table: discador.estrategia_ordenacao

-- DROP TABLE discador.estrategia_ordenacao;

CREATE TABLE discador.estrategia_ordenacao
(
  id_estrategia_ordenacao serial NOT NULL,
  campo character varying(255),
  valor character varying(30),
  habilitado smallint DEFAULT 1,
  id_estrategia integer,
  CONSTRAINT pk_estrategia_ordenacao PRIMARY KEY (id_estrategia_ordenacao)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.estrategia_ordenacao
  OWNER TO dbcallcenter;



  -- Table: discador.filtro

-- DROP TABLE discador.filtro;

CREATE TABLE discador.filtro
(
  id_filtro serial NOT NULL,
  campo character varying(255),
  operador character varying(10),
  valor character varying(255),
  concat_where character varying(20),
  CONSTRAINT pk_filtro PRIMARY KEY (id_filtro)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.filtro
  OWNER TO dbcallcenter;



  -- Table: discador.lead

-- DROP TABLE discador.lead;

CREATE TABLE discador.lead
(
  id_lead bigint NOT NULL DEFAULT nextval('discador.lead_id_lead_seq1'::regclass),
  nome character varying(300),
  nome_fantasia character varying(300),
  cpf_cnpj character varying(18),
  documento_id character varying(15),
  inscricao_municipal character varying(15),
  dt_nascimento date,
  endereco character varying(300),
  numero character varying(30),
  complemento character varying(300),
  bairro character varying(300),
  cidade character varying(300),
  uf character varying(2),
  pais character varying(40),
  referencia character varying(300),
  nome_mae character varying(200),
  nome_pai character varying(200),
  estado_civil character varying(3),
  email character varying(60),
  cep character varying(10),
  tipo_cadastro character varying(3),
  observacao text,
  e_string1 character varying(300),
  e_string2 character varying(300),
  e_string3 character varying(300),
  e_string4 character varying(300),
  e_string5 character varying(300),
  e_string6 character varying(300),
  e_string7 character varying(300),
  e_string8 character varying(300),
  e_string9 character varying(300),
  e_string10 character varying(300),
  e_data1 date,
  e_data2 date,
  e_data3 date,
  e_data4 date,
  e_data5 date,
  e_int1 integer,
  e_int2 integer,
  e_int3 integer,
  e_int4 integer,
  e_int5 integer,
  e_monetario1 numeric(9,3),
  e_monetario2 numeric(9,3),
  e_monetario3 numeric(9,3),
  e_monetario4 numeric(9,3),
  e_monetario5 numeric(9,3),
  dt_cadastro timestamp with time zone,
  id_integracao bigint,
  id_carga bigint,
  CONSTRAINT pk2_lead_id_lead PRIMARY KEY (id_lead)
)
WITH (
  FILLFACTOR=90,
  OIDS=FALSE
);
ALTER TABLE discador.lead
  OWNER TO dbcallcenter;



  -- Table: discador.lead_chamadas_processando

-- DROP TABLE discador.lead_chamadas_processando;

CREATE UNLOGGED TABLE discador.lead_chamadas_processando
(
  id_lead_chamadas_processando bigint NOT NULL DEFAULT nextval('discador.lead_chamadas_processando_seq'::regclass),
  id_lead_discagem bigint NOT NULL,
  id_lead_discagem_telefone bigint NOT NULL,
  processando smallint NOT NULL DEFAULT 0,
  chamada_ativa smallint NOT NULL DEFAULT 0,
  datahora_chamada_ativa timestamp without time zone,
  datahora_entrada_fila timestamp without time zone,
  agente integer,
  id_estrategia integer,
  uniqueid character varying(150),
  CONSTRAINT pk_id_lead_chamada_processando PRIMARY KEY (id_lead_chamadas_processando)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.lead_chamadas_processando
  OWNER TO dbcallcenter;

-- Index: discador.idx_lead_discagem_processando

-- DROP INDEX discador.idx_lead_discagem_processando;

CREATE INDEX idx_lead_discagem_processando
  ON discador.lead_chamadas_processando
  USING btree
  (id_lead_discagem DESC);

-- Index: discador.idx_lead_discagem_telefone_processando

-- DROP INDEX discador.idx_lead_discagem_telefone_processando;

CREATE INDEX idx_lead_discagem_telefone_processando
  ON discador.lead_chamadas_processando
  USING btree
  (id_lead_discagem_telefone DESC);

-- Table: discador.lead_discagem

-- DROP TABLE discador.lead_discagem;

CREATE TABLE discador.lead_discagem
(
  id_lead_discagem bigint NOT NULL DEFAULT nextval('discador.lead_id_lead_seq'::regclass), -- ::ID::::::::::::nao::::::::::::::::::::::
  nome character varying(300), -- Text::NOME::::::::::::nao::::::::::::::::::::::
  nome_fantasia character varying(300), -- Text::NOME FANTASIA::::::::::::nao::::::::::::::::::::::
  cpf_cnpj character varying(18), -- Text::CPF/CNPJ::::::::::::nao::::::::::::::::::::::
  documento_id character varying(15), -- Text::DOCUMENTO::::::::::::nao::::::::::::::::::::::
  inscricao_municipal character varying(15), -- Text::INSCRICAO MUNICIPAL::::::::::::nao::::::::::::::::::::::
  dt_nascimento date, -- Data::DATA NACIMENTO::::::::::::nao::::::::::::::::::::::
  endereco character varying(300), -- Text::Endereco::::::::::::nao::::::::::::::::::::::
  numero character varying(30), -- Text::NUMERO::::::::::::nao::::::::::::::::::::::
  complemento character varying(300), -- Text::COMPLEMENTO::::::::::::nao::::::::::::::::::::::
  bairro character varying(300), -- Text::BAIRRO::::::::::::nao::::::::::::::::::::::
  cidade character varying(300), -- Text::CIDADE::::::::::::nao::::::::::::::::::::::
  uf character varying(2), -- Text::UF::::::::::::nao::::::::::::::::::::::
  pais character varying(40), -- Text::PAIS::::::::::::nao::::::::::::::::::::::
  referencia character varying(300), -- Text::REFERENCIA::::::::::::nao::::::::::::::::::::::
  nome_mae character varying(200), -- Text::NOME MAE::::::::::::nao::::::::::::::::::::::
  nome_pai character varying(200), -- Text::NOME PAI::::::::::::nao::::::::::::::::::::::
  estado_civil character varying(3), -- Text::ESTADO CIVIL::::::::::::nao::::::::::::::::::::::
  email character varying(60), -- Text::E-MAIL::::::::::::nao::::::::::::::::::::::
  cep character varying(10), -- Text::CEP::::::::::::nao::::::::::::::::::::::
  tipo_cadastro character varying(3), -- Text::TIPO CADASTRO::::::::::::nao::::::::::::::::::::::
  observacao text, -- TextArea::OBSERVACAO::::::::::::nao::::::::::::::::::::::
  e_string1 character varying(300), -- Text::Extra String 1::::::::::::nao::::::::::::::::::::::
  e_string2 character varying(300), -- Text::Extra String 2::::::::::::nao::::::::::::::::::::::
  e_string3 character varying(300), -- Text::Extra String 3::::::::::::nao::::::::::::::::::::::
  e_string4 character varying(300), -- Text::Extra String 4::::::::::::nao::::::::::::::::::::::
  e_string5 character varying(300), -- Text::Extra String 5::::::::::::nao::::::::::::::::::::::
  e_string6 character varying(300), -- Text::Extra String 6::::::::::::nao::::::::::::::::::::::
  e_string7 character varying(300), -- Text::Extra String 7::::::::::::nao::::::::::::::::::::::
  e_string8 character varying(300), -- Text::Extra String 8::::::::::::nao::::::::::::::::::::::
  e_string9 character varying(300), -- Text::Extra String 9::::::::::::nao::::::::::::::::::::::
  e_string10 character varying(300), -- Text::Extra String 10::::::::::::nao::::::::::::::::::::::
  e_data1 date, -- Data::Extra Data 1::::::::::::nao::::::::::::::::::::::
  e_data2 date, -- Data::Extra Data 2::::::::::::nao::::::::::::::::::::::
  e_data3 date, -- Data::Extra Data 3::::::::::::nao::::::::::::::::::::::
  e_data4 date, -- Data::Extra Data 4::::::::::::nao::::::::::::::::::::::
  e_data5 date, -- Data::Extra Data 5::::::::::::nao::::::::::::::::::::::
  e_int1 integer, -- Num::Extra Inteiro 1::::::::::::nao::::::::::::::::::::::
  e_int2 integer, -- Num::Extra Inteiro 2::::::::::::nao::::::::::::::::::::::
  e_int3 integer, -- Num::Extra Inteiro 3::::::::::::nao::::::::::::::::::::::
  e_int4 integer, -- Num::Extra Inteiro 4::::::::::::nao::::::::::::::::::::::
  e_int5 integer, -- Num::Extra Inteiro 5::::::::::::nao::::::::::::::::::::::
  e_monetario1 numeric(9,3), -- Moeda::e_monetario1::::::::::::nao::::::::::::::::::::::
  e_monetario2 numeric(9,3), -- Moeda::e_monetario2::::::::::::nao::::::::::::::::::::::
  e_monetario3 numeric(9,3), -- Moeda::e_monetario3::::::::::::nao::::::::::::::::::::::
  e_monetario4 numeric(9,3), -- Moeda::e_monetario4::::::::::::nao::::::::::::::::::::::
  e_monetario5 numeric(9,3), -- Moeda::e_monetario5::::::::::::nao::::::::::::::::::::::
  dt_cadastro timestamp with time zone, -- HiddenDateTime::DATA CADASTRO::::::::::::nao::::::::::::::::::::::
  id_integracao bigint, -- ::id_integracao::::::::::::nao::::::::::::
  id_carga bigint, -- ::id_carga::::::::::::nao::::::::::::
  realizar_discagem smallint NOT NULL DEFAULT 1, -- 1 liga....0 nao liga mais
  chamada_ativa smallint NOT NULL DEFAULT 0, -- 0 nao temchamada ativa , 1 tem chamad ativa
  id_lead bigint,
  processando smallint NOT NULL DEFAULT 0,
  tentativa smallint NOT NULL DEFAULT 0, -- tentativas para garantir que o lead vai rodar ao inves de ficar discando sempre para os mesmos numeros seguidamente.
  CONSTRAINT pk_lead_id_lead PRIMARY KEY (id_lead_discagem)
)
WITH (
  FILLFACTOR=60,
  OIDS=FALSE
);
ALTER TABLE discador.lead_discagem
  OWNER TO dbcallcenter;
COMMENT ON COLUMN discador.lead_discagem.id_lead_discagem IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.nome IS 'Text::NOME::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.nome_fantasia IS 'Text::NOME FANTASIA::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.cpf_cnpj IS 'Text::CPF/CNPJ::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.documento_id IS 'Text::DOCUMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.inscricao_municipal IS 'Text::INSCRICAO MUNICIPAL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.dt_nascimento IS 'Data::DATA NACIMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.endereco IS 'Text::ENDERECO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.numero IS 'Text::NUMERO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.complemento IS 'Text::COMPLEMENTO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.bairro IS 'Text::BAIRRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.cidade IS 'Text::CIDADE::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.uf IS 'Text::UF::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.pais IS 'Text::PAIS::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.referencia IS 'Text::REFERENCIA::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.nome_mae IS 'Text::NOME MAE::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.nome_pai IS 'Text::NOME PAI::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.estado_civil IS 'Text::ESTADO CIVIL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.email IS 'Text::E-MAIL::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.cep IS 'Text::CEP::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.tipo_cadastro IS 'Text::TIPO CADASTRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.observacao IS 'TextArea::OBSERVACAO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string1 IS 'Text::Extra String 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string2 IS 'Text::Extra String 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string3 IS 'Text::Extra String 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string4 IS 'Text::Extra String 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string5 IS 'Text::Extra String 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string6 IS 'Text::Extra String 6::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string7 IS 'Text::Extra String 7::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string8 IS 'Text::Extra String 8::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string9 IS 'Text::Extra String 9::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_string10 IS 'Text::Extra String 10::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_data1 IS 'Data::Extra Data 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_data2 IS 'Data::Extra Data 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_data3 IS 'Data::Extra Data 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_data4 IS 'Data::Extra Data 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_data5 IS 'Data::Extra Data 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_int1 IS 'Num::Extra Inteiro 1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_int2 IS 'Num::Extra Inteiro 2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_int3 IS 'Num::Extra Inteiro 3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_int4 IS 'Num::Extra Inteiro 4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_int5 IS 'Num::Extra Inteiro 5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_monetario1 IS 'Moeda::e_monetario1::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_monetario2 IS 'Moeda::e_monetario2::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_monetario3 IS 'Moeda::e_monetario3::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_monetario4 IS 'Moeda::e_monetario4::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.e_monetario5 IS 'Moeda::e_monetario5::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.dt_cadastro IS 'HiddenDateTime::DATA CADASTRO::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.id_integracao IS '::id_integracao::::::::::::nao::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.id_carga IS '::id_carga::::::::::::nao::::::::::::';
COMMENT ON COLUMN discador.lead_discagem.realizar_discagem IS '1 liga....0 nao liga mais';
COMMENT ON COLUMN discador.lead_discagem.chamada_ativa IS '0 nao temchamada ativa , 1 tem chamad ativa';
COMMENT ON COLUMN discador.lead_discagem.tentativa IS 'tentativas para garantir que o lead vai rodar ao inves de ficar discando sempre para os mesmos numeros seguidamente.';


-- Index: discador.idx_lead_bairro

-- DROP INDEX discador.idx_lead_bairro;

CREATE INDEX idx_lead_bairro
  ON discador.lead_discagem
  USING btree
  (bairro COLLATE pg_catalog."default");

-- Index: discador.idx_lead_cep

-- DROP INDEX discador.idx_lead_cep;

CREATE INDEX idx_lead_cep
  ON discador.lead_discagem
  USING btree
  (cep COLLATE pg_catalog."default");

-- Index: discador.idx_lead_cidade

-- DROP INDEX discador.idx_lead_cidade;

CREATE INDEX idx_lead_cidade
  ON discador.lead_discagem
  USING btree
  (cidade COLLATE pg_catalog."default");

-- Index: discador.idx_lead_complemento

-- DROP INDEX discador.idx_lead_complemento;

CREATE INDEX idx_lead_complemento
  ON discador.lead_discagem
  USING btree
  (complemento COLLATE pg_catalog."default");

-- Index: discador.idx_lead_cpf_cnpj

-- DROP INDEX discador.idx_lead_cpf_cnpj;

CREATE INDEX idx_lead_cpf_cnpj
  ON discador.lead_discagem
  USING btree
  (cpf_cnpj COLLATE pg_catalog."default");

-- Index: discador.idx_lead_discagem_tentativa

-- DROP INDEX discador.idx_lead_discagem_tentativa;

CREATE INDEX idx_lead_discagem_tentativa
  ON discador.lead_discagem
  USING btree
  (tentativa);

-- Index: discador.idx_lead_documento_id

-- DROP INDEX discador.idx_lead_documento_id;

CREATE INDEX idx_lead_documento_id
  ON discador.lead_discagem
  USING btree
  (documento_id COLLATE pg_catalog."default");

-- Index: discador.idx_lead_dt_cadastro

-- DROP INDEX discador.idx_lead_dt_cadastro;

CREATE INDEX idx_lead_dt_cadastro
  ON discador.lead_discagem
  USING btree
  (dt_cadastro);

-- Index: discador.idx_lead_dt_nascimento

-- DROP INDEX discador.idx_lead_dt_nascimento;

CREATE INDEX idx_lead_dt_nascimento
  ON discador.lead_discagem
  USING btree
  (dt_nascimento);

-- Index: discador.idx_lead_e_chamada_ativa

-- DROP INDEX discador.idx_lead_e_chamada_ativa;

CREATE INDEX idx_lead_e_chamada_ativa
  ON discador.lead_discagem
  USING btree
  (chamada_ativa);

-- Index: discador.idx_lead_e_data1

-- DROP INDEX discador.idx_lead_e_data1;

CREATE INDEX idx_lead_e_data1
  ON discador.lead_discagem
  USING btree
  (e_data1);

-- Index: discador.idx_lead_e_data2

-- DROP INDEX discador.idx_lead_e_data2;

CREATE INDEX idx_lead_e_data2
  ON discador.lead_discagem
  USING btree
  (e_data2);

-- Index: discador.idx_lead_e_data3

-- DROP INDEX discador.idx_lead_e_data3;

CREATE INDEX idx_lead_e_data3
  ON discador.lead_discagem
  USING btree
  (e_data3);

-- Index: discador.idx_lead_e_data4

-- DROP INDEX discador.idx_lead_e_data4;

CREATE INDEX idx_lead_e_data4
  ON discador.lead_discagem
  USING btree
  (e_data4);

-- Index: discador.idx_lead_e_data5

-- DROP INDEX discador.idx_lead_e_data5;

CREATE INDEX idx_lead_e_data5
  ON discador.lead_discagem
  USING btree
  (e_data5);

-- Index: discador.idx_lead_e_int1

-- DROP INDEX discador.idx_lead_e_int1;

CREATE INDEX idx_lead_e_int1
  ON discador.lead_discagem
  USING btree
  (e_int1);

-- Index: discador.idx_lead_e_int2

-- DROP INDEX discador.idx_lead_e_int2;

CREATE INDEX idx_lead_e_int2
  ON discador.lead_discagem
  USING btree
  (e_int2);

-- Index: discador.idx_lead_e_int3

-- DROP INDEX discador.idx_lead_e_int3;

CREATE INDEX idx_lead_e_int3
  ON discador.lead_discagem
  USING btree
  (e_int3);

-- Index: discador.idx_lead_e_int4

-- DROP INDEX discador.idx_lead_e_int4;

CREATE INDEX idx_lead_e_int4
  ON discador.lead_discagem
  USING btree
  (e_int4);

-- Index: discador.idx_lead_e_int5

-- DROP INDEX discador.idx_lead_e_int5;

CREATE INDEX idx_lead_e_int5
  ON discador.lead_discagem
  USING btree
  (e_int5);

-- Index: discador.idx_lead_e_monetario1

-- DROP INDEX discador.idx_lead_e_monetario1;

CREATE INDEX idx_lead_e_monetario1
  ON discador.lead_discagem
  USING btree
  (e_monetario1);

-- Index: discador.idx_lead_e_monetario2

-- DROP INDEX discador.idx_lead_e_monetario2;

CREATE INDEX idx_lead_e_monetario2
  ON discador.lead_discagem
  USING btree
  (e_monetario2);

-- Index: discador.idx_lead_e_monetario3

-- DROP INDEX discador.idx_lead_e_monetario3;

CREATE INDEX idx_lead_e_monetario3
  ON discador.lead_discagem
  USING btree
  (e_monetario3);

-- Index: discador.idx_lead_e_monetario4

-- DROP INDEX discador.idx_lead_e_monetario4;

CREATE INDEX idx_lead_e_monetario4
  ON discador.lead_discagem
  USING btree
  (e_monetario4);

-- Index: discador.idx_lead_e_monetario5

-- DROP INDEX discador.idx_lead_e_monetario5;

CREATE INDEX idx_lead_e_monetario5
  ON discador.lead_discagem
  USING btree
  (e_monetario5);

-- Index: discador.idx_lead_e_string1

-- DROP INDEX discador.idx_lead_e_string1;

CREATE INDEX idx_lead_e_string1
  ON discador.lead_discagem
  USING btree
  (e_string1 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string10

-- DROP INDEX discador.idx_lead_e_string10;

CREATE INDEX idx_lead_e_string10
  ON discador.lead_discagem
  USING btree
  (e_string10 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string2

-- DROP INDEX discador.idx_lead_e_string2;

CREATE INDEX idx_lead_e_string2
  ON discador.lead_discagem
  USING btree
  (e_string2 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string3

-- DROP INDEX discador.idx_lead_e_string3;

CREATE INDEX idx_lead_e_string3
  ON discador.lead_discagem
  USING btree
  (e_string3 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string4

-- DROP INDEX discador.idx_lead_e_string4;

CREATE INDEX idx_lead_e_string4
  ON discador.lead_discagem
  USING btree
  (e_string4 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string5

-- DROP INDEX discador.idx_lead_e_string5;

CREATE INDEX idx_lead_e_string5
  ON discador.lead_discagem
  USING btree
  (e_string5 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string6

-- DROP INDEX discador.idx_lead_e_string6;

CREATE INDEX idx_lead_e_string6
  ON discador.lead_discagem
  USING btree
  (e_string6 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string7

-- DROP INDEX discador.idx_lead_e_string7;

CREATE INDEX idx_lead_e_string7
  ON discador.lead_discagem
  USING btree
  (e_string7 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string8

-- DROP INDEX discador.idx_lead_e_string8;

CREATE INDEX idx_lead_e_string8
  ON discador.lead_discagem
  USING btree
  (e_string8 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_e_string9

-- DROP INDEX discador.idx_lead_e_string9;

CREATE INDEX idx_lead_e_string9
  ON discador.lead_discagem
  USING btree
  (e_string9 COLLATE pg_catalog."default");

-- Index: discador.idx_lead_email

-- DROP INDEX discador.idx_lead_email;

CREATE INDEX idx_lead_email
  ON discador.lead_discagem
  USING btree
  (email COLLATE pg_catalog."default");

-- Index: discador.idx_lead_endereco

-- DROP INDEX discador.idx_lead_endereco;

CREATE INDEX idx_lead_endereco
  ON discador.lead_discagem
  USING btree
  (endereco COLLATE pg_catalog."default");

-- Index: discador.idx_lead_estado_civil

-- DROP INDEX discador.idx_lead_estado_civil;

CREATE INDEX idx_lead_estado_civil
  ON discador.lead_discagem
  USING btree
  (estado_civil COLLATE pg_catalog."default");

-- Index: discador.idx_lead_id_carga

-- DROP INDEX discador.idx_lead_id_carga;

CREATE INDEX idx_lead_id_carga
  ON discador.lead_discagem
  USING btree
  (id_carga);

-- Index: discador.idx_lead_id_integracao

-- DROP INDEX discador.idx_lead_id_integracao;

CREATE INDEX idx_lead_id_integracao
  ON discador.lead_discagem
  USING btree
  (id_integracao);

-- Index: discador.idx_lead_inscricao_municipal

-- DROP INDEX discador.idx_lead_inscricao_municipal;

CREATE INDEX idx_lead_inscricao_municipal
  ON discador.lead_discagem
  USING btree
  (inscricao_municipal COLLATE pg_catalog."default");

-- Index: discador.idx_lead_nome

-- DROP INDEX discador.idx_lead_nome;

CREATE INDEX idx_lead_nome
  ON discador.lead_discagem
  USING btree
  (nome COLLATE pg_catalog."default");

-- Index: discador.idx_lead_nome_fantasia

-- DROP INDEX discador.idx_lead_nome_fantasia;

CREATE INDEX idx_lead_nome_fantasia
  ON discador.lead_discagem
  USING btree
  (nome_fantasia COLLATE pg_catalog."default");

-- Index: discador.idx_lead_nome_mae

-- DROP INDEX discador.idx_lead_nome_mae;

CREATE INDEX idx_lead_nome_mae
  ON discador.lead_discagem
  USING btree
  (nome_mae COLLATE pg_catalog."default");

-- Index: discador.idx_lead_nome_pai

-- DROP INDEX discador.idx_lead_nome_pai;

CREATE INDEX idx_lead_nome_pai
  ON discador.lead_discagem
  USING btree
  (nome_pai COLLATE pg_catalog."default");

-- Index: discador.idx_lead_numero

-- DROP INDEX discador.idx_lead_numero;

CREATE INDEX idx_lead_numero
  ON discador.lead_discagem
  USING btree
  (numero COLLATE pg_catalog."default");

-- Index: discador.idx_lead_observacao

-- DROP INDEX discador.idx_lead_observacao;

CREATE INDEX idx_lead_observacao
  ON discador.lead_discagem
  USING btree
  (observacao COLLATE pg_catalog."default");

-- Index: discador.idx_lead_pais

-- DROP INDEX discador.idx_lead_pais;

CREATE INDEX idx_lead_pais
  ON discador.lead_discagem
  USING btree
  (pais COLLATE pg_catalog."default");

-- Index: discador.idx_lead_processando

-- DROP INDEX discador.idx_lead_processando;

CREATE INDEX idx_lead_processando
  ON discador.lead_discagem
  USING btree
  (processando);

-- Index: discador.idx_lead_realizar_chamada

-- DROP INDEX discador.idx_lead_realizar_chamada;

CREATE INDEX idx_lead_realizar_chamada
  ON discador.lead_discagem
  USING btree
  (realizar_discagem);

-- Index: discador.idx_lead_referencia

-- DROP INDEX discador.idx_lead_referencia;

CREATE INDEX idx_lead_referencia
  ON discador.lead_discagem
  USING btree
  (referencia COLLATE pg_catalog."default");

-- Index: discador.idx_lead_tipo_cadastro

-- DROP INDEX discador.idx_lead_tipo_cadastro;

CREATE INDEX idx_lead_tipo_cadastro
  ON discador.lead_discagem
  USING btree
  (tipo_cadastro COLLATE pg_catalog."default");

-- Index: discador.idx_lead_uf

-- DROP INDEX discador.idx_lead_uf;

CREATE INDEX idx_lead_uf
  ON discador.lead_discagem
  USING btree
  (uf COLLATE pg_catalog."default");



  -- Table: discador.lead_discagem_telefone

-- DROP TABLE discador.lead_discagem_telefone;

CREATE TABLE discador.lead_discagem_telefone
(
  id_lead_telefone_discagem bigint NOT NULL DEFAULT nextval('discador.lead_telefone_id_lead_telefone_seq'::regclass),
  telefone bigint,
  telefone_f character varying(20),
  id_lead bigint,
  ddd integer,
  operadora character varying(30),
  tipo_tel integer,
  id_carga bigint,
  realizar_discagem smallint NOT NULL DEFAULT 1, -- 1 disca e 0nao disca mais
  processando smallint NOT NULL DEFAULT 0,
  CONSTRAINT pk_lead_discagem_telefone_id_lead_telefone PRIMARY KEY (id_lead_telefone_discagem)
)
WITH (
  FILLFACTOR=60,
  OIDS=FALSE
);
ALTER TABLE discador.lead_discagem_telefone
  OWNER TO dbcallcenter;
COMMENT ON COLUMN discador.lead_discagem_telefone.realizar_discagem IS '1 disca e 0nao disca mais';


-- Index: discador.idx_id_lead_discagem_telefone

-- DROP INDEX discador.idx_id_lead_discagem_telefone;

CREATE INDEX idx_id_lead_discagem_telefone
  ON discador.lead_discagem_telefone
  USING btree
  (id_lead_telefone_discagem DESC NULLS LAST);

-- Index: discador.idx_id_lead_discagem_telefone_processando

-- DROP INDEX discador.idx_id_lead_discagem_telefone_processando;

CREATE INDEX idx_id_lead_discagem_telefone_processando
  ON discador.lead_discagem_telefone
  USING btree
  (processando DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_ddd

-- DROP INDEX discador.idx_lead_discagem_ddd;

CREATE INDEX idx_lead_discagem_ddd
  ON discador.lead_discagem_telefone
  USING btree
  (ddd DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_id_carga

-- DROP INDEX discador.idx_lead_discagem_id_carga;

CREATE INDEX idx_lead_discagem_id_carga
  ON discador.lead_discagem_telefone
  USING btree
  (id_carga DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_id_lead

-- DROP INDEX discador.idx_lead_discagem_id_lead;

CREATE INDEX idx_lead_discagem_id_lead
  ON discador.lead_discagem_telefone
  USING btree
  (id_lead DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_realizar_discagem

-- DROP INDEX discador.idx_lead_discagem_realizar_discagem;

CREATE INDEX idx_lead_discagem_realizar_discagem
  ON discador.lead_discagem_telefone
  USING btree
  (realizar_discagem DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_telefone

-- DROP INDEX discador.idx_lead_discagem_telefone;

CREATE INDEX idx_lead_discagem_telefone
  ON discador.lead_discagem_telefone
  USING btree
  (telefone DESC NULLS LAST);

-- Index: discador.idx_lead_discagem_tipo_tel

-- DROP INDEX discador.idx_lead_discagem_tipo_tel;

CREATE INDEX idx_lead_discagem_tipo_tel
  ON discador.lead_discagem_telefone
  USING btree
  (tipo_tel DESC NULLS LAST);



  -- Table: discador.lead_telefone

-- DROP TABLE discador.lead_telefone;

CREATE TABLE discador.lead_telefone
(
  id_lead_telefone bigint NOT NULL DEFAULT nextval('discador.lead_telefone_id_lead_telefone_seq2'::regclass),
  telefone_f character varying(20),
  id_lead bigint,
  ddd integer,
  operadora character varying(30),
  tipo_tel integer,
  id_carga bigint,
  telefone bigint,
  CONSTRAINT pk_lead_telefone_id_lead_telefone PRIMARY KEY (id_lead_telefone),
  CONSTRAINT fk_lead_telefone_id_lead2 FOREIGN KEY (id_lead)
      REFERENCES discador.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  FILLFACTOR=80,
  OIDS=FALSE
);
ALTER TABLE discador.lead_telefone
  OWNER TO dbcallcenter;

-- Index: discador.idx_lead_telefone_id_carga

-- DROP INDEX discador.idx_lead_telefone_id_carga;

CREATE INDEX idx_lead_telefone_id_carga
  ON discador.lead_telefone
  USING btree
  (id_carga);

-- Index: discador.idx_lead_telefone_id_lead

-- DROP INDEX discador.idx_lead_telefone_id_lead;

CREATE INDEX idx_lead_telefone_id_lead
  ON discador.lead_telefone
  USING btree
  (id_lead);



  -- Table: discador.plano_horario

-- DROP TABLE discador.plano_horario;

CREATE TABLE discador.plano_horario
(
  id_plano_horario serial NOT NULL,
  descricao character varying(255) NOT NULL,
  created_at timestamp(0) without time zone,
  updated_at timestamp(0) without time zone,
  habilitado integer DEFAULT 1,
  status integer DEFAULT 1,
  updated_by bigint,
  CONSTRAINT plano_horario_pkey PRIMARY KEY (id_plano_horario)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.plano_horario
  OWNER TO dbcallcenter;


  -- Table: discador.plano_horario_itens

-- DROP TABLE discador.plano_horario_itens;

CREATE TABLE discador.plano_horario_itens
(
  id_plano_horario_itens serial NOT NULL,
  id_plano_horario bigint NOT NULL,
  dia_da_semana character varying(255) NOT NULL,
  inicio time(0) without time zone NOT NULL,
  fim time(0) without time zone NOT NULL,
  ordem smallint NOT NULL,
  selecionado boolean NOT NULL,
  created_at timestamp(0) without time zone,
  updated_at timestamp(0) without time zone,
  num_dia_semana character varying(2) NOT NULL,
  CONSTRAINT plano_horario_itens_pkey PRIMARY KEY (id_plano_horario_itens)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.plano_horario_itens
  OWNER TO dbcallcenter;

-- DROP TABLE discador.tabulacao_chamada;

CREATE TABLE discador.tabulacao_chamada
(
  id_tabulacao_chamada serial NOT NULL,
  uniqueid character varying(255) NOT NULL,
  id_tabulacao integer NOT NULL,
  created_at timestamp(0) without time zone
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.tabulacao_chamada
  OWNER TO dbcallcenter;



  -- Table: crm.carga_m_lead_discador

-- DROP TABLE crm.carga_m_lead_discador;

CREATE TABLE crm.carga_m_lead_discador
(
  id_carga_m_lead bigserial NOT NULL,
  id_carga bigint NOT NULL,
  id_carga_registro bigint NOT NULL,
  tipo character varying(1),
  id_lead bigint NOT NULL,
  status smallint NOT NULL DEFAULT 0,
  CONSTRAINT pk_carga_m_lead_discador_id_carga_m_lead PRIMARY KEY (id_carga_m_lead),
  CONSTRAINT fk_carga_m_lead_discador_id_carga FOREIGN KEY (id_carga)
      REFERENCES crm.carga (id_carga) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_carga_m_lead_discador_id_lead FOREIGN KEY (id_lead)
      REFERENCES discador.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.carga_m_lead_discador
  OWNER TO dbcallcenter;



  -- Table: crm.carga_m_lead_discador_telefone

-- DROP TABLE crm.carga_m_lead_discador_telefone;

CREATE TABLE crm.carga_m_lead_discador_telefone
(
  id_carga_m_lead_telefone bigserial NOT NULL,
  id_carga bigint NOT NULL,
  id_carga_registro bigint NOT NULL,
  id_lead bigint NOT NULL,
  telefone character varying(20) NOT NULL,
  telefonen character varying(20) NOT NULL,
  tipotel smallint NOT NULL,
  operadora character varying(75),
  cnl character varying(50),
  status smallint NOT NULL DEFAULT 0,
  CONSTRAINT pk_carga_m_lead_discador_telefone_id_carga_m_lead_telefone PRIMARY KEY (id_carga_m_lead_telefone),
  CONSTRAINT fk_carga_m_lead_discador_telefone_id_carga FOREIGN KEY (id_carga)
      REFERENCES crm.carga (id_carga) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_carga_m_lead_id_lead FOREIGN KEY (id_lead)
      REFERENCES discador.lead (id_lead) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.carga_m_lead_discador_telefone
  OWNER TO dbcallcenter;



  -- Table: crm.carga_m_lead_telefone

-- DROP TABLE crm.carga_m_lead_telefone;

CREATE TABLE crm.agenda_importacao
(
  id_agenda_importacao bigserial NOT NULL, -- Hidden::ID::::::::::::nao::::::::::::::::::::::
  tipo smallint NOT NULL, -- Select::Dados::::::::::::nao::::::::::::::::::::::
  data_importacao date, -- Data::Data Importacao::::::::::::nao::::::::::::::::::::::
  hora_importacao time without time zone, -- Hora::Hora Importacao::::::::::::nao::::::::::::::::::::::
  gerar_mailing smallint, -- Check::Gerar Mailing::::::::::::nao::::::::::::::::::::::
  id_campanha bigint, -- LookupGridUnique::Campanha::::::::::::nao::::::::::::::::::::::
  id_layout_importacao bigint, -- Hidden::Layout Importacao::::::::::::nao::::::::::::::::::::::
  habilitar smallint NOT NULL, -- Check::Habilitar::::::::::::nao::::::::::::::::::::::
  status_agenda smallint, -- Hidden::Status Agenda::::::::::::nao::::::::::::
  dias_semana character varying, -- LookupGrid::Dias da Semana::::::::::::nao::::::::::::
  nome character varying,
  habilitado smallint NOT NULL DEFAULT 1::smallint,
  status smallint NOT NULL DEFAULT 1::smallint,
  updated_by bigint,
  created_at timestamp without time zone,
  updated_at timestamp without time zone,
  diretorio character varying,
  nome_arquivo character varying,
  lista_negra smallint NOT NULL DEFAULT 0::smallint,
  meses character varying,
  ano_importacao integer,
  id_estrategia bigint,
  tel_duplicado smallint NOT NULL DEFAULT 0::smallint,
  mailing_existente character varying(20) DEFAULT NULL::character varying,
  contato_duplicado smallint NOT NULL DEFAULT 0::smallint,
  acao_importa_mailing character varying,
  tipo_agenda character varying(4) DEFAULT NULL::character varying,
  acoes_tel_duplicado character varying,
  acoes_contato_duplicado character varying,
  CONSTRAINT pk_agenda_importacao_id_agenda_importacao PRIMARY KEY (id_agenda_importacao)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.agenda_importacao
  OWNER TO dbcallcenter;
COMMENT ON COLUMN crm.agenda_importacao.id_agenda_importacao IS 'Hidden::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.tipo IS 'Select::Dados::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.data_importacao IS 'Data::Data Importacao::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.hora_importacao IS 'Hora::Hora Importacao::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.gerar_mailing IS 'Check::Gerar Mailing::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.id_campanha IS 'LookupGridUnique::Campanha::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.id_layout_importacao IS 'Hidden::Layout Importacao::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.habilitar IS 'Check::Habilitar::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.status_agenda IS 'Hidden::Status Agenda::::::::::::nao::::::::::::';
COMMENT ON COLUMN crm.agenda_importacao.dias_semana IS 'LookupGrid::Dias da Semana::::::::::::nao::::::::::::';


-- Index: crm.idx_agenda_importacao_data_importacao

-- DROP INDEX crm.idx_agenda_importacao_data_importacao;

CREATE INDEX idx_agenda_importacao_data_importacao
  ON crm.agenda_importacao
  USING btree
  (data_importacao);

-- Index: crm.idx_agenda_importacao_hora_importacao

-- DROP INDEX crm.idx_agenda_importacao_hora_importacao;

CREATE INDEX idx_agenda_importacao_hora_importacao
  ON crm.agenda_importacao
  USING btree
  (hora_importacao);

-- Index: crm.idx_agenda_importacao_id_campanha

-- DROP INDEX crm.idx_agenda_importacao_id_campanha;

CREATE INDEX idx_agenda_importacao_id_campanha
  ON crm.agenda_importacao
  USING btree
  (id_campanha);

-- Index: crm.idx_agenda_importacao_id_layout_importacao

-- DROP INDEX crm.idx_agenda_importacao_id_layout_importacao;

CREATE INDEX idx_agenda_importacao_id_layout_importacao
  ON crm.agenda_importacao
  USING btree
  (id_layout_importacao);


ALTER TABLE callcenter.campanha ADD COLUMN tentativa_renitencia smallint  DEFAULT 3;
ALTER TABLE callcenter.campanha ALTER COLUMN tentativa_renitencia SET NOT NULL;




CREATE TABLE discador.tabulacao
(
  id_tabulacao serial NOT NULL,
  descricao character varying(255) NOT NULL,
  produtiva smallint DEFAULT 0
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.tabulacao
  OWNER TO dbcallcenter;


INSERT INTO callcenter.tipo_campanha(id_tipo_campanha,tipo_campanha,descricao) VALUES (6,'LEAD',NULL);


INSERT INTO crm.carga_conf (id_carga_conf, cod_loja, cod_usuario, data_cadastro, descricao, tag, habilitar, tipo, separador, p_identificador, qtde_identificador, classificacao) VALUES ('37', '1', '2', '2017-11-14 14:35:49', 'Lead_discador', 'LEAD_DISCADOR', '1', 'I', ';', null, null, 'Lead_discador') ;
INSERT INTO crm.carga_conf_tipo (id_carga_conf_tipo, id_carga_conf, identificador, arquivo_aux1, habilitar) VALUES ('49', '37', 'R', null, '1');
INSERT INTO crm.carga_conf_etapa (id_carga_conf_etapa, id_carga_conf_tipo, etapa, arquivo, controlador, habilitar) VALUES ('115', '49', '2', 'i_regs_lead_discador_tel.php', null, '1'), ('114', '49', '1', 'i_regs_lead_discador.php', '1', '1') ;
INSERT INTO crm.carga_conf_registro (id_carga_conf_registro, id_carga_conf_tipo, campo, posicao_i, qtde_caracteres, posicao_i2, qtde_caracteres2, campo_destino, f_ltrim, validar, mascara, converter, obr, descricao, separador_campo, atualizar, repeticao, campo_txt, save_transformar, tabela_aux, campo_externo) VALUES ('4016', '49', 'v1', '0', null, null, null, 'discador.lead.nome', null, null, null, null, '0', 'Nome', null, '1', '0', null, null, null, null), ('4017', '49', 'v2', '1', null, null, null, 'discador.lead.nome_fantasia', null, null, null, null, '0', 'Nome Fantasia', null, '1', '0', null, null, null, null), ('4018', '49', 'v3', '2', null, null, null, 'discador.lead.cpf_cnpj', null, null, 'CPFCNPJ', null, '0', 'CPF CNPJ', null, '1', '1', null, null, null, null), ('4019', '49', 'v4', '3', null, null, null, 'discador.lead.documento_id', null, null, null, null, '0', 'RG', null, '1', '0', null, null, null, null), ('4020', '49', 'v5', '4', null, null, null, 'discador.lead.inscricao_municipal', null, null, null, null, '0', 'Inscricacao municipal', null, '1', '0', null, null, null, null), ('4021', '49', 'd1', '5', null, null, null, 'discador.lead.dt_nascimento', null, null, null, 'DATASQL', '0', 'Dt nascimento', null, '1', '0', null, null, null, null), ('4022', '49', 'v6', '6', null, null, null, 'discador.lead.endereco', null, null, null, null, '0', 'Endereco', null, '1', '0', null, null, null, null), ('4023', '49', 'v7', '7', null, null, null, 'discador.lead.numero', null, null, null, null, '0', 'numero', null, '1', '0', null, null, null, null), ('4024', '49', 'v8', '8', null, null, null, 'discador.lead.complemento', null, null, null, null, '0', 'complemento', null, '1', '0', null, null, null, null), ('4025', '49', 'v9', '9', null, null, null, 'discador.lead.bairro', null, null, null, null, '0', 'bairro', null, '1', '0', null, null, null, null), ('4026', '49', 'v10', '10', null, null, null, 'discador.lead.cidade', null, null, null, null, '0', 'Cidade', null, '1', '0', null, null, null, null), ('4027', '49', 'v11', '11', null, null, null, 'discador.lead.uf', null, null, null, null, '0', 'uf', null, '1', '0', null, null, null, null), ('4028', '49', 'v12', '12', null, null, null, 'discador.lead.pais', null, null, null, null, '0', 'pais', null, '1', '0', null, null, null, null), ('4029', '49', 'v13', '13', null, null, null, 'discador.lead.cep', null, null, 'CEP', null, '0', 'Cep', null, '1', '0', null, null, null, null), ('4030', '49', 'v14', '14', null, null, null, 'discador.lead.referencia', null, null, null, null, '0', 'Referencia', null, '1', '0', null, null, null, null), ('4031', '49', 'v15', '15', null, null, null, 'discador.lead.nome_mae', null, null, null, null, '0', 'Nome mae', null, '1', '0', null, null, null, null), ('4032', '49', 'v16', '16', null, null, null, 'discador.lead.nome_pai', null, null, null, null, '0', 'Nome pai', null, '1', '0', null, null, null, null), ('4033', '49', 'v17', '17', null, null, null, 'discador.lead.email', null, null, null, null, '0', 'email', null, '1', '0', null, null, null, null), ('4034', '49', 'v18', '18', null, null, null, 'discador.lead.e_string1', null, null, null, null, '0', 'ExtraString1', null, '1', '0', null, null, null, null), ('4035', '49', 'v19', '19', null, null, null, 'discador.lead.e_string2', null, null, null, null, '0', 'ExtraString2', null, '1', '0', null, null, null, null), ('4036', '49', 'v20', '20', null, null, null, 'discador.lead.e_string3', null, null, null, null, '0', 'ExtraString3', null, '1', '0', null, null, null, null), ('4037', '49', 'v21', '21', null, null, null, 'discador.lead.e_string4', null, null, null, null, '0', 'ExtraString4', null, '1', '0', null, null, null, null), ('4038', '49', 'v22', '22', null, null, null, 'discador.lead.e_string5', null, null, null, null, '0', 'ExtraString5', null, '1', '0', null, null, null, null), ('4039', '49', 'v23', '23', null, null, null, 'discador.lead.e_string6', null, null, null, null, '0', 'ExtraString6', null, '1', '0', null, null, null, null), ('4040', '49', 'v24', '24', null, null, null, 'discador.lead.e_string7', null, null, null, null, '0', 'ExtraString7', null, '1', '0', null, null, null, null), ('4041', '49', 'v25', '25', null, null, null, 'discador.lead.e_string8', null, null, null, null, '0', 'ExtraString8', null, '1', '0', null, null, null, null), ('4042', '49', 'v26', '26', null, null, null, 'discador.lead.e_string9', null, null, null, null, '0', 'ExtraString9', null, '1', '0', null, null, null, null), ('4043', '49', 'v27', '27', null, null, null, 'discador.lead.e_string10', null, null, null, null, '0', 'ExtraString10', null, '1', '0', null, null, null, null), ('4044', '49', 'dt2', '28', null, null, null, 'discador.lead.e_data1', null, null, null, 'DATASQL', '0', 'ExtraData1', null, '1', '0', null, null, null, null), ('4045', '49', 'dt3', '29', null, null, null, 'discador.lead.e_data2', null, null, null, 'DATASQL', '0', 'ExtraData2', null, '1', '0', null, null, null, null), ('4046', '49', 'dt4', '30', null, null, null, 'discador.lead.e_data3', null, null, null, 'DATASQL', '0', 'ExtraData3', null, '1', '0', null, null, null, null), ('4047', '49', 'dt5', '31', null, null, null, 'discador.lead.e_data4', null, null, null, 'DATASQL', '0', 'ExtraData4', null, '1', '0', null, null, null, null), ('4048', '49', 'dt6', '32', null, null, null, 'discador.lead.e_data5', null, null, null, 'DATASQL', '0', 'ExtraData5', null, '1', '0', null, null, null, null), ('4049', '49', 'i1', '33', null, null, null, 'discador.lead.e_int1', null, null, null, null, '0', 'ExtraInteiro1', null, '1', '0', null, null, null, null), ('4050', '49', 'i2', '34', null, null, null, 'discador.lead.e_int2', null, null, null, null, '0', 'ExtraInteiro2', null, '1', '0', null, null, null, null), ('4051', '49', 'i3', '35', null, null, null, 'discador.lead.e_int3', null, null, null, null, '0', 'ExtraInteiro3', null, '1', '0', null, null, null, null), ('4052', '49', 'i4', '36', null, null, null, 'discador.lead.e_int4', null, null, null, null, '0', 'ExtraInteiro4', null, '1', '0', null, null, null, null), ('4053', '49', 'i5', '37', null, null, null, 'discador.lead.e_int5', null, null, null, null, '0', 'ExtraInteiro5', null, '1', '0', null, null, null, null), ('4054', '49', 'm1', '38', null, null, null, 'discador.lead.e_monetario1', null, null, 'MONETARIO', null, '0', 'ExtraMonetario1', null, '1', '0', null, null, null, null), ('4055', '49', 'm2', '39', null, null, null, 'discador.lead.e_monetario2', null, null, 'MONETARIO', null, '0', 'ExtraMonetario2', null, '1', '0', null, null, null, null), ('4056', '49', 'm3', '40', null, null, null, 'discador.lead.e_monetario3', null, null, 'MONETARIO', null, '0', 'ExtraMonetario3', null, '1', '0', null, null, null, null), ('4057', '49', 'm4', '41', null, null, null, 'discador.lead.e_monetario4', null, null, 'MONETARIO', null, '0', 'ExtraMonetario4', null, '1', '0', null, null, null, null), ('4058', '49', 'm5', '42', null, null, null, 'discador.lead.e_monetario5', null, null, 'MONETARIO', null, '0', 'ExtraMonetario5', null, '1', '0', null, null, null, null), ('4059', '49', 'v90', '43', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD1', null, '1', '0', null, null, null, null), ('4060', '49', 'v94', '44', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone1', null, '1', '0', null, null, null, null), ('4062', '49', 'v96', '46', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone2', null, '1', '0', null, null, null, null), ('4061', '49', 'v95', '45', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD2', null, '1', '0', null, null, null, null), ('4063', '49', 'v97', '47', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD3', null, '1', '0', null, null, null, null), ('4065', '49', 'v99', '49', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD4', null, '1', '0', null, null, null, null), ('4067', '49', 'v101', '51', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD5', null, '1', '0', null, null, null, null), ('4069', '49', 'v103', '53', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD6', null, '1', '0', null, null, null, null), ('4071', '49', 'v105', '55', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD7', null, '1', '0', null, null, null, null), ('4073', '49', 'v107', '57', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD8', null, '1', '0', null, null, null, null), ('4075', '49', 'v109', '59', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD9', null, '1', '0', null, null, null, null), ('4077', '49', 'v111', '61', null, null, null, 'discador.lead_telefone.ddd', null, null, null, null, '0', 'DDD10', null, '1', '0', null, null, null, null), ('4064', '49', 'v98', '48', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone3', null, '1', '0', null, null, null, null), ('4066', '49', 'v100', '50', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone4', null, '1', '0', null, null, null, null), ('4068', '49', 'v102', '52', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone5', null, '1', '0', null, null, null, null), ('4070', '49', 'v104', '54', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone6', null, '1', '0', null, null, null, null), ('4072', '49', 'v106', '56', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone7', null, '1', '0', null, null, null, null), ('4074', '49', 'v108', '58', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone8', null, '1', '0', null, null, null, null), ('4076', '49', 'v110', '60', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone9', null, '1', '0', null, null, null, null), ('4078', '49', 'v112', '62', null, null, null, 'discador.lead_telefone.telefone', null, null, null, null, '0', 'Telefone10', null, '1', '0', null, null, null, null) ;

ALTER TABLE crm.carga ADD COLUMN id_layout integer;

ALTER TABLE crm.carga ADD COLUMN gerar_mailing smallint;
ALTER TABLE crm.carga ALTER COLUMN gerar_mailing SET DEFAULT 0;
COMMENT ON COLUMN crm.carga.gerar_mailing IS 'Check::Gerar Mailing::::::0::::::nao::::::::::::';



 ALTER TABLE callcenter.pausa
  ADD COLUMN tabulacao smallint DEFAULT 0;

ALTER TABLE callcenter.pausa
  ADD COLUMN id_tabulacao bigint DEFAULT NULL;



CREATE TABLE callcenter.campanha_pausa
(
  id_campanha_pausa serial NOT NULL,
  id_campanha integer NOT NULL,
  id_pausa integer NOT NULL,
  datahora_registro timestamp with time zone DEFAULT now(),

  CONSTRAINT pk_id_campanha_pausa PRIMARY KEY (id_campanha_pausa),
  CONSTRAINT fk_id_campanha_pausa_id_campanha FOREIGN KEY (id_campanha)
      REFERENCES callcenter.campanha (id_campanha) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_id_campanha_pausa_id_pausa FOREIGN KEY (id_pausa)
      REFERENCES callcenter.pausa (id_pausa) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.campanha_pausa
  OWNER TO dbcallcenter;


  ALTER TABLE callcenter.chamada_agente
  ADD COLUMN id_chamada_lead bigint DEFAULT NULL;


  ALTER TABLE discador.lead_chamadas_processando
  ADD COLUMN datahora_registro timestamp without time zone;


  -- Table: discador.historico_lead

-- DROP TABLE discador.historico_lead;

CREATE TABLE discador.historico_lead
(
  id_historico_lead serial NOT NULL,
  id_chamada integer,
  id_carga integer,
  id_status_chamada integer,
  datahora_registro timestamp without time zone NOT NULL,
  discador smallint NOT NULL DEFAULT 0,
  CONSTRAINT renitencia_pkey PRIMARY KEY (id_historico_lead)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.historico_lead
  OWNER TO dbcallcenter;

-- Index: discador.idx_historico_lead

-- DROP INDEX discador.idx_historico_lead;

CREATE INDEX idx_historico_lead
  ON discador.historico_lead
  USING btree
  (id_historico_lead);

-- Index: discador.idx_historico_lead_chamada

-- DROP INDEX discador.idx_historico_lead_chamada;

CREATE INDEX idx_historico_lead_chamada
  ON discador.historico_lead
  USING btree
  (id_chamada);



  ----------------------

  ALTER TABLE discador.lead_discagem_telefone
  ADD COLUMN tentativa_renitencia integer DEFAULT 0;




  ------------------------------------


  ALTER TABLE callcenter.chamada_agenda
   ALTER COLUMN cod_contato DROP NOT NULL;
ALTER TABLE callcenter.chamada_agenda
   ALTER COLUMN cod_cliente DROP NOT NULL;



  ------

  ALTER TABLE crm.pedido
  ADD COLUMN uniqueid character varying(40);

  CREATE INDEX idx_uniqueid
   ON crm.pedido USING btree (uniqueid DESC NULLS LAST);


   ------------------------------------------

   ALTER TABLE discador.tabulacao_chamada
  ADD CONSTRAINT uniq_uniqueid UNIQUE (uniqueid);
ALTER TABLE discador.tabulacao_chamada
  ADD CONSTRAINT pk_id_tabulacao_chamada PRIMARY KEY (id_tabulacao_chamada);

  --------------------------


          ALTER TABLE discador.chamadas_lead
  ADD CONSTRAINT uniq_uniqueid_chamada UNIQUE (uniqueid);
  -------------------------------------------
  CREATE INDEX idx_uniqueid
  ON discador.chamadas_lead
  USING btree (uniqueid DESC NULLS LAST);

  CREATE INDEX idx_uniqueid_tab
   ON discador.tabulacao_chamada USING btree (uniqueid DESC NULLS LAST);

   ---------------------------------

   ALTER TABLE discador.lead_chamadas_processando
 ADD CONSTRAINT unq_id_lead_discagem_telefone UNIQUE (id_lead_discagem_telefone);


 ------------------------------

 ALTER TABLE cep.localidade ALTER COLUMN cep_formatado TYPE varchar(9) USING cep_formatado::varchar ;


 --------------------------


 create
    index idx_historico_lead_id_status_chamada on
    discador.historico_lead
        using btree(id_status_chamada);

        -----------------------------------
        create
    index idx_historico_lead_carga on
    discador.historico_lead
        using btree(id_carga);

    ----------------------------------------------

    create
    index idx_chamadas_id_status_chamada on
    discador.chamadas_lead
        using btree(
        id_status_chamada
    );
    -----------------------------------------------


    create
    index idx_chamadas_datahora_inicio_chamada on
    discador.chamadas_lead
        using btree(
        datahora_inicio_chamada desc nulls last
    );

    ---------------------------------------------


    create
    index idx_chamadas_datahora_termino_chamada on
    discador.chamadas_lead
        using btree(
        datahora_termino_chamada desc nulls last
    );
    --------------------------------------------


    ALTER TABLE crm.usuarios ADD dt_nascimento timestamp NULL DEFAULT NULL ;


    ALTER TABLE crm.usuarios ADD login_integracao varchar(6) NULL DEFAULT NULL ;

    ------------------------

    create
    index idx_campanha_id_layout on
    discador.estrategia
        using btree(id_layout);

        -------------------------

        create
    index idx_campanha_id_plano_horario on
    discador.estrategia
        using btree(id_plano_horario);

        ------------------------------


        create
    index idx_estrategia_filtro_id_estrategia on
    discador.estrategia_filtro
        using btree(id_estrategia);

        ---------------------------------


        create
    index idx_estrategia_filtro_id_filtro on
    discador.estrategia_filtro
        using btree(id_filtro);

        ----------------------------------


        create
    index idx_estrategia_ordenacao_id_estrategia on
    discador.estrategia_ordenacao
        using btree(id_estrategia);

        -----------------------------------

        create
    index idx_plano_horario_itens_id_estrategia on
    discador.plano_horario_itens
        using btree(id_plano_horario);

        -------------------------------------


        ALTER TABLE crm.cliente ALTER COLUMN fisica_juridica SET NOT NULL ;
  ALTER TABLE crm.cliente ALTER COLUMN fisica_juridica SET DEFAULT 1 ;


-------------------------------------

-- Table: callcenter.tipo_tabulacao

-- DROP TABLE callcenter.tipo_tabulacao;

CREATE TABLE callcenter.tipo_tabulacao
(
  id_tipo_tabulacao serial NOT NULL,
  descricao character varying(255) NOT NULL,
  habilitado integer NOT NULL,
  created_at timestamp(0) without time zone,
  updated_at timestamp(6) without time zone,
  status integer DEFAULT 1,
  updated_by integer DEFAULT 1,
  CONSTRAINT tipo_tabulacao_pkey PRIMARY KEY (id_tipo_tabulacao)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.tipo_tabulacao
  OWNER TO dbcallcenter;

INSERT INTO callcenter.tipo_tabulacao
(id_tipo_tabulacao, descricao, habilitado, created_at, updated_at, status, updated_by)
VALUES(1,'Sucesso',1,'2017-03-11 11:33:56',null,1,1),
(2,'Falha',1,'2017-03-11 11:34:11',null,1,1),
(3,'Sucesso na Transacao',1,'2017-03-11 11:34:25',null,1,1),
(4,'Agendamento',1,'2017-03-11 11:34:48',null,1,1),
(5,'Agendamento Decisor',1,'2017-03-11 11:35:06',null,1,1),
(6,'Nao Discar',1,'2017-03-11 11:35:16',null,1,1);

---------------------------------------------------------------------------------------------------------------

-- Table: callcenter.tabulacao

-- DROP TABLE callcenter.tabulacao;

CREATE TABLE callcenter.tabulacao
(
  id_tabulacao serial NOT NULL,
  descricao character varying(255) NOT NULL,
  id_tipo_tabulacao integer NOT NULL,
  finaliza_fone integer NOT NULL,
  numero_rediscagem integer NOT NULL,
  max_tent_fixo integer NOT NULL,
  intervalo_redisc_fixo time(0) without time zone NOT NULL,
  max_tent_celular integer NOT NULL,
  intervalo_redisc_celular time(0) without time zone NOT NULL,
  inc_contador integer NOT NULL,
  habilita_resub_base integer NOT NULL,
  habilitado integer NOT NULL,
  created_at timestamp(0) without time zone,
  updated_at timestamp(0) without time zone,
  classificacao integer NOT NULL,
  id_integracao bigint,
  status integer DEFAULT 1,
  updated_by integer,
  id_campanha integer NOT NULL,
  discador smallint DEFAULT 0,
  idorder integer,
  id_origem integer,
  habilitar_tabulacao smallint DEFAULT 0,
  peso integer,
  CONSTRAINT tabulacao_pkey PRIMARY KEY (id_tabulacao),
  CONSTRAINT callcenter_tabulacao_id_tipo_tabulacao_foreign FOREIGN KEY (id_tipo_tabulacao)
      REFERENCES callcenter.tipo_tabulacao (id_tipo_tabulacao) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.tabulacao
  OWNER TO dbcallcenter;




------------------------------------------------------------

CREATE INDEX idx_campanha_lead_estrategia_id_lead_estrategia
 ON discador.campanha_lead_estrategia
 USING btree
 (id_lead_estrategia DESC);

CREATE INDEX idx_campanha_lead_estrategia_id_estrategia
 ON discador.campanha_lead_estrategia
 USING btree
 (id_estrategia DESC);

CREATE INDEX idx_campanha_lead_estrategia_id_carga
 ON discador.campanha_lead_estrategia
 USING btree
 (id_carga DESC);

CREATE INDEX idx_campanha_lead_estrategia_id_campanha
 ON discador.campanha_lead_estrategia
 USING btree
 (id_campanha DESC);



CREATE INDEX idx_plano_horario_itens_id_plano_horario_itens
 ON discador.plano_horario_itens
 USING btree
 (id_plano_horario_itens);

 CREATE INDEX idx_plano_horario_itens_id_tabulacao
 ON callcenter.tabulacao
 USING btree
 (id_tabulacao);


CREATE INDEX idx_plano_horario_itens_id_tipo_tabulacao
 ON callcenter.tabulacao
 USING btree
 (id_tipo_tabulacao);

CREATE INDEX idx_plano_horario_itens_id_campanha
 ON callcenter.tabulacao
 USING btree
 (id_campanha);


CREATE INDEX idx_plano_horario_itens_id_origem
 ON callcenter.tabulacao
 USING btree
 (id_origem);


 CREATE
   INDEX idx_lead_discagem_telefone_processando_processando ON
   discador.lead_chamadas_processando
       USING btree(
       processando DESC
   );


   CREATE
   INDEX idx_lead_discagem_telefone_processando_chamada_ativa ON
   discador.lead_chamadas_processando
       USING btree(
       chamada_ativa DESC
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_datahora_chamada_ativa ON
   discador.lead_chamadas_processando
       USING btree(
       datahora_chamada_ativa DESC
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_datahora_entrada_fila ON
   discador.lead_chamadas_processando
       USING btree(
       datahora_entrada_fila DESC
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_agente ON
   discador.lead_chamadas_processando
       USING btree(
       agente DESC
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_id_estrategia ON
   discador.lead_chamadas_processando
       USING btree(
       id_estrategia DESC
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_uniqueid ON
   discador.lead_chamadas_processando
       USING btree(
       uniqueid
   );

   CREATE
   INDEX idx_lead_discagem_telefone_processando_datahora_registro ON
   discador.lead_chamadas_processando
       USING btree(
       datahora_registro DESC
   );


    CREATE
    INDEX idx_chamadas_lead_telefone ON
    discador.chamadas_lead
        USING btree(
        telefone
    );


    CREATE
    INDEX idx_chamadas_lead_id_agente ON
    discador.chamadas_lead
        USING btree(
        id_agente
    );
   ---------------------------------------------------------------

   UPDATE callcenter.status_chamada set status_chamada = 'Muda' where id_status_chamada = 10;

   ------------------------------------------------------------------

  ALTER TABLE callcenter.campanha
  ADD COLUMN login_alteracao character varying(25) DEFAULT NULL;
  ALTER TABLE callcenter.campanha
  ADD COLUMN datahora_alteracao timestamp without time zone DEFAULT NULL;

------------------------------------------------------------------

ALTER TABLE callcenter.chamada_agenda ADD telefone varchar(15) NULL;

-------------------------------------------------------------------------

ALTER TABLE discador.tabulacao
 ADD CONSTRAINT discador_tabulacao_pkey PRIMARY KEY(id_tabulacao);
 ----------------------------------------------------------------------------------------------------


ALTER TABLE crm.bloquear ADD COLUMN bloqueado integer;


CREATE TABLE discador.blacklist_lead (
  id_blacklist_lead serial,
  telefone bigint NOT NULL
)
WITH (
  OIDS=FALSE
);

CREATE INDEX idx_id_blacklist_lead ON
    discador.blacklist_lead
        USING btree(id_blacklist_lead);

CREATE INDEX idx_telefone_blacklist ON
    discador.blacklist_lead
        USING btree(telefone);


ALTER TABLE discador.chamadas_lead ADD telefone_origem varchar(15) NULL;

ALTER TABLE discador.chamadas_lead ADD hangup_cause int4 NULL;

CREATE INDEX idx_telefone_origem ON
    discador.chamadas_lead
        USING btree(telefone_origem);


        ALTER TABLE crm.bloquear ADD data_desbloqueio timestamp NULL ;
ALTER TABLE crm.bloquear ADD data_pausa timestamp NULL ;



ALTER TABLE crm.cliente ADD orgao_emissor varchar(10) NULL;

CREATE INDEX idx_orgao_emissor ON
    crm.cliente
        USING btree(orgao_emissor);


ALTER TABLE discador.lead_discagem_telefone
  ADD COLUMN tentativa integer DEFAULT 0;


CREATE INDEX idx_discador_telefone
 ON discador.lead_discagem_telefone
 USING btree
 (tentativa);


----- LEAD URA -----

INSERT INTO callcenter.tipo_campanha(id_tipo_campanha,tipo_campanha) VALUES (7,'LEAD_URA');

ALTER TABLE discador.lead_chamadas_processando ADD tipo_chamada varchar NULL;

CREATE INDEX idx_tipo_chamada_lead_processando ON
    discador.lead_chamadas_processando
        USING btree(tipo_chamada);

ALTER TABLE discador.chamadas_lead ADD tipo_chamada varchar NULL;

CREATE INDEX idx_tipo_chamada_chamadas_lead ON
    discador.chamadas_lead
        USING btree(tipo_chamada);

ALTER TABLE discador.lead_chamadas_processando ADD datahora_inicio_ura timestamp NULL;

CREATE INDEX idx_tipo_chamada_lead_chamadas_processando ON
    discador.lead_chamadas_processando
        USING btree(datahora_inicio_ura);

ALTER TABLE discador.chamadas_lead ADD datahora_inicio_ura timestamp NULL;

CREATE INDEX idx_datahora_inicio_ura_chamada_chamadas_lead ON
    discador.chamadas_lead
        USING btree(datahora_inicio_ura);


ALTER TABLE discador.chamadas_lead ADD duracao_ura integer NULL;

CREATE INDEX idx_duracao_ura_chamadas_lead ON
    discador.chamadas_lead
        USING btree(duracao_ura);


ALTER TABLE callcenter.ura_registro ADD uniqueid varchar NULL;

CREATE INDEX idx_ura_registro_uniqueid ON
    callcenter.ura_registro
        USING btree(uniqueid);


----- Receptivo -----

INSERT INTO callcenter.tipo_campanha(id_tipo_campanha,tipo_campanha) VALUES (8,'Receptivo');

ALTER TABLE discador.chamadas_lead ALTER COLUMN id_lead DROP NOT NULL ;

CREATE UNLOGGED TABLE discador.chamadas_receptivo
(
  id_chamadas_receptivo serial NOT NULL,
  telefone character varying(150),
  agente integer,
  fila character varying(150),
  datahora_chamada_ativa timestamp without time zone,
  datahora_entrada_fila timestamp without time zone,
  uniqueid character varying(150),
  CONSTRAINT pk_id_chamadas_receptivo PRIMARY KEY (id_chamadas_receptivo)
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);

ALTER TABLE discador.chamadas_receptivo
  OWNER TO dbcallcenter;


CREATE INDEX idx_id_chamadas_receptivo
  ON discador.chamadas_receptivo
  USING btree
  (id_chamadas_receptivo DESC);

CREATE INDEX idx_telefone_chamadas_receptivo
  ON discador.chamadas_receptivo
  USING btree
  (telefone DESC);

CREATE INDEX idx_agente_chamadas_receptivo
  ON discador.chamadas_receptivo
  USING btree
  (agente DESC);

CREATE INDEX idx_fila_chamadas_receptivo
  ON discador.chamadas_receptivo
  USING btree
  (fila DESC);

  CREATE INDEX idx_uniqueid_chamadas_receptivo
  ON discador.chamadas_receptivo
  USING btree
  (uniqueid DESC);


-----------------------------------

ALTER TABLE crm.logs ALTER COLUMN descricao TYPE varchar(900) USING descricao::varchar ;

CREATE TABLE discador.formularios (
  id_formulario serial,
  id_formulario_pergunta integer,
  uniqueid varchar(255) NOT NULL,
  resposta1 varchar(255),
  resposta2 varchar(255),
  resposta3 varchar(255),
  resposta4 varchar(255),
  resposta5 varchar(255)
)
WITH (
  OIDS=FALSE
);

ALTER TABLE discador.formularios
  OWNER TO dbcallcenter;

CREATE INDEX idx_id_forumalario_discador ON
    discador.formularios
        USING btree(id_formulario);

CREATE INDEX idx_uniqueid_formulario_discador ON
    discador.formularios
        USING btree(uniqueid);



CREATE TABLE discador.formularios_perguntas (
  id_formulario_pegunta serial,
  descricao varchar(255),
  pergunta1 varchar(255),
  pergunta1_type varchar(255),
  pergunta1_respostas varchar(255),
  pergunta2 varchar(255),
  pergunta2_type varchar(255),
  pergunta2_respostas varchar(255),
  pergunta3 varchar(255),
  pergunta3_type varchar(255),
  pergunta3_respostas varchar(255),
  pergunta4 varchar(255),
  pergunta4_type varchar(255),
  pergunta4_respostas varchar(255),
  pergunta5 varchar(255),
  pergunta5_type varchar(255),
  pergunta5_respostas varchar(255),
  habilitar integer
)
WITH (
  OIDS=FALSE
);

ALTER TABLE discador.formularios_perguntas
  OWNER TO dbcallcenter;

CREATE INDEX idx_id_formulario_pegunta ON
  discador.formularios_perguntas
    USING btree(id_formulario_pegunta);




CREATE TABLE discador.campos_lead (
  id_campos_lead serial,
  campo varchar(255),
  label varchar(255),
  tipo varchar(255),
  tamanho integer,
  ordem integer
)
WITH (
  OIDS=FALSE
);

ALTER TABLE discador.campos_lead
  OWNER TO dbcallcenter;

CREATE INDEX idx_id_campos_lead ON
  discador.campos_lead
    USING btree(id_campos_lead);

  --  inserindo coluna de data hora que a chamada entrou na fila...


--  inicio de construcao do novo processo de carga...tabelas


-- Table: discador.layout

-- DROP TABLE discador.layout;

CREATE TABLE discador.layout
(
  id_layout serial NOT NULL ,
  descricao character varying(300) NOT NULL,
  delimitador character varying(3),
  CONSTRAINT pk_id_layout PRIMARY KEY (id_layout)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.layout
  OWNER TO dbcallcenter;


  -- Table: discador.layout_campos

-- DROP TABLE discador.layout_campos;

CREATE TABLE discador.layout_campos
(
  id_layout_campos serial NOT NULL,
  descricao character varying(300),
  campo character varying(300),
  label character varying(300),
  ordem integer NOT NULL,
  id_layout bigint,
  CONSTRAINT pk_id_layout_campos PRIMARY KEY (id_layout_campos),
  CONSTRAINT fk_id_layout FOREIGN KEY (id_layout)
      REFERENCES discador.layout (id_layout) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE RESTRICT
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.layout_campos
  OWNER TO dbcallcenter;


  -- Table: discador.layout_campos_filtros

-- DROP TABLE discador.layout_campos_filtros;

CREATE TABLE discador.layout_campos_filtros
(
  id_layout_campos_filtros serial NOT NULL,
  id_layout bigint NOT NULL,
  filtro_where text,
  descricao character varying(300) NOT NULL,
  CONSTRAINT pk_id_layout_campos_filtros PRIMARY KEY (id_layout_campos_filtros),
  CONSTRAINT fk_id_layout_filtros FOREIGN KEY (id_layout)
      REFERENCES discador.layout (id_layout) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE RESTRICT
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.layout_campos_filtros
  OWNER TO dbcallcenter;


ALTER TABLE discador.chamadas_lead
ADD COLUMN datahora_entrada_fila timestamp without time zone;


-----------------------------------------------------------------------------

CREATE TABLE discador.chamadas_lead_receptivo
(
  id_chamada_lead_receptivo serial,
  telefone bigint,
  agente integer,
  datahora_inicio_chamada timestamp with time zone,
  datahora_termino_chamada timestamp with time zone,
  duracao_chamada integer,
  tempo_espera integer,
  id_status_chamada integer,
  uniqueid character varying(40),
  id_campanha integer NOT NULL,
  hangup_cause character varying(10),
  tipo_chamada character varying(10),
  datahora_entrada_fila timestamp with time zone
)
WITH (
  FILLFACTOR=90,
  OIDS=FALSE
);

ALTER TABLE discador.chamadas_lead_receptivo
  OWNER TO dbcallcenter;

CREATE INDEX idx_chamadas_lead_receptivo_id
  ON discador.chamadas_lead_receptivo
  USING btree
  (id_chamada_lead_receptivo DESC);

  CREATE INDEX idx_chamadas_lead_receptivo_agente
  ON discador.chamadas_lead_receptivo
  USING btree
  (agente DESC);


  CREATE INDEX idx_chamadas_lead_receptivo_id_campanha
  ON discador.chamadas_lead_receptivo
  USING btree
  (id_campanha DESC);

  CREATE INDEX idx_chamadas_lead_receptivo_uniqueid
  ON discador.chamadas_lead_receptivo
  USING btree
  (uniqueid DESC);

CREATE INDEX idx_chamadas_lead_receptivo_telefone
  ON discador.chamadas_lead_receptivo
  USING btree
  (telefone DESC);

  CREATE INDEX idx_chamadas_lead_receptivo_tempo_espera
  ON discador.chamadas_lead_receptivo
  USING btree
  (tempo_espera DESC);

-----------------------------------------------------------------------------

CREATE TABLE discador.chat_msg
(
  id_chat_msg serial,
  agente_origem integer,
  agente_destino integer,
  mensagem character varying(900),
  datahora_registro timestamp with time zone
)
WITH (
  FILLFACTOR=90,
  OIDS=FALSE
);

ALTER TABLE discador.chat_msg
  OWNER TO dbcallcenter;

CREATE INDEX idx_chat_msg_id_chat_msg
ON discador.chat_msg
USING btree
(id_chat_msg DESC);

CREATE INDEX idx_chat_msg_agente_origem
ON discador.chat_msg
USING btree
(agente_origem DESC);

CREATE INDEX idx_chat_msg_agente_destino
ON discador.chat_msg
USING btree
(agente_destino DESC);

-------------------------------------------------------------------------------
SELECT setval('crm.menusub_cod_menusub_seq', (SELECT MAX(cod_menusub)+1 FROM crm.menusub), false);




UPDATE crm.menutop SET img_icon='icon_adimin.png', ordem = 1 WHERE  cod_menutop = 1;
UPDATE crm.menutop SET img_icon = 'btn_cadastros.png', ordem = 2 WHERE  cod_menutop = 2;
UPDATE crm.menutop SET img_icon = 'btn_callcenter.png', ordem = 3 WHERE  cod_menutop = 7;
UPDATE crm.menutop SET img_icon = 'btn_processos.png', ordem = 4 WHERE  cod_menutop = 3;
UPDATE crm.menutop SET img_icon = 'btn_config.png', ordem = 5 WHERE  cod_menutop = 6;
UPDATE crm.menutop SET img_icon = 'btn_relatorios.png', ordem = 6 WHERE  cod_menutop = 5;

-------------------------------------------------------------------------------


CREATE TABLE discador.layout_campos_padrao
(
  id_layout_campos_padrao serial NOT NULL,
  descricao character varying(300),
  campo character varying(300),
  label character varying(300),
  ordem integer NOT NULL
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.layout_campos_padrao
  OWNER TO dbcallcenter;


ALTER TABLE discador.layout_campos_padrao ADD CONSTRAINT layout_campos_padrao_pk PRIMARY KEY (id_layout_campos_padrao);


  --------------------------------------------------------------------------------


INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(1,'Nome', 'v1', 'discador.lead.nome', 1);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(2,'Nome Fantasia', 'v2', 'discador.lead.nome_fantasia', 2);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(3,'CPF CNPJ ', 'v3', 'discador.lead.cpf_cnpj', 3);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(4,'RG', 'v4', 'discador.lead.documento_id', 4);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(5,'Inscricacao municipal', 'v5', 'discador.lead.inscricao_municipal', 5);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(6,'Dt nascimento', 'd1', 'discador.lead.dt_nascimento', 6);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(7,'Endereco', 'v6', 'discador.lead.endereco', 7);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(8,'Numero', 'v7', 'discador.lead.numero', 8);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(9,'Complemento', 'v8', 'discador.lead.complemento', 9);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(10,'Bairro', 'v9', 'discador.lead.bairro', 10);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(11,'Cidade', 'v10', 'discador.lead.cidade', 11);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(12,'Uf', 'v11', 'discador.lead.uf', 12);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(13,'Pais', 'v12', 'discador.lead.pais', 13);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(14,'Cep', 'v13', 'discador.lead.cep', 14);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(15,'Referencia', 'v14', 'discador.lead.referencia', 15);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(16,'Nome mae', 'v15', 'discador.lead.nome_mae', 16);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(17,'Nome pai', 'v16', 'discador.lead.nome_pai', 17);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(18,'Email', 'v17', 'discador.lead.email', 18);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(19,'Campo Texto 1', 'v18', 'discador.lead.e_string1', 19);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(20,'Campo Texto 2', 'v19', 'discador.lead.e_string2', 20);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(21,'Campo Texto 3', 'v20', 'discador.lead.e_string3', 21);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(22,'Campo Texto 4', 'v21', 'discador.lead.e_string4', 22);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(23,'Campo Texto 5', 'v22', 'discador.lead.e_string5', 23);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(63,'Campo Texto 6', 'v23', 'discador.lead.e_string6', 24);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(24,'Campo Texto 7', 'v24', 'discador.lead.e_string7', 25);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(25,'Campo Texto 8', 'v25', 'discador.lead.e_string8', 26);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(26,'Campo Texto 9', 'v26', 'discador.lead.e_string9', 27);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(27,'Campo Texto 10', 'v27', 'discador.lead.e_string10', 28);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(28,'Campo Data 1', 'd2', 'discador.lead.e_data1', 29);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(29,'Campo Data 2', 'd3', 'discador.lead.e_data2', 30);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(30,'Campo Data 3', 'd4', 'discador.lead.e_data3', 31);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(31,'Campo Data 4', 'd5', 'discador.lead.e_data4', 32);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(32,'Campo Data 5', 'd6', 'discador.lead.e_data5', 33);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(33,'Campo Inteiro 1', 'i1', 'discador.lead.e_int1', 34);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(34,'Campo Inteiro 2', 'i2', 'discador.lead.e_int2', 35);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(35,'Campo Inteiro 3', 'i3', 'discador.lead.e_int3', 36);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(36,'Campo Inteiro 4', 'i4', 'discador.lead.e_int4', 37);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(37,'Campo Inteiro 5', 'i5', 'discador.lead.e_int5', 38);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(38,'Campo Moeda 1', 'm1', 'discador.lead.e_monetario1', 39);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(39,'Campo Moeda 2', 'm2', 'discador.lead.e_monetario2', 40);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(40,'Campo Moeda 3', 'm3', 'discador.lead.e_monetario3', 41);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(41,'Campo Moeda 4', 'm4', 'discador.lead.e_monetario4', 42);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(42,'Campo Moeda 5', 'm5', 'discador.lead.e_monetario5', 43);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(43,'DDD1', 'v90', 'discador.lead_telefone.ddd', 44);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(44,'Telefone1', 'v94', 'discador.lead_telefone.telefone', 45);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(45,'DDD2', 'v95', 'discador.lead_telefone.ddd', 46);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(46,'Telefone2', 'v96', 'discador.lead_telefone.telefone', 47);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(47,'DDD3', 'v97', 'discador.lead_telefone.ddd', 48);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(48,'Telefone3', 'v98', 'discador.lead_telefone.telefone', 49);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(49,'DDD4', 'v99', 'discador.lead_telefone.ddd', 50);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(50,'Telefone4', 'v100', 'discador.lead_telefone.telefone', 51);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(51,'DDD5', 'v101', 'discador.lead_telefone.ddd', 51);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(52,'Telefone5', 'v102', 'discador.lead_telefone.telefone', 52);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(53,'DDD6', 'v103', 'discador.lead_telefone.ddd', 53);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(54,'Telefone6', 'v104', 'discador.lead_telefone.telefone', 54);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(55,'DDD7', 'v105', 'discador.lead_telefone.ddd', 55);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(56,'Telefone7', 'v106', 'discador.lead_telefone.telefone', 56);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(57,'DDD8', 'v107', 'discador.lead_telefone.ddd', 57);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(58,'Telefone8', 'v108', 'discador.lead_telefone.telefone', 58);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(59,'DDD9', 'v109', 'discador.lead_telefone.ddd', 59);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(60,'Telefone9', 'v110', 'discador.lead_telefone.telefone', 60);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(61,'DDD10', 'v111', 'discador.lead_telefone.ddd', 61);
INSERT INTO discador.layout_campos_padrao(id_layout_campos_padrao,descricao, campo, label, ordem)VALUES(62,'Telefone10', 'v112', 'discador.lead_telefone.telefone', 62);



--------------------------------------------------------------------------------------------------------------


UPDATE crm.menusub SET modulovar = 'ModLeadImportacaoNEW' WHERE modulovar = 'ModLeadImportacao';
ALTER TABLE crm.carga ADD COLUMN iniciar_ativo integer  DEFAULT 0;

----------------------------------------------------------------------------------------------------------------

-- insere tipo de tabulacao promessa

INSERT INTO callcenter.tipo_tabulacao (id_tipo_tabulacao,descricao,habilitado,status,updated_by,created_at) VALUES (7,'Promessa',1,1,1,now());

CREATE TABLE discador.controle_promessa
(
   id_controle_promessa serial,
   id_lead bigint NOT NULL,
   datahora_gerar timestamp with time zone NOT NULL,
   CONSTRAINT pk_id_controle_promessa PRIMARY KEY (id_controle_promessa),
   CONSTRAINT unq_id_lead_controle_promessa UNIQUE (id_lead)
)
WITH (
  OIDS = FALSE
)
;
CREATE INDEX idx_controle_promessa_id_lead
   ON discador.controle_promessa USING btree (id_lead ASC NULLS LAST);

CREATE INDEX idx_cntrole_promessa_datahora_gerar
   ON discador.controle_promessa USING btree (datahora_gerar ASC NULLS LAST);


ALTER TABLE discador.tabulacao_chamada
  ADD COLUMN datahora_gerar timestamp with time zone;
-------------------------------------------------------------------------------------------------------------------



ALTER TABLE discador.layout_campos ADD COLUMN obr integer;
ALTER TABLE discador.layout_campos ADD COLUMN repeticao integer;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN agente_hangup integer DEFAULT 0;


---------------------------------------------------------------------------------------------------------------------


CREATE TABLE discador.campanha_horario
(
  id_campanha_horario serial NOT NULL,
  id_campanha bigint NOT NULL,
  dia_da_semana character varying(255) NOT NULL,
  inicio time(0) without time zone NOT NULL,
  fim time(0) without time zone NOT NULL,
  ordem smallint NOT NULL,
  selecionado boolean NOT NULL,
  created_at timestamp(0) without time zone,
  updated_at timestamp(0) without time zone,
  num_dia_semana character varying(2) NOT NULL,
  CONSTRAINT id_campanha_horario_pkey PRIMARY KEY (id_campanha_horario)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.campanha_horario
  OWNER TO dbcallcenter;



CREATE
    INDEX idx_id_campanha_campanha_horario ON
    discador.campanha_horario
        using btree(id_campanha);

CREATE
    INDEX idx_inicio_campanha_horario ON
    discador.campanha_horario
        using btree(inicio);


CREATE
    INDEX idx_fim_campanha_horario ON
    discador.campanha_horario
        using btree(fim);


CREATE
    INDEX idx_id_campanha_horario ON
    discador.campanha_horario
        using btree(id_campanha_horario);


-------------------------------------------------------------------------------------------------

ALTER TABLE crm.carga_registro ALTER COLUMN v26 TYPE varchar(700) USING v26::varchar;
ALTER TABLE crm.carga_registro ALTER COLUMN v27 TYPE varchar(700) USING v27::varchar;

ALTER TABLE discador.lead ALTER COLUMN e_string9 TYPE varchar(700) USING e_string9::varchar;
ALTER TABLE discador.lead ALTER COLUMN e_string10 TYPE varchar(700) USING e_string10::varchar;

ALTER TABLE discador.lead_discagem ALTER COLUMN e_string9 TYPE varchar(700) USING e_string9::varchar;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_string10 TYPE varchar(700) USING e_string10::varchar;

ALTER TABLE discador.chamadas_lead ALTER COLUMN e_string9 TYPE varchar(700) USING e_string9::varchar;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_string10 TYPE varchar(700) USING e_string10::varchar;

-------------------------------------------------------------------------------------------------------

-- view de chamadas discador

drop view if exists SMART_CHAMADAS_DISCADOR;

ALTER TABLE discador.lead ALTER COLUMN e_data1 TYPE timestamp USING e_data1::timestamp;
ALTER TABLE discador.lead ALTER COLUMN e_data2 TYPE timestamp USING e_data2::timestamp;
ALTER TABLE discador.lead ALTER COLUMN e_data3 TYPE timestamp USING e_data3::timestamp;
ALTER TABLE discador.lead ALTER COLUMN e_data4 TYPE timestamp USING e_data4::timestamp;
ALTER TABLE discador.lead ALTER COLUMN e_data5 TYPE timestamp USING e_data5::timestamp;

ALTER TABLE discador.lead_discagem ALTER COLUMN e_data1 TYPE timestamp USING e_data1::timestamp;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_data2 TYPE timestamp USING e_data2::timestamp;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_data3 TYPE timestamp USING e_data3::timestamp;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_data4 TYPE timestamp USING e_data4::timestamp;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_data5 TYPE timestamp USING e_data5::timestamp;

ALTER TABLE discador.chamadas_lead ALTER COLUMN e_data1 TYPE timestamp USING e_data1::timestamp;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_data2 TYPE timestamp USING e_data2::timestamp;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_data3 TYPE timestamp USING e_data3::timestamp;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_data4 TYPE timestamp USING e_data4::timestamp;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_data5 TYPE timestamp USING e_data5::timestamp;

ALTER TABLE discador.chamadas_lead ALTER COLUMN e_monetario1 TYPE numeric(13,3) USING e_monetario1::numeric;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_monetario2 TYPE numeric(13,3) USING e_monetario2::numeric;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_monetario3 TYPE numeric(13,3) USING e_monetario3::numeric;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_monetario4 TYPE numeric(13,3) USING e_monetario4::numeric;
ALTER TABLE discador.chamadas_lead ALTER COLUMN e_monetario5 TYPE numeric(13,3) USING e_monetario5::numeric;

------------------------------------------------------------------------------------------------------------------------------------
--  insercao de dados de tabulacao na tabela historica para eliminar o join e o problema de alteracao.
ALTER TABLE discador.tabulacao_chamada ADD COLUMN descricao_tabulacao character varying(255);
ALTER TABLE discador.tabulacao_chamada ADD COLUMN tipo_tabulacao character varying(40);
ALTER TABLE discador.tabulacao_chamada ADD COLUMN finaliza_fone character varying(3);
ALTER TABLE discador.tabulacao_chamada ADD COLUMN max_tent_fixo smallint;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN intervalo_redisc_fixo time(0) without time zone;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN max_tent_celular smallint;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN intervalo_redisc_celular time(0) without time zone;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN inc_contador character varying(3);
ALTER TABLE discador.tabulacao_chamada ADD COLUMN habilita_resub_base character varying(3);
ALTER TABLE discador.tabulacao_chamada ADD COLUMN id_integracao integer;
ALTER TABLE discador.tabulacao_chamada ADD COLUMN peso smallint;

--------------------- view---------------------------
CREATE OR REPLACE VIEW SMART_CHAMADAS_DISCADOR AS
SELECT
                                    COALESCE(cl.tipo_chamada,'DISCADOR') as tipo,
                                    cl.datahora_termino_chamada as datahora_geracao,
                                    cl.id_agente as agente,
                                    u.login as login_agente,
                                    u.nome as nome_agente,
                                    ug.login as login_gestor,
                                    ug.nome as nome_gestor,
                                    sc.status_chamada,
                                    cl.duracao_chamada as tempo,
                                    cl.uniqueid as uniqueid,
                                    cl.id_carga as id_carga,
                                    cc.mailing as carga,
                                    cl.telefone_f::varchar as telefone,
                                    cl.telefone::varchar as telefone_f,
                                    cl.nome as nome,
                                    cl.cpf_cnpj as cpf_cnpj,
                                    cl.endereco,
                                    cl.numero,
                                    cl.complemento,
                                    cl.bairro,
                                    cl.referencia,
                                    cl.cep,
                                    cl.uf,
                                    cl.cidade,
                                    cl.pais,
                                    cl.nome_mae,
                                    cl.nome_pai,
                                    cl.estado_civil,
                                    cl.email,
                                    cl.observacao,
                                    cl.e_string1,cl.e_string2,cl.e_string3,cl.e_string4,cl.e_string5,cl.e_string6,cl.e_string7,cl.e_string8,cl.e_string9,cl.e_string10,
                                    cl.e_data1,cl.e_data2,cl.e_data3,cl.e_data4,cl.e_data5,cl.e_int1,cl.e_int2,cl.e_int3,cl.e_int4,cl.e_int5,
                                    cl.e_monetario1,cl.e_monetario2,cl.e_monetario3,cl.e_monetario4,cl.e_monetario5,
                                    c.nome_campanha,
                                    c.data_inicio AS datainicio_campanha,
                                    c.hora_inicio AS horainicio_campanha,
                                    c.data_termino AS datatermino_campanha,
                                    c.hora_termino AS horatermino_campanha,
                                    c.rota_discagem,
                                    c.tentativas,
                                    c.chamadas_por_agente,
                                    c.tempo_chamada_curta,
                                    c.quantidade_limite_contatos,
                                    c.tempo_discagem,
                                    c.max_chamadas,
                                    c.perc_projecao AS projecao,
                                    c.tipo_discagem,
                                    t.descricao AS tabulacao,
                                    tc.created_at as data_hora_tabulacao,
                                    tc.datahora_gerar as data_promessa,
                                    COALESCE(tc.tipo_tabulacao,tt.descricao) AS tipo_tabulacao,
                                    COALESCE(tc.finaliza_fone,CASE WHEN tb.finaliza_fone = 1 THEN 'Sim' ELSE 'Nao' END)  AS finaliza_fone,
                                    COALESCE(tc.max_tent_fixo,tb.max_tent_fixo) AS max_tent_fixo,
                                    COALESCE(tc.intervalo_redisc_fixo,tb.intervalo_redisc_fixo) AS intervalo_redisc_fixo,
                                    COALESCE(tc.max_tent_celular,tb.max_tent_celular) AS max_tent_celular,
                                    COALESCE(tc.intervalo_redisc_celular,tb.intervalo_redisc_celular) AS intervalo_redisc_celular,
                                    COALESCE(tc.inc_contador,CASE WHEN tb.inc_contador = 1 THEN 'Sim' ELSE 'Nao' END)  AS incrementa_contador,
                                    COALESCE(tc.habilita_resub_base,CASE WHEN tb.habilita_resub_base = 1 THEN 'Sim' ELSE 'Nao' END)  AS resubmeter_base,
                                    COALESCE(tc.id_integracao,tb.id_integracao) AS id_integracao,
                                    COALESCE(tc.peso,tb.peso) AS peso,
                                    cl.telefone_origem,
                                    cl.hangup_cause,
                                    CASE WHEN tc.agente_hangup = 1 THEN 'Sim' ELSE 'Nao' END AS agente_desligou
                                    FROM discador.chamadas_lead cl
                                    LEFT JOIN callcenter.status_chamada sc ON sc.id_status_chamada = cl.id_status_chamada
                                    LEFT JOIN crm.usuarios u ON u.cod_agente = cl.id_agente::varchar
                                    LEFT JOIN crm.usuarios ug ON ug.cod_usuario = u.gestor
                                    LEFT JOIN callcenter.campanha c ON cl.id_campanha = c.id_campanha
                                    LEFT JOIN discador.tabulacao_chamada tc ON tc.uniqueid = cl.uniqueid
                                    LEFT JOIN discador.tabulacao t ON t.id_tabulacao = tc.id_tabulacao
                                    LEFT JOIN callcenter.tabulacao tb ON tb.id_origem =  t.id_tabulacao AND cl.id_campanha = tb.id_campanha AND tb.habilitar_tabulacao = 1
                                    LEFT JOIN callcenter.tipo_tabulacao tt ON tb.id_tipo_tabulacao = tt.id_tipo_tabulacao
                                    LEFT JOIN crm.carga cc ON cc.id_carga = cl.id_carga ;

-- view de chamadas manual
drop view if exists SMART_CHAMADAS_MANUAL;
CREATE OR REPLACE VIEW SMART_CHAMADAS_MANUAL AS
SELECT
                                        'MANUAL' as tipo,
                                        ca.datahora_registro AS datahora_geracao,
                                        ca.agente AS agente,
                                        u.login AS login_agente,
                                        u.nome AS nome_agente,
                                        ug.login AS login_gestor,
                                        ug.nome AS nome_gestor,
                                        sc.status_chamada AS status_chamada,
                                        ca.tempo AS tempo,
                                        ca.uniqueid AS uniqueid,
                                        ca.telefone::varchar AS telefone,
                                        ca.telefone::varchar AS telefone_f,
                                        COALESCE(tc.descricao_tabulacao,t.descricao) AS tabulacao,
                                        tc.created_at AS data_hora_tabulacao,
                                        tc.datahora_gerar as data_promessa,
                                        CASE WHEN tc.agente_hangup = 1 THEN 'Sim' ELSE 'Nao' END AS agente_desligou
                                        FROM callcenter.chamada_agente ca
                                        LEFT JOIN crm.usuarios u ON ca.agente::varchar = u.cod_agente
                                        LEFT JOIN crm.usuarios ug ON ug.cod_usuario = u.gestor
                                        LEFT JOIN callcenter.status_chamada sc ON sc.id_status_chamada = ca.id_status_chamada
                                        LEFT JOIN discador.tabulacao_chamada tc on tc.uniqueid = ca.uniqueid
                                        LEFT JOIN discador.tabulacao t ON t.id_tabulacao = tc.id_tabulacao ;



---------------------------------------------------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------------------------------------------------


UPDATE crm.frm_sql SET p_sql = 'select * FROM asterisk.pesquisa',p_sql_orderby = 'id_pesquisa',p_sql_valor = 'id_pesquisa',p_sql_descricao = 'pesquisa' WHERE tag = 'FORMULARIOPESQUISA';


----------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.integracao_ticket_multicanal
(
   id_integracao_multicanal serial,
   protocolo character varying(300) NOT NULL,
   uniqueid character varying(300) NOT NULL,
   datahora timestamp with time zone NOT NULL DEFAULT now(),
   agente integer,
   CONSTRAINT pk_id_integracao_multicanal PRIMARY KEY (id_integracao_multicanal),
   CONSTRAINT unq_uniqueid_multicanal UNIQUE (uniqueid)
)
WITH (
  OIDS = FALSE
)
;
CREATE INDEX idx_uniqueid_integracao_multicanal   ON discador.integracao_ticket_multicanal USING btree (uniqueid DESC NULLS LAST);

-----------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE discador.tabulacao   ADD COLUMN automatica smallint NOT NULL DEFAULT 0;

INSERT INTO discador.tabulacao (descricao,produtiva,automatica) SELECT  'Nao Tabulado','0','1' WHERE NOT EXISTS (SELECT * FROM discador.tabulacao WHERE automatica = 1);

-----------------------------------------------------------------------------------------------------------------------------------------


ALTER TABLE callcenter.campanha ADD COLUMN tempo_preditivo integer DEFAULT 0;
-----------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD COLUMN meta_abandono integer DEFAULT 0;

-----------------------------------------------------------------------------------------------------------------------------------------


ALTER TABLE discador.chamadas_lead_receptivo ADD CONSTRAINT uniq_key_uniqueid_chamadas_recep UNIQUE (uniqueid) ;

-----------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.controle_merge
(
  id_controle_merge serial NOT NULL,
  id_carga integer NOT NULL,
  leads_atualizados integer NOT NULL,
  telefones_atualizados integer NOT NULL,
  leads_novos integer NOT NULL,
  telefones_novos integer NOT NULL,
  datahora_merge timestamp(0) without time zone,
  usuario_responsavel integer NOT NULL,
  CONSTRAINT id_controle_merge_pkey PRIMARY KEY (id_controle_merge)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.controle_merge
  OWNER TO dbcallcenter;



CREATE
    INDEX idx_id_controle_merge ON
    discador.controle_merge
        using btree(id_controle_merge);

CREATE
    INDEX idx_controle_merge_id_carga ON
    discador.controle_merge
        using btree(id_carga);


CREATE
    INDEX idx_controle_merge_usuario_responsavel ON
    discador.controle_merge
        using btree(usuario_responsavel);

-------------------------------------------------------------------------------------------------------------------------------
-- integracao cpf digitado na ura

CREATE TABLE discador.integracao_ura_cpf
(
   id_integracao_ura_cpf serial NOT NULL,
   uniqueid character varying(255) NOT NULL,
   cpf character varying(255) NOT NULL,
   datahora timestamp with time zone NOT NULL DEFAULT now(),
   CONSTRAINT pk_id_integracao_conductor PRIMARY KEY (id_integracao_ura_cpf),
   CONSTRAINT unq_uniqueid_integracao_conductor UNIQUE (uniqueid)
)
WITH (
  OIDS = FALSE
);

CREATE INDEX idx_uniqueid_integracao_cpf  ON discador.integracao_ura_cpf USING btree (uniqueid DESC NULLS LAST);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN nome_cliente character varying(40);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN rg character varying(12);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN nascimento character varying(20);
ALTER TABLE asterisk.pesquisa_opcao ALTER COLUMN opcao_valor TYPE varchar(2) USING opcao_valor::varchar ;

-- view de chamadas entrante

DROP VIEW IF EXISTS SMART_CHAMADAS_ENTRANTES;
CREATE OR REPLACE VIEW SMART_CHAMADAS_ENTRANTES AS
SELECT
                                            'ENTRANTE' as tipo,
                                            clr.datahora_termino_chamada,
                                            clr.agente AS agente,
                                            u.login AS login_agente,
                                            u.nome AS nome_agente,
                                            ug.login AS login_gestor,
                                            ug.nome AS nome_gestor,
                                            sc.status_chamada AS status_chamada,
                                            clr.duracao_chamada AS tempo,
                                            clr.uniqueid AS uniqueid,
                                            clr.telefone::varchar AS telefone,
                                            clr.telefone::varchar AS telefone_f,
                                            c.nome_campanha AS nome_campanha,
                                            COALESCE(tc.descricao_tabulacao,t.descricao) AS tabulacao,
                                            tc.created_at AS data_hora_tabulacao,
                                            tc.datahora_gerar as data_promessa,
                                            CASE WHEN tc.agente_hangup = 1 THEN 'Sim' ELSE 'Nao' END AS agente_desligou,
                                            clr.tempo_espera AS tempo_espera,
                                            iuc.nome_cliente as nome,
                                            iuc.cpf AS cpf_cnpj
                                            FROM discador.chamadas_lead_receptivo clr
                                            LEFT JOIN crm.usuarios u ON clr.agente::varchar = u.cod_agente
                                            LEFT JOIN crm.usuarios ug ON ug.cod_usuario = u.gestor
                                            LEFT JOIN callcenter.status_chamada sc ON sc.id_status_chamada = clr.id_status_chamada
                                            LEFT JOIN discador.tabulacao_chamada tc on tc.uniqueid = clr.uniqueid
                                            LEFT JOIN discador.tabulacao t ON t.id_tabulacao = tc.id_tabulacao
                                            LEFT JOIN callcenter.campanha c ON c.id_campanha = clr.id_campanha
                                            LEFT JOIN discador.integracao_ura_cpf iuc on iuc.uniqueid=clr.uniqueid ;



-- variaveis do sistema multicanal


-----------------------------------------------------------------------------------------------------------------------------------


INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(999, 1, 2, '2019-02-06 15:59:20.000', 'Tentativa de vezes que o sistema ira tentar acionar o lead no Agendamento Privado', 'f_tentativa_agenda_privada', 1, '5', 0, 5, 'Tentativa de vezes que o sistema ira tentar acionar o lead no Agendamento Privado', '3');

INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(998, 1, 2, '2019-02-06 16:02:33.000', 'Intervalo de tempo (MINUTOS) entre as tentativas que o  sistema ira tentar acionar o lead no Agendamento Privado', 'f_agenda_privada_intervalo', 1, '10', 0, 5, 'Intervalo de tempo(MINUTOS) entre as tentativas que o  sistema ira tentar acionar o lead no Agendamento Privado', '3');

-----------------------------------------------------------------------------------------------------------------------------------

INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(997, 1, 1, '2018-06-05 11:58:35.000', 'Senha para acessar o token Multicanal', 'f_senha_token', 1, 'admin123', 0, 5, NULL, '5');

INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(996, 1, 1, '2018-06-05 11:57:23.000', 'Email  para autenticacao do token Multicanal', 'f_email_token', 1, 'admin@dpsp.com', 1, 5, 'o Email deve estar no valor', '5');


-----------------------------------------------------------------------------------------------------------------------------------


INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(995, 1, 1, '2019-02-11 14:35:23.000', 'Url de Integracao CRM-Light', 'f_url_crm_light', 1, 'xxxxxx.saas.smartnx.com', 1, 5, 'DNS_AQUI.saas.smartnx.com', '5');

------------------------------------------------------------------------------------------------------------------------------------

-- criacao de indica na tabela discador.lead id_carga para que seja possivel deletar mais rapido.

CREATE INDEX idx_lead_id_carga_lead ON discador.lead USING btree (id_carga);




INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(994, 1, 1, '2019-02-11 14:35:23.000', 'Token Conductor', 'f_token_conductor', 1, 'sD1fqlIywdBRLWW1xxxx', 1, 5, 'Cadastrar o token para funcionar a abertura de informações do cliente , ao cair uma chamada.', '5');

ALTER TABLE asterisk.rota_exten_in ADD COLUMN id_tronco int;
ALTER TABLE asterisk.rota_exten_in ADD FOREIGN KEY  (id_tronco) REFERENCES asterisk.tronco(id_tronco);


INSERT INTO crm.frm_sql
(id_frm_sql, descricao, tag, obs, habilitar, p_sql, p_sql_where, p_sql_orderby, p_sql_groupby, p_sql_having, p_sql_valor, p_sql_descricao, p_sql_atributos)
VALUES(104, 'Listar Layouts de Importacao', 'DISCADOR_LAYOUT', 'Listar Layouts de Importacao', 1, 'SELECT id_carga_conf, descricao FROM crm.carga_conf', 'habilitar = 1', 'id_carga_conf', NULL, NULL, 'id_carga_conf', 'descricao', NULL);

INSERT INTO crm.frm_sql
(id_frm_sql, descricao, tag, obs, habilitar, p_sql, p_sql_where, p_sql_orderby, p_sql_groupby, p_sql_having, p_sql_valor, p_sql_descricao, p_sql_atributos)
VALUES(105, 'Cargas (LEAD_DISCADOR)', 'CARGAS_LEAD_DISCADOR', 'Listagem de Cargas do tipo LEAD_DISCADOR', 1, 'SELECT id_carga, id_carga|| '' - ''||mailing as mailing FROM crm.carga', 'tipo = ''LEAD_DISCADOR''', 'id_carga', NULL, NULL, 'id_carga', 'mailing', NULL);

INSERT INTO crm.frm_sql
(id_frm_sql, descricao, tag, obs, habilitar, p_sql, p_sql_where, p_sql_orderby, p_sql_groupby, p_sql_having, p_sql_valor, p_sql_descricao, p_sql_atributos)
VALUES(107, 'Leads', 'LEADS', 'Listagem de Leads', 1, 'SELECT c.mailing,cl.id_carga FROM discador.campanha_lead cl
  LEFT JOIN crm.carga c ON c.id_carga = cl.id_carga', 'cl.lead_apagado = 0', NULL, NULL, NULL, 'id_carga', 'mailing', NULL);

INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(993, 1, 1, '2019-03-15 18:03:23.000', 'Url wedoo', 'f_url_wedoo', 1, 'http://200.212.251.116:8098/easycollector/menu/menu.aspx', 1, 5, 'url responsavel por abrir os dados do cliente no wedoo', '5');

INSERT INTO crm.classificacao_sistema
(cod_classificacao_sistema, cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
VALUES(992, 1, 1, '2019-03-28 10:35:23.000', 'Sugestao de ramal', 'f_sug_ramal', 1, '1', 1, 5, 'Habilitar ou desabilitar sugestao de ramal 0 habilitado, 1 desabilitado', '5');


------------------------------------------------------------------------------------------------------------------------------------
-- alterado o tipo para aceitar letras tbm...
ALTER TABLE crm.usuarios ALTER COLUMN cod_integracao TYPE varchar(150) USING cod_integracao::varchar;
------------------------------------------------------------------------------------------------------------------------------------
-- VERSAO SISTEMA ***

update crm.configuracoes set versao_sistema = '2.3.5';

ALTER TABLE crm.configuracoes ADD COLUMN qtdcanais_robo int DEFAULT 1;

UPDATE callcenter.tipo_campanha SET tipo_campanha = 'Robo' WHERE id_tipo_campanha = 7 and tipo_campanha = 'LEAD_URA';

ALTER TABLE crm.usuarios ADD senha_integracao varchar(255) NULL;

ALTER TABLE crm.usuarios ALTER COLUMN login_integracao TYPE varchar(255) USING login_integracao::varchar;

ALTER TABLE crm.configuracoes ADD qtdecanais_discador int4  DEFAULT 1;

ALTER TABLE crm.configuracoes ADD qtderobos_discador int4  DEFAULT 1;

-- trocando o nome  do relatorio  graficos de discador para Campanhas
update crm.menusub set descricao = 'Campanhas' where modulovar = 'ModRelGraficoDiscadorNew' and descricao = 'Discador';

-- Integracao pedido callcenter x crm

CREATE TABLE crm.pedido_off_2 (
    codsproduto varchar(45) NULL,
    id_lead varchar(45) NULL,
    cod_status_pedido varchar(45) NULL,
    cod_loja varchar(45) NULL,
    cod_usuario varchar(45) NULL,
    codreferencia varchar(45) NULL,
    codpagamento varchar(45) NULL,
    email varchar(255) NULL,
    p9 varchar(45) NULL,
    p5 varchar(45) NULL,
    telefone varchar(45) NULL,
    telefone2 varchar(45) NULL,
    uniqueid_chamada varchar(45) NULL,
    id_campanha varchar(45) NULL,
    nome varchar(45) NULL,
    dt_nascimento varchar(45) NULL,
    sexo varchar(45) NULL,
    cpf_ccpf_cnpjnpj varchar(45) NULL,
    endereco varchar(255) NULL,
    complemento varchar(255) NULL,
    numero varchar(45) NULL,
    bairro varchar(45) NULL,
    cidade varchar(45) NULL,
    cep varchar(45) NULL,
    uf varchar(45) NULL,
    nome_mae varchar(255) NULL,
    e_string1 varchar(45) NULL,
    e_monetario1 varchar(45) NULL,
    e_string2 varchar(45) NULL,
    e_monetario2 varchar(45) NULL,
    obs text NULL,
    tagidentificadora varchar(45) NULL,
    b_nome1 varchar(255) NULL,
    b_cpf1 varchar(45) NULL,
    b_dt_n1 varchar(45) NULL,
    b_nome2 varchar(255) NULL,
    b_cpf2 varchar(45) NULL,
    b_dt_n2 varchar(45) NULL,
    b_nome3 varchar(255) NULL,
    b_cpf3 varchar(45) NULL,
    b_dt_n3 varchar(45) NULL,
    b_nome4 varchar(255) NULL,
    b_cpf4 varchar(45) NULL,
    b_dt_n4 varchar(45) NULL,
    sincronizado int4 NULL DEFAULT 0, -- 0 - nao sincronizado 1 - sincronizado
    data_emissao varchar(45) NULL
);

-- Column comments

COMMENT ON COLUMN crm.pedido_off_2.sincronizado IS '0 - nao sincronizado 1 - sincronizado';

-- Permissions

ALTER TABLE crm.pedido_off_2 OWNER TO dbcallcenter;
GRANT ALL ON TABLE crm.pedido_off_2 TO dbcallcenter;

------------------------------------------------------------------------------------------------------------------------------------------
-- integracao com ticket , projeto onboard
CREATE TABLE discador.integracao_ticket_chat
(
   id_integracao serial NOT NULL,
   tipo character varying(150) NOT NULL,
   token character varying(255),
   sla character varying(150),
   template text,
   configurado smallint default 0,
   url character varying(255),
   CONSTRAINT pk_id_integracao_integracao_ticket_chat PRIMARY KEY (id_integracao)
);

-- insert menu projeto onboard
INSERT INTO crm.menusub (cod_menusub ,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao) select (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub), 1, 'Integracoes', 'ModIntegracao', 1, 1, 0, NULL, NULL, 1, NULL from crm.menusub where not exists ( select * from crm.menusub where modulovar = 'ModIntegracao') limit 1;

------------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE discador.lead_discagem ADD datahora_gerar timestamp NULL;

-- inicio da versao 2.1.4
ALTER table callcenter.campanha ADD qtde_robos int DEFAULT 1;

ALTER TABLE callcenter.campanha ADD ativar_callback smallint NOT null DEFAULT 0;
ALTER TABLE callcenter.campanha ADD id_campanha_callback integer NULL DEFAULT null;

-- informacao do codigo do cliente no modulo sobrevivencia
ALTER TABLE crm.pedido_off_2 ADD cod_cliente varchar(45) NULL;


----------------------------------- Script Inicializacao do Projeto Automacao  -----------------------------------

CREATE SCHEMA automacao;

---------------------------------------------------------------------------------------------------------------------


CREATE TABLE discador.campos_integracao_pedido
(
   id_campos_integracao_pedido serial NOT NULL,
   campo character varying(255) NOT NULL,
   campo_conf character varying(255) NOT NULL,
   exibir smallint default 0,
   obrigar smallint default 0,
   CONSTRAINT pk_campos_integracao_pedido PRIMARY KEY (id_campos_integracao_pedido)
)
WITH (
  OIDS = FALSE
);


---------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.ftp_optout
(
   id_ftp_optout serial NOT NULL,
   url_ip character varying(255) NOT NULL,
   usuario character varying(255) NOT NULL,
   senha character varying(255) NOT NULL,
   port character varying(255) NOT NULL,
   habilitar smallint default 0,
   CONSTRAINT pk_ftp_optout PRIMARY KEY (id_ftp_optout)
)
WITH (
  OIDS = FALSE
);

---------------------------------------------------------------------------------------------------------------------------
ALTER TABLE crm.pedido_off_2 ADD cod_ped_off int4 NULL;

-- ## ajustando horario da campanha 2.0 influenciando na discagem do 2.1
UPDATE callcenter.campanha SET hora_inicio='00:01:00',hora_termino='23:59:00' WHERE hora_inicio='08:00:00';
---------------------------------------------------------------------------------------------------------------------------

-- omnichannel

-------------------
-- Table: callcenter.tipo_mensagem

-- DROP TABLE callcenter.tipo_mensagem;

CREATE TABLE callcenter.tipo_mensagem
(
  id bigserial NOT NULL,
  name character varying(60) NOT NULL,
  max_chars integer NOT NULL DEFAULT 0,
  mar_vars integer NOT NULL DEFAULT 0,
  image integer NOT NULL DEFAULT 0,
  attach integer NOT NULL DEFAULT 0,
  enabled integer NOT NULL DEFAULT 1,
  CONSTRAINT tipo_mensagem_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
-- Table: callcenter.canal_mensagem

-- DROP TABLE callcenter.canal_mensagem;

CREATE TABLE callcenter.canal_mensagem
(
  id bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  name character varying(60) NOT NULL, -- Text::Nome::::::::::::sim::::::::::::::::::::::
  config text, -- TextArea::Configuracao::::::::::::nao::::::::::::::::::::::
  class_name character varying(60) NOT NULL, -- ::Classe::::::::::::sim::::::::::::::::::::::
  enabled integer NOT NULL DEFAULT 1, -- Check::Habilitar::::::1::::::nao::::::::::::::::::::::
  id_tipo integer NOT NULL, -- LookupGridUnique::Tipo ::::::::::::nao::::::::::::::::::::::
  to_charge integer NOT NULL DEFAULT 1,
  price numeric(9,3) NOT NULL DEFAULT 0.01,
  CONSTRAINT pk_message_channel_pkey PRIMARY KEY (id),

  CONSTRAINT canal_mensagem_id_tipo_fkey FOREIGN KEY (id_tipo)
      REFERENCES callcenter.tipo_mensagem (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT unique_class_name UNIQUE (class_name),
  CONSTRAINT unq_canal_mensagem_name UNIQUE (name),
  CONSTRAINT check_price CHECK (price > 0::numeric)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.canal_mensagem
  OWNER TO dbcallcenter;
COMMENT ON COLUMN callcenter.canal_mensagem.id IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN callcenter.canal_mensagem.name IS 'Text::Nome::::::::::::sim::::::::::::::::::::::';
COMMENT ON COLUMN callcenter.canal_mensagem.config IS 'TextArea::Configuracao::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN callcenter.canal_mensagem.class_name IS '::Classe::::::::::::sim::::::::::::::::::::::';
COMMENT ON COLUMN callcenter.canal_mensagem.enabled IS 'Check::Habilitar::::::1::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN callcenter.canal_mensagem.id_tipo IS 'LookupGridUnique::Tipo ::::::::::::nao::::::::::::::::::::::';


----------------------------------



ALTER TABLE callcenter.tipo_mensagem
  OWNER TO dbcallcenter;

INSERT INTO callcenter.tipo_mensagem ("name",max_chars,mar_vars,image,attach,enabled)
(SELECT 'SMS','160','0','0','0','1'  WHERE NOT EXISTS (SELECT * FROM callcenter.tipo_mensagem a WHERE a."name" = 'SMS' ));

INSERT INTO callcenter.tipo_mensagem ("name",max_chars,mar_vars,image,attach,enabled)
(SELECT 'EMAIL','160','0','0','0','0'  WHERE NOT EXISTS (SELECT * FROM callcenter.tipo_mensagem a WHERE a."name" = 'EMAIL' ));

INSERT INTO callcenter.tipo_mensagem ("name",max_chars,mar_vars,image,attach,enabled)
(SELECT 'WHATSAPP','160','0','0','0','0'  WHERE NOT EXISTS (SELECT * FROM callcenter.tipo_mensagem a WHERE a."name" = 'WHATSAPP' ));


-- Table: crm.template_message

-- DROP TABLE crm.template_message;

CREATE TABLE crm.template_message
(
  id_template_message bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  description character varying(255), -- Text::description::::::::::::nao::::::::::::::::::::::
  subject text, -- Text::subject ::::::::::::nao::::::::::::::::::::::
  message text, -- ::message::::::::::::nao::::::::::::::::::::::
  recipient character varying(255), -- ::recipient::::::::::::nao::::::::::::::::::::::
  sender character varying(255), -- ::destiny::::::::::::nao::::::::::::::::::::::
  enable integer, -- ::enable::::::::::::nao::::::::::::::::::::::
  user_insert bigint, -- ::user_insert::::::::::::nao::::::::::::::::::::::
  dt_insert timestamp without time zone, -- ::dt_insert::::::::::::nao::::::::::::::::::::::
  user_update bigint, -- ::user_update::::::::::::nao::::::::::::::::::::::
  dt_update timestamp without time zone, -- ::dt_update::::::::::::nao::::::::::::::::::::::
  id_tipo_mensagem bigint,
  CONSTRAINT pk_template_message_id_template_message PRIMARY KEY (id_template_message)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.template_message
  OWNER TO dbcallcenter;
COMMENT ON COLUMN crm.template_message.id_template_message IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.description IS 'Text::description::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.subject IS 'Text::subject ::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.message IS '::message::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.recipient IS '::recipient::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.sender IS '::destiny::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.enable IS '::enable::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.user_insert IS '::user_insert::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.dt_insert IS '::dt_insert::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.user_update IS '::user_update::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN crm.template_message.dt_update IS '::dt_update::::::::::::nao::::::::::::::::::::::';


-------------------

-- Table: callcenter.tabulacao_omnichannel

-- DROP TABLE callcenter.tabulacao_omnichannel;

CREATE TABLE callcenter.tabulacao_omnichannel
(
  id_tabulacao_omnichannel bigserial NOT NULL,
  id_servico_omnichannel integer,
  id_template integer,
  tipo_frequencia character varying(30),
  frequencia_omnichannel integer,
  id_campanha bigint,
  id_tabulacao bigint,
  qtd_tentativas integer,
  discador smallint DEFAULT 0,
  CONSTRAINT pk_tabulacao_omnichannel_id_tabulacao_omnichannel PRIMARY KEY (id_tabulacao_omnichannel),
  CONSTRAINT fk_id_canal_mensagem FOREIGN KEY (id_servico_omnichannel)
      REFERENCES callcenter.canal_mensagem (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.tabulacao_omnichannel
  OWNER TO dbcallcenter;



-------------------
-- Table: callcenter.historico_mensagem

-- DROP TABLE callcenter.historico_mensagem;

CREATE TABLE callcenter.historico_mensagem
(
  id bigserial NOT NULL,
  status character varying(20) NOT NULL DEFAULT 'pending'::character varying,
  retorno character varying(255) DEFAULT NULL::character varying,
  contato character varying(255),
  nome character varying(255),
  id_carga integer NOT NULL,
  id_template integer NOT NULL,
  canal_mensagem character varying(50),
  extern_id character varying(255) DEFAULT NULL::character varying,
  dt_send timestamp without time zone,
  message text,
  id_tabulacao integer,
  id_campanha integer,
  CONSTRAINT historico_mensagem_pkey PRIMARY KEY (id),
  CONSTRAINT fk_id_carga FOREIGN KEY (id_carga)
      REFERENCES crm.carga (id_carga) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_id_template FOREIGN KEY (id_template)
      REFERENCES crm.template_message (id_template_message) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT chk_status CHECK (status::text ~* '^(success|fail|pending)$'::text)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.historico_mensagem
  OWNER TO dbcallcenter;

-- Index: callcenter.idx_historico_mensagem_contato

-- DROP INDEX callcenter.idx_historico_mensagem_contato;

CREATE INDEX idx_historico_mensagem_contato
  ON callcenter.historico_mensagem
  USING btree
  (contato COLLATE pg_catalog."default");

-- Index: callcenter.idx_historico_mensagem_dt_send

-- DROP INDEX callcenter.idx_historico_mensagem_dt_send;

CREATE INDEX idx_historico_mensagem_dt_send
  ON callcenter.historico_mensagem
  USING btree
  (dt_send);

-- Index: callcenter.idx_historico_mensagem_id_campanha

-- DROP INDEX callcenter.idx_historico_mensagem_id_campanha;

CREATE INDEX idx_historico_mensagem_id_campanha
  ON callcenter.historico_mensagem
  USING btree
  (id_campanha);

-- Index: callcenter.idx_historico_mensagem_id_carga

-- DROP INDEX callcenter.idx_historico_mensagem_id_carga;

CREATE INDEX idx_historico_mensagem_id_carga
  ON callcenter.historico_mensagem
  USING btree
  (id_carga);

-- Index: callcenter.idx_historico_mensagem_id_tabulacao

-- DROP INDEX callcenter.idx_historico_mensagem_id_tabulacao;

CREATE INDEX idx_historico_mensagem_id_tabulacao
  ON callcenter.historico_mensagem
  USING btree
  (id_tabulacao);

-- Index: callcenter.idx_historico_mensagem_id_template

-- DROP INDEX callcenter.idx_historico_mensagem_id_template;

CREATE INDEX idx_historico_mensagem_id_template
  ON callcenter.historico_mensagem
  USING btree
  (id_template);

-- Index: callcenter.idx_historico_mensagem_status

-- DROP INDEX callcenter.idx_historico_mensagem_status;

CREATE INDEX idx_historico_mensagem_status
  ON callcenter.historico_mensagem
  USING btree
  (status COLLATE pg_catalog."default");




-------------------


INSERT INTO callcenter.canal_mensagem ("name",config,class_name,enabled,id_tipo,to_charge,price)
(SELECT 'SMS','user = password = from = smartnx.com','SmsInfoBip','1','1','1','0.010'  WHERE NOT EXISTS (SELECT * FROM callcenter.canal_mensagem a WHERE a."class_name" = 'SmsInfoBip' ));

------------------------------
INSERT INTO "crm"."classificacao_sistema" ("cod_loja", "cod_usuario", "datahora_registro", "descricao", "tag", "obs", "tipo") (SELECT '1', '2', '2019-05-28 16:03:07', 'Url api smartNx', 'f_url_apismartnx', 'Endereco da api da smart NX', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_url_apismartnx'));
INSERT INTO "crm"."classificacao_sistema" ("cod_loja", "cod_usuario", "datahora_registro", "descricao", "tag", "obs", "tipo") (SELECT '1', '2', '2019-05-28 16:03:07', 'key api smartNx', 'f_key_apismartnx', 'Endereco da api da smart NX', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_key_apismartnx'));

------------------------------
INSERT INTO crm.frm_sql (id_frm_sql, descricao, tag, obs, habilitar, p_sql, p_sql_where, p_sql_orderby, p_sql_groupby, p_sql_having, p_sql_valor, p_sql_descricao, p_sql_atributos) VALUES ('126', 'Listar tipo Canais', 'TIPO_CANAIS', null, '1', 'SELECT id,name FROM callcenter.tipo_mensagem', 'enabled = 1', '1', null, null, 'id', 'name', null), ('123', 'Status Contrato', 'STATUS_CONTRATO', 'Listar Status de Contrato', '1', 'SELECT cod_status_contrato,descricao FROM status_contrato', 'ativo = 1', 'descricao', null, null, 'cod_status_contrato', 'descricao', null), ('124', 'Negociador', 'NEGOCIADOR', 'Listar Negociador', '1', 'SELECT DISTINCT cod_usuario,nome FROM usuarios', 'habilitar = 1', 'nome', null, null, 'cod_usuario', 'nome', null), ('125', 'Listagem filas ativas', 'FILAS_ATIVA', 'Listagem filas ativas', '1', 'SELECT fila, (fila || '' - '' || descricao) as descricao FROM asterisk.fila', '( tipo_fila = ''OUT'' ) AND ( fila <> ''10000'' )', 'id_fila ASC', null, null, 'fila', 'descricao', null);

INSERT INTO crm.frm (id_frm, descricao, obs, habilitar, diretorio_modulo, tipo, tag) VALUES ('133', '{"Canal de mensagem"}', null, '1', 'ModCanalMensagem', 'MENU', 'F_CANAL_MENSAGEM');

INSERT INTO crm.frm_acoes (id_frm_acoes, id_frm, tag, descricao, msg_tooltip, tipo, img, js, perm_g, perm_u, n_exibir_permissao, habilitar) VALUES ('899', '133', 'buscar', '{Buscar,Search}', null, 'home', 'ico_lookup.png', 'searchGrid();', null, null, '1', '1'), ('900', '133', 'resetar', '{Resetar,Reset}', null, 'home', 'ico_erro.png', 'resetCamposPesq(); resetGrid();', null, null, '1', '1'), ('901', '133', 'novo', '{"Novo cadastro",Add}', null, 'home', 'ico_inserir2.png', 'newReg();', null, null, '1', '0'), ('902', '133', 'gravar', '{Gravar,Save}', null, 'ambos_ia', 'ico_save.png', 'saveReg();', null, null, '1', '1'), ('903', '133', 'voltar', '{Voltar,Back}', null, 'inserir', 'ico_voltar.png', 'resetCampos();', null, null, '1', '1'), ('904', '133', 'sair', '{Sair,Exit}', null, 'atualizar', 'ico_voltar.png', 'resetCampos();', null, null, '1', '1'), ('905', '133', 'deletar', '{Deletar,Delete}', null, 'atualizar', 'ico_deletar.png', 'deleteReg();', null, null, '1', '0'), ('906', '133', 'expcsv', '{CSV,CSV}', null, 'grid', 'ico_excel.png', 'exportarCSV(''sql_csv_grid'');', null, null, '1', '1');

INSERT INTO crm.frm_field (id_frm_field, id_frm, id_frm_field_tipo, descricao, msg_tooltip, habilitar, val_padrao, alias_db, campo_ref_db, ordem, tela_size, size, lbl_class, elm_id, elm_id_ref, elm_class, elm_tags, id_frm_field_opcoes_e, id_frm_field_opcoes_v, id_frm_field_opcoes_s, id_frm_field_opcoes_c, on_change, on_blur, filtro, inserir, alterar, select_opcoes, id_frm_sql, sql_extras, sql_extras_orderby, ac_opc, ac_width, ac_min, ac_max_result, ac_extras, grid) VALUES ('1026', '56', '11', '{"Dados do Cliente"}', null, '1', null, 'r', null, '1', '900', '200', null, 'teste', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{0,250,left,true,false,false,false}'), ('1028', '51', '36', '{"Permissao Editar"}', null, '1', null, 'r', 'crm.ticket_status.p_grupo_editar', '7', '20', '50', null, 'p_grupo_editar', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, '1', null, '{participavendas,descricao}', null, null, null, null, null, '{1,150,left,true,false,false,false}'), ('1029', '56', '10', '{"Usuario Cadastro"}', null, '1', null, 'r', 'crm.ticket.cod_usuario', '6', '20', '50', null, 'usuario_cadastro', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;1,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1030', '133', '22', '{ID}', null, '1', null, 'r', 'callcenter.canal_mensagem.id', '1', '20', '50', null, 'id', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1031', '133', '1', '{Nome}', null, '1', null, 'r', 'callcenter.canal_mensagem.name', '2', '20', '50', null, 'name', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1032', '133', '11', '{Configuracao}', null, '1', null, 'r', 'callcenter.canal_mensagem.config', '3', '400', '50', null, 'config', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1033', '133', '1', '{Classe}', null, '1', null, 'r', 'callcenter.canal_mensagem.class_name', '4', '20', '50', null, 'class_name', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1034', '133', '38', '{Tipo}', null, '1', null, 'r', 'callcenter.canal_mensagem.id_tipo', '5', '20', '50', null, 'id_tipo', null, null, null, null, null, null, null, null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, '126', null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}'), ('1035', '133', '6', '{Habilitar}', null, '1', null, 'r', 'callcenter.canal_mensagem.enabled', '6', '20', '50', null, 'enabled', null, null, null, null, null, null, '3', null, null, '{0,=,1}', '{obr;0,readonly;0,hidden;0}', '{obr;0,readonly;0,hidden;0}', null, null, null, null, null, null, null, null, null, '{1,150,left,false,false,false,false}');

INSERT INTO crm.grupo_menu (codgrupos_menu, descricao, dthrinsert, usuainsert) VALUES ('45', 'Omnichannel', '2019-05-28 17:38:30', 'suporte');

INSERT INTO crm.menusub (cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) (SELECT '7', 'Template Mensagem', 'ModTemplateMessage', '5', '1', '0', '45', null, '1', null, NULL  WHERE NOT EXISTS (SELECT * FROM crm.menusub b WHERE modulovar = 'ModTemplateMessage'));


INSERT INTO crm.menusub (cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso)  (SELECT '7', 'Canal de mensagem', 'ModCanalMensagem', '4', '1', '0', '45', '133', '1', null, NULL  WHERE NOT EXISTS (SELECT * FROM crm.menusub b WHERE modulovar = 'ModCanalMensagem'));


INSERT INTO crm.menusub (cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso)    (SELECT '5', 'Relatorio Log Omnichannel', 'ModRelCanalMensagem', '2', '1', '0', '45', null, '1', null, null  WHERE NOT EXISTS (SELECT * FROM crm.menusub b WHERE modulovar = 'ModRelCanalMensagem'));

----

-- Table: crm.template_tags_message

-- DROP TABLE crm.template_tags_message;

CREATE TABLE crm.template_tags_message
(
  id_template_tags_message bigserial NOT NULL,
  table_field character varying(255),
  label character varying(255),
  dt_insert date,
  CONSTRAINT pk_template_tags_message_id_template_tags_message PRIMARY KEY (id_template_tags_message)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.template_tags_message
  OWNER TO dbcallcenter;


-- fim table omnichannel
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- VIEW de relatorios de pausas e login logoff

CREATE OR REPLACE VIEW SMART_PAUSA_AGENTES AS
SELECT
ap.id_agente_pausa AS id, ap.datahora_ini , ap.datahora_fim ,TO_CHAR(ap.datahora_fim - ap.datahora_ini,'HH24:MI:SS') as tempo,
p.pausa,p.tempo AS tempo_pausa_segundos ,
CASE WHEN p.permite_chamada  = 1 THEN 'Sim' ELSE 'Nao' END AS pausa_permite_chamada,
CASE WHEN p.padrao  = 1 THEN 'Sim' ELSE 'Nao' END AS pausa_padrao_chamada,
CASE WHEN p.agenda  = 1 THEN 'Sim' ELSE 'Nao' END AS pausa_agenda,
CASE WHEN p.atendimento  = 1 THEN 'Sim' ELSE 'Nao' END AS pausa_atendimento,
CASE WHEN p.tabulacao  = 1 THEN 'Sim' ELSE 'Nao' END AS pausa_tabulacao,
p.acao AS acao_cancelamento_pausa,p.tipo_pausa,p.subtipo_pausa,
a.id_agente,u.cod_usuario AS id_usuario,u.cod_agente AS agente,u.login AS login_usuario ,u.nome AS nome_usuario,
g.cod_usuario AS id_gestor, g.login AS login_gestor,g.nome AS gestor_nome
FROM
callcenter.agente_pausa ap
LEFT JOIN callcenter.pausa p ON p.id_pausa = ap.id_pausa
LEFT JOIN callcenter.agente a ON ap.id_agente = a.id_agente
LEFT JOIN crm.usuarios u ON u.cod_agente::int = a.agente
LEFT JOIN crm.usuarios g ON u.gestor = g.cod_usuario ;

CREATE OR REPLACE VIEW SMART_LOGIN_AGENTES AS
SELECT al.id_agente_login as id_login,al.datahora_ini,al.datahora_fim,
    TO_CHAR(al.datahora_fim - al.datahora_ini,'HH24:MI:SS') AS tempo,
    al.agente,u.cod_usuario AS id_usuario ,u.login,u.nome,
    g.cod_usuario AS id_gestor,g.login AS login_gestor,g.nome AS nome_gestor
FROM
    callcenter.agente_login al
LEFT JOIN crm.usuarios u ON ( u.cod_agente::int = al.agente )
LEFT JOIN crm.usuarios g ON ( u.gestor = g.cod_usuario ) ;

GRANT SELECT ON  SMART_LOGIN_AGENTES TO cliente;
GRANT SELECT ON  SMART_PAUSA_AGENTES TO cliente;
GRANT USAGE ON SCHEMA public TO cliente;

-- usuario para acessar view
CREATE USER cliente WITH PASSWORD 'sm@rt@cli3nt3';
GRANT CONNECT ON DATABASE dbcallcenter TO cliente;
GRANT SELECT ON  SMART_CHAMADAS_ENTRANTES TO cliente;
GRANT SELECT ON  SMART_CHAMADAS_DISCADOR TO cliente;
GRANT SELECT ON  SMART_CHAMADAS_MANUAL TO cliente;
GRANT USAGE ON SCHEMA public TO cliente;

-------------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ALTER COLUMN login_alteracao TYPE varchar(150) USING login_alteracao::varchar;

--------------------

-- DROP TABLE discador.formulario_pesquisa_novo

CREATE TABLE discador.formulario_pesquisa_novo (
    id bigserial NOT NULL,
    nome varchar(255) NULL,
    habilitar varchar(1) NULL,
    CONSTRAINT pk_formulario_pesquisa_novo_id PRIMARY KEY (id)
);

-- Permissions

ALTER TABLE discador.formulario_pesquisa_novo OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.formulario_pesquisa_novo TO dbcallcenter;

-----------------------------------------------------------------------------

INSERT INTO crm.menusub(cod_menusub,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) SELECT (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub),7, 'Formulario de Pesquisa', 'ModFormularioPesquisa', 4, 1, 0, 38, NULL, 1, NULL, '{1}' from crm.menusub where not exists ( select * from crm.menusub where modulovar = 'ModFormularioPesquisa') limit 1;

CREATE TABLE discador.campanha_formulario_pesquisa (
    id_campanha int8 NULL,
    id_formulario int8 NULL
);
CREATE INDEX campanha_formulario_pesquisa_id_campanha_idx ON discador.campanha_formulario_pesquisa (id_campanha,id_formulario);


------------------------------------------------------------------------------------------------------------------------------------


-- DROP TABLE discador.formulario_pergunta_novo

CREATE TABLE discador.formulario_pergunta_novo (
    id bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
    id_formulario_pesquisa_novo bigserial NOT NULL, -- ::id::::::::::::nao::::::::::::::::::::::
    pergunta varchar(255) NULL, -- ::pergunta::::::::::::nao::::::::::::::::::::::
    tipo varchar(25) NULL, -- ::tipo::::::::::::nao::::::::::::::::::::::
    opcoes text NULL, -- ::opcoes::::::::::::nao::::::::::::::::::::::
    habilitar varchar(1) NULL, -- ::habilitar::::::::::::nao::::::::::::::::::::::
    obrigatorio varchar(1) NULL,
    sequencia int4 NULL,
    created_at timestamptz NULL DEFAULT now(),
    CONSTRAINT pk_formulario_pergunta_novo_id PRIMARY KEY (id),
    CONSTRAINT fk_formulario_pesquisa_novo FOREIGN KEY (id_formulario_pesquisa_novo) REFERENCES discador.formulario_pesquisa_novo(id)
);

-- Column comments

COMMENT ON COLUMN discador.formulario_pergunta_novo.id IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.formulario_pergunta_novo.id_formulario_pesquisa_novo IS '::id::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.formulario_pergunta_novo.pergunta IS '::pergunta::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.formulario_pergunta_novo.tipo IS '::tipo::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.formulario_pergunta_novo.opcoes IS '::opcoes::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.formulario_pergunta_novo.habilitar IS '::habilitar::::::::::::nao::::::::::::::::::::::';

-- Permissions

ALTER TABLE discador.formulario_pergunta_novo OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.formulario_pergunta_novo TO dbcallcenter;

ALTER SEQUENCE crm.personalizacao_cod_personalizacao_seq RESTART
WITH  200 ;


------------------ DROP TABLE discador.respostas_pesquisa_novo ----------------------------

CREATE TABLE discador.respostas_pesquisa_novo (
    id bigserial NOT NULL,
    id_pergunta int8 NULL,
    id_formulario varchar NULL,
    resposta varchar NULL,
    uniqueid_chamada varchar NULL,
    timenow varchar(100) NULL,
    id_campanha int8 NULL,
    created_at timestamptz NULL DEFAULT now(),
    CONSTRAINT pk_respostas_pesquisa_novo_id PRIMARY KEY (id)
);
CREATE INDEX index_created_at ON discador.respostas_pesquisa_novo USING btree (created_at);
CREATE INDEX index_uniqueid_chamada ON discador.respostas_pesquisa_novo USING btree (created_at);

-- Permissions

ALTER TABLE discador.respostas_pesquisa_novo OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.respostas_pesquisa_novo TO dbcallcenter;


ALTER TABLE discador.respostas_pesquisa_novo ALTER COLUMN id_pergunta TYPE int8 USING id_pergunta::int8;

------------------------------------------------------------------------------------------------------------

INSERT INTO crm.menusub(cod_menusub,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) SELECT (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub),7, 'Formulario de Pesquisa', 'ModFormularioPesquisa', 4, 1, 0, 38, NULL, 1, NULL, '{1}' from crm.menusub where not exists ( select * from crm.menusub where modulovar = 'ModFormularioPesquisa') limit 1;


------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD COLUMN mailingPromessa smallint  DEFAULT 0;
ALTER TABLE callcenter.campanha ADD COLUMN mailingIntervalo integer  DEFAULT 0;


---------------------------------------------------------------------------------------------


CREATE TABLE discador.controle_privacidade
(
  id_controle_privacidade serial NOT NULL,
  id_lead integer NOT NULL,
  id_lead_telefone integer NOT NULL,
  telefone bigint NOT NULL,
  data timestamp without time zone NOT NULL,
  tentativa integer,
  CONSTRAINT controleprivacidade_pkey PRIMARY KEY (id_controle_privacidade)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.controle_privacidade
  OWNER TO dbcallcenter;


CREATE INDEX idx_lead_controle_privacidade
  ON discador.controle_privacidade
  USING btree
  (id_lead);


CREATE INDEX idx_lead_telefone_controle_privacidade
  ON discador.controle_privacidade
  USING btree
  (id_lead_telefone);


 CREATE INDEX idx_telefone_controle_privacidade
  ON discador.controle_privacidade
  USING btree
  (telefone);



----------------------------------------------------------------------------------------------

ALTER TABLE discador.controle_privacidade ADD CONSTRAINT uniq_id_lead_telefone_privacidade UNIQUE (id_lead_telefone);

-------------------------------------------------------------------------------------------------
ALTER TABLE callcenter.campanha ADD  COLUMN link_webhook  varchar(255) NULL;
ALTER TABLE callcenter.campanha ALTER COLUMN link_webhook TYPE text USING link_webhook::text;
ALTER TABLE callcenter.campanha ADD campo_lead_webhook varchar(255) NULL;

INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2019-06-25 08:15:23.000', 'Controle Privacidade - Quantidade de tentativas de discagem manual diaria por numero', 'f_qtd_tentativas_manual', 1, '0', 0, 5, 'Numero de tentativas de discagem diarias por telefone. ( Para desativar utilize o valor 0 )', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_qtd_tentativas_manual'));



--------------------------------------------------------------------------------------------------

UPDATE crm.menusub set habilitar = 0 where menusub.cod_menusub = 91 and menusub.codgrupo_menu = 1;

------------------------------------------------------------------------------------------------------
-- HOT FIX correcao grave de abertura de tela de lead.
ALTER TABLE callcenter.agente_status ADD tipo_chamada varchar(150) NULL;
ALTER TABLE callcenter.agente_status ADD id_chamada bigint NULL;
ALTER TABLE callcenter.agente_status ADD uniqueid_chamada varchar(155) NULL DEFAULT NULL;

------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD transf_chamada integer NOT null DEFAULT 0;


----------------------------------------------------------------------------------------------------
-- erro pesquisa satisfacao...remover constraint no usada
ALTER TABLE callcenter.campanha DROP CONSTRAINT fk_campanha_id_monitoria_formularios;

----------------------------------------------------------------------------------------------------

ALTER TABLE crm.configuracoes ADD horario_inicial varchar(8) NULL DEFAULT '07:00';
ALTER TABLE crm.configuracoes ADD horario_final varchar(8) NULL DEFAULT '19:00';
ALTER TABLE crm.configuracoes ADD max_lead_dentro bigint NULL DEFAULT 100000;
ALTER TABLE crm.configuracoes ADD max_lead_fora bigint NULL DEFAULT 100000;

----------------------------------------------------------------------------------------------------------
ALTER TABLE callcenter.campanha ADD COLUMN id_template_message BIGINT NULL, ADD CONSTRAINT fk_campanha_id_template_message FOREIGN KEY (id_template_message) REFERENCES crm.template_message (id_template_message);
CREATE INDEX idx_campanha_id_template_message ON callcenter.campanha (id_template_message);
COMMENT ON COLUMN callcenter.campanha.id_template_message IS '::id_template_message::::::::::::nao::::::::crm.template_message::id_template_message::id_template_message';

----------------------------------------------------------------------------------------------------------

ALTER TABLE crm.template_message ADD COLUMN conf_extra text;
COMMENT ON COLUMN crm.template_message.conf_extra IS '::conf_extra::::::::::::nao::::::::::::::::::::::';

----------------------------------------------------------------------------------------------------------

UPDATE callcenter.tipo_campanha SET tipo_campanha = 'LEAD-PREVIEW' WHERE id_tipo_campanha = 2 AND tipo_campanha != 'LEAD-PREVIEW';
ALTER TABLE callcenter.campanha ADD quantidade_lead_agente int4 NULL;
ALTER TABLE callcenter.campanha ADD usar_formulario_webhook int4 NULL;

----------------------------------------------------------------------------------------------------------
ALTER TABLE discador.campos_lead ADD id_campanha varchar NULL;
ALTER TABLE discador.campos_lead ALTER COLUMN id_campanha TYPE int4 USING id_campanha::int4;

----------------------------------------------------------------------------------------------------------

CREATE SEQUENCE discador.robo_agente_id_seq START 9231;
CREATE TABLE discador.robo_agente
(
  id integer NOT NULL DEFAULT nextval('discador.robo_agente_id_seq'::regclass),
  nome varchar NOT NULL DEFAULT 'ROBO 9231',
  id_campanha int4 NULL,
  CONSTRAINT robo_agente_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.robo_agente
  OWNER TO dbcallcenter;


CREATE INDEX idx_robo_agente_id_campanha
  ON discador.robo_agente
  USING btree
  (id_campanha);

----------------------------------------------------------------------------------------------------------

  ALTER TABLE callcenter.chamada_agenda ADD cpf_cnpj varchar(25) NULL;


----------------------------------------------------------------------------------------------------------
CREATE TABLE discador.lead_campanha_preview (
	id bigserial NOT NULL, -- ::::::::::::::nao::::::::::::::::::::::
	id_lead int4 NULL, -- ::::::::::::::nao::::::::::::::::::::::
	cod_user int4 NULL, -- ::::::::::::::nao::::::::::::::::::::::
	id_campanha int4 NULL,
	nome varchar(255) NULL,
	cpf_cnpj varchar(50) NULL,
	telefone varchar(50) NULL,
	telefone_f varchar(50) NULL,
	id_lead_telefone_discagem bigserial NOT NULL,
	CONSTRAINT pk_lead_campanha_preview_id PRIMARY KEY (id)
);
CREATE INDEX idx_lead_campanha_preview_cod_user ON discador.lead_campanha_preview USING btree (cod_user);
CREATE INDEX idx_lead_campanha_preview_id ON discador.lead_campanha_preview USING btree (id);
CREATE INDEX idx_lead_campanha_preview_id_lead ON discador.lead_campanha_preview USING btree (id_lead);

-- Permissions

ALTER TABLE discador.lead_campanha_preview OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.lead_campanha_preview TO dbcallcenter;

ALTER TABLE discador.lead_campanha_preview DROP CONSTRAINT unique_id_lead;

----------------------------------------------------------------------------------------------------------
-- Criando schema pbx para novo modelo de dialplan - Lucas Macedo 2019-08-06 - DT-45

CREATE SCHEMA pbx AUTHORIZATION dbcallcenter;

-----------------------------------------------------------------------------------------------------
-- Tabela de DDR - Lucas Macedo 2019-08-06 - DT-48

CREATE TABLE IF NOT EXISTS pbx.did_map (
  id BIGSERIAL NOT NULL,
  ddr integer NOT NULL,
  context varchar(100) NULL,
  app varchar(50) NULL,
  app_data varchar(50) NULL,
  CONSTRAINT did_map_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

CREATE INDEX idx_did_map_ddr_context ON
        pbx.did_map
        USING btree(ddr, context);

-----------------------------------------------------------------------------------------------------
-- Tabela para grupo de rotas de saida - Lucas Macedo 2019-08-06 - DT-45

CREATE TABLE IF NOT EXISTS pbx.out_route_group (
  id BIGSERIAL NOT NULL,
  out_name varchar(150) NOT NULL,
  local smallint NOT NULL DEFAULT 0,
  id_trunk_local bigint,
  ldn smallint NOT NULL DEFAULT 0,
  id_trunk_ldn bigint,
  ldi smallint NOT NULL DEFAULT 0,
  id_trunk_ldi bigint,
  vc1 smallint NOT NULL DEFAULT 0,
  id_trunk_vc1 bigint,
  vc2 smallint NOT NULL DEFAULT 0,
  id_trunk_vc2 bigint,
  num_0300 smallint NOT NULL DEFAULT 0,
  id_trunk_num_0300 bigint,
  num_0500 smallint NOT NULL DEFAULT 0,
  id_trunk_num_0500 bigint,
  num_0800 smallint NOT NULL DEFAULT 1,
  id_trunk_num_0800 bigint,
  num_4003 smallint NOT NULL DEFAULT 0,
  id_trunk_num_4003 bigint,
  num_4001 smallint NOT NULL DEFAULT 0,
  id_trunk_num_4001 bigint,
  servicos smallint NOT NULL DEFAULT 1,
  id_trunk_servicos bigint,
  rec_in smallint NOT NULL DEFAULT 1,
  rec_out smallint NOT NULL DEFAULT 1,
  chan_spy smallint NOT NULL DEFAULT 0,
  CONSTRAINT out_route_group_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);


-----------------------------------------------------------------------------------------------------
-- Tabela para configuracoes do tronco - Lucas Macedo 2019-08-08 - DT-45

CREATE TABLE IF NOT EXISTS pbx.trunk_map (
  id BIGSERIAL NOT NULL,
  trunk_name varchar(150) NOT NULL,
  dial_time integer NOT NULL DEFAULT 0,
  options_trunk varchar(200),
  csp smallint NOT NULL DEFAULT 0,
  sip_header varchar(200),
  tec_prefix smallint NOT NULL DEFAULT 0,
  ordem_dial varchar(150) NOT NULL,
  CONSTRAINT trunk_map_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);


-----------------------------------------------------------------------------------------------------
-- Tabela para diaplan regex - Lucas Macedo 2019-08-08 - DT-45

CREATE TABLE IF NOT EXISTS pbx.dialplan_regex (
  id BIGSERIAL NOT NULL,
  dialplan_name varchar(150) NOT NULL,
  dialplan_key varchar(20) NOT NULL,
  dialplan_regex varchar(30) NOT NULL,
  enable smallint NOT NULL DEFAULT 1,
  use_csp smallint NOT NULL DEFAULT 0,
  use_tec_prefix smallint NOT NULL DEFAULT 0,
  CONSTRAINT dialplan_regex_pkey PRIMARY KEY (id),
  CONSTRAINT unq_dialplan_name_key UNIQUE(dialplan_name,dialplan_key)
)
WITH (
  OIDS=FALSE
);


-----------------------------------------------------------------------------------------------------
-- Tabela para controle de URA - Lucas Macedo 2019-08-08 - DT-45

CREATE TABLE IF NOT EXISTS pbx.ura_base (
  id BIGSERIAL NOT NULL,
  ura_name varchar(150) NOT NULL,
  background_1 varchar(120),
  background_2 varchar(120),
  background_3 varchar(120),
  background_4 varchar(120),
  background_5 varchar(120),
  background_6 varchar(120),
  background_7 varchar(120),
  background_8 varchar(120),
  background_9 varchar(120),
  app_0 varchar(50),
  app_data_0 varchar(100),
  app_1 varchar(50),
  app_data_1 varchar(100),
  app_2 varchar(50),
  app_data_2 varchar(100),
  app_3 varchar(50),
  app_data_3 varchar(100),
  app_4 varchar(50),
  app_data_4 varchar(100),
  app_5 varchar(50),
  app_data_5 varchar(100),
  app_6 varchar(50),
  app_data_6 varchar(100),
  app_7 varchar(50),
  app_data_7 varchar(100),
  app_8 varchar(50),
  app_data_8 varchar(100),
  app_9 varchar(50),
  app_data_9 varchar(100),
  app_timeout varchar(50),
  app_data_timeout varchar(100),
  app_invalid varchar(50),
  app_data_invalid varchar(100),
  wait_exten smallint NOT NULL DEFAULT 3,
  try_ura smallint NOT NULL DEFAULT 1,
  enable smallint NOT NULL DEFAULT 1,
  CONSTRAINT ura_base_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

-----------------------------------------------------------------------------------------------------
-- Tabela para controle de ramais - Lucas Macedo 2019-08-13 - DT-47

CREATE TABLE IF NOT EXISTS pbx.ramal_sip (
  id BIGSERIAL NOT NULL,
  name varchar(200) NOT NULL,
  port integer DEFAULT NULL,
  regseconds integer DEFAULT NULL,
  defaultuser varchar(10) DEFAULT NULL,
  fullcontact varchar(35) DEFAULT NULL,
  regserver varchar(20) DEFAULT NULL,
  useragent varchar(20) DEFAULT NULL,
  lastms integer DEFAULT NULL,
  host varchar(40) DEFAULT 'dynamic',
  type varchar(20) DEFAULT 'friend',
  context varchar(40) DEFAULT 'fromExten',
  permit varchar(40) DEFAULT '0.0.0.0/0.0.0.0',
  deny varchar(40) DEFAULT '0.0.0.0/0.0.0.0',
  secret varchar(40) DEFAULT NULL,
  md5secret varchar(40) DEFAULT NULL,
  remotesecret varchar(40) DEFAULT NULL,
  transport varchar(10) DEFAULT 'udp',
  dtmfmode varchar(20) DEFAULT 'rfc2833',
  directmedia varchar(20) DEFAULT 'no',
  nat varchar(20) DEFAULT 'force_rport,comedia',
  callgroup varchar(40) DEFAULT NULL,
  pickupgroup varchar(40) DEFAULT NULL,
  language varchar(40) DEFAULT 'pt_BR',
  allow varchar(40) DEFAULT 'ulaw;alaw;gsm;ilbc;speex',
  disallow varchar(40) DEFAULT 'all',
  insecure varchar(40) DEFAULT NULL,
  trustrpid varchar(10) DEFAULT NULL,
  progressinband varchar(15) DEFAULT NULL,
  promiscredir varchar(10) DEFAULT NULL,
  useclientcode varchar(10) DEFAULT NULL,
  accountcode varchar(40) DEFAULT NULL,
  setvar varchar(40) DEFAULT NULL,
  callerid varchar(40) DEFAULT NULL,
  amaflags varchar(40) DEFAULT NULL,
  callcounter varchar(10) DEFAULT 'yes',
  busylevel integer DEFAULT NULL,
  allowoverlap varchar(10) DEFAULT NULL,
  allowsubscribe varchar(10) DEFAULT 'yes',
  videosupport varchar(10) DEFAULT NULL,
  maxcallbitrate integer DEFAULT NULL,
  rfc2833compensate varchar(10) DEFAULT NULL,
  mailbox varchar(40) DEFAULT NULL,
  session_timers varchar(10) DEFAULT NULL,
  session_expires integer DEFAULT NULL,
  session_minse integer DEFAULT NULL,
  session_refresher enum('uac','uas') DEFAULT NULL,
  t38pt_usertpsource varchar(40) DEFAULT NULL,
  regexten varchar(40) DEFAULT NULL,
  fromdomain varchar(40) DEFAULT NULL,
  fromuser varchar(40) DEFAULT NULL,
  qualify varchar(40) DEFAULT 'yes',
  defaultip varchar(40) DEFAULT NULL,
  rtptimeout integer DEFAULT NULL,
  rtpholdtimeout integer DEFAULT NULL,
  sendrpid enum('yes','no') DEFAULT NULL,
  outboundproxy varchar(40) DEFAULT NULL,
  callbackextension varchar(40) DEFAULT NULL,
  registertrying enum('yes','no') DEFAULT NULL,
  timert1 integer DEFAULT NULL,
  timerb integer DEFAULT NULL,
  qualifyfreq integer DEFAULT NULL,
  constantssrc enum('yes','no') DEFAULT NULL,
  contactpermit varchar(40) DEFAULT NULL,
  contactdeny varchar(40) DEFAULT NULL,
  usereqphone enum('yes','no') DEFAULT NULL,
  textsupport enum('yes','no') DEFAULT NULL,
  faxdetect enum('yes','no') DEFAULT NULL,
  buggymwi enum('yes','no') DEFAULT NULL,
  auth varchar(40) DEFAULT NULL,
  cid_number varchar(40) DEFAULT NULL,
  callingpres enum('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib') DEFAULT NULL,
  mohinterpret varchar(40) DEFAULT NULL,
  mohsuggest varchar(40) DEFAULT NULL,
  parkinglot varchar(40) DEFAULT NULL,
  hasvoicemail enum('yes','no') DEFAULT NULL,
  subscribemwi enum('yes','no') DEFAULT NULL,
  vmexten varchar(40) DEFAULT NULL,
  autoframing enum('yes','no') DEFAULT NULL,
  rtpkeepalive integer DEFAULT NULL,
  call-limit integer DEFAULT '1',
  g726nonstandard enum('yes','no') DEFAULT NULL,
  ignoresdpversion enum('yes','no') DEFAULT NULL,
  allowtransfer enum('yes','no') DEFAULT 'yes',
  dynamic enum('yes','no') DEFAULT NULL,
  ipaddr varchar(45) DEFAULT NULL,
  fixlocal tinyint(1) NOT NULL DEFAULT '0',
  ldn tinyint(1) NOT NULL DEFAULT '0',
  ldi tinyint(1) NOT NULL DEFAULT '0',
  vc1 tinyint(1) NOT NULL DEFAULT '0',
  vc2 tinyint(1) NOT NULL DEFAULT '0',
  vc3 tinyint(1) NOT NULL DEFAULT '0',
  ztrez tinyint(1) NOT NULL DEFAULT '0',
  zquin tinyint(1) NOT NULL DEFAULT '0',
  zoito tinyint(1) NOT NULL DEFAULT '0',
  telcosrvs tinyint(1) NOT NULL DEFAULT '0',
  recin tinyint(1) NOT NULL DEFAULT '1',
  recout tinyint(1) NOT NULL DEFAULT '1',
  chanspy tinyint(1) NOT NULL DEFAULT '0',
  contextgroup varchar(45) NOT NULL DEFAULT 'default',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `host` (`host`,`port`),
  KEY `ipaddr` (`port`) USING BTREE
)
WITH (
  OIDS=FALSE
);
COMMENT ON COLUMN pbx.ramal_sip.type IS 'friend,user,peer';
COMMENT ON COLUMN pbx.ramal_sip.transport IS 'udp,tcp,udp,tcp,tcp,udp';
COMMENT ON COLUMN pbx.ramal_sip.dtmfmode IS 'rfc2833,info,shortinfo,inband,auto';
COMMENT ON COLUMN pbx.ramal_sip.directmedia IS 'yes,no,nonat,update';
COMMENT ON COLUMN pbx.ramal_sip.nat IS 'yes,no,force_rport,comedia,force_rport,comedia';
COMMENT ON COLUMN pbx.ramal_sip.trustrpid IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.progressinband IS 'yes,no,never';
COMMENT ON COLUMN pbx.ramal_sip.promiscredir IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.useclientcode IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.callcounter IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.allowoverlap IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.allowsubscribe IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.videosupport IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.rfc2833compensate IS 'yes,no';
COMMENT ON COLUMN pbx.ramal_sip.session_timers IS 'yes,no';

-----------------------------------------------------------------------------------------------------
-- Campo "usuarios"."id_helpdesk" para vincular usurios do Callcenter e Helpdesk

ALTER TABLE "crm"."usuarios" ADD COLUMN "id_helpdesk" VARCHAR(36) NULL;

--------------------------------------------------------------------------------
-- max calls configuravel em arquivo
INSERT INTO asterisk.variavel_global(variavel,valor,datahora_inicio)  SELECT 'MAXCALLS','600',now() WHERE NOT EXISTS (SELECT * FROM asterisk.variavel_global WHERE variavel = 'MAXCALLS');
--------------------------------------------------------------------------------

CREATE TABLE callcenter.campos_monitoramento
(
  id serial,
  campos varchar(500),
  id_grupo int4 NOT NULL,
  CONSTRAINT campos_monitoramento_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE callcenter.campos_monitoramento
  OWNER TO dbcallcenter;

CREATE INDEX idx_campos_monitoramento_id_grupo
  ON callcenter.campos_monitoramento
  USING btree
  (id_grupo);


--------------------------------------------------------------------------------


ALTER TABLE crm.usuarios ADD dt_admissao timestamp NULL;
ALTER TABLE crm.usuarios ADD horap time NULL;

--------------------------------------------------------------------------------

-- ALTER TABLE crm.template_message DROP COLUMN id_layout_mailing;

ALTER TABLE crm.template_message ADD COLUMN id_layout_mailing integer;

UPDATE callcenter.tipo_mensagem SET enabled = '1' WHERE enabled = '0' AND "name" = 'SMS';
UPDATE callcenter.tipo_mensagem SET enabled = '1' WHERE enabled = '0' AND "name" = 'EMAIL';
UPDATE callcenter.tipo_mensagem SET enabled = '1' WHERE enabled = '0' AND "name" = 'WHATSAPP';

--------------------------------------------------------------------------------
CREATE TABLE callcenter.control_send_mensagem
(
  id bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  telefone character varying(20) NOT NULL, -- ::telefone::::::::::::nao::::::::::::::::::::::
  dt_insert timestamp without time zone NOT NULL, -- ::dt_insert::::::::::::nao::::::::::::::::::::::
  CONSTRAINT pk_control_send_mensagem_id PRIMARY KEY (id)
) WITH ( OIDS=FALSE );
ALTER TABLE callcenter.control_send_mensagem OWNER TO dbcallcenter;
CREATE INDEX control_send_mensagem_dt_insert   ON callcenter.control_send_mensagem USING btree (dt_insert);
CREATE INDEX control_send_mensagem_telefone ON callcenter.control_send_mensagem USING btree (telefone COLLATE pg_catalog."default");

--------------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '1', '2019-06-07 09:38:14', 'Ativacao do na campanha omnichannel', 'f_omnichannel_a', '1', '1', '0', '5', 'Ativando essa variavel a aba de configuracao para tabulacoes de acoes no omnichannel serem exibida.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_omnichannel_a'));
--------------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2019-07-15 15:46:23', 'Permitir lancar pedido sem chamada.', 'f_permit_pedido_sem_chamada', 1, '1', 0, 5, 'Permitir lancar pedido sem chamada.. ( Para desativar utilize o valor 0 )', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_permit_pedido_sem_chamada'));
--------------------------------------------------------------------------------
CREATE TABLE discador.controle_transferencia (
	id serial NOT NULL,
	uniqueid varchar NOT NULL,
	origem varchar NOT NULL,
	destino varchar NOT NULL,
	dt_transferencia timestamp NULL
)WITH ( OIDS=FALSE) ;
CREATE INDEX idx_id_controle_transferencia ON discador.controle_transferencia USING btree (id) ;

--------------------------------------------------------
ALTER TABLE discador.chamadas_lead_receptivo DROP CONSTRAINT uniq_key_uniqueid_chamadas_recep;
ALTER TABLE discador.chamadas_lead_receptivo ADD CONSTRAINT uniq_key_uniqueid_chamadas_recep UNIQUE (uniqueid,id_campanha);
-----------------------------------------------------------
update crm.menusub set descricao = 'Formulario' where modulovar = 'ModFormularioPesquisa' and descricao = 'Formulario de Pesquisa';

--------------------------------------------------------------------------------
-- ALTER TABLE discador.integracao_ticket_chat DROP COLUMN conf_extra;
ALTER TABLE discador.integracao_ticket_chat ADD COLUMN conf_extra text;

--------------------------------------------------------------------------------
CREATE TABLE discador.configuracao_carga_tivea
(
  id bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  horario_inicial character varying(10), -- ::::::::::::::nao::::::::::::::::::::::
  atraso_inicial character varying(10), -- ::::::::::::::nao::::::::::::::::::::::
  atraso_fim character varying(255), -- ::::::::::::::nao::::::::::::::::::::::
  situacao character varying(10), -- ::::::::::::::nao::::::::::::::::::::::
  id_campanha integer, -- ::::::::::::::nao::::::::::::::::::::::
  CONSTRAINT pk_configuracao_carga_tivea_id PRIMARY KEY (id)
)WITH (  OIDS=FALSE );
ALTER TABLE discador.configuracao_carga_tivea OWNER TO dbcallcenter;
COMMENT ON COLUMN discador.configuracao_carga_tivea.id IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_carga_tivea.horario_inicial IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_carga_tivea.atraso_inicial IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_carga_tivea.atraso_fim IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_carga_tivea.situacao IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_carga_tivea.id_campanha IS '::::::::::::::nao::::::::::::::::::::::';

--------------------------------------------------------------------------------

CREATE TABLE IF NOT EXISTS discador.configuracao_tivea ( id BIGSERIAL NOT NULL, usuario VARCHAR(255) NULL, senha VARCHAR(255) NULL, url VARCHAR(255) NULL, CONSTRAINT pk_configuracao_tivea_id PRIMARY KEY (id));
COMMENT ON COLUMN discador.configuracao_tivea.id IS '::ID::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_tivea.usuario IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_tivea.senha IS '::::::::::::::nao::::::::::::::::::::::';
COMMENT ON COLUMN discador.configuracao_tivea.url IS '::::::::::::::nao::::::::::::::::::::::';


--------------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2019-07-15 15:46:23', 'Permitir Chamada Manual para telefones fora do mailing.', 'f_permit_chamada_manual', 1, '1', 0, 5, 'Permitir Chamada Manual para telefones fora do mailing.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_permit_chamada_manual'));

-----------------------------------------------------------------------------------
INSERT INTO crm.menusub (cod_menusub ,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao) select (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub), 1, 'Transmitir pedidos', 'ModTransmissaoPedido', 1, 1, 0, NULL, NULL, 1, NULL from crm.menusub where not exists ( select * from crm.menusub where modulovar = 'ModTransmissaoPedido') limit 1;

---------------------------------------------------------
-- Lucas Macedo - DT-82 - Colunas para gestao do receptivo
---------------------------------------------------------
ALTER TABLE pbx.did_map DROP COLUMN app;
ALTER TABLE pbx.did_map DROP COLUMN app_data;

ALTER TABLE pbx.did_map ADD COLUMN id_ura_app int NOT NULL;
ALTER TABLE pbx.did_map ADD COLUMN id_ref_app_data int;
ALTER TABLE pbx.did_map ADD COLUMN manual_app_data varchar(50);
---------------------------------------------------------

-- alteracao no tamanho do campo e_monetario

ALTER TABLE discador.lead ALTER COLUMN e_monetario1 TYPE numeric(13,3) USING e_monetario1::numeric;
ALTER TABLE discador.lead ALTER COLUMN e_monetario2 TYPE numeric(13,3) USING e_monetario2::numeric;
ALTER TABLE discador.lead ALTER COLUMN e_monetario3 TYPE numeric(13,3) USING e_monetario3::numeric;
ALTER TABLE discador.lead ALTER COLUMN e_monetario4 TYPE numeric(13,3) USING e_monetario4::numeric;
ALTER TABLE discador.lead ALTER COLUMN e_monetario5 TYPE numeric(13,3) USING e_monetario5::numeric;

ALTER TABLE discador.lead_discagem ALTER COLUMN e_monetario1 TYPE numeric(13,3) USING e_monetario1::numeric;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_monetario2 TYPE numeric(13,3) USING e_monetario2::numeric;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_monetario3 TYPE numeric(13,3) USING e_monetario3::numeric;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_monetario4 TYPE numeric(13,3) USING e_monetario4::numeric;
ALTER TABLE discador.lead_discagem ALTER COLUMN e_monetario5 TYPE numeric(13,3) USING e_monetario5::numeric;

-------------------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD COLUMN perms_transfer_campos character varying(100);

-------------------------------------------------------------------------------------------------------------------


CREATE TABLE callcenter.chamada_agente_corte (
	id_chamada_agente_corte bigserial NOT NULL,
	uniqueid varchar(100) NULL,
	agente varchar(10) NULL,
	finalizado varchar(20) NULL,
	datahora_inicio timestamp NULL,
	datahora_termino timestamp NULL,
	nome_arquivo varchar(255) NULL,
	CONSTRAINT pk_id_chamada_agente_corte PRIMARY KEY (id_chamada_agente_corte)
);
CREATE INDEX idx_chamada_agente_corte_agente ON callcenter.chamada_agente_corte USING btree (agente);
CREATE INDEX idx_chamada_agente_corte_datahora_inicio ON callcenter.chamada_agente_corte USING btree (datahora_inicio);
CREATE INDEX idx_chamada_agente_corte_datahora_termino ON callcenter.chamada_agente_corte USING btree (datahora_termino);
CREATE INDEX idx_chamada_agente_corte_finalizado ON callcenter.chamada_agente_corte USING btree (finalizado);
CREATE INDEX idx_chamada_agente_corte_uniqueid ON callcenter.chamada_agente_corte USING btree (uniqueid);

-- Permissions

ALTER TABLE callcenter.chamada_agente_corte OWNER TO dbcallcenter;
GRANT ALL ON TABLE callcenter.chamada_agente_corte TO dbcallcenter;

-------------------------------------------------------------------------------------------------------------------

INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2019-10-01 17:23:00', 'Habilitar Corte de gravacao na tela do agente.', 'f_permit_rst', 0, '1', 0, 5, 'Ao habilitar essa variavel o sistema ira possibilitar o operador na tela do callcenter fazer um recorte na gravacao. ( Rede Saude Total ).', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_permit_rst'));

-------------------------------------------------------------------------------------------------------------------
--- Tabela apagada pelo revert de codigo - necessaria parao funcionamento da tela em realtime
-------------------------------------------------------------------------------------------------------------------

CREATE TABLE callcenter.agent_last_status (
    agent int4 NOT NULL,
    data_event text NOT NULL,
    agent_logged int2 NOT NULL DEFAULT 0,
    agent_login_datetime timestamptz NULL,
    agent_oncall int2 NOT NULL DEFAULT 0,
    agent_oncall_datetime timestamptz NULL,
    agent_oncall_data text NULL,
    updated_at timestamptz NULL,
    CONSTRAINT pk_agent_event PRIMARY KEY (agent)
);

ALTER TABLE callcenter.agent_last_status OWNER TO dbcallcenter;
GRANT ALL ON TABLE callcenter.agent_last_status TO dbcallcenter;
--------------------------------------------------------------------------------

INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '1', '2019-06-07 09:38:14', 'Ativacao do na campanha omnichannel', 'f_omnichannel_a', '1', '1', '0', '5', 'Ativando essa variavel a aba de configuracao para tabulacoes de ates no omnichannel serem exibida.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_omnichannel_a'));

-----------------------------------------------------------------------------------------------------

CREATE TABLE IF NOT EXISTS pbx.ura_app (
  id BIGSERIAL NOT NULL,
  name varchar(50) NOT NULL,
  app_ref varchar(50) NOT NULL,
  enable smallint NOT NULL DEFAULT 1,
  CONSTRAINT trunk_map_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);


--------------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '1', '2019-06-07 09:38:14', 'Ativacao do na campanha omnichannel', 'f_omnichannel_a', '1', '1', '0', '5', 'Ativando essa variavel a aba de configuracao para tabulacoes de acoes no omnichannel sera exibida.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_omnichannel_a'));
-------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.controle_migracao_gravacao (
	id_migracao_gravacao bigserial NOT NULL,
	mensagem varchar(255) NULL,
	usuario varchar(20) NULL,
	periodo_inicio timestamp NULL,
	periodo_termino timestamp NULL,
	datahora_registro timestamp NULL,
	CONSTRAINT pk_id_migracao_gravacao PRIMARY KEY (id_migracao_gravacao)
);

ALTER TABLE discador.controle_migracao_gravacao OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.controle_migracao_gravacao TO dbcallcenter;

INSERT INTO crm.menusub (cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso)    (SELECT '5', 'relatorio Log Omnichannel', 'ModRelCanalMensagem', '2', '1', '0', '45', null, '1', null, null  WHERE NOT EXISTS (SELECT * FROM crm.menusub b WHERE modulovar = 'ModRelCanalMensagem'));

--------------------------------------------------------------------------------
-- Dados para os Selects do formularios de Configuracao do Robo

INSERT INTO "crm"."frm_sql" ("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Exten cadastrados no Robo', 'EXTEN_URA_ROBO', NULL, 1, 'SELECT exten FROM automacao.ura_robo ur', NULL, 'ur.exten', NULL, NULL, 'exten', 'exten', NULL WHERE NOT EXISTS (SELECT * FROM "crm"."frm_sql" WHERE "frm_sql"."tag"='EXTEN_URA_ROBO'));
INSERT INTO "crm"."frm_sql" ("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Campanhas', 'CAMPANHAS', 'Listagem de campanhas', 1, 'SELECT c.id_campanha, c.nome_campanha, c.data_inicio, c.data_termino, c.hora_inicio, c.hora_termino, c.id_tipo_campanha, c.rota_discagem, c.tentativas, c.datahora_registro, sc.status_campanha, tc.tipo_campanha, COALESCE(f.fila,fi.fila) as fila,CASE WHEN tc.id_tipo_campanha IS NULL THEN 999 ELSE tc.id_tipo_campanha END AS id_grupo_js, CASE WHEN tc.tipo_campanha IS NULL THEN ''N.I.'' ELSE tc.tipo_campanha END AS txt_grupo_js FROM callcenter.campanha c  LEFT JOIN callcenter.campanha_status cs ON cs.id_campanha = c.id_campanha AND cs.datahora_termino IS NULL LEFT JOIN callcenter.status_campanha sc ON cs.id_status_campanha = sc.id_status_campanha LEFT JOIN callcenter.tipo_campanha tc ON tc.id_tipo_campanha = c.id_tipo_campanha LEFT JOIN callcenter.campanha_fila f ON f.id_campanha = c.id_campanha AND f.datahora_termino IS NULL LEFT JOIN asterisk.fila fi ON fi.id_fila = f.id_fila', NULL, 'nome_campanha', NULL, NULL, 'id_campanha', 'nome_campanha', NULL WHERE NOT EXISTS (SELECT * FROM "crm"."frm_sql" WHERE "frm_sql"."tag"='CAMPANHAS'));
INSERT INTO "crm"."frm_sql" ("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Lista de Audios Ativos', 'SQL_AUDIO_ATIVO', 'Lista de Audios Ativos', 1, 'SELECT id_audio, arquivo, descricao FROM callcenter.audio', 'habilitado = 1', 'descricao ASC', NULL, NULL, 'arquivo', 'descricao', NULL WHERE NOT EXISTS (SELECT * FROM "crm"."frm_sql" WHERE "frm_sql"."tag"='SQL_AUDIO_ATIVO'));
INSERT INTO "crm"."frm_sql" ("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Grupo de respostas', 'URA_RESPOSTA', NULL, 1, 'SELECT * FROM automacao.ura_resposta ur', 'status=1', 'ur.nome', NULL, NULL, 'id', 'nome', NULL WHERE NOT EXISTS (SELECT * FROM "crm"."frm_sql" WHERE "frm_sql"."tag"='URA_RESPOSTA'));
INSERT INTO "crm"."frm_sql" ("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Tabulacoes', 'TABULACAO', NULL, 1, 'SELECT id_tabulacao, descricao FROM discador.tabulacao', NULL, 'descricao', NULL, NULL, 'id_tabulacao', 'descricao', NULL WHERE NOT EXISTS (SELECT * FROM "crm"."frm_sql" WHERE "frm_sql"."tag"='TABULACAO'));

-- Formulario de Configuracao do Robo


INSERT INTO "crm"."frm" ("descricao", "obs", "habilitar", "diretorio_modulo", "tipo", "tag") (SELECT '{"Decisao do Robo}', NULL, 1, 'ModUraInteracao', 'MENU', 'F_URA_INTERACAO' WHERE NOT EXISTS (SELECT * FROM "crm"."frm" WHERE "tag"='F_URA_INTERACAO'));
INSERT INTO "crm"."frm" ("descricao", "obs", "habilitar", "diretorio_modulo", "tipo", "tag") (SELECT '{"Fluxo do Robo}', NULL, 1, 'ModUraRobo', 'MENU', 'F_URA_ROBO' WHERE NOT EXISTS (SELECT * FROM "crm"."frm" WHERE "tag"='F_URA_ROBO'));


INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '1', '2019-06-07 09:38:14', 'Ativacao do na campanha omnichannel', 'f_omnichannel_a', '1', '1', '0', '5', 'Ativando essa variavel a aba de Configuracao para Tabulacoes de acoes no omnichannel serem exibida.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_omnichannel_a'));
--------------------------------------------------------------------------------

INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2019-10-01 17:23:00', 'Habilitar Corte de gravacao na tela do agente.', 'f_permit_rst', 1, '1', 0, 5, 'Ao habilitar essa variavel o sistema ira possibilitar o operador na tela do callcenter fazer um recorte na gravacao. ( Rede Saude Total ).', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_permit_rst'));


---------------------------------------------
ALTER TABLE discador.tabulacao ADD COLUMN chamada_manual SMALLINT NULL DEFAULT 0;
COMMENT ON COLUMN callcenter.tabulacao.chamada_manual IS '::chamada_manual::::::0::::::nao::::::::::::';
-------------------------------------------------------------------------------------------------------------------

-- ajuste de tempo de sessao
update crm.configuracoes set tempoexpirar = 480;

-------------------------------------------------------------------------------------------------
  INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2019-12-03 08:15:23.000', 'Controle Privacidade - Quantidade de tentativas de discagem manual Mensal por numero', 'f_qtd_tentativas_manual_mensal', 1, '0', 0, 5, 'Numero de tentativas de discagem diarias por telefone. ( Para desativar utilize o valor 0 )', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_qtd_tentativas_manual_mensal'));


-------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.controle_privacidade_mensal
(
  id_controle_privacidade_mensal serial NOT NULL,
  id_lead integer NOT NULL,
  id_lead_telefone integer NOT NULL,
  telefone bigint NOT NULL,
  data timestamp without time zone NOT NULL,
  tentativa integer,
  CONSTRAINT controleprivacidade_mensal_pkey PRIMARY KEY (id_controle_privacidade_mensal)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.controle_privacidade_mensal
  OWNER TO dbcallcenter;


CREATE INDEX idx_lead_controle_privacidade_mensal
  ON discador.controle_privacidade_mensal
  USING btree
  (id_lead);


CREATE INDEX idx_lead_telefone_controle_privacidade_mensal
  ON discador.controle_privacidade_mensal
  USING btree
  (id_lead_telefone);


 CREATE INDEX idx_telefone_controle_privacidade_mensal
  ON discador.controle_privacidade_mensal
  USING btree
  (telefone);

ALTER TABLE discador.controle_privacidade_mensal ADD CONSTRAINT uniq_id_lead_telefone_privacidade_mensal UNIQUE (id_lead_telefone);
ALTER TABLE discador.controle_privacidade_mensal ADD CONSTRAINT controle_privacidade_mensal_un_telefone UNIQUE (telefone);

ALTER TABLE callcenter.campanha ADD COLUMN tentativas_mensal integer  DEFAULT 0;


-------------------------------------------------------------------------------------------------------------------
CREATE TABLE discador.integrations
(
  id_integrations bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  tag character varying(32), -- ::Tag de referencia::::::::::::nao::::::::::::::::::::::
  description character varying(256), -- ::Descricao::::::::::::nao::::::::::::::::::::::
  url character varying(128), -- ::URL basica::::::::::::nao::::::::::::::::::::::
  config text, -- ::Configuracoes Extras::::::::::::nao::::::::::::::::::::::
  active smallint NOT NULL, -- ::Ativo::::::0::::::nao::::::::::::::::::::::
  CONSTRAINT pk_integrations_id_integrations PRIMARY KEY (id_integrations)
)WITH (  OIDS=FALSE);ALTER TABLE discador.integrations  OWNER TO dbcallcenter;

INSERT INTO discador.integrations ("id_integrations", "tag", "description", "url", "config", "active") (SELECT 1, 'HELPDESK', 'Integracao com helpdesk', 'https://smart-api.smartnx.io/api', '{"company_id":"25","token":"da42d9fcb02312973a4d2c2f75c031356e0e4f018eb7c51a5033224d5b935781"}', 1 WHERE NOT EXISTS (SELECT tag FROM discador.integrations WHERE tag = 'HELPDESK') );

CREATE TABLE discador.integration_fields
(
  id_integration_fields bigserial NOT NULL, -- ::ID::::::::::::nao::::::::::::::::::::::
  name character varying(32), -- ::Nome do campo::::::::::::nao::::::::::::::::::::::
  description character varying(256), -- ::Descricao::::::::::::nao::::::::::::::::::::::
  resource character varying(32), -- ::Origem::::::::::::nao::::::::::::::::::::::
  active smallint, -- ::Ativo::::::0::::::nao::::::::::::::::::::::
  required smallint, -- ::Obrigatorio::::::0::::::nao::::::::::::::::::::::
  "position" smallint, -- ::Ordem de apresentacao::::::::::::nao::::::::::::::::::::::
  type character varying(32), -- ::Tipo de campo::::::::::::nao::::::::::::::::::::::
  label character varying(64), -- ::Label do campo::::::::::::nao::::::::::::::::::::::
  dest character varying(32), -- ::Variavel de destino::::::::::::nao::::::::::::::::::::::
  conf text, -- ::Configuracoes extras::::::::::::nao::::::::::::::::::::::
  id_integrations bigint NOT NULL, -- ::Integracao::::::::::::nao::::::::::::::::::::::
  CONSTRAINT pk_integration_fields_id_integration_fields PRIMARY KEY (id_integration_fields),
  CONSTRAINT fk_integrations_id_integrations FOREIGN KEY (id_integrations)
      REFERENCES discador.integrations (id_integrations) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (  OIDS=FALSE);
ALTER TABLE discador.integration_fields  OWNER TO dbcallcenter;
delete from discador.integration_fields where dest = 'ownerTeam'AND resource = 'ticket';
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'ticket_team', 'Time responsavel', 'ticket', 1, 1, 2, 'select', 'Time', 'ownerTeam', '{"endpoint":"persons","query":"$filter=profileType eq 1 or profileType eq 3&$select=teams&$orderby=id desc"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'ownerTeam'AND resource = 'ticket'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'ticket_service', 'Serviços', 'ticket', 1, 1, 3, 'select', 'Serviços ', 'serviceFirstLevelId', '{"endpoint":"services","query":"$filter=isActive eq true&$orderby=id asc"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'serviceFirstLevelId' AND resource = 'ticket'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'ticket_subject', 'Assunto do ticket', 'ticket', 1, 1, 1, 'text', 'Assunto', 'subject', '{"placeholder":"Digite o assunto","fieldLead":""}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'subject' AND resource = 'ticket'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'ticket_description', 'Descricao do ticket', 'ticket', 1, 1, 4, 'textarea', 'Descricao', 'description', '{"placeholder":"Digite a descricao"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'description' AND resource = 'ticket'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'client_name', 'Nome do cliente', 'client', 1, 1, 1, 'text', 'Nome do Cliente', 'businessName', '{"placeholder":"Digite o nome completo","required":"true","fieldLead":"nome"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'businessName' AND resource = 'client'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'client_type', 'Tipo do cliente', 'client', 0, 1, 2, 'select', 'Tipo do cliente', 'personType', '{"options":[{"name":"Pessoa","value":"1"},{"name":"Empresa","value":"2"},{"name":"Departamento ","value":"4"}]}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'personType' AND resource = 'client'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'client_doc', 'CPF', 'client', 1, 0, 3, 'text', 'CPF', 'cpfCnpj', '{"placeholder":"Digite o CPF","searchable":"true","autosearch":"false","fieldLead":"cpf_cnpj"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'cpfCnpj' AND resource = 'client'));
INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'client_email', 'Email', 'client', 1, 0, 4, 'email', 'E-mail', 'emails', '{"placeholder":"Digite o e-mail"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'emails' AND resource = 'client'));

INSERT INTO discador.integration_fields ("name", "description", "resource", "active", "required", "position", "type", "label", "dest", "conf", "id_integrations") (SELECT 'client_number', 'Telefone do cliente', 'client', 1, 0, 5, 'text', 'Telefone', 'contacts', '{"placeholder":"Digite o telefone","fieldLead":"telefone"}', 1 WHERE NOT EXISTS (SELECT * FROM discador.integration_fields WHERE dest = 'contacts' AND resource = 'client'));

ALTER TABLE discador.campos_lead ADD COLUMN exibe smallint  DEFAULT 1;

INSERT INTO callcenter.pausa
	(pausa, habilitado, tempo, permite_chamada, acao, padrao, agenda, tipo_pausa,
	atendimento, subtipo_pausa, permissao_ver, tabulacao, id_tabulacao)
SELECT 'Tabulacao','1','60','0', 'nenhuma','0','0', 'improdutiva','0', 'nenhuma', '{6,2,1}', '1', id_tabulacao
FROM discador.tabulacao where descricao='Nao Tabulado' AND NOT EXISTS
(SELECT * FROM callcenter.pausa WHERE tabulacao = 1) LIMIT 1;

INSERT INTO callcenter.pausa
	(pausa, habilitado, tempo, permite_chamada, acao, padrao, agenda, tipo_pausa,
	atendimento, subtipo_pausa, permissao_ver, tabulacao)
SELECT 'Agenda','1','60','1', 'nenhuma','0','1', 'produtiva','0', 'gestao', '{6,2,1}', '0' WHERE NOT EXISTS
(SELECT * FROM callcenter.pausa WHERE agenda = 1) LIMIT 1;


INSERT INTO callcenter.pausa
	(pausa, habilitado, tempo, permite_chamada, acao, padrao, agenda, tipo_pausa,
	atendimento, subtipo_pausa, permissao_ver, tabulacao)
SELECT 'Atendimento','1','60','1', 'nenhuma','0','1', 'produtiva','0', 'negocio', '{6,2,1}', '0' WHERE NOT EXISTS
(SELECT * FROM callcenter.pausa WHERE permite_chamada = 1) LIMIT 1;

--------------------------------------------------------------------------
ALTER TABLE discador.campos_integracao_pedido ADD "label" varchar NULL;
ALTER TABLE discador.campos_integracao_pedido ADD sequencia int4 NULL;

----------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.chamadas_ramal
(
  id_chamada_ramal serial NOT NULL,
  origem varchar,
  destino varchar,
  uniqueid varchar NOT NULL,
  id_status_chamada integer,
  datahora_ring timestamp without time zone,
  datahora_inicio timestamp without time zone,
  datahora_termino timestamp without time zone,
  duracao_chamada integer,
  billsec integer,
  CONSTRAINT chamadas_ramal_id_pkey PRIMARY KEY (id_chamada_ramal)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.chamadas_ramal
  OWNER TO dbcallcenter;

ALTER TABLE discador.chamadas_ramal ADD CONSTRAINT uniq_uniqueid_chamadas_ramal UNIQUE (uniqueid);

ALTER TABLE discador.chamadas_ramal ADD COLUMN tipo_chamada varchar  DEFAULT 'RAMAL';

----------------------------------------------------------------------------------------------------------------

CREATE TABLE crm.controle_senha_adm
(
  id serial NOT NULL,
  nome varchar NOT NULL,
  senha varchar NOT NULL,
  CONSTRAINT controle_senha_adm_id_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE crm.controle_senha_adm
  OWNER TO dbcallcenter;


INSERT INTO crm.controle_senha_adm (id,nome, senha) VALUES(1,'Guilherme', '8a2be1a1146cf41471526cc21b1d439b');
INSERT INTO crm.controle_senha_adm (id,nome, senha) VALUES(2,'Karina', 'e57c93f81167e915418adff02cc355d1');
INSERT INTO crm.controle_senha_adm (id,nome, senha) VALUES(3,'Calino', 'b5334e00def49240c30dced91bb57595');


----------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.hangup_cause
(
  id serial NOT NULL,
  cod_hangup varchar NOT NULL,
  descricao varchar NOT NULL,
  CONSTRAINT hangup_cause_id_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE discador.hangup_cause
  OWNER TO dbcallcenter;

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 1, '0', 'Isso geralmente e fornecido pelo roteador quando nenhum dos outros codigos se aplica. Essa causa geralmente ocorre no mesmo tipo de situacoes que a causa 1, causa 88 e causa 100.'
where not exists (select id from discador.hangup_cause where id = 1);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 2, '1', 'Essa causa indica que a parte chamada nao pode ser alcancada porque, embora o numero da parte chamada esteja em um formato valido, ele nao esta atualmente alocado (atribuido).'
where not exists (select id from discador.hangup_cause where id = 2);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 3, '2', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma solicitacao para rotear a chamada atraves de uma rede de transito especifica, que nao reconhece. O equipamento que envia esta causa nao reconhece a rede de transporte publico porque a rede de transporte publico nao existe ou porque essa rede de transporte particular, enquanto existe, nao atende ao equipamento que esta enviando esta causa.'
where not exists (select id from discador.hangup_cause where id = 3);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 4, '3', 'Essa causa indica que a pessoa chamada nao pode ser alcancada porque a rede pela qual a chamada foi roteada nao atende ao destino desejado. Essa causa e suportada em uma base dependente da rede.'
where not exists (select id from discador.hangup_cause where id = 4);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 5, '6', 'Essa causa indica que o canal identificado mais recentemente nao e aceitavel pela entidade remetente para uso nesta chamada.'
where not exists (select id from discador.hangup_cause where id = 5);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 6, '7', 'Essa causa indica que o usuario recebeu a chamada recebida e que a chamada esta sendo conectada a um canal ja estabelecido para esse usuario para chamadas semelhantes (por exemplo, chamadas virtuais x.25 em modo de pacote).'
where not exists (select id from discador.hangup_cause where id = 6);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 7, '16', 'Essa causa indica que a chamada esta sendo apagada porque um dos usuarios envolvidos na chamada solicitou que a chamada fosse apagada. Em situacoes normais, a fonte dessa causa nao e a rede.'
where not exists (select id from discador.hangup_cause where id = 7);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 8, '17', 'Essa causa e usada para indicar que a parte chamada nao pode aceitar outra chamada porque a condicao de ocupado do usuario foi encontrada. Esse valor de causa pode ser gerado pelo usuario chamado ou pela rede. No caso de determinado usuario ocupado, note-se que o equipamento do usuario e compativel com a chamada.'
where not exists (select id from discador.hangup_cause where id = 8);
------
INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 9, '18', 'Essa causa e usada quando uma parte chamada nao responde a uma mensagem de estabelecimento de chamada com uma indicacao de alerta ou conexao dentro do periodo de tempo prescrito alocado.'
where not exists (select id from discador.hangup_cause where id = 9);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 10, '19', 'Essa causa e usada quando a pessoa chamada e alertada, mas nao responde com uma indicacao de conexao dentro de um periodo de tempo prescrito. Nota - Essa causa nao e necessariamente gerada pelos procedimentos Q.931, mas pode ser gerada pelos temporizadores da rede interna.'
where not exists (select id from discador.hangup_cause where id = 10);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 11, '20', 'Esse valor de causa e usado quando uma estacao movel e desconectada, o contato de radio nao e obtido com uma estacao movel ou se um usuario pessoal de telecomunicacoes nao estiver temporariamente enderecavel em nenhuma interface de rede do usuario. O Sofia SIP normalmente aumentara USER_NOT_REGISTERED em tais situacoes.'
where not exists (select id from discador.hangup_cause where id = 11);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 12, '21', 'Essa causa indica que o equipamento que esta enviando a causa nao deseja aceitar essa chamada, embora possa ter aceitado a ligacao porque o equipamento que esta enviando essa causa nao esta ocupado nem e incompativel. A rede tambem pode gerar essa causa, indicando que a chamada foi apagada devido a uma restricao de servico suplementar. O campo de diagnostico pode conter informacoes adicionais sobre o servico suplementar e o motivo da rejeicao.'
where not exists (select id from discador.hangup_cause where id = 12);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 13, '22', 'Essa causa e retornada a uma pessoa que chama quando o numero da pessoa chamada indicado pela pessoa que chama nao esta mais atribuido. O novo numero da pessoa chamada pode opcionalmente ser incluido no campo de diagnostico. Se uma rede nao suportar essa causa, causa no: 1, numero nao alocado (nao atribuido) deve ser usado.'
where not exists (select id from discador.hangup_cause where id = 13);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 14, '23', 'Essa causa e usada por um mecanismo geral do protocolo ISUP que pode ser chamado por uma central que decide que a chamada deve ser configurada para um numero chamado diferente. Essa troca pode chamar um mecanismo de redirecionamento, usando esse valor de causa, para solicitar uma troca anterior envolvida na chamada para rotear a chamada para o novo numero.'
where not exists (select id from discador.hangup_cause where id = 14);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 15, '25', 'Essa causa indica que o destino indicado pelo usuario nao pode ser alcancado, porque uma troca intermediaria liberou a chamada devido a atingir um limite na execucao do procedimento do contador de saltos. Essa causa e gerada por um no intermediario, que ao decrementar o valor do contador de saltos, fornece o resultado 0.'
where not exists (select id from discador.hangup_cause where id = 15);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 16, '27', 'Essa causa indica que o destino indicado pelo usuario nao pode ser alcancado porque a interface para o destino nao esta funcionando corretamente. O termo "nao esta funcionando corretamente" indica que uma mensagem de sinal nao pode ser entregue a parte remota; por exemplo, uma falha na camada fisica ou na camada de enlace de dados na parte remota ou no equipamento do usuario off-line.'
where not exists (select id from discador.hangup_cause where id = 16);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 17, '28', 'Essa causa indica que a parte chamada nao pode ser alcancada porque o numero da parte chamada nao esta em um formato valido ou nao esta completo.'
where not exists (select id from discador.hangup_cause where id = 17);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 18, '29', 'Essa causa e retornada quando um servico complementar solicitado pelo usuario nao pode ser fornecido pela rede.'
where not exists (select id from discador.hangup_cause where id = 18);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 19, '30', 'Essa causa esta incluida na mensagem STATUS quando o motivo para gerar a mensagem STATUS foi o recebimento previo de um INQUERITO STATUS.'
where not exists (select id from discador.hangup_cause where id = 19);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 20, '31', 'Essa causa e usada para relatar um evento normal somente quando nenhuma outra causa na classe normal se aplica.'
where not exists (select id from discador.hangup_cause where id = 20);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 21, '34', 'Essa causa indica que nao ha atualmente nenhum circuito / canal disponivel para atender a chamada.'
where not exists (select id from discador.hangup_cause where id = 21);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 22, '38', 'Essa causa indica que a rede nao esta funcionando corretamente e e provavel que a condicao dure um periodo de tempo relativamente longo, por exemplo, tentar novamente imediatamente a chamada provavelmente nao sera bem-sucedido.'
where not exists (select id from discador.hangup_cause where id = 22);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 23, '41', 'Essa causa indica que a rede nao esta funcionando corretamente e que nao e provavel que a condicao dure um longo periodo de tempo; por exemplo, o usuario pode querer tentar outra tentativa quase imediatamente.'
where not exists (select id from discador.hangup_cause where id = 23);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 24, '42', 'Essa causa indica que o equipamento de comutacao que gera essa causa esta passando por um periodo de trafego intenso.'
where not exists (select id from discador.hangup_cause where id = 24);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 25, '43', 'Essa causa indica que a rede nao pode fornecer informacoes de acesso ao usuario remoto conforme solicitado, ou seja, informacoes de usuario para usuario, compatibilidade com baixa camada, compatibilidade com alta camada ou sub-endereco, conforme indicado no diagnostico. Note-se que o tipo especifico de informacao de acesso descartada e opcionalmente incluido no diagnostico.'
where not exists (select id from discador.hangup_cause where id = 25);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 26, '44', 'Essa causa e retornada quando o outro lado da interface nao pode fornecer o circuito ou canal indicado pela entidade solicitante.'
where not exists (select id from discador.hangup_cause where id = 26);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 27, '47', 'Essa causa e usada para relatar um evento indisponivel do recurso apenas quando nenhuma outra causa na classe indisponivel do recurso se aplica.'
where not exists (select id from discador.hangup_cause where id = 27);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 28, '50', 'Essa causa indica que o usuario solicitou um servico suplementar, que esta disponivel, mas o usuario nao esta autorizado a usar.'
where not exists (select id from discador.hangup_cause where id = 28);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 29, '52', 'Esta causa indica que, embora o interlocutor seja um membro do CUG para a chamada de saida do CUG, as chamadas de saida nao sao permitidas para esse membro do CUG.'
where not exists (select id from discador.hangup_cause where id = 29);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 30, '54', 'Esta causa indica que, embora a parte chamada seja um membro do CUG para a chamada de entrada do CUG, as chamadas de entrada nao sao permitidas para esse membro do CUG.'
where not exists (select id from discador.hangup_cause where id = 30);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 31, '57', 'Essa causa indica que o usuario solicitou um recurso de suporte implementado pelo equipamento que gerou essa causa, mas o usuario nao esta autorizado a usar.'
where not exists (select id from discador.hangup_cause where id = 31);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 32, '58', 'Essa causa indica que o usuario solicitou uma capacidade de suporte que e implementada pelo equipamento que gerou essa causa, mas que nao esta disponivel no momento.'
where not exists (select id from discador.hangup_cause where id = 32);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 33, '63', 'Essa causa e usada para relatar um evento de servico ou opcao nao disponivel apenas quando nenhuma outra causa na classe de servico ou opcao nao disponivel se aplica.'
where not exists (select id from discador.hangup_cause where id = 33);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 34, '65', 'Essa causa indica que o equipamento que esta enviando essa causa nao suporta a capacidade solicitada ao portador.'
where not exists (select id from discador.hangup_cause where id = 34);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 35, '66', 'Esta causa indica que o equipamento que envia esta causa nao suporta o tipo de canal solicitado'
where not exists (select id from discador.hangup_cause where id = 35);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 36, '69', 'Essa causa indica que o equipamento que esta enviando essa causa nao suporta os servicos complementares solicitados.'
where not exists (select id from discador.hangup_cause where id = 36);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 37, '79', 'Essa causa e usada para relatar um servico ou opcao nao implementada apenas quando nenhuma outra causa na classe de servico ou opcao nao implementada se aplica.'
where not exists (select id from discador.hangup_cause where id = 37);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 38, '81', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma mensagem com uma referencia de chamada que nao esta sendo usada atualmente na interface de rede do usuario.'
where not exists (select id from discador.hangup_cause where id = 38);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 39, '88', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma solicitacao para estabelecer uma chamada com baixa compatibilidade de camada, alta compatibilidade de camada ou outros atributos de compatibilidade (por exemplo, taxa de dados) que nao podem ser acomodados.'
where not exists (select id from discador.hangup_cause where id = 39);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 40, '95', 'Essa causa e usada para relatar um evento de mensagem invalida apenas quando nenhuma outra causa na classe de mensagem invalida se aplica.'
where not exists (select id from discador.hangup_cause where id = 40);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 41, '96', 'Esta causa indica que o equipamento que esta enviando esta causa recebeu uma mensagem em que falta um elemento de informacao que deve estar presente na mensagem antes que a mensagem possa ser processada.'
where not exists (select id from discador.hangup_cause where id = 41);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 42, '97', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma mensagem com um tipo de mensagem que tambem nao reconhece, porque esta e uma mensagem nao definida como definida, mas nao implementada pelo equipamento que envia esta causa.'
where not exists (select id from discador.hangup_cause where id = 42);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 43, '98', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma mensagem de forma que os procedimentos nao indicam que essa e uma mensagem permitida para receber enquanto estiver no estado de chamada ou se foi recebida uma mensagem STATUS indicando um estado de chamada incompativel.'
where not exists (select id from discador.hangup_cause where id = 43);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 44, '99', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu uma mensagem que inclui elemento (s) de informacao / parametro (s) nao reconhecido (s) porque o (s) elemento (s) de informacao / nome (s) do (s) parametro (s) nao estao definidos ou definidos, mas nao implementados por o equipamento que envia a causa. Essa causa indica que o (s) elemento (s) de informacao / parametro (s) foram descartados. No entanto, o elemento de informacao nao precisa estar presente na mensagem para que o equipamento que envia a causa processe a mensagem.'
where not exists (select id from discador.hangup_cause where id = 44);

INSERT INTO discador.hangup_cause(id,cod_hangup,descricao)
select 45, '100', 'Essa causa indica que o equipamento que esta enviando essa causa recebeu o elemento de informacao que implementou; no entanto, um ou mais campos no IE sao codificados de tal maneira que nao foram implementados pelo equipamento que envia essa causa.'
where not exists (select id from discador.hangup_cause where id = 45);
----------------------------------------------------------------------------------------------------------------

UPDATE crm.menusub SET descricao = 'Pesquisas Analitico' WHERE modulovar = 'ModRelPesquisa' AND descricao = 'Pesquisas';
UPDATE crm.menusub SET cod_menutop=11,descricao='Pesquisas Sintetico', modulovar='ModRelPesquisaSintetico', nivel=1, habilitar=1, mobile=0, codgrupo_menu=41,exibir_menu=1 WHERE cod_menusub=448;

----------------------------------------------------------------------------------------------------------------

INSERT INTO crm.menusub
(cod_menusub, cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu,
id_frm, exibir_menu, configuracao)
select (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub), 11, 'Chamadas Ramal', 'ModRelChamadasRamal', 4, 1, 0, 41, NULL, 1, NULL from crm.menusub where not exists
( select * from crm.menusub where modulovar = 'ModRelChamadasRamal') limit 1;

----------------------------------------------------------------------------------------------------------------

UPDATE crm.classificacao_sistema SET valor = '11525409ab3df329b50b9240e3e0a42ec79e615857d003ec6e6c5bcedce74e8a' WHERE tag = 'f_key_apismartnx' AND valor != '11525409ab3df329b50b9240e3e0a42ec79e615857d003ec6e6c5bcedce74e8a';
UPDATE crm.classificacao_sistema SET valor = 'https://smart-api.smartnx.io/api' WHERE tag = 'f_url_apismartnx' AND valor != 'https://smart-api.smartnx.io/api';

------------------------------------------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD COLUMN nx_helpdesk smallint  DEFAULT 0;

------------------------------------------------------------------------------------------------------------

create trigger gerarconf after
insert
    or
update
    on
    crm.task_feriado for each row execute procedure asterisk.registra_gerar_conf('CONDICAOTEMPO');

--------------------------------------------------------------------------

-- disable grafico agente X status que nao funciona mais

UPDATE crm.menusub SET habilitar = 0 WHERE modulovar = 'ModRelGraficoAgentes' and habilitar = 1;

--------------------------------------------------------------------------
-- variavel de sistema que   desabilita obrigacao de tabular lead para sair de pausa ou deslogar do sistema
INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario,datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT '1', '2', '2020-02-06 15:59:20.000','Se ativado o sistema permite ao usuario deslogar e sair da pausa tabulacao sem tabular o lead.', 'f_logoff_e_pausa_sem_tabular', '0', '1', '0', '5','Se o cliente utilizar api para tabular o Lead devemos
ativar essa variavel para que o front do operador permita que ele sai da pausa e do sistema sem tabular ,pois a tabulacao deve ser feita via api.', '3' 
WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_logoff_e_pausa_sem_tabular'));
--------------------------------------------------------------------------

ALTER TABLE discador.blacklist_lead ADD datahora_registro timestamp with time zone NOT NULL DEFAULT now();

---------------------------------------------------------------------------
ALTER TABLE asterisk.rota_exten_out ADD exten_discador varchar(50) NULL;

--------------------------------------------------------------------------

INSERT INTO discador.tabulacao (descricao,produtiva,automatica) SELECT  'Robo - Abandonada por falta de robo disponivel','0','0' WHERE NOT EXISTS (SELECT * FROM discador.tabulacao WHERE descricao = 'Robo - Abandonada por falta de robo disponivel');

--------------------------------------------------------------------------

ALTER TABLE discador.configuracao_carga_tivea ADD id_acao varchar(255) DEFAULT '';

--------------------------------------------------------------------------

INSERT INTO asterisk.variavel_global(variavel, valor, datahora_inicio)  SELECT 'URL_API', '127.0.0.1:5000', now() WHERE NOT EXISTS (SELECT * FROM asterisk.variavel_global WHERE variavel = 'URL_API');

--------------------------------------------------------------------------

ALTER TABLE discador.configuracao_carga_tivea ADD referencia smallint DEFAULT 0;

--------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION discador.timeoutlead() RETURNS trigger
 LANGUAGE plpgsql
AS $$
BEGIN
	UPDATE discador.lead_discagem SET datahora_gerar = now() + INTERVAL '2 minutes' WHERE id_lead = NEW.id_lead AND datahora_gerar < NOW();
	RETURN NEW;
END;
$$;

CREATE
    TRIGGER timelead BEFORE INSERT
        ON
        discador.chamadas_lead FOR EACH ROW EXECUTE PROCEDURE discador.timeoutlead();


--------------------------------------------------------------------------

CREATE TABLE discador.notification_settings (
	id serial NOT NULL,
	descricao varchar NOT NULL,
	params text NULL,
	eventos text NULL,
	CONSTRAINT notification_settings_pk PRIMARY KEY (id)
);
CREATE INDEX notification_settings_id_idx ON discador.notification_settings USING btree (id);

-- Permissions

ALTER TABLE discador.notification_settings OWNER TO dbcallcenter;
GRANT ALL ON TABLE discador.notification_settings TO dbcallcenter;

-------------------------------------------------------------------------


CREATE TABLE discador.notification_mensagem (
	id serial NOT NULL,
	id_settings int NOT NULL,
	mensagem text NOT NULL,
	dt_registro timestamp NULL DEFAULT now(),
	dt_envio timestamp NULL,
	CONSTRAINT notification_mensagem_pk PRIMARY KEY (id)
);
CREATE INDEX notification_mensagem_id_idx ON discador.notification_mensagem (id);
CREATE INDEX notification_mensagem_id_settings_idx ON discador.notification_mensagem (id_settings);

-------------------------------------------------------------------------
INSERT INTO discador.notification_settings(descricao,params,eventos) (SELECT 'Telegram', '{"idchat": "","token":"881238340:AAFd8yNjIkxGjKvq4xPtNKeIBcJZdZv18oA"}', '{}' WHERE NOT EXISTS (SELECT * FROM discador.notification_settings WHERE descricao = 'Telegram'));
-------------------------------------------------------------------------

INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '1', '2020-02-07 08:00:00', 'Exibir uma notificação quando uma chamada é recebida', 'f_notificacao_chamada', '0', 'Nova chamada recebida', '0', '5', 'Exibir uma notificação quando uma chamada é recebida e o usuario estiver em outra aba ou com navegador minimizado.
O Usuario precisa habilitar as notificações no seu navegador.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_notificacao_chamada'));
--------------------------------------------------------------------------

UPDATE crm.classificacao_sistema SET STATUS = 1 WHERE tag = 'f_url_apismartnx' AND status <> 1;
UPDATE crm.classificacao_sistema SET STATUS = 1 WHERE tag = 'f_key_apismartnx' AND status <> 1;

--------------------------------------------------------------------------

ALTER TABLE crm.carga ADD motivo_descarte text NULL;

--------------------------------------------------------------------------

ALTER TABLE crm.configuracoes ADD ultimoIdDigital integer DEFAULT 0 NOT NULL;
ALTER TABLE crm.configuracoes ADD ultimoIdTicket integer DEFAULT 0 NOT NULL;
ALTER TABLE crm.configuracoes ADD ultimoIDEntrante integer DEFAULT 0 NOT NULL;
ALTER TABLE crm.configuracoes ADD ultimoIDDiscador integer DEFAULT 0 NOT NULL;

--------------------------------------------------------------------------

INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario,datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios,nivel, obs, tipo) (SELECT '1', '1', '2020-03-05 08:00:00','Nao retirar o agente da fila ao transferir','f_transfer_remove_fila', '0', '0','0', '5', 'ao ativar essa variavel no momento em que o agente transferir uma chamada o mesmo ficara preso até o termino da chamada , com isso o tempo entre chamadas será respeitado','5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_transfer_remove_fila'));

--------------------------------------------------------------------------

ALTER TABLE discador.chamadas_lead ADD tipo_chamada_campanha varchar(255);

--------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION discador.carrega_tipo_chamada_campanha() RETURNS trigger
LANGUAGE plpgsql
AS $$
DECLARE d_status VARCHAR;
BEGIN
	  SELECT tp.tipo_campanha INTO d_status FROM callcenter.campanha c  LEFT JOIN callcenter.tipo_campanha tp ON tp.id_tipo_campanha = c.id_tipo_campanha  WHERE c.id_campanha = NEW.id_campanha;
	  UPDATE discador.chamadas_lead SET tipo_chamada_campanha = d_status WHERE id_chamada_lead = NEW.id_chamada_lead;	 
    RETURN NEW;
END;
$$;

CREATE
    TRIGGER tipo_chamada_campanha AFTER INSERT
        ON
        discador.chamadas_lead FOR EACH ROW EXECUTE PROCEDURE discador.carrega_tipo_chamada_campanha();


--------------------------------------------------------------------------
ALTER TABLE discador.lead_chamadas_processando ADD tranfer_fila_robo SMALLINT DEFAULT 0;
--------------------------------------------------------------------------
ALTER TABLE discador.chamadas_lead ADD tranfer_fila_robo SMALLINT DEFAULT 0;
--------------------------------------------------------------------------
ALTER TABLE discador.blacklist_lead ADD COLUMN "user_login" varchar(255);
--------------------------------------------------------------------------
ALTER TABLE crm.usuariosgrupos ADD COLUMN cod_integracao integer;
--------------------------------------------------------------------------
CREATE TABLE discador.tabulacao_acao(id_tabulacao_acao bigserial NOT NULL,id_integracao bigint,configuracao text,nome character varying(255),CONSTRAINT pk_tabulacao_acao_id_tabulacao_acao PRIMARY KEY (id_tabulacao_acao)) WITH (  OIDS=FALSE ); ALTER TABLE discador.tabulacao_acao OWNER TO dbcallcenter;
--------------------------------------------------------------------------
ALTER TABLE callcenter.tabulacao ADD COLUMN id_tabulacao_acao bigint;
--------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS crm.usuario_integracao ( id_usuario_integracao BIGSERIAL NOT NULL, cod_usuario BIGINT NULL, id_integracao_tivea VARCHAR(255) NULL, CONSTRAINT pk_usuario_integracao_id_usuario_integracao PRIMARY KEY (id_usuario_integracao));
--------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS callcenter.tabulacao_integracao ( id_tabulacao_integracao BIGSERIAL NOT NULL, id_tabulacao BIGINT NULL, id_integracao_tivea VARCHAR(255) NULL, CONSTRAINT pk_tabulacao_integracao_id_tabulacao_integracao PRIMARY KEY (id_tabulacao_integracao));
--------------------------------------------------------------------------

ALTER TABLE callcenter.pausa ADD horario_inicio time DEFAULT '00:00:00' NOT NULL;
ALTER TABLE callcenter.pausa ADD horario_fim time DEFAULT '00:00:00' NOT NULL;
ALTER TABLE callcenter.pausa ADD max_simultaneas integer DEFAULT 0 NOT NULL;

--------------------------------------------------------------------------
ALTER TABLE discador.lead_campanha_preview ADD integracao_campanha varchar(255) NULL;

INSERT INTO crm.frm_sql
(descricao, tag, obs, habilitar, p_sql, p_sql_where, p_sql_orderby, p_sql_groupby, p_sql_having, p_sql_valor, p_sql_descricao, p_sql_atributos)
(SELECT 'Grupo de Ramais', 'GRUPO_RAMAL', 'Listagem de Grupo de Ramais', 1, 'SELECT id_grupo_ramal,grupo_ramal FROM asterisk.grupo_ramal ', NULL, 'id_grupo_ramal', NULL, NULL, 'id_grupo_ramal', 'grupo_ramal', NULL WHERE NOT EXISTS (SELECT * FROM crm.frm_sql WHERE tag = 'GRUPO_RAMAL'));

--------------------------------------------------------------------------
ALTER TABLE crm.usuariosgrupos ADD perm_grupo_ramal varchar(255) NULL;
--------------------------------------------------------------------------
ALTER TABLE discador.controle_promessa ADD COLUMN id_lead_telefone_discagem bigint DEFAULT NULL;
--------------------------------------------------------------------------
ALTER TABLE discador.configuracao_carga_tivea ADD COLUMN "merge" smallint DEFAULT 0;
--------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" ("cod_loja", "cod_usuario", "datahora_registro", "descricao", "tag", "obs", "tipo") (SELECT '1', '2', NOW(), 'Gravacoes Storage', 'f_url_storage_gravacoes', 'Caminho de onde esta as gravacoes do Storage smart NX.. Ex: /record_calls2', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_url_storage_gravacoes'));
--------------------------------------------------------------------------
INSERT INTO crm.frm_sql("descricao", "tag", "obs", "habilitar", "p_sql", "p_sql_where", "p_sql_orderby", "p_sql_groupby", "p_sql_having", "p_sql_valor", "p_sql_descricao", "p_sql_atributos") (SELECT 'Campanhas', 'CAMPANHASNEW', 'Listagem de campanhas', 1, 'SELECT c.id_campanha, c.nome_campanha, c.data_inicio, c.data_termino, c.hora_inicio, c.hora_termino, c.id_tipo_campanha, c.rota_discagem, c.tentativas, c.datahora_registro, sc.status_campanha, tc.tipo_campanha, COALESCE(f.fila,fi.fila) as fila,CASE WHEN tc.id_tipo_campanha IS NULL THEN 999 ELSE tc.id_tipo_campanha END AS id_grupo_js, CASE WHEN tc.tipo_campanha IS NULL THEN ''N.I.'' ELSE tc.tipo_campanha END AS txt_grupo_js FROM callcenter.campanha c  LEFT JOIN callcenter.campanha_status cs ON cs.id_campanha = c.id_campanha AND cs.datahora_termino IS NULL LEFT JOIN callcenter.status_campanha sc ON cs.id_status_campanha = sc.id_status_campanha LEFT JOIN callcenter.tipo_campanha tc ON tc.id_tipo_campanha = c.id_tipo_campanha LEFT JOIN callcenter.campanha_fila f ON f.id_campanha = c.id_campanha AND f.datahora_termino IS NULL LEFT JOIN asterisk.fila fi ON fi.id_fila = f.id_fila', NULL, 'nome_campanha', NULL, NULL, 'id_campanha', 'nome_campanha', NULL WHERE NOT EXISTS (SELECT * FROM crm.frm_sql WHERE tag = 'CAMPANHASNEW'));
--------------------------------------------------------------------------
INSERT INTO "crm"."classificacao_sistema" ("cod_loja", "cod_usuario", "datahora_registro", "descricao", "tag", "obs", "tipo") (SELECT '1', '2', NOW(), 'Ocultar usuarios administrativo na tela de monitorar agentes', 'f_url_oculta_adm_monitor', 'Ocultar usuarios administrativo na tela de monitorar agentes', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_url_oculta_adm_monitor'));
--------------------------------------------------------------------------
ALTER TABLE callcenter.historico_mensagem DROP CONSTRAINT fk_id_carga;
--------------------------------------------------------------------------
ALTER TABLE crm.carga ADD COLUMN novos integer DEFAULT 0;
--------------------------------------------------------------------------
ALTER TABLE crm.carga ADD COLUMN descartados integer DEFAULT 0;
--------------------------------------------------------------------------
ALTER TABLE callcenter.historico_mensagem DROP CONSTRAINT fk_id_template;
--------------------------------------------------------------------------

CREATE INDEX idx_id_lead_discagem_id_lead
ON discador.lead_discagem
USING btree
(id_lead DESC);

	
CREATE INDEX idx_chamada_id_agente_agente
ON callcenter.chamada_agente
USING btree
(id_agente DESC);


CREATE INDEX idx_campanha_lead_id_carga
ON discador.campanha_lead
USING btree
(id_carga DESC);

--------------------------------------------------------------------------

CREATE TABLE discador.lgpd_configuracao (
	id serial NOT NULL,
	agente int NOT NULL,
	exportar_mensal smallint NOT NULL DEFAULT 0,
	visualizar_dados smallint NOT NULL DEFAULT 0,
	exportar_dados smallint NOT NULL DEFAULT 0,
	dt_registro timestamp NOT NULL DEFAULT now(),
	CONSTRAINT lgpd_configuracao_pk PRIMARY KEY (id)
);
CREATE INDEX lgpd_configuracao_id_idx ON discador.lgpd_configuracao (id);
CREATE INDEX lgpd_configuracao_agente_idx ON discador.lgpd_configuracao (agente);
CREATE INDEX lgpd_configuracao_exportar_mensal_idx ON discador.lgpd_configuracao (exportar_mensal);
CREATE INDEX lgpd_configuracao_visualizar_dados_idx ON discador.lgpd_configuracao (visualizar_dados);
CREATE INDEX lgpd_configuracao_exportar_dados_idx ON discador.lgpd_configuracao (exportar_dados);
CREATE INDEX lgpd_configuracao_dt_registro_idx ON discador.lgpd_configuracao (dt_registro);

--------------------------------------------------------------------------

CREATE TABLE discador.lgpd_log (
	id_log serial NOT NULL,
	ip varchar(50) NOT NULL,
	agente int NOT NULL,
	acao varchar(100), 
	info_adicional text, 
	dt_registro timestamp NOT NULL DEFAULT now(),
	CONSTRAINT lgpd_log_pk PRIMARY KEY (id_log)
);
CREATE INDEX lgpd_log_id_log_idx ON discador.lgpd_log (id_log);
CREATE INDEX lgpd_log_ip_idx ON discador.lgpd_log (ip);
CREATE INDEX lgpd_log_agente_idx ON discador.lgpd_log (agente);
CREATE INDEX lgpd_log_acao_idx ON discador.lgpd_log (acao);
CREATE INDEX lgpd_log_dt_registro_idx ON discador.lgpd_log (dt_registro);

--------------------------------------------------------------------------

ALTER TABLE "crm"."carga" 
  ADD COLUMN "ip_cliente" varchar(100),
  ADD COLUMN "lgpd_pd" varchar(255),
  ADD COLUMN "lgpd_com" varchar(255);

--------------------------------------------------------------------------


CREATE TABLE "discador"."lgpd_tipo_baselegal" (
  "id" serial NOT NULL ,
  "descricao" varchar(255) COLLATE "pg_catalog"."default",
  "habilitado" smallint DEFAULT 1,
  CONSTRAINT "lgpd_tipo_baselegal_pkey" PRIMARY KEY ("id")
)
;
ALTER TABLE "discador"."lgpd_tipo_baselegal" OWNER TO "dbcallcenter";

-- ----------------------------
-- Records of lgpd_tipo_baselegal
-- ----------------------------

INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (1, 'Nao sei dizer / nao possuo Base Legal', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (2, 'Consentimento', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (3, 'Legitimo interesse', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (4, 'Contrato preexistente', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (5, 'Obrigação Legal, Processo Judicial ou Proteção de Credito', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (6, 'Interesse vital ou Tutela da saúde', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (7, 'Interesse publico', 1);

--------------------------------------------------------------------------
SELECT setval('crm.menusub_cod_menusub_seq', (SELECT MAX(cod_menusub)+1 FROM crm.menusub), false);
INSERT INTO crm.menusub(cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) (SELECT 1, 'LGPD', 'ModConfLGPD', 4, 1, 0, NULL, NULL, 1, NULL, '{3}' WHERE NOT EXISTS (SELECT * FROM crm.menusub WHERE modulovar = 'ModConfLGPD'));

INSERT INTO crm.menusub(cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) (SELECT 7, 'SMS', 'ModRelGraficoSms', 4, 1, 0, 5, NULL, 1, NULL, '{3}' WHERE NOT EXISTS (SELECT * FROM crm.menusub WHERE modulovar = 'ModRelGraficoSms'));
--------------------------------------------------------------------------

ALTER TABLE crm.configuracoes ADD COLUMN key_lgpd text DEFAULT NULL;

--------------------------------------------------------------------------

ALTER TABLE callcenter.campanha ADD COLUMN visualizar_dados smallint  DEFAULT 1;

--------------------------------------------------------------------------
CREATE TABLE discador.lgpd_exclusion_queue (
	id serial NOT NULL,
	cpf_cnpj varchar(100) NOT NULL,
	dt_registro timestamp NOT NULL DEFAULT now(),
	CONSTRAINT lgpd_exclusion_queue_pk PRIMARY KEY (id)
);
CREATE INDEX lgpd_exclusion_queue_id_idx ON discador.lgpd_exclusion_queue (id);
CREATE INDEX lgpd_exclusion_queue_cpf_idx ON discador.lgpd_exclusion_queue (cpf_cnpj);
CREATE INDEX lgpd_exclusion_queue_dt_registro_idx ON discador.lgpd_exclusion_queue (dt_registro);

--------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION discador.tratacpflgpd() RETURNS trigger
 LANGUAGE plpgsql
AS $BODY$
BEGIN
	UPDATE discador.lgpd_exclusion_queue a set cpf_cnpj = trim(case  when length(cpf_cnpj) > 11 then to_char(cpf_cnpj::bigint,'00"."000"."000""/0000"-"00')  else replace(to_char(cpf_cnpj::bigint, '000"."000"."000"-"00'), ':', '.') end) WHERE id = NEW.id;
	RETURN NEW;
END;
$BODY$;

CREATE TRIGGER tratacpflgpd AFTER INSERT ON discador.lgpd_exclusion_queue FOR EACH ROW EXECUTE PROCEDURE discador.tratacpflgpd();

--------------------------------------------------------------------------

INSERT INTO crm.menusub(cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso) (SELECT 7, 'Relatorio Rechamada', 'ModRelRechamada', 4, 1, 0, 41, NULL, 1, NULL, '{}' WHERE NOT EXISTS (SELECT * FROM crm.menusub WHERE modulovar = 'ModRelRechamada'));

--------------------------------------------------------------------------

ALTER TABLE discador.lgpd_exclusion_queue ADD CONSTRAINT uniq_cpf_cnpj UNIQUE (cpf_cnpj);

--------------------------------------------------------------------------

-- Desabilitar menus nao utilizados ( PO - Gabriel )

UPDATE crm.menusub SET habilitar = 0,exibir_menu = 0 WHERE modulovar IN (
'ModColaborador','ModColaboradoresInteracoes','ModColaboradoresInteracoesResp',
'ModRelColaborador','ModMonitoriaFormularios','ModLegenda',
'ModLegendaTipo','ModOpcoes','ModOperadora','ModSla',
'ModTemplateEmail','ModSMSTemplate',
'ModOpcoesTipo','ModFrmOpcoesConf','ModURLExterno',
'ModPersonalizacao','ModServidorSmtp','ModPerfilAcesso','ModCargaConf',
'ModFrmAcoesConf','ModFrmTeste','ModFrmCamposConf','ModFrmMascarasConf',
'ModIntencao','ModGrupoIntencao','ModPBXKhompGrupo',
'	ModRelLogs','ModTaskCalendario','ModTaskFeriado','ModContatosSubclassificacao',
'ModAgentes'); 

UPDATE crm.menusub SET habilitar = 0,exibir_menu = 0 WHERE descricao IN ('Tempos de agentes'); 

ALTER TABLE discador.integracao_ura_cpf ADD COLUMN telefone character varying(20);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN email character varying(100);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN cep character varying(20);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN segment character varying(50);
ALTER TABLE discador.integracao_ura_cpf ADD COLUMN subsegment character varying(50);

--------------------------------------------------------------------------

UPDATE crm.menusub SET descricao = 'Lista Restrita' WHERE modulovar = 'ModBlacklistImportar' AND descricao = 'Blacklist';

--------------------------------------------------------------------------

UPDATE crm.menusub SET cod_menutop = 1,habilitar = 1,codgrupo_menu = 41,exibir_menu = 1 WHERE modulovar = 'ModRelChat';

--------------------------------------------------------------------------

UPDATE crm.menusub SET exibir_menu = 0 WHERE habilitar = 0;

--------------------------------------------------------------------------

INSERT INTO callcenter.status_chamada(status_chamada)(SELECT 'Enviado' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Enviado'));

--------------------------------------------------------------------------

CREATE TABLE discador.tronco_sms (
	id serial NOT NULL,
	nome varchar(255) NOT NULL,
	url varchar(255) NOT NULL,
	method varchar(100) NOT NULL, 
	token varchar(255) NOT NULL,
	client_name varchar(255) NOT NULL,
	custo numeric,
  custo_client numeric,
  fk smallint DEFAULT 0,
  enabled smallint DEFAULT 1,
  manual smallint DEFAULT 0,
	dt_registro timestamp NOT NULL DEFAULT now(),
	CONSTRAINT tronco_sms_pk PRIMARY KEY (id)
);

CREATE INDEX tronco_sms_nome_idx ON discador.tronco_sms (nome);
CREATE INDEX tronco_sms_url_idx ON discador.tronco_sms (url);
CREATE INDEX tronco_sms_method_idx ON discador.tronco_sms (method);
CREATE INDEX tronco_sms_token_idx ON discador.tronco_sms (token);
CREATE INDEX tronco_sms_client_name_idx ON discador.tronco_sms (client_name);
CREATE INDEX tronco_sms_custo_idx ON discador.tronco_sms (custo);
CREATE INDEX tronco_sms_custo_client_idx ON discador.tronco_sms (custo_client);
CREATE INDEX tronco_sms_fk_idx ON discador.tronco_sms (fk);
CREATE INDEX tronco_sms_enabled_idx ON discador.tronco_sms (enabled);
CREATE INDEX tronco_sms_manual_idx ON discador.tronco_sms (manual);
CREATE INDEX tronco_sms_dt_registro_idx ON discador.tronco_sms (dt_registro);
--------------------------------------------------------------------------
-- integracao sandbox

INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2019-12-03 08:15:23.000', 'Configuracao para envio de dados', 'a_webhook_event', 0, '0', 0, 5, '{"name":"sandbox","crm_module":"Login","url":"https://tracking.customerx.com.br/api/v1/trackings","method":"POST","data":{"external_id_client":"#ALTERAR#","identifier":"Login-Logout","type_tracking":"user","email":"crm|user_email","external_id_product":"7ea21d"},"headers":{"type":"text","header":"cache-control:no-cache,content-type:application/json,credential:85514fc2e81c38e56ae10f8fa3f1155c,key:6e99d7dbdcf5afdc6ee949196169e69c"}}', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'a_webhook_event'));

--------------------------------------------------------------------------

CREATE TABLE discador.tronco_sms_enviado (
	id serial NOT NULL,
	uniqueid varchar(255) NOT NULL,
	retorno text NOT NULL,
  id_tronco int NOT NULL,
	dt_registro timestamp NOT NULL DEFAULT now(),
	CONSTRAINT tronco_sms_enviado_pk PRIMARY KEY (id)
);

CREATE INDEX tronco_sms_enviado_uniqueid_idx ON discador.tronco_sms_enviado (uniqueid);
CREATE INDEX tronco_sms_enviado_id_tronco_idx ON discador.tronco_sms_enviado (id_tronco);
CREATE INDEX tronco_sms_enviado_retorno_idx ON discador.tronco_sms_enviado (retorno);
CREATE INDEX tronco_sms_enviado_dt_registro_idx ON discador.tronco_sms_enviado (dt_registro);


--------------------------------------------------------------------------

-- CronActions ( servico CRONJOB )

CREATE TABLE pbx.cron_actions (
  id serial NOT NULL,
  description varchar(150) NOT NULL,
  exec_action varchar(255) NOT NULL,
  exec_type varchar(20)  NOT NULL,
  exec_value varchar(255) NOT NULL,
  exec_time time(6),
  cron_tag varchar(50),
  enable int2 NOT NULL,
  updated_at timestamp(6),
  CONSTRAINT cron_actions_id_pk PRIMARY KEY (id)
);

CREATE INDEX cron_actions_description_idx ON pbx.cron_actions(description);
CREATE INDEX cron_actions_exec_action_idx ON pbx.cron_actions (exec_action);
CREATE INDEX cron_actions_exec_type_idx ON pbx.cron_actions (exec_type);
CREATE INDEX cron_actions_exec_value_idx ON pbx.cron_actions (exec_value);
CREATE INDEX cron_actions_exec_time_idx ON pbx.cron_actions (exec_time);
CREATE INDEX cron_actions_cron_tag_idx ON pbx.cron_actions (cron_tag);
CREATE INDEX cron_actions_enable_idx ON pbx.cron_actions (enable);
CREATE INDEX cron_actions_updated_at_idx ON pbx.cron_actions (updated_at);


INSERT INTO pbx.cron_actions(description, exec_action, exec_type, exec_value, exec_time, cron_tag, enable, updated_at) (SELECT 'Relatorio Mensal', 'sh /scripts/relatorioLeadMensal.sh', 'month', '1', '01:00:00', 'relatorio_mensal', 1, now() WHERE NOT EXISTS (SELECT * FROM pbx.cron_actions WHERE cron_tag = 'relatorio_mensal'));
INSERT INTO pbx.cron_actions(description, exec_action, exec_type, exec_value, exec_time, cron_tag, enable, updated_at) (SELECT 'Relatorio Primeira Quinzena', 'sh /scripts/relatorioLeadPquinzena.sh', 'month', '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15', '02:00:00', 'relatorio_primeira_quinzena', 1, now() WHERE NOT EXISTS (SELECT * FROM pbx.cron_actions WHERE cron_tag = 'relatorio_primeira_quinzena'));
INSERT INTO pbx.cron_actions(description, exec_action, exec_type, exec_value, exec_time, cron_tag, enable, updated_at) (SELECT 'Relatorio Segunda Quinzena', 'sh /scripts/relatorioLeadSquinzena.sh', 'month', '16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31', '03:00:00', 'relatorio_segunda_quinzena', 1, now() WHERE NOT EXISTS (SELECT * FROM pbx.cron_actions WHERE cron_tag = 'relatorio_segunda_quinzena'));
INSERT INTO pbx.cron_actions(description, exec_action, exec_type, exec_value, exec_time, cron_tag, enable, updated_at) (SELECT 'Truncate Tabela Tentativa Mensal', 'psql -U dbcallcenter dbcallcenter -c "TRUNCATE TABLE discador.controle_privacidade_mensal;" ', 'month', '1', '04:00:00', 'tentativa_mensal', 1, now() WHERE NOT EXISTS (SELECT * FROM pbx.cron_actions WHERE cron_tag = 'tentativa_mensal'));
INSERT INTO pbx.cron_actions(description, exec_action, exec_type, exec_value, exec_time, cron_tag, enable, updated_at) (SELECT 'Truncate Tabela Tentativa Diaria', 'psql -U dbcallcenter dbcallcenter -c "TRUNCATE TABLE discador.controle_privacidade;" ', 'day', '0,1,2,3,4,5,6', '22:30:00', 'tentativa_diaria', 1, now() WHERE NOT EXISTS (SELECT * FROM pbx.cron_actions WHERE cron_tag = 'tentativa_diaria'));

--------------------------------------------------------------------------

-- ajuste do layout para as datas da importacao conductor

UPDATE crm.carga_conf_registro SET campo ='dt2' WHERE campo = 'd2' AND id_carga_conf_tipo =49;
UPDATE crm.carga_conf_registro SET campo ='dt3' WHERE campo = 'd3' AND id_carga_conf_tipo =49;
UPDATE crm.carga_conf_registro SET campo ='dt4' WHERE campo = 'd4' AND id_carga_conf_tipo =49;
UPDATE crm.carga_conf_registro SET campo ='dt5' WHERE campo = 'd5' AND id_carga_conf_tipo =49;

--------------------------------------------------------------------------

UPDATE callcenter.tabulacao SET id_origem = ('999'||id_origem)::integer WHERE discador = 1 AND substring(id_origem::varchar from 1 for 3) != '999';


--------------------------------------------------------------------------

ALTER TABLE discador.tronco_sms ADD COLUMN bulk integer DEFAULT 0;
ALTER TABLE discador.tronco_sms ADD COLUMN id_client integer DEFAULT 0;

--------------------------------------------------------------------------

INSERT INTO callcenter.tipo_campanha(id_tipo_campanha,tipo_campanha)(SELECT 9,'Whatsapp' WHERE NOT EXISTS (SELECT * FROM callcenter.tipo_campanha WHERE tipo_campanha = 'Whatsapp'));


CREATE TABLE discador.tronco_whatsapp (
  id serial NOT NULL,
  id_campanha int NOT NULL,
  token text NOT NULL,
	contato_origem text NOT NULL,
	id_template text NOT NULL,
  configuracao text NOT NULL,
  updated_at timestamp(6),
  CONSTRAINT tronco_whatsapp_id_pk PRIMARY KEY (id)
);

CREATE INDEX tronco_whatsapp_id_campanha_idx ON discador.tronco_whatsapp(id_campanha);
CREATE INDEX tronco_whatsapp_token_idx ON discador.tronco_whatsapp(token);
CREATE INDEX tronco_whatsapp_configuracao_idx ON discador.tronco_whatsapp(configuracao);
CREATE INDEX tronco_whatsapp_id_template_idx ON discador.tronco_whatsapp(id_template);
CREATE INDEX tronco_whatsapp_contato_origem_idx ON discador.tronco_whatsapp(contato_origem);
CREATE INDEX tronco_whatsapp_updated_at_idx ON discador.tronco_whatsapp(updated_at);



INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 23,'Recebido' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Recebido'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 25,'Enviado/Nao_Entregue' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Enviado/Nao_Entregue'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 24,'Enviado/Confirmado' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Enviado/Confirmado'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 26,'Enviado/Aguardando' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Enviado/Aguardando'));

-- Dropando constraints Status_Chamada para ajustar bug dos status invertidos

ALTER TABLE callcenter.status_chamada DROP CONSTRAINT unique_status_chamada;

UPDATE callcenter.status_chamada SET status_chamada = 'Enviado/Confirmado' WHERE id_status_chamada = 24;
UPDATE callcenter.status_chamada SET status_chamada = 'Enviado/Nao_Entregue' WHERE id_status_chamada = 25;
UPDATE callcenter.status_chamada SET status_chamada = 'Enviado/Aguardando' WHERE id_status_chamada = 26;

-- Status Whatsapp/Meta

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 28,'Lida' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Lida'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 29,'Nao_Entregue' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Nao_Entregue'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 30,'Verificada' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Verificada'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 31,'Deletada' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Deletada'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 32,'Clickada' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Clickada'));

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 33,'Entregue' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Entregue'));

alter sequence callcenter.status_chamada_id_status_chamada_seq restart with 33;

-- Retornando constraints Status_Chamada para evitar bugs

ALTER TABLE callcenter.status_chamada ADD CONSTRAINT unique_status_chamada UNIQUE (status_chamada);


ALTER TABLE discador.tronco_whatsapp ADD COLUMN template_name text;

ALTER TABLE discador.tronco_whatsapp ADD COLUMN custo numeric DEFAULT 0;

INSERT INTO "crm"."classificacao_sistema" ("cod_loja", "cod_usuario", "datahora_registro", "descricao","valor", "tag", "obs", "tipo") (SELECT '1', '2', '2021-04-09 16:03:07', 'Habilitar relatorio de tabulacoes do robo','0', 'f_rel_tab_robo', '1 - habilitado 0 - desabilitado', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_rel_tab_robo'));

----------------------------------------------------------------------------------------------------------------------------------------------------
--- MELHORIA NO RESUBMETER

CREATE SEQUENCE discador.chamada_lead_resubmeter_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE discador.chamada_lead_resubmeter_seq
  OWNER TO dbcallcenter;
GRANT ALL ON SEQUENCE discador.chamada_lead_resubmeter_seq TO dbcallcenter;

create table if not exists discador.chamada_lead_resubmeter (
id_chamada_lead_resubmeter int8 NOT NULL DEFAULT nextval('discador.chamada_lead_resubmeter_seq'::regclass),
uniqueid character varying(40),
id_carga bigint not null,
id_lead bigint not null,
telefone varchar(50) null,
id_status_chamada integer,
datahora_termino_chamada timestamp with time zone,
constraint chamada_lead_resubmeter_pkey primary key (id_chamada_lead_resubmeter),
constraint uniq_uniqueid_chamada_resubmeter unique (uniqueid) ) with ( oids = false );

alter table discador.chamada_lead_resubmeter owner to dbcallcenter;

create index idx_chamada_lead_resubmeter_uniqueid on
discador.chamada_lead_resubmeter
	using btree (uniqueid desc nulls last);

create index idx_chamada_lead_resubmeter_id_lead on
discador.chamada_lead_resubmeter
	using btree (id_lead desc);

create index idx_chamada_lead_resubmeter_id_carga on
discador.chamada_lead_resubmeter
	using btree (id_carga desc);

create index idx_chamada_lead_resubmeter_telefone on
discador.chamada_lead_resubmeter
	using btree (telefone);

create index idx_chamada_lead_resubmeter_id_status_chamada on
discador.chamada_lead_resubmeter
	using btree (id_status_chamada);

create index idx_chamada_lead_resubmeter_datahora_termino_chamada on
discador.chamada_lead_resubmeter
	using btree (datahora_termino_chamada desc nulls last);

CREATE OR REPLACE FUNCTION discador.tableresubmeter() RETURNS trigger
 LANGUAGE plpgsql
AS $$
BEGIN
	INSERT INTO discador.chamada_lead_resubmeter
	(uniqueid, id_carga,id_lead, telefone, id_status_chamada, datahora_termino_chamada)
	VALUES(new.uniqueid,new.id_carga, new.id_lead, new.telefone, new.id_status_chamada, new.datahora_termino_chamada);
	RETURN NEW;
END;
$$;

create trigger table_resubmeter 
after insert
	on
	discador.chamadas_lead for each row execute procedure discador.tableResubmeter();
----------------------------------------------------------------------------------------------------------------------------------------------------
-- mostrar usuario que deu play na carga SMS
ALTER TABLE discador.campanha_lead 
  ADD COLUMN ult_usuario_ativador character varying(80);
 
CREATE INDEX idx_campanha_lead_ult_usuario_ativador
  ON discador.campanha_lead
  USING btree
  (ult_usuario_ativador);

ALTER TABLE discador.chamadas_lead ALTER COLUMN tipo_cadastro TYPE varchar(80) USING tipo_cadastro::varchar;

----------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.agendamento_mailing (
  id serial NOT NULL,
  id_campanha int NOT NULL,
  id_carga int NOT NULL,
  datahora_agenda timestamp(6),
	user_login varchar(50) NOT NULL,
	exec int NOT NULL,
  CONSTRAINT agendamento_mailing_id_pk PRIMARY KEY (id)
);

CREATE INDEX agendamento_mailing_id_idx ON discador.agendamento_mailing(id);
CREATE INDEX agendamento_mailing_id_campanha_idx ON discador.agendamento_mailing(id_campanha);
CREATE INDEX agendamento_mailing_id_carga_idx ON discador.agendamento_mailing(id_carga);
CREATE INDEX agendamento_mailing_datahora_agenda_idx ON discador.agendamento_mailing(datahora_agenda);
CREATE INDEX agendamento_mailing_user_login_idx ON discador.agendamento_mailing(user_login);
CREATE INDEX agendamento_mailing_exec_idx ON discador.agendamento_mailing(exec);

----------------------------------------------------------------------------------------------------------------------------------------------------

INSERT INTO crm.menusub(cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm, exibir_menu, configuracao, id_perfis_acesso)  (SELECT 7, 'Agendamento Maiiling', 'ModRelAgendamentoMailing', 2, 1, 0, 41, NULL, 1, NULL, '{1,2,3,4,5,6}' where not exists ( select * from crm.menusub where modulovar = 'ModRelAgendamentoMailing'));




----------------------------------------------------------------------------------------------------------------------------------------------------


ALTER TABLE discador.tronco_whatsapp ADD COLUMN max_tier integer DEFAULT 0;

ALTER TABLE discador.tronco_whatsapp ADD COLUMN max_day integer DEFAULT 0;

ALTER TABLE discador.tronco_whatsapp ADD COLUMN send_day integer DEFAULT 0;

----------------------------------------------------------------------------------------------------------------------------------------------------


ALTER TABLE crm.usuarios ADD COLUMN sms_manual smallint NOT NULL DEFAULT 0;

ALTER TABLE crm.usuarios ADD COLUMN sms_manual_livre smallint NOT NULL DEFAULT 0;
ALTER TABLE discador.configuracao_carga_tivea ADD agrupador_id varchar(255) NULL DEFAULT ''::character varying;


----------------------------------------------------------------------------------------------------------------------------------------------------


INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2019-12-03 08:15:23.000', 'Limite Maximo de Caracteres no template SMS', 'a_max_template_sms', 1, '150', 0, 5, 'Padrao: 150', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'a_max_template_sms'));


insert into	pbx.cron_actions(description,exec_action,exec_type,exec_value,exec_time,cron_tag,enable,updated_at) (select	'BK Pmaster CSV','sh /var/www/html/crm/scripts/BKPmasterCSV.sh','day','7','22:00:00','BKPmasterCSV',1,now() where not exists ( select * from pbx.cron_actions where cron_tag = 'BKPmasterCSV'));

----------------------------------------------------------------------------------------------------------------------------------------------------

UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 1 AND habilitado = 1;

----------------------------------------------------------------------------------------------------------------------------------------------------


CREATE OR REPLACE FUNCTION discador.copiaLeadDiscagem() RETURNS trigger
 LANGUAGE plpgsql
AS $$
BEGIN
	INSERT INTO discador.lead_discagem(id_lead_discagem,nome, nome_fantasia, cpf_cnpj, documento_id, inscricao_municipal, dt_nascimento, endereco, numero, complemento, bairro, cidade, uf, pais, referencia, nome_mae, nome_pai, estado_civil, email, cep, tipo_cadastro, observacao, e_string1, e_string2, e_string3, e_string4, e_string5, e_string6, e_string7, e_string8, e_string9, e_string10, e_data1, e_data2, e_data3, e_data4, e_data5, e_int1, e_int2, e_int3, e_int4, e_int5, e_monetario1, e_monetario2, e_monetario3, e_monetario4, e_monetario5, dt_cadastro, id_integracao, id_carga, realizar_discagem, chamada_ativa, id_lead, processando, tentativa, datahora_gerar) VALUES ((SELECT coalesce(MAX(id_lead_discagem)+1,1) FROM discador.lead_discagem),NEW.nome, NEW.nome_fantasia, NEW.cpf_cnpj, NEW.documento_id, NEW.inscricao_municipal, NEW.dt_nascimento, NEW.endereco, NEW.numero, NEW.complemento, NEW.bairro, NEW.cidade, NEW.uf, NEW.pais, NEW.referencia, NEW.nome_mae, NEW.nome_pai, NEW.estado_civil, NEW.email, NEW.cep, NEW.tipo_cadastro, NEW.observacao, NEW.e_string1, NEW.e_string2, NEW.e_string3, NEW.e_string4, NEW.e_string5, NEW.e_string6, NEW.e_string7, NEW.e_string8, NEW.e_string9, NEW.e_string10, NEW.e_data1, NEW.e_data2, NEW.e_data3, NEW.e_data4, NEW.e_data5, NEW.e_int1, NEW.e_int2, NEW.e_int3, NEW.e_int4, NEW.e_int5, NEW.e_monetario1, NEW.e_monetario2, NEW.e_monetario3, NEW.e_monetario4, NEW.e_monetario5, NEW.dt_cadastro, NEW.id_integracao, NEW.id_carga, 1, 0, NEW.id_lead, 0, 0, NULL);
	RETURN NEW;
END;
$$;


CREATE
    TRIGGER copiaLeadDiscagem AFTER INSERT
        ON
        discador.lead FOR EACH ROW EXECUTE PROCEDURE discador.copiaLeadDiscagem();


----------------------------------------------------------------------------------------------------------------------------------------------------


CREATE OR REPLACE FUNCTION discador.copiaLeadDiscagemTelefone() RETURNS trigger
 LANGUAGE plpgsql
AS $$
BEGIN
	INSERT INTO discador.lead_discagem_telefone(id_lead_telefone_discagem,telefone, telefone_f, id_lead, ddd, operadora, tipo_tel, id_carga, realizar_discagem, processando) VALUES ((SELECT coalesce(MAX(id_lead_telefone_discagem)+1,1) FROM discador.lead_discagem_telefone),NEW.telefone, NEW.telefone_f, NEW.id_lead, NEW.ddd, NEW.operadora, NEW.tipo_tel, NEW.id_carga,1,0);
	RETURN NEW;
END;
$$;


CREATE
    TRIGGER copiaLeadDiscagemTelefone AFTER INSERT
        ON
        discador.lead_telefone FOR EACH ROW EXECUTE PROCEDURE discador.copiaLeadDiscagemTelefone();


----------------------------------------------------------------------------------------------------------------------------------------------------


INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2019-12-03 08:15:23.000', 'Disparo de Webhook na chamada', 'a_webhook_chamada', 0, '1', 0, 5, '{"method":"POST","url":"xxxx","token":"xxxx"}', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'a_webhook_chamada'));
  

----------------------------------------------------------------------------------------------------------------------------------------------------


UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 2 AND habilitado = 1;
UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 3 AND habilitado = 1;
UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 4 AND habilitado = 1;
UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 5 AND habilitado = 1;
UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 6 AND habilitado = 1;
UPDATE discador.lgpd_tipo_baselegal SET habilitado = 0 WHERE id = 7 AND habilitado = 1;



INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (8, 'Consentimento do titular', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (9, 'Cumprimento de obrigação legal ou regulatória', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (10, 'Execução de contrato ou procedimentos preliminares de contrato, do qual o titular seja parte, a seu pedido', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (11, 'Legítimo interesse', 1);
INSERT INTO "discador"."lgpd_tipo_baselegal" VALUES (11, 'Proteção do crédito', 1);

----------------------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE discador.lgpd_configuracao ADD COLUMN restricao_carga smallint NOT NULL DEFAULT 0;

----------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE discador.server_unified (
  id serial NOT NULL,
  descricao text NOT NULL,
  ip_gravacao text NOT NULL,
  ip_aplicacao text NOT NULL,
	ip_db text NOT NULL,
  database text NOT NULL,
  user_db text NOT NULL,
	password_db  text NOT NULL,
  CONSTRAINT server_unified_id_pk PRIMARY KEY (id)
);

CREATE INDEX server_unified_id_idx ON discador.server_unified(id);
CREATE INDEX server_unified_descricao_idx ON discador.server_unified(descricao);
CREATE INDEX server_unified_ip_gravacao_idx ON discador.server_unified(ip_gravacao);
CREATE INDEX server_unified_ip_aplicacao_idx ON discador.server_unified(ip_aplicacao);
CREATE INDEX server_unified_ip_db_idx ON discador.server_unified(ip_db);
CREATE INDEX server_unified_database_idx ON discador.server_unified(database);
CREATE INDEX server_unified_user_db_idx ON discador.server_unified(user_db);
CREATE INDEX server_unified_password_db_idx ON discador.server_unified(password_db);

----------------------------------------------------------------------------------------------------------------------------------------------------
---- auto diagnostico


INSERT INTO crm.menusub (cod_menusub ,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm,exibir_menu, configuracao) select (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub), 1,'Auto Diagnóstico', 'ModAutoDiagnostico', 2, 1, 0, NULL, NULL, 1, NULL from crm.menusub where not exists( select * from crm.menusub where modulovar = 'ModAutoDiagnostico') limit 1;
INSERT INTO crm.classificacao_sistema (cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo) (SELECT '1', '2', '2021-09-22 15:59:20.000', '% de analise do auto diagnostico', 'f_percent_campanha', '1', '90', '0','5', 'valor entre 0 a 100', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_percent_campanha'));

CREATE TABLE callcenter.auto_diagnostico (
  id_auto_diagnostico serial,
  descricao text,
  valor text,
  updated_at timestamp with time zone,
  CONSTRAINT auto_diagnostico_id_auto_diagnostico PRIMARY KEY (id_auto_diagnostico)
)
WITH (
  OIDS=FALSE
);

CREATE INDEX idx_id_auto_diagnostico ON
    callcenter.auto_diagnostico
        USING btree(id_auto_diagnostico);

CREATE INDEX idx_descricao_auto_diagnostico ON
    callcenter.auto_diagnostico
        USING btree(descricao);

CREATE INDEX idx_valor_auto_diagnostico ON
    callcenter.auto_diagnostico
        USING btree(valor);

INSERT INTO callcenter.auto_diagnostico
(descricao, valor) SELECT 'discador_down', 0  where not exists ( select * from callcenter.auto_diagnostico where descricao = 'discador_down');

INSERT INTO callcenter.auto_diagnostico
(descricao, valor) SELECT 'asterisk_dow', 0  where not exists ( select * from callcenter.auto_diagnostico where descricao = 'asterisk_dow');

INSERT INTO callcenter.auto_diagnostico
(descricao, valor) SELECT 'discador_duplicate', 0  where not exists ( select * from callcenter.auto_diagnostico where descricao = 'discador_duplicate');


insert into	pbx.cron_actions(description,exec_action,exec_type,exec_value,exec_time,cron_tag,enable,updated_at)
 (select 'AutoDiagnostico', 'sh /scripts/discador_autoDiagnostico.sh', 'frequency', '00:01:00', NULL, 'discador_autoDiagnostico', 1, now() where not exists ( select * from pbx.cron_actions where cron_tag = 'discador_autoDiagnostico'));



----------------------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE asterisk.pesquisa_registro ALTER COLUMN valor TYPE varchar(10) USING valor::varchar;


----------------------------------------------------------------------------------------------------------------------------------------------------


ALTER TABLE discador.campanha_lead ADD COLUMN id_template_sms integer DEFAULT NULL;


----------------------------------------------------------------------------------------------------------------------------------------------------


CREATE TABLE discador.agendamento_mailing_sms (
  id serial NOT NULL,
  id_carga integer NOT NULL,
  id_template_sms integer NOT NULL,	
  exec integer NOT NULL,
	updated_at timestamp with time zone,
  CONSTRAINT agendamento_mailing_sms_id_pk PRIMARY KEY (id)
);


CREATE INDEX discadorgendamento_mailing_sms_idx_id ON discador.agendamento_mailing_sms(id);
CREATE INDEX discadoragendamento_mailing_sms_idx_id_carga ON discador.agendamento_mailing_sms(id_carga);
CREATE INDEX discadoragendamento_mailing_sms_idx_id_template_sms ON discador.agendamento_mailing_sms(id_template_sms);
CREATE INDEX discadoragendamento_mailing_sms_idx_exec ON discador.agendamento_mailing_sms(exec);
CREATE INDEX discadoragendamento_mailing_sms_idx_updated_at ON discador.agendamento_mailing_sms(updated_at);


----------------------------------------------------------------------------------------------------------------------------------------------------


INSERT INTO crm.menusub (cod_menusub ,cod_menutop, descricao, modulovar, nivel, habilitar, mobile, codgrupo_menu, id_frm,exibir_menu, configuracao) select (SELECT (MAX(cod_menusub)+1) as id FROM crm.menusub), 7,'Disparo SMS', 'ModDisparoSMS', 4, 1, 0, 4, NULL, 1, NULL from crm.menusub where not exists( select * from crm.menusub where modulovar = 'ModDisparoSMS') limit 1;
ALTER TABLE asterisk.ramal ADD COLUMN transfer smallint  DEFAULT 1;


----------------------------------------------------------------------------------------------------------------------------------------------------


ALTER user dbcallcenter with password '0%kcUSF:{0Aax@';


----------------------------------------------------------------------------------------------------------------------------------------------------

ALTER TABLE discador.chamadas_lead_receptivo add COLUMN agente_rechamada varchar;
ALTER TABLE discador.chamadas_receptivo add COLUMN agente_rechamada varchar;

CREATE INDEX idx_chamadas_lead_receptivo_agente_rechamada
ON discador.chamadas_lead_receptivo
USING btree
(agente_rechamada DESC);

CREATE TABLE discador.cargas_multiplas (
	id bigserial NOT NULL,
	id_layout int8 NOT NULL,
	id_campanha int8 NOT NULL,
	lgpd_pd int8 NOT NULL,
	lgpd_com int8 NOT NULL,
	arquivo text NOT NULL,
	repetidos int2 NOT NULL DEFAULT 0,
	iniciar_ativo int2 NOT NULL DEFAULT 0
);

INSERT INTO callcenter.auto_diagnostico
(descricao, valor) SELECT 'automacao_down', 0  where not exists ( select * from callcenter.auto_diagnostico where descricao = 'automacao_down');

INSERT INTO asterisk.variavel_global(variavel, valor, datahora_inicio)  SELECT 'HOST_API', 'hostcrm', now() WHERE NOT EXISTS (SELECT * FROM asterisk.variavel_global WHERE variavel = 'HOST_API');

INSERT INTO asterisk.variavel_global(variavel, valor, datahora_inicio)  SELECT 'PROT_WEB', 'http', now() WHERE NOT EXISTS (SELECT * FROM asterisk.variavel_global WHERE variavel = 'PROT_WEB');

INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario,datahora_registro, descricao, tag,obs, tipo) (SELECT '1', '2', '2021-11-19 16:03:07', 'Cliente ID NPS', 'f_clienteId_nps', 'id de identificação do cliente nps', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_clienteId_nps')); 

update  crm.classificacao_sistema set valor ='0d5fcffa54c7738f0daefc887d6e1508' where tag='f_campanha_nps_chave';

INSERT INTO callcenter.status_chamada(id_status_chamada,status_chamada)(SELECT 27,'Aguardando Operadora' WHERE NOT EXISTS (SELECT * FROM callcenter.status_chamada WHERE status_chamada = 'Aguardando Operadora'));

-------- integracao sms kolmeya -----------------

ALTER TABLE discador.tronco_sms ADD COLUMN id_broker_kolmeya integer;

CREATE TABLE discador.sms_controle_kolmeya
(
  id bigserial NOT NULL,
  nome_csv text,
  status int2,
  id_carga bigint,
  atualizado int2 NOT NULL DEFAULT 0,
  processando int2 NOT NULL DEFAULT 0
)
WITH (
  FILLFACTOR=70,
  OIDS=FALSE
);
ALTER TABLE discador.sms_controle_kolmeya
  OWNER TO dbcallcenter;

CREATE INDEX idx_sms_controle_kolmeya_id
  ON discador.sms_controle_kolmeya
  USING btree
  (id DESC);

CREATE INDEX idx_sms_controle_kolmeya_nome_csv
  ON discador.sms_controle_kolmeya
  USING btree
  (nome_csv DESC);

CREATE INDEX idx_sms_controle_kolmeya_id_carga
  ON discador.sms_controle_kolmeya
  USING btree
  (id_carga DESC);

CREATE INDEX idx_sms_controle_kolmeya_atualizado
  ON discador.sms_controle_kolmeya
  USING btree
  (atualizado DESC);

CREATE INDEX idx_sms_controle_kolmeya_processando
  ON discador.sms_controle_kolmeya
  USING btree
  (processando DESC);

INSERT INTO discador.tronco_sms (nome, url,method,token ,client_name, custo, custo_client, fk, enabled, manual, dt_registro, bulk, id_client, id_broker_kolmeya) (SELECT 'KOLMEYA', '2','POST','9DKLsGWhtk8MuYgmX8RhVuorgcyGVrVPK4KU5wPS','0', 0, 0, 0, 1, 0, '2021-02-24 11:40:55.000', 1, 5, 0 WHERE NOT EXISTS  (SELECT * FROM discador.tronco_sms WHERE nome ='KOLMEYA')); 

------- fim integracao sms kolmeya -----------------

INSERT INTO crm.classificacao_sistema(cod_loja,valor ,cod_usuario,datahora_registro, descricao, tag,obs, tipo) (SELECT '1','0' ,'2', '2021-11-19 16:03:07', 'CLIENTE SSL', 'f_protocolo_ssl', 'identificar se o cliente possui ssl colocar valor 1 ao ativar', '3' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_protocolo_ssl'));

------------------------- rd station ---------------------------------
CREATE TABLE discador.configuracao_rd(
	id bigserial NOT NULL,
	client_id varchar(255) NULL,
	client_secret varchar(255) NULL,
	code varchar(255) NULL,
  url_callback varchar(255) NULL,
	CONSTRAINT pk_configuracao_rd_id PRIMARY KEY (id)
);

CREATE TABLE discador.configuracao_carga_rd (
	id bigserial NOT NULL,
	horario_inicial varchar(10) NULL,
	segmentacao varchar(255) NULL,
  name_segmentacao varchar(255) NULL,
	id_campanha int4 NULL,  
	repetir int2 NULL DEFAULT 0,
  exec_unico int2 NULL DEFAULT 0,
	CONSTRAINT pk_configuracao_carga_rd_id PRIMARY KEY (id)
);

ALTER TABLE asterisk.fila ADD COLUMN transfer smallint  DEFAULT 1;
ALTER TABLE discador.campos_lead ADD COLUMN encriptar smallint  DEFAULT 0;
ALTER TABLE discador.configuracao_carga_tivea add COLUMN nome_carga_lote varchar;
ALTER TABLE pbx.cron_actions ALTER COLUMN cron_tag TYPE varchar(255) USING cron_tag::varchar;

ALTER TABLE callcenter.campanha ADD id_origem_pesquisa_satisfacao integer NULL DEFAULT null;

------------------------- pipe drive ---------------------------------

CREATE TABLE discador.configuracao_pipedrive (
	id bigserial NOT NULL,
	end_auth varchar(255) NULL,
	token varchar(255) NULL,
	end_pipeline_funis varchar(255) NULL,
  end_stage_status varchar(255) NULL,
	CONSTRAINT pk_configuracao_pipedrive_id PRIMARY KEY (id)
);

CREATE TABLE discador.configuracao_carga_pipedrive (
	id bigserial NOT NULL,
	horario_inicial varchar(10) NULL,
	pipeline_funis varchar(255) NULL,
  stage_status varchar(255) NULL,
	id_campanha int4 NULL,  
	repetir int2 NULL DEFAULT 0,
  exec_unico int2 NULL DEFAULT 0,
	CONSTRAINT pk_configuracao_carga_pipedrive_id PRIMARY KEY (id)
);

ALTER TABLE discador.chamadas_lead ADD rota SMALLINT;
ALTER TABLE callcenter.chamada_agente ADD rota SMALLINT;

ALTER TABLE discador.tronco_sms ADD COLUMN processando integer;
ALTER TABLE discador.tronco_sms ADD COLUMN custo_client_manual numeric;

------------------------- tela dpsp ---------------------------------

INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2022-08-26 08:15:23.000', 'habilitar/desabilitar tela de atendimento blindados DPSP', 'f_blindados_dpsp', 0, '0', 0, 5, 'Para desativar utilize o valor 0 e ativar o valor 1', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_blindados_dpsp'));

------------------------- acordo tivea bahamas ---------------------------------

INSERT INTO crm.classificacao_sistema(cod_loja, cod_usuario, datahora_registro, descricao, tag, status, valor, grupos_usuarios, nivel, obs, tipo)
(SELECT 1, 2, '2022-08-29 08:15:23.000', 'habilitar/desabilitar o acordo com a api tivea', 'f_acordo_tivea', 0, '0', 0, 5, 'Para desativar utilize o valor 0 e ativar o valor 1', '5'
  WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_acordo_tivea'));

ALTER TABLE asterisk.cartao_operacao  ADD COLUMN uniqueid character varying(40);
-------------------- octagora integracao ------------------------------
-------------------- octagora integracao ------------------------------
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2022-12-06 10:46:23', 'Habilitar chamada de video com a octagora.', 'f_octagora', 0, '0', 0, 5, 'Apenas para cliente com integração na octagora.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_octagora'));
INSERT INTO "crm"."classificacao_sistema" (cod_loja, cod_usuario, datahora_registro, descricao, tag, STATUS, valor, grupos_usuarios, nivel, obs, tipo) (SELECT 1, 2, '2022-12-06 10:46:23', 'URL de integracao octagora Prod/QA.', 'f_octagora_url', 0, 'https://app-stg.octagora.com/Live/Security/StartTicketByIntegration', 0, 5, 'Apenas para cliente com integração na octagora.', '5' WHERE NOT EXISTS (SELECT * FROM crm.classificacao_sistema WHERE tag = 'f_octagora_url'));
ALTER TABLE crm.usuarios ALTER COLUMN cod_integracao TYPE varchar(255) USING cod_integracao::varchar;

ALTER TABLE callcenter.renitencia ADD COLUMN respeitar_renitencia smallint  DEFAULT 0;		
ALTER TABLE callcenter.tabulacao ADD COLUMN respeitar_renitencia smallint  DEFAULT 0;