diff --git a/packages/backend/convex/schema.ts b/packages/backend/convex/schema.ts index 2c530a6..dad8a34 100644 --- a/packages/backend/convex/schema.ts +++ b/packages/backend/convex/schema.ts @@ -10,7 +10,6 @@ export const simboloTipo = v.union( export type SimboloTipo = Infer; 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(),