feat: enhance vacation management system with new employee association functionality, improved email notification handling, and comprehensive documentation; update dependencies and UI components for better user experience
This commit is contained in:
118
packages/backend/convex/criarUsuarioTeste.ts
Normal file
118
packages/backend/convex/criarUsuarioTeste.ts
Normal file
@@ -0,0 +1,118 @@
|
||||
import { v } from "convex/values";
|
||||
import { mutation } from "./_generated/server";
|
||||
import { hashPassword } from "./auth/utils";
|
||||
|
||||
/**
|
||||
* Cria um usuário de teste com funcionário associado
|
||||
* para testar o sistema de férias
|
||||
*/
|
||||
export const criarUsuarioParaTesteFerias = mutation({
|
||||
args: {},
|
||||
returns: v.object({
|
||||
sucesso: v.boolean(),
|
||||
login: v.string(),
|
||||
senha: v.string(),
|
||||
mensagem: v.string(),
|
||||
}),
|
||||
handler: async (ctx, args) => {
|
||||
const loginTeste = "teste.ferias";
|
||||
const senhaTeste = "Teste@2025";
|
||||
const emailTeste = "teste.ferias@sgse.pe.gov.br";
|
||||
const nomeTeste = "João Silva (Teste)";
|
||||
|
||||
// Verificar se já existe
|
||||
const usuarioExistente = await ctx.db
|
||||
.query("usuarios")
|
||||
.withIndex("by_matricula", (q) => q.eq("matricula", loginTeste))
|
||||
.first();
|
||||
|
||||
if (usuarioExistente) {
|
||||
return {
|
||||
sucesso: true,
|
||||
login: loginTeste,
|
||||
senha: senhaTeste,
|
||||
mensagem: "Usuário de teste já existe! Use as credenciais abaixo.",
|
||||
};
|
||||
}
|
||||
|
||||
// Buscar role padrão (usuário comum)
|
||||
const roleUsuario = await ctx.db
|
||||
.query("roles")
|
||||
.filter((q) => q.eq(q.field("nome"), "usuario"))
|
||||
.first();
|
||||
|
||||
if (!roleUsuario) {
|
||||
return {
|
||||
sucesso: false,
|
||||
login: "",
|
||||
senha: "",
|
||||
mensagem: "Erro: Role 'usuario' não encontrada",
|
||||
};
|
||||
}
|
||||
|
||||
// Buscar um símbolo qualquer
|
||||
const simbolo = await ctx.db.query("simbolos").first();
|
||||
|
||||
if (!simbolo) {
|
||||
return {
|
||||
sucesso: false,
|
||||
login: "",
|
||||
senha: "",
|
||||
mensagem: "Erro: Nenhum símbolo encontrado. Crie um símbolo primeiro.",
|
||||
};
|
||||
}
|
||||
|
||||
// Criar funcionário
|
||||
const funcionarioId = await ctx.db.insert("funcionarios", {
|
||||
nome: nomeTeste,
|
||||
cpf: "111.222.333-44",
|
||||
rg: "1234567",
|
||||
nascimento: "1990-05-15",
|
||||
endereco: "Rua de Teste, 123",
|
||||
bairro: "Centro",
|
||||
cidade: "Recife",
|
||||
uf: "PE",
|
||||
cep: "50000-000",
|
||||
telefone: "(81) 98765-4321",
|
||||
email: emailTeste,
|
||||
matricula: loginTeste,
|
||||
admissaoData: "2023-01-15", // Admitido em jan/2023 (quase 2 anos)
|
||||
simboloId: simbolo._id,
|
||||
simboloTipo: simbolo.tipo,
|
||||
statusFerias: "ativo",
|
||||
regimeTrabalho: "clt", // CLT para testar
|
||||
descricaoCargo: "Analista Administrativo",
|
||||
nomePai: "José Silva",
|
||||
nomeMae: "Maria Silva",
|
||||
naturalidade: "Recife",
|
||||
naturalidadeUF: "PE",
|
||||
sexo: "masculino",
|
||||
estadoCivil: "solteiro",
|
||||
nacionalidade: "Brasileira",
|
||||
grauInstrucao: "superior",
|
||||
});
|
||||
|
||||
// Criar usuário
|
||||
const senhaHash = await hashPassword(senhaTeste);
|
||||
const usuarioId = await ctx.db.insert("usuarios", {
|
||||
matricula: loginTeste,
|
||||
senhaHash,
|
||||
nome: nomeTeste,
|
||||
email: emailTeste,
|
||||
funcionarioId,
|
||||
roleId: roleUsuario._id,
|
||||
ativo: true,
|
||||
primeiroAcesso: false, // Já consideramos que fez primeiro acesso
|
||||
criadoEm: Date.now(),
|
||||
atualizadoEm: Date.now(),
|
||||
});
|
||||
|
||||
return {
|
||||
sucesso: true,
|
||||
login: loginTeste,
|
||||
senha: senhaTeste,
|
||||
mensagem: "Usuário de teste criado com sucesso!",
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user