refactor: clean up schema definition by removing unnecessary spread operator and formatting for improved readability

This commit is contained in:
2025-10-29 08:28:24 -03:00
parent d1715f358a
commit 9884cd0894

View File

@@ -10,7 +10,6 @@ export const simboloTipo = v.union(
export type SimboloTipo = Infer<typeof simboloTipo>;
export default defineSchema({
...tables,
todos: defineTable({
text: v.string(),
completed: v.boolean(),
@@ -32,26 +31,26 @@ export default defineSchema({
desligamentoData: v.optional(v.string()),
simboloId: v.id("simbolos"),
simboloTipo: simboloTipo,
// Dados Pessoais Adicionais (opcionais)
nomePai: v.optional(v.string()),
nomeMae: v.optional(v.string()),
naturalidade: v.optional(v.string()),
naturalidadeUF: v.optional(v.string()),
sexo: v.optional(v.union(
v.literal("masculino"),
v.literal("feminino"),
v.literal("outro")
)),
estadoCivil: v.optional(v.union(
v.literal("solteiro"),
v.literal("casado"),
v.literal("divorciado"),
v.literal("viuvo"),
v.literal("uniao_estavel")
)),
sexo: v.optional(
v.union(v.literal("masculino"), v.literal("feminino"), v.literal("outro"))
),
estadoCivil: v.optional(
v.union(
v.literal("solteiro"),
v.literal("casado"),
v.literal("divorciado"),
v.literal("viuvo"),
v.literal("uniao_estavel")
)
),
nacionalidade: v.optional(v.string()),
// Documentos Pessoais
rgOrgaoExpedidor: v.optional(v.string()),
rgDataEmissao: v.optional(v.string()),
@@ -64,29 +63,25 @@ export default defineSchema({
tituloEleitorZona: v.optional(v.string()),
tituloEleitorSecao: v.optional(v.string()),
pisNumero: v.optional(v.string()),
// Formação e Saúde
grauInstrucao: v.optional(v.union(
v.literal("fundamental"),
v.literal("medio"),
v.literal("superior"),
v.literal("pos_graduacao"),
v.literal("mestrado"),
v.literal("doutorado")
)),
grauInstrucao: v.optional(
v.union(
v.literal("fundamental"),
v.literal("medio"),
v.literal("superior"),
v.literal("pos_graduacao"),
v.literal("mestrado"),
v.literal("doutorado")
)
),
formacao: v.optional(v.string()),
formacaoRegistro: v.optional(v.string()),
grupoSanguineo: v.optional(v.union(
v.literal("A"),
v.literal("B"),
v.literal("AB"),
v.literal("O")
)),
fatorRH: v.optional(v.union(
v.literal("positivo"),
v.literal("negativo")
)),
grupoSanguineo: v.optional(
v.union(v.literal("A"), v.literal("B"), v.literal("AB"), v.literal("O"))
),
fatorRH: v.optional(v.union(v.literal("positivo"), v.literal("negativo"))),
// Cargo e Vínculo
descricaoCargo: v.optional(v.string()),
nomeacaoPortaria: v.optional(v.string()),
@@ -94,17 +89,15 @@ export default defineSchema({
nomeacaoDOE: v.optional(v.string()),
pertenceOrgaoPublico: v.optional(v.boolean()),
orgaoOrigem: v.optional(v.string()),
aposentado: v.optional(v.union(
v.literal("nao"),
v.literal("funape_ipsep"),
v.literal("inss")
)),
aposentado: v.optional(
v.union(v.literal("nao"), v.literal("funape_ipsep"), v.literal("inss"))
),
// Dados Bancários
contaBradescoNumero: v.optional(v.string()),
contaBradescoDV: v.optional(v.string()),
contaBradescoAgencia: v.optional(v.string()),
// Documentos Anexos (Storage IDs)
certidaoAntecedentesPF: v.optional(v.id("_storage")),
certidaoAntecedentesJFPE: v.optional(v.id("_storage")),
@@ -129,7 +122,7 @@ export default defineSchema({
comprovanteEscolaridade: v.optional(v.id("_storage")),
comprovanteResidencia: v.optional(v.id("_storage")),
comprovanteContaBradesco: v.optional(v.id("_storage")),
// Declarações (Storage IDs)
declaracaoAcumulacaoCargo: v.optional(v.id("_storage")),
declaracaoDependentesIR: v.optional(v.id("_storage")),
@@ -198,19 +191,21 @@ export default defineSchema({
ultimoAcesso: v.optional(v.number()),
criadoEm: v.number(),
atualizadoEm: v.number(),
// Campos de Chat e Perfil
avatar: v.optional(v.string()), // "avatar-1" até "avatar-15" ou storageId
fotoPerfil: v.optional(v.id("_storage")),
setor: v.optional(v.string()),
statusMensagem: v.optional(v.string()), // max 100 chars
statusPresenca: v.optional(v.union(
v.literal("online"),
v.literal("offline"),
v.literal("ausente"),
v.literal("externo"),
v.literal("em_reuniao")
)),
statusPresenca: v.optional(
v.union(
v.literal("online"),
v.literal("offline"),
v.literal("ausente"),
v.literal("externo"),
v.literal("em_reuniao")
)
),
ultimaAtividade: v.optional(v.number()), // timestamp
notificacoesAtivadas: v.optional(v.boolean()),
somNotificacao: v.optional(v.boolean()),
@@ -309,8 +304,7 @@ export default defineSchema({
chave: v.string(), // "sessao_duracao", "max_tentativas_login", etc.
valor: v.string(),
descricao: v.string(),
})
.index("by_chave", ["chave"]),
}).index("by_chave", ["chave"]),
// Sistema de Chat
conversas: defineTable({
@@ -340,10 +334,14 @@ export default defineSchema({
arquivoNome: v.optional(v.string()),
arquivoTamanho: v.optional(v.number()),
arquivoTipo: v.optional(v.string()),
reagiuPor: v.optional(v.array(v.object({
usuarioId: v.id("usuarios"),
emoji: v.string()
}))),
reagiuPor: v.optional(
v.array(
v.object({
usuarioId: v.id("usuarios"),
emoji: v.string(),
})
)
),
mencoes: v.optional(v.array(v.id("usuarios"))),
agendadaPara: v.optional(v.number()), // timestamp
enviadaEm: v.number(),