feat: implement employee registration form with validation and data handling

This commit is contained in:
2025-10-24 17:25:46 -03:00
parent 316877e1bb
commit be3522ae74
5 changed files with 855 additions and 16 deletions

View File

@@ -1,6 +1,7 @@
import { defineSchema, defineTable } from "convex/server";
import { Infer, v } from "convex/values";
import { tables } from "./betterAuth/schema";
import { cidrv4 } from "better-auth";
export const simboloTipo = v.union(
v.literal("cargo_comissionado"),
@@ -16,24 +17,41 @@ export default defineSchema({
}),
funcionarios: defineTable({
nome: v.string(),
nascimento: v.optional(v.string()),
rg: v.optional(v.string()),
cpf: v.optional(v.string()),
endereco: v.optional(v.string()),
cep: v.optional(v.string()),
cidade: v.optional(v.string()),
uf: v.optional(v.string()),
telefone: v.optional(v.string()),
email: v.optional(v.string()),
nascimento: v.string(),
rg: v.string(),
cpf: v.string(),
endereco: v.string(),
cep: v.string(),
cidade: v.string(),
uf: v.string(),
telefone: v.string(),
email: v.string(),
matricula: v.string(),
vencimento: v.optional(v.string()),
admissao: v.optional(v.string()),
desligamento: v.optional(v.string()),
ferias: v.optional(v.string()),
admissaoData: v.optional(v.string()),
desligamentoData: v.optional(v.string()),
simboloId: v.id("simbolos"),
simboloTipo: simboloTipo,
})
.index("by_matricula", ["matricula"])
.index("by_nome", ["nome"]),
.index("by_nome", ["nome"])
.index("by_simboloId", ["simboloId"])
.index("by_simboloTipo", ["simboloTipo"])
.index("by_cpf", ["cpf"])
.index("by_rg", ["rg"]),
atestados: defineTable({
funcionarioId: v.id("funcionarios"),
dataInicio: v.string(),
dataFim: v.string(),
cid: v.string(),
descricao: v.string(),
}),
ferias: defineTable({
funcionarioId: v.id("funcionarios"),
dataInicio: v.string(),
dataFim: v.string(),
}),
simbolos: defineTable({
nome: v.string(),