This commit is contained in:
Luiz Silva 2025-08-28 14:02:44 -03:00
parent 430ff53c68
commit 70caa21961
16 changed files with 384 additions and 467 deletions

View file

@ -1,48 +0,0 @@
import { respostaComuns } from "p-respostas";
const abrirNps = (emDesenvolvimento) => async (parametros) => {
const base_site = emDesenvolvimento ? "http://localhost:5040/nps" : "https://carro-de-boi.idz.one/nps";
const base_api = `${base_site}/api`;
const { sistema, inquilino, codigo_usuario } = parametros;
const nome_local_storage_proxima = `nps_proxima_avaliacao_${sistema}_${codigo_usuario}_${inquilino}_0`;
const proxima_avaliacao = localStorage.getItem(nome_local_storage_proxima);
if (!proxima_avaliacao) {
const url_proxima_avaliacao = new URL(
`${base_api}/${sistema}/proxima_avaliacao`
);
for (const [chave, valor] of Object.entries(parametros)) {
url_proxima_avaliacao.searchParams.append(chave, valor);
}
const response = await fetch(url_proxima_avaliacao.href).then(
(resposta) => resposta.json()
).catch((error) => respostaComuns.erro(error.message));
const proxima_avaliacao2 = response.valor;
proxima_avaliacao2 && localStorage.setItem(nome_local_storage_proxima, proxima_avaliacao2);
}
const abrir_modal = proxima_avaliacao && (/* @__PURE__ */ new Date()).toISOString().slice(0, 10) >= proxima_avaliacao;
if (!abrir_modal) {
return;
}
localStorage.removeItem(nome_local_storage_proxima);
const urlIfrma = new URL(base_site);
for (const [chave, valor] of Object.entries(parametros)) {
urlIfrma.searchParams.append(chave, valor);
}
const iframe = document.createElement("iframe");
iframe.src = urlIfrma.href;
iframe.style.position = "fixed";
iframe.style.top = "0";
iframe.style.left = "0";
iframe.style.width = "100%";
iframe.style.height = "100%";
iframe.style.border = "none";
iframe.style.zIndex = "999999";
document.body.appendChild(iframe);
window.addEventListener("message", (event) => {
if (event.data === "fechar") {
document.body.removeChild(iframe);
}
});
};
export {
abrirNps
};

View file

@ -1,48 +0,0 @@
import dayjs from "dayjs";
import weekOfYear from "dayjs/plugin/weekOfYear";
dayjs.extend(weekOfYear);
const enviarHoje = (inter, data) => {
const hoje = dayjs(data || void 0);
if (!inter) return true;
if (inter == "D") return true;
if (inter == "M" && hoje.get("D") == 1) return true;
if (inter == "S" && hoje.get("d") == 1) return true;
if (inter == "S" && hoje.get("d") == 1 && hoje.week() % 2 == 1) return true;
return false;
};
const intervalosTipos = (tipoEntrada, log) => {
log.push(`intervalosTipos -> tipoEntrada:${tipoEntrada}`);
const config = {
M: {
campo_situacao: "situacao_texto_30",
prefixo_assunto: "(Previs\xE3o para os pr\xF3ximos 30 dias) ",
tipo: "M",
enviar_hoje: enviarHoje("M")
},
Q: {
campo_situacao: "situacao_texto_15",
prefixo_assunto: "(Previs\xE3o para os pr\xF3ximos 15 dias) ",
tipo: "Q",
enviar_hoje: enviarHoje("Q")
},
S: {
campo_situacao: "situacao_texto_7",
prefixo_assunto: "(Previs\xE3o para os pr\xF3ximos 7 dias) ",
tipo: "S",
enviar_hoje: enviarHoje("S")
},
D: {
campo_situacao: "situacao_texto",
prefixo_assunto: "",
tipo: "D",
enviar_hoje: enviarHoje("D")
}
};
const { campo_situacao, enviar_hoje, prefixo_assunto, tipo } = config[tipoEntrada || "D"] || config.D;
log.push(campo_situacao, prefixo_assunto, tipo, enviar_hoje ? "S" : "N");
return { campo_situacao, prefixo_assunto, tipo, enviar_hoje };
};
export {
enviarHoje,
intervalosTipos
};

View file

@ -1,2 +0,0 @@
export * from "./funcoes_alertas";
export * from "./tipos";

View file

@ -1,9 +0,0 @@
const intervalosDosAlertas = {
D: "Di\xE1rio",
S: "Semanal, nas segundas-feira",
Q: "Quinzenal, nas segundas-feira",
M: "Mensal, primeiro dia de cada m\xEAs"
};
export {
intervalosDosAlertas
};

View file

@ -1 +0,0 @@
export * from "./Alertas";

99
dist-front/index.d.mts Normal file
View file

@ -0,0 +1,99 @@
import { tipoResposta } from 'p-respostas';
import { z } from 'zod';
type tipos_alertas = {
intervalo_alertas: "D" | "S" | "Q" | "M";
};
declare const intervalosDosAlertas: {
[k in tipos_alertas["intervalo_alertas"]]: string;
};
declare const enviarHoje: (inter: tipos_alertas["intervalo_alertas"] | null | undefined, data?: string) => boolean;
declare const intervalosTipos: (tipoEntrada: keyof typeof intervalosDosAlertas | undefined | null, log: string[]) => {
campo_situacao: string;
prefixo_assunto: string;
tipo: string;
enviar_hoje: boolean;
};
type tipo_proxima_avaliacao = {
parametros: {
sistema: string;
inquilino: string;
codigo_usuario: string;
nome_organizacao: string;
nome_usuario: string;
contatos_usuario: string;
data_criacao_conta: string;
};
retorno: tipoResposta<string>;
};
declare const abrirNps: (emDesenvolvimento: boolean) => (parametros: tipo_proxima_avaliacao["parametros"]) => Promise<void>;
/** Estrutura que deve ser aplicada para solictação de autenticação, deve ser feito via back */
declare const zAuntenticacaoResiduosSolicitar: z.ZodObject<{
codigo_token: z.ZodOptional<z.ZodString>;
codigo_usuario: z.ZodString;
nome_usuario: z.ZodString;
email_usuario: z.ZodString;
documento_usuario: z.ZodString;
inquilino: z.ZodString;
rotas: z.ZodObject<{}, z.core.$strip>;
url_usuarios: z.ZodString;
url_empreendedores: z.ZodString;
url_empreendimentos: z.ZodString;
tipo_usuario: z.ZodString;
sistema: z.ZodString;
sistema_cor: z.ZodString;
sistema_nome: z.ZodString;
sistema_logo: z.ZodString;
}, z.core.$strip>;
/** Tipagem usada para o processo de sincronização entre modulos */
declare const zUsuarioSincronizar: z.ZodObject<{
codigo: z.ZodString;
documento: z.ZodString;
excluido: z.ZodBoolean;
nome: z.ZodString;
permicoes: z.ZodRecord<z.ZodString, z.ZodAny>;
versao: z.ZodNumber;
credenciais_sinir: z.ZodOptional<z.ZodObject<{
login: z.ZodOptional<z.ZodString>;
senha: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
type tipo_zUsuarioSincronizar = z.infer<typeof zUsuarioSincronizar>;
/** Tipagem usada para o processo de sincronização entre modulos */
declare const zEmpreendedorSincronizar: z.ZodObject<{
codigo: z.ZodString;
documento: z.ZodString;
excluido: z.ZodBoolean;
nome: z.ZodString;
versao: z.ZodNumber;
}, z.core.$strip>;
/** Tipagem usada para o processo de sincronização entre modulos */
declare const zEmpreendimentoSincronizar: z.ZodObject<{
codigo: z.ZodString;
codigo_empreendedor: z.ZodString;
documento: z.ZodString;
excluido: z.ZodBoolean;
nome: z.ZodString;
unidade_sinir: z.ZodOptional<z.ZodNullable<z.ZodString>>;
versao: z.ZodNumber;
}, z.core.$strip>;
declare const nomesSincronizacoes: z.ZodEnum<{
usuarios: "usuarios";
empreendedores: "empreendedores";
empreendimentos: "empreendimentos";
}>;
declare const inquilinoStatus: z.ZodEnum<{
ativo: "ativo";
inativo: "inativo";
}>;
declare const statusinquilino: z.ZodEnum<{
ativo: "ativo";
inativo: "inativo";
}>;
export { abrirNps, enviarHoje, inquilinoStatus, intervalosDosAlertas, intervalosTipos, nomesSincronizacoes, statusinquilino, type tipo_proxima_avaliacao, type tipo_zUsuarioSincronizar, type tipos_alertas, zAuntenticacaoResiduosSolicitar, zEmpreendedorSincronizar, zEmpreendimentoSincronizar, zUsuarioSincronizar };

View file

@ -1,4 +0,0 @@
export * from "./e-licencie";
export * from "./NPS";
export * from "./residuos";
export * from "./variaveis";

1
dist-front/index.mjs Normal file
View file

@ -0,0 +1 @@
import x from"dayjs";import h from"dayjs/plugin/weekOfYear";x.extend(h);var l=(e,i)=>{let t=x(i||void 0);return!e||e=="D"||e=="M"&&t.get("D")==1||e=="S"&&t.get("d")==1||e=="S"&&t.get("d")==1&&t.week()%2==1},w=(e,i)=>{i.push(`intervalosTipos -> tipoEntrada:${e}`);let t={M:{campo_situacao:"situacao_texto_30",prefixo_assunto:"(Previs\xE3o para os pr\xF3ximos 30 dias) ",tipo:"M",enviar_hoje:l("M")},Q:{campo_situacao:"situacao_texto_15",prefixo_assunto:"(Previs\xE3o para os pr\xF3ximos 15 dias) ",tipo:"Q",enviar_hoje:l("Q")},S:{campo_situacao:"situacao_texto_7",prefixo_assunto:"(Previs\xE3o para os pr\xF3ximos 7 dias) ",tipo:"S",enviar_hoje:l("S")},D:{campo_situacao:"situacao_texto",prefixo_assunto:"",tipo:"D",enviar_hoje:l("D")}},{campo_situacao:p,enviar_hoje:s,prefixo_assunto:c,tipo:u}=t[e||"D"]||t.D;return i.push(p,c,u,s?"S":"N"),{campo_situacao:p,prefixo_assunto:c,tipo:u,enviar_hoje:s}};var M={D:"Di\xE1rio",S:"Semanal, nas segundas-feira",Q:"Quinzenal, nas segundas-feira",M:"Mensal, primeiro dia de cada m\xEAs"};import{respostaComuns as b}from"p-respostas";var E=e=>async i=>{let t=e?"http://localhost:5040/nps":"https://carro-de-boi.idz.one/nps",p=`${t}/api`,{sistema:s,inquilino:c,codigo_usuario:u}=i,m=`nps_proxima_avaliacao_${s}_${u}_${c}_0`,_=localStorage.getItem(m);if(!_){let a=new URL(`${p}/${s}/proxima_avaliacao`);for(let[n,v]of Object.entries(i))a.searchParams.append(n,v);let f=(await fetch(a.href).then(n=>n.json()).catch(n=>b.erro(n.message))).valor;f&&localStorage.setItem(m,f)}if(!(_&&new Date().toISOString().slice(0,10)>=_))return;localStorage.removeItem(m);let d=new URL(t);for(let[a,g]of Object.entries(i))d.searchParams.append(a,g);let r=document.createElement("iframe");r.src=d.href,r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%",r.style.border="none",r.style.zIndex="999999",document.body.appendChild(r),window.addEventListener("message",a=>{a.data==="fechar"&&document.body.removeChild(r)})};import{z as o}from"zod";var L=o.object({codigo_token:o.string().optional(),codigo_usuario:o.string().uuid(),nome_usuario:o.string(),email_usuario:o.string(),documento_usuario:o.string(),inquilino:o.string(),rotas:o.object({}),url_usuarios:o.string().url(),url_empreendedores:o.string().url(),url_empreendimentos:o.string().url(),tipo_usuario:o.string(),sistema:o.string(),sistema_cor:o.string(),sistema_nome:o.string(),sistema_logo:o.string()}),R=o.object({codigo:o.string().uuid(),documento:o.string(),excluido:o.boolean(),nome:o.string(),permicoes:o.record(o.string(),o.any()),versao:o.number().int(),credenciais_sinir:o.object({login:o.string().optional(),senha:o.string().optional()}).optional()}),N=o.object({codigo:o.string().uuid(),documento:o.string(),excluido:o.boolean(),nome:o.string(),versao:o.number().int()}),T=o.object({codigo:o.string().uuid(),codigo_empreendedor:o.string().uuid(),documento:o.string(),excluido:o.boolean(),nome:o.string(),unidade_sinir:o.string().nullable().optional(),versao:o.number().int()}),H=o.enum(["usuarios","empreendedores","empreendimentos"]);import{z as y}from"zod";var S=y.enum(["ativo","inativo"]),F=S;export{E as abrirNps,l as enviarHoje,S as inquilinoStatus,M as intervalosDosAlertas,w as intervalosTipos,H as nomesSincronizacoes,F as statusinquilino,L as zAuntenticacaoResiduosSolicitar,N as zEmpreendedorSincronizar,T as zEmpreendimentoSincronizar,R as zUsuarioSincronizar};

View file

@ -1,73 +0,0 @@
import { z } from "zod";
const zAuntenticacaoResiduosSolicitar = z.object({
// codigo_token: "aaaaaaaa-bbbb-1ccc-8ddd-eeeeeeeeeeee",
codigo_token: z.string().optional(),
//codigo_usuario: "aaaaaaaa-bbbb-1ccc-8ddd-eeeeeeeeeeef",
codigo_usuario: z.string().uuid(),
//nome_usuario: "Jaci Tupi",
nome_usuario: z.string(),
//email_usuario: "jaci@maillinator.com",
email_usuario: z.string(),
//documento_usuario: "111.111.111-11",
documento_usuario: z.string(),
//organizacao: "aaaaaaaa-bbbb-1ccc-8ddd-eeeeeeeeeeee",
inquilino: z.string(),
//rotas: {},
rotas: z.object({}),
//url_usuarios: "http://127.0.0.1:5010/residuos/exemplos/usuarios",
url_usuarios: z.string().url(),
//url_empreendedores: "http://127.0.0.1:5010/residuos/exemplos/empreendedores",
url_empreendedores: z.string().url(),
//url_empreendimentos: "http://127.0.0.1:5010/residuos/exemplos/empreendimentos",
url_empreendimentos: z.string().url(),
//tipo_usuario: "usuario",
tipo_usuario: z.string(),
//sistema: "gov-criciuma",
sistema: z.string(),
//sistema_cor: "#688c00",
sistema_cor: z.string(),
//sistema_nome: "e-licencie",
sistema_nome: z.string(),
//sistema_logo: "http://0.0.0.0:5020/estaticos/logos/e-licencie/branco-branco.png",
sistema_logo: z.string()
});
const zUsuarioSincronizar = z.object({
codigo: z.string().uuid(),
documento: z.string(),
excluido: z.boolean(),
nome: z.string(),
permicoes: z.record(z.any()),
versao: z.number().int(),
credenciais_sinir: z.object({
login: z.string().optional(),
senha: z.string().optional()
}).optional()
});
const zEmpreendedorSincronizar = z.object({
codigo: z.string().uuid(),
documento: z.string(),
excluido: z.boolean(),
nome: z.string(),
versao: z.number().int()
});
const zEmpreendimentoSincronizar = z.object({
codigo: z.string().uuid(),
codigo_empreendedor: z.string().uuid(),
documento: z.string(),
excluido: z.boolean(),
nome: z.string(),
unidade_sinir: z.string().nullable().optional(),
versao: z.number().int()
});
const nomesSincronizacoes = z.enum([
"usuarios",
"empreendedores",
"empreendimentos"
]);
export {
nomesSincronizacoes,
zAuntenticacaoResiduosSolicitar,
zEmpreendedorSincronizar,
zEmpreendimentoSincronizar,
zUsuarioSincronizar
};

View file

@ -1,5 +0,0 @@
import { z } from "zod";
const zAmbiente = z.enum(["desenvolvimento", "producao"]);
export {
zAmbiente
};

View file

@ -1,7 +0,0 @@
import { z } from "zod";
const inquilinoStatus = z.enum(["ativo", "inativo"]);
const statusinquilino = inquilinoStatus;
export {
inquilinoStatus,
statusinquilino
};