﻿--  select * from pbx_funcoes_internas  where id_prog in(112, 113, 115, 116);

/**
 * @author Amarildo Pereira
 * @copyright (c) 2020, Simples IP.
 * @data 2020-08-11
 * Descricao: Modificar campanha do discador para suportar multiplos tipos de campanha,
 * com e-mail, sms, app, ura, power dial.
 * O arquivo da campanha sofrera alteracoes para suportar os multiplos tipos de registro,
 * o primeiro campo do registro indicara o tipo de campanha, sendo:
 * 1 -> Campanha discador semi-automatico;
 * 3 -> Campanha de e-mail;
 * 4 -> Campanha de SMS;
 * 5 -> Campanha de discador URA;
 * 6 -> Campanha de discador Power Dial;
 * 7 -> Campanha de discador Preditivo;
 * 8 -> Campanha para App, um campo indicara o tipo do app e a API de envio devera fazer o tratamento;
 * 2 -> Indica registros da campanha, ou alvos com as devidas configuracoes para cada tipo de envio. 
 */

  --select * from pbx_dacs;
  Select * from pbx_campanha;
  Select * from pbx_campanha_contato;
  Select * from pbx_campanha_contato_display;
  Select * from pbx_campanha_contato_fone;
  Select * from pbx_campanha_contato_status;
  Select * from pbx_campanha_lista;  
  select * from pbx_campanha_operacao; 
  Select * from pbx_campanha_status;
  Select * from pbx_campanha_usuarios;

delete from pbx_campanha where cmp_id = 72;
delete from pbx_campanha_contato where cmp_id = 72;
delete from pbx_campanha_contato_display where cmp_id = 72;
delete from pbx_campanha_contato_fone where cmp_id = 72;
delete from pbx_campanha_lista where cmp_id = 72;  
delete from pbx_campanha_operacao where cmp_id = 72; 
delete from pbx_campanha_usuarios where cmp_id = 72;


 -- Configuracao do status da campanha.
 /**
  * Status da campanha.
  * 0 -> Excluida
  * 1 -> Ativa
  * 2 -> Inativa
  * 3 -> Cocluida
  * A tabela "pbx_campanha_status armazena" estes status.
  * select cpst_id, cpst_nome, cpst_status from pbx_campanha_status; 
  * Valores iniciais:
  	insert into pbx_campanha_status values(0,'Excluida', 1);
  	insert into pbx_campanha_status values(1,'ATIVA', 1);
  	insert into pbx_campanha_status values(2,'INATIVA',1);
  	insert into pbx_campanha_status values(3,'CONCLUIDA',1);
  *
  * Metadata da tabela:
  *	-- DROP TABLE pbx_campanha_status;
  	CREATE TABLE pbx_campanha_status(
  	cpst_id integer NOT NULL,
  	cpst_nome character varying(60),
	cpst_status integer NOT NULL DEFAULT 1,
	CONSTRAINT pbx_campanha_status_pkey PRIMARY KEY (cpst_id)
	);
  *
  */



  



  
-----------------------------------------------------------------------------------------------------------------------------------------
| ID	|                                 DESCRICAO		 			| 		     ARQUIVO			|
-----------------------------------------------------------------------------------------------------------------------------------------
|112	| Lista campanhas e seus status							| discador/campanha/campanha.php;		|
-----------------------------------------------------------------------------------------------------------------------------------------
|113	| Insere nova campanha ou adciona listas a campanha existente			| discador/campanha/campanhaLista.php		|
-----------------------------------------------------------------------------------------------------------------------------------------
|115	| Permite associar usuários as campanhas					| discador/campanha/campanhaUsuario.php		|
-----------------------------------------------------------------------------------------------------------------------------------------
|116	| Alterar os status das campanhas						| discador/campanha/campanhaAtivacao.php	|
-----------------------------------------------------------------------------------------------------------------------------------------
||||
||||
||||
||||
||||
-----------------------------------------------------------------------------------------------------------------------------------------

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

/*
 * Alteracoes necessarias
 */
 alter table pbx_campanha_contato_fone  alter column conf_fone type varchar(128);
 alter table pbx_campanha add cmp_dados_envio text;
 alter table pbx_campanha_lista add list_dados_envio text;


/*
 * Tabelas removidas do projeto CAMPANHAS.
 * Tabelas:
 * 	pbx_campanha_agendamento;
 *	pbx_campanha_audio;
 *	pbx_chamadas_internas;
 *	pbx_campanha_canais_discando;
 *	pbx_campanha_complemento;
 *	pbx_campanha_modelos;
 *	pbx_campanha_troncos;
 *	pbx_campanha_grupos;


-- DROP TABLE pbx_campanha_agendamento;
CREATE TABLE pbx_campanha_agendamento
(
  agd_matricula character varying(4) NOT NULL,
  agd_data timestamp without time zone NOT NULL,
  agd_fone character varying(30) NOT NULL,
  agd_tipo integer,
  agd_status character varying(50),
  conf_id integer NOT NULL,
  cmp_id integer NOT NULL,
  list_id integer NOT NULL,
  cont_id integer NOT NULL,
  data_reg timestamp without time zone NOT NULL DEFAULT now(),
  agd_agendado integer NOT NULL DEFAULT 0,
  agd_id serial NOT NULL,
  agd_callfile character varying(255),
  CONSTRAINT "pkCampanhaComplemento" PRIMARY KEY (agd_matricula, agd_fone, agd_data, agd_id)
);

-- DROP TABLE pbx_campanha_audio;

CREATE TABLE pbx_campanha_audio
(
  uniqueid character varying(32) NOT NULL,
  aud_nome character varying(100),
  matricula character varying(4),
  aud_data date,
  data_inicio timestamp without time zone NOT NULL DEFAULT now(),
  data_fim timestamp without time zone,
  cmp_id integer
);

-- DROP VIEW pbx_chamadas_internas;

CREATE OR REPLACE VIEW pbx_chamadas_internas AS 
 SELECT 'interna'::character varying AS tipo, 0 AS iddac, '-'::character varying AS fila, '-'::character varying AS apelido, '0'::character varying AS matricula, a.calldate, a.src, b.destino, a.billsec AS duration, COALESCE(a.userfield::text, c.aud_nome::text) AS userfield, 0 AS protocolo
   FROM pbx_bilhetes a
   JOIN pbx_bilhetes_complemento b ON b.uniqueid2::text = a.uniqueid::text
   LEFT JOIN pbx_campanha_audio c ON c.uniqueid::text = a.uniqueid::text
  WHERE rtrim(a.userfield::text) <> ''::text AND b.direcao::text = 'interna'::text AND a.billsec > 0;


 -- DROP TABLE pbx_campanha_canais_discando;

CREATE TABLE pbx_campanha_canais_discando
(
  id_canais serial NOT NULL,
  id_cliente integer,
  canal character varying(200),
  data timestamp without time zone,
  status integer NOT NULL DEFAULT 0,
  CONSTRAINT pbx_campanha_canais_discando_pkey PRIMARY KEY (id_canais)
);

-- DROP TABLE pbx_campanha_complemento;
CREATE TABLE pbx_campanha_complemento
(
  id bigserial NOT NULL,
  uniqueid character varying(32) NOT NULL,
  matricula character varying(10) NOT NULL,
  login_id integer,
  ramal character varying(10),
  cmp_id bigint,
  list_id bigint,
  cont_id bigint,
  conf_id bigint,
  data_reg timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT pbx_campanha_complemento_pkey PRIMARY KEY (id)
);;

-- Index: "idxCmpCompConfId"

-- DROP INDEX "idxCmpCompConfId";

CREATE INDEX "idxCmpCompConfId"
  ON pbx_campanha_complemento
  USING btree
  (conf_id);

-- Index: "idxCmpCompMatricula"

-- DROP INDEX "idxCmpCompMatricula";

CREATE INDEX "idxCmpCompMatricula"
  ON pbx_campanha_complemento
  USING btree
  (matricula);

-- Index: "idxCmpComplLoginId"

-- DROP INDEX "idxCmpComplLoginId";

CREATE INDEX "idxCmpComplLoginId"
  ON pbx_campanha_complemento
  USING btree
  (login_id);

-- Index: "idxCmpComplUnqid"

-- DROP INDEX "idxCmpComplUnqid";

CREATE INDEX "idxCmpComplUnqid"
  ON pbx_campanha_complemento
  USING btree
  (uniqueid);

-- DROP TABLE pbx_campanha_modelos;
-- select * from pbx_campanha_modelos
CREATE TABLE pbx_campanha_modelos
(
  cpmd_id serial NOT NULL,
  cmp_id integer NOT NULL,
  cpmd_modelo character varying(100),
  cpmd_nome_modelo character varying(100),
  cpmd_recorte character varying(10),
  cpmd_acrescenta character varying(10),
  id_usuario integer,
  data_registro timestamp without time zone NOT NULL DEFAULT now(),
  ident_proc character varying(255),
  CONSTRAINT pbx_campanha_modelos_pkey PRIMARY KEY (cpmd_id)
);

-- DROP TABLE pbx_campanha_troncos;
CREATE TABLE pbx_campanha_troncos
(
  cptr_id serial NOT NULL,
  cmp_id integer,
  cpmd_id integer,
  cptr_tronco integer,
  cptr_nome_tronco character varying(100),
  id_usuario integer,
  data_registro timestamp without time zone NOT NULL DEFAULT now(),
  ident_proc character varying(255),
  cpmd_modelo character varying(100),
  CONSTRAINT pbx_campanha_troncos_pkey PRIMARY KEY (cptr_id)
);

-- DROP TABLE pbx_campanha_grupos;

CREATE TABLE pbx_campanha_grupos
(
  cmp_id integer NOT NULL,
  gp_id integer NOT NULL,
  CONSTRAINT pbx_campanha_grupos_pkey PRIMARY KEY (cmp_id, gp_id)
);

 */