Compare commits

..

2 Commits

View File

@@ -10,7 +10,6 @@ export const simboloTipo = v.union(
export type SimboloTipo = Infer<typeof simboloTipo>; export type SimboloTipo = Infer<typeof simboloTipo>;
export default defineSchema({ export default defineSchema({
...tables,
todos: defineTable({ todos: defineTable({
text: v.string(), text: v.string(),
completed: v.boolean(), completed: v.boolean(),
@@ -38,18 +37,18 @@ export default defineSchema({
nomeMae: v.optional(v.string()), nomeMae: v.optional(v.string()),
naturalidade: v.optional(v.string()), naturalidade: v.optional(v.string()),
naturalidadeUF: v.optional(v.string()), naturalidadeUF: v.optional(v.string()),
sexo: v.optional(v.union( sexo: v.optional(
v.literal("masculino"), v.union(v.literal("masculino"), v.literal("feminino"), v.literal("outro"))
v.literal("feminino"), ),
v.literal("outro") estadoCivil: v.optional(
)), v.union(
estadoCivil: v.optional(v.union( v.literal("solteiro"),
v.literal("solteiro"), v.literal("casado"),
v.literal("casado"), v.literal("divorciado"),
v.literal("divorciado"), v.literal("viuvo"),
v.literal("viuvo"), v.literal("uniao_estavel")
v.literal("uniao_estavel") )
)), ),
nacionalidade: v.optional(v.string()), nacionalidade: v.optional(v.string()),
// Documentos Pessoais // Documentos Pessoais
@@ -66,26 +65,22 @@ export default defineSchema({
pisNumero: v.optional(v.string()), pisNumero: v.optional(v.string()),
// Formação e Saúde // Formação e Saúde
grauInstrucao: v.optional(v.union( grauInstrucao: v.optional(
v.literal("fundamental"), v.union(
v.literal("medio"), v.literal("fundamental"),
v.literal("superior"), v.literal("medio"),
v.literal("pos_graduacao"), v.literal("superior"),
v.literal("mestrado"), v.literal("pos_graduacao"),
v.literal("doutorado") v.literal("mestrado"),
)), v.literal("doutorado")
)
),
formacao: v.optional(v.string()), formacao: v.optional(v.string()),
formacaoRegistro: v.optional(v.string()), formacaoRegistro: v.optional(v.string()),
grupoSanguineo: v.optional(v.union( grupoSanguineo: v.optional(
v.literal("A"), v.union(v.literal("A"), v.literal("B"), v.literal("AB"), v.literal("O"))
v.literal("B"), ),
v.literal("AB"), fatorRH: v.optional(v.union(v.literal("positivo"), v.literal("negativo"))),
v.literal("O")
)),
fatorRH: v.optional(v.union(
v.literal("positivo"),
v.literal("negativo")
)),
// Cargo e Vínculo // Cargo e Vínculo
descricaoCargo: v.optional(v.string()), descricaoCargo: v.optional(v.string()),
@@ -94,11 +89,9 @@ export default defineSchema({
nomeacaoDOE: v.optional(v.string()), nomeacaoDOE: v.optional(v.string()),
pertenceOrgaoPublico: v.optional(v.boolean()), pertenceOrgaoPublico: v.optional(v.boolean()),
orgaoOrigem: v.optional(v.string()), orgaoOrigem: v.optional(v.string()),
aposentado: v.optional(v.union( aposentado: v.optional(
v.literal("nao"), v.union(v.literal("nao"), v.literal("funape_ipsep"), v.literal("inss"))
v.literal("funape_ipsep"), ),
v.literal("inss")
)),
// Dados Bancários // Dados Bancários
contaBradescoNumero: v.optional(v.string()), contaBradescoNumero: v.optional(v.string()),
@@ -211,13 +204,15 @@ export default defineSchema({
fotoPerfil: v.optional(v.id("_storage")), fotoPerfil: v.optional(v.id("_storage")),
setor: v.optional(v.string()), setor: v.optional(v.string()),
statusMensagem: v.optional(v.string()), // max 100 chars statusMensagem: v.optional(v.string()), // max 100 chars
statusPresenca: v.optional(v.union( statusPresenca: v.optional(
v.literal("online"), v.union(
v.literal("offline"), v.literal("online"),
v.literal("ausente"), v.literal("offline"),
v.literal("externo"), v.literal("ausente"),
v.literal("em_reuniao") v.literal("externo"),
)), v.literal("em_reuniao")
)
),
ultimaAtividade: v.optional(v.number()), // timestamp ultimaAtividade: v.optional(v.number()), // timestamp
notificacoesAtivadas: v.optional(v.boolean()), notificacoesAtivadas: v.optional(v.boolean()),
somNotificacao: v.optional(v.boolean()), somNotificacao: v.optional(v.boolean()),
@@ -412,8 +407,7 @@ export default defineSchema({
testadoEm: v.optional(v.number()), testadoEm: v.optional(v.number()),
configuradoPor: v.id("usuarios"), configuradoPor: v.id("usuarios"),
atualizadoEm: v.number(), atualizadoEm: v.number(),
}) }).index("by_ativo", ["ativo"]),
.index("by_ativo", ["ativo"]),
// Fila de Emails // Fila de Emails
notificacoesEmail: defineTable({ notificacoesEmail: defineTable({
@@ -444,8 +438,7 @@ export default defineSchema({
chave: v.string(), // "sessao_duracao", "max_tentativas_login", etc. chave: v.string(), // "sessao_duracao", "max_tentativas_login", etc.
valor: v.string(), valor: v.string(),
descricao: v.string(), descricao: v.string(),
}) }).index("by_chave", ["chave"]),
.index("by_chave", ["chave"]),
// Sistema de Chat // Sistema de Chat
conversas: defineTable({ conversas: defineTable({
@@ -475,10 +468,14 @@ export default defineSchema({
arquivoNome: v.optional(v.string()), arquivoNome: v.optional(v.string()),
arquivoTamanho: v.optional(v.number()), arquivoTamanho: v.optional(v.number()),
arquivoTipo: v.optional(v.string()), arquivoTipo: v.optional(v.string()),
reagiuPor: v.optional(v.array(v.object({ reagiuPor: v.optional(
usuarioId: v.id("usuarios"), v.array(
emoji: v.string() v.object({
}))), usuarioId: v.id("usuarios"),
emoji: v.string(),
})
)
),
mencoes: v.optional(v.array(v.id("usuarios"))), mencoes: v.optional(v.array(v.id("usuarios"))),
agendadaPara: v.optional(v.number()), // timestamp agendadaPara: v.optional(v.number()), // timestamp
enviadaEm: v.number(), enviadaEm: v.number(),