50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
import { respostaComuns } from "p-respostas";
|
|
import { z } from "zod";
|
|
export const zAmbiente = z.enum(["desenvolvimento", "producao"]);
|
|
export const PREFIXO_PILAO = "/pilao-de-dados";
|
|
export const validarZ = (zodType, objeto, mensagem) => {
|
|
const validar = zodType.safeParse(objeto);
|
|
if (!validar.success) {
|
|
return respostaComuns.erro(mensagem, validar.error.errors.map((e) => `${e.path} ${e.message}`));
|
|
}
|
|
return respostaComuns.valor(validar.data);
|
|
};
|
|
export const zp_produto_conta = z.object({
|
|
produto: z.string(),
|
|
conta: z.string(),
|
|
emDesenvolvimento: z.boolean().optional(),
|
|
});
|
|
export const z_tipo_coluna_base_dados = z.enum([
|
|
"texto",
|
|
"numero",
|
|
"confirmacao",
|
|
"lista_texto",
|
|
"lista_numero",
|
|
"data",
|
|
"mes",
|
|
]);
|
|
export const operadores_pilao = z.enum(["=", "!=", ">", "<", ">=", "<=", "∩"]);
|
|
export const operadores_permitidos_por_tipo = {
|
|
confirmacao: ["=", "!="],
|
|
data: ["=", "!=", ">", "<", ">=", "<="],
|
|
lista_numero: ["∩"],
|
|
lista_texto: ["∩"],
|
|
mes: ["=", "!=", ">", "<", ">=", "<="],
|
|
numero: ["=", "!=", ">", "<", ">=", "<="],
|
|
texto: ["=", "!="],
|
|
};
|
|
export const z_validar_colunna_base_dados = {
|
|
texto: z.string().nullable(),
|
|
numero: z.number().nullable(),
|
|
confirmacao: z.boolean().nullable(),
|
|
lista_texto: z.array(z.string()).nullable(),
|
|
lista_numero: z.array(z.number()).nullable(),
|
|
};
|
|
export const urlPilao = (emDesenvolvimento) => ({
|
|
api: (emDesenvolvimento
|
|
? "http://127.0.0.1:5080"
|
|
: "https://carro-de-boi.idz.one") + PREFIXO_PILAO,
|
|
site: (emDesenvolvimento
|
|
? "http://127.0.0.1:5081"
|
|
: "https://carro-de-boi.idz.one") + PREFIXO_PILAO,
|
|
});
|