create table PRT_GESTMSG_AGENDAMENTO (
	uuid_ VARCHAR(75) null,
	agendamentoId LONG not null primary key,
	mensagemId LONG,
	companyId LONG,
	groupId LONG,
	tipoAgendamento INTEGER,
	dataCalendario DATE null,
	dataInicio DATE null,
	dataFim DATE null,
	padraoRecorrencia INTEGER,
	frequencia INTEGER,
	diarioTodos BOOLEAN,
	semanalDias VARCHAR(75) null,
	mensalDiaFrequencia INTEGER,
	dataAtualizacao DATE null,
	dataEnvio DATE null,
	situacaoEnvio INTEGER,
	erroEnvio BOOLEAN,
	mensagemErro VARCHAR(75) null
);

create table PRT_GESTMSG_ANEXO_MENSAGEM (
	uuid_ VARCHAR(75) null,
	anexoMensagemId LONG not null primary key,
	mensagemId LONG,
	companyId LONG,
	groupId LONG,
	userId LONG,
	dataCriacao DATE null,
	anexoUrl VARCHAR(255) null,
	fileName VARCHAR(255) null,
	versao VARCHAR(75) null,
	contentType VARCHAR(75) null,
	ativo BOOLEAN,
	anexoFileEntryId LONG,
	anexoPath VARCHAR(255) null
);

create table PRT_GESTMSG_GRP_DESTINATARIO (
	uuid_ VARCHAR(75) null,
	grupoDestinatarioId LONG not null primary key,
	companyId LONG,
	groupId LONG,
	userId LONG,
	nome VARCHAR(75) null,
	finalidade TEXT null,
	userIdResponsaveis VARCHAR(75) null,
	listaTemporaria BOOLEAN,
	dataFinalListaTemporaria DATE null,
	envioEmNomeLista BOOLEAN,
	userIdNomesLista VARCHAR(75) null,
	listaModerada BOOLEAN,
	userIdListaModerada VARCHAR(75) null,
	ativo BOOLEAN,
	dataCriacao DATE null,
	dataAtualizacao DATE null,
	tipoLista INTEGER
);

create table PRT_GESTMSG_MAIL_DESTINATARIO (
	uuid_ VARCHAR(75) null,
	emailDestinatarioId LONG not null primary key,
	email VARCHAR(75) null,
	grupoDestinatarioId LONG
);

create table PRT_GESTMSG_MENSAGEM (
	uuid_ VARCHAR(75) null,
	mensagemId LONG not null primary key,
	companyId LONG,
	groupId LONG,
	templateId LONG,
	grupoDestinatarioIds VARCHAR(255) null,
	contaSaidaId LONG,
	codigoMensagem VARCHAR(75) null,
	assunto VARCHAR(255) null,
	conteudo TEXT null,
	prioridade INTEGER,
	ativo BOOLEAN,
	tipoEnvio INTEGER,
	situacaoEnvio INTEGER,
	nomeSolicitante VARCHAR(75) null,
	userIdCriador LONG,
	dataSolicitacao DATE null,
	dataUltimoEnvio DATE null,
	dataAlteracao DATE null,
	rascunho BOOLEAN,
	statusWorkflow INTEGER,
	userIdWorkflow LONG,
	dataStatusWorkflow DATE null,
	comentarioWorkflow STRING null,
	clonagemPai LONG,
	literalAgendamento TEXT null,
	userIdCancel LONG,
	userIdAprovador LONG,
	userIdReprovador LONG,
	dataCancel DATE null,
	service BOOLEAN
);

create table PRT_GESTMSG_MENSAGEM_WORKFLOW (
	uuid_ VARCHAR(75) null,
	mensagemWorkflowId LONG not null primary key,
	mensagemId LONG,
	userId LONG,
	status INTEGER,
	data_ DATE null,
	comentario STRING null
);

create table PRT_GESTMSG_TEMPLATE (
	uuid_ VARCHAR(75) null,
	templateId LONG not null primary key,
	companyId LONG,
	groupId LONG,
	userId LONG,
	nome VARCHAR(255) null,
	estilo INTEGER,
	ativo BOOLEAN,
	cabecalho TEXT null,
	rodape TEXT null,
	corpo TEXT null,
	dataCriacao DATE null,
	dataAtualizacao DATE null,
	thumbnailFileEntryId LONG,
	thumbnailURL VARCHAR(255) null
);