171 lines
4.6 KiB
TypeScript
171 lines
4.6 KiB
TypeScript
import { z } from "zod"
|
|
|
|
/** Estrutura que deve ser aplicada para solictação de autenticação, deve ser feito via back */
|
|
export 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(),
|
|
})
|
|
|
|
/** Tipagem usada para o processo de sincronização entre modulos */
|
|
export const zUsuarioSincronizar = z.object({
|
|
codigo: z.string().uuid(),
|
|
documento: z.string(),
|
|
excluido: z.boolean(),
|
|
nome: z.string(),
|
|
permicoes: z.record(z.string(), z.any()),
|
|
versao: z.number().int(),
|
|
credenciais_sinir: z
|
|
.object({
|
|
login_cpf: z.string().optional(),
|
|
login_cnpj: z.string().optional(),
|
|
unidade: z.string().optional(),
|
|
senha: z.string().optional(),
|
|
})
|
|
.optional(),
|
|
})
|
|
|
|
export const zCredenciaisSinir = z.object({
|
|
login_cpf: z.string().optional(),
|
|
login_cnpj: z.string().optional(),
|
|
unidade: z.string().optional(),
|
|
senha: z.string().optional(),
|
|
})
|
|
|
|
export const zCredenciaisSIGOR = z.object({
|
|
login_cpf: z.string().optional(),
|
|
login_cnpj: z.string().optional(),
|
|
unidade: z.string().optional(),
|
|
senha: z.string().optional(),
|
|
email: z.string().optional(),
|
|
})
|
|
|
|
export const zCredenciais = z.object({
|
|
login_cpf: z.string().optional(),
|
|
login_cnpj: z.string().optional(),
|
|
unidade: z.string().optional(),
|
|
senha: z.string().optional(),
|
|
})
|
|
|
|
export const teste = z.object({
|
|
documento: z.string().optional(),
|
|
procom: z.string().optional(),
|
|
unidadeTop: z.string().optional(),
|
|
senhaSecreta: z.string().optional(),
|
|
})
|
|
|
|
export const orgaos: { [k in keyof TipoCredenciais]: k } = {
|
|
IEMA: "IEMA",
|
|
SINIR: "SINIR",
|
|
INEA: "INEA",
|
|
SIGOR: "SIGOR",
|
|
IMA: "IMA",
|
|
FEPAM: "FEPAM",
|
|
FEAM: "FEAM",
|
|
} as const
|
|
|
|
export const objetoCredencial: { [k in keyof typeof orgaos]: z.ZodObject } = {
|
|
IEMA: zCredenciais,
|
|
SINIR: zCredenciaisSinir,
|
|
INEA: zCredenciais,
|
|
SIGOR: zCredenciaisSIGOR,
|
|
IMA: zCredenciais,
|
|
FEPAM: zCredenciais,
|
|
FEAM: zCredenciais,
|
|
}
|
|
|
|
export type TipoCredenciais = Partial<{
|
|
SINIR: z.infer<typeof zCredenciaisSinir>
|
|
IEMA: z.infer<typeof zCredenciais>
|
|
INEA: z.infer<typeof zCredenciais>
|
|
SIGOR: z.infer<typeof zCredenciaisSIGOR>
|
|
IMA: z.infer<typeof zCredenciais>
|
|
FEPAM: z.infer<typeof zCredenciais>
|
|
FEAM: z.infer<typeof zCredenciais>
|
|
}>
|
|
|
|
export const zTipoCredenciais: z.ZodType<TipoCredenciais> = z.object({
|
|
SINIR: zCredenciaisSinir.optional(),
|
|
IEMA: zCredenciais.optional(),
|
|
INEA: zCredenciais.optional(),
|
|
SIGOR: zCredenciaisSIGOR.optional(),
|
|
IMA: zCredenciais.optional(),
|
|
FEPAM: zCredenciais.optional(),
|
|
FEAM: zCredenciais.optional(),
|
|
})
|
|
|
|
export type TipoCredenciaisLista = {
|
|
[K in keyof TipoCredenciais]: {
|
|
K: TipoCredenciais[K]
|
|
}
|
|
}[keyof TipoCredenciais]
|
|
|
|
export type tipo_zUsuarioSincronizar = z.infer<typeof zUsuarioSincronizar>
|
|
|
|
/** Tipagem usada para o processo de sincronização entre modulos */
|
|
export const zEmpreendedorSincronizar = z.object({
|
|
codigo: z.string().uuid(),
|
|
documento: z.string(),
|
|
excluido: z.boolean(),
|
|
nome: z.string(),
|
|
unidade_mtr: z.string().nullable().optional(),
|
|
versao: z.number().int(),
|
|
})
|
|
|
|
/** Tipagem usada para o processo de sincronização entre modulos */
|
|
export const zEmpreendimentoSincronizar = z.object({
|
|
codigo: z.string().uuid(),
|
|
codigo_empreendedor: z.string().uuid(),
|
|
documento: z.string(),
|
|
excluido: z.boolean(),
|
|
nome: z.string(),
|
|
unidade_mtr: z.string().nullable().optional(),
|
|
versao: z.number().int(),
|
|
})
|
|
|
|
export const nomesSincronizacoes = z.enum([
|
|
"usuarios",
|
|
"empreendedores",
|
|
"empreendimentos",
|
|
])
|