Compare commits
2 Commits
feat-cotro
...
feat-funci
| Author | SHA1 | Date | |
|---|---|---|---|
| f219340cd8 | |||
| 9884cd0894 |
@@ -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,26 +191,28 @@ export default defineSchema({
|
||||
ultimoAcesso: v.optional(v.number()),
|
||||
criadoEm: v.number(),
|
||||
atualizadoEm: v.number(),
|
||||
|
||||
|
||||
// Controle de Bloqueio e Segurança
|
||||
bloqueado: v.optional(v.boolean()),
|
||||
motivoBloqueio: v.optional(v.string()),
|
||||
dataBloqueio: v.optional(v.number()),
|
||||
tentativasLogin: v.optional(v.number()), // contador de tentativas falhas
|
||||
ultimaTentativaLogin: v.optional(v.number()), // timestamp da última tentativa
|
||||
|
||||
|
||||
// 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()),
|
||||
@@ -412,8 +407,7 @@ export default defineSchema({
|
||||
testadoEm: v.optional(v.number()),
|
||||
configuradoPor: v.id("usuarios"),
|
||||
atualizadoEm: v.number(),
|
||||
})
|
||||
.index("by_ativo", ["ativo"]),
|
||||
}).index("by_ativo", ["ativo"]),
|
||||
|
||||
// Fila de Emails
|
||||
notificacoesEmail: defineTable({
|
||||
@@ -444,8 +438,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({
|
||||
@@ -475,10 +468,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(),
|
||||
|
||||
Reference in New Issue
Block a user