Épico 1 — Núcleo de Identidade e Autenticação — Mapeamento de Banco de Dados (v2.3)
Documentos deste épico: 01 - Definição (v2.3) · 02 - Especificação (v2.2) · Protótipo (Seção 3): pendente, ainda não produzido · 04 - Mapeamento de Banco de Dados (v2.3). Este épico faz parte do documento guarda-chuva Check-in de Usuários.
SEÇÃO 4 — MAPEAMENTO DE BANCO DE DADOS
Tabelas existentes utilizadas
| Tabela | Banco | Campos utilizados neste épico |
|---|---|---|
| Usuario | IpSeguranca | Id, Usuario (login=CPF), CPF, Nome, Apelido, CaminhoFoto, Hash, Salt, DataSenha, TentativasLogin, DHBloqueio, Token, RemovidoEm, UsuarioIdRemovido |
| UsuarioSenhaHistorico | IpSeguranca | UsuarioId, DataSenha, Hash, Salt |
| UsuarioCliente | IpSeguranca | UsuarioId, ClienteBDId, Situacao (domínio C/V/B — definido em (CIU-E3), RN-CIU-011; apenas Situacao = ‘V’ conta como vínculo ativo), RemovidoEm |
| ClientePerfilAcessoUsuario | IpSeguranca | UsuarioClienteId, ClienteEmpresaId — consultado para compor a contagem de clínicas acessíveis (RN-CIU-009); um vínculo ativo pode ter mais de um registro aqui, um por ClienteEmpresa liberada pelo administrador (RN-CIU-011, em CIU-E3) |
| ClienteEmpresa | IpSeguranca | Id, Nome, CaminhoLogo, ClienteBDId, RemovidoEm — cada registro é uma clínica; usado para compor o campo clinicasAcessiveis da resposta do login; consulta filtra RemovidoEm IS NULL — uma ClienteEmpresa desativada não conta como clínica acessível (RN-CIU-009, Seção 1) |
| ClienteBD | IpSeguranca | Id, ClienteId — tabela intermediária entre UsuarioCliente e Cliente: UsuarioCliente.ClienteBDId referencia ClienteBD.Id, e ClienteBD.ClienteId referencia Cliente.Id. Não tem Nome/CaminhoLogo próprios utilizáveis aqui — apenas viabiliza o salto até Cliente (ver linha abaixo) |
| Cliente | IpSeguranca | Id, Nome, CaminhoLogo — é quem de fato tem os campos Nome e CaminhoLogo usados para compor clienteNome/clienteLogo no array vinculos da resposta do login (Seção 2); alcançado a partir de UsuarioCliente via ClienteBD (join UsuarioCliente.ClienteBDId → ClienteBD.Id → ClienteBD.ClienteId → Cliente.Id), confirmado na Biblioteca de Schema (DDL), IpSeguranca.sql |
| UsuarioSenhaParametros | IpSeguranca | QuantidadeTentativas, MinutosBloqueado, TamanhoMinimo, MinimoCaracterEspecial, MinimoLetraMaiuscula, MinimoLetraMinuscula, MinimoNumero, CaracteresEspeciais, MinutosValidadeNovaSolicitacao, QuantidadeMemoria |
Nenhuma tabela nova é proposta por este épico — todas as tabelas envolvidas já existem em produção.
Separação de bancos: todas as tabelas utilizadas pertencem ao banco IpSeguranca.
Seeds da Funcionalidade
Nenhum seed novo necessário. Os parâmetros consultados por este épico (QuantidadeTentativas, MinutosBloqueado, TamanhoMinimo, MinimoCaracterEspecial, MinimoLetraMaiuscula, MinimoLetraMinuscula, MinimoNumero, CaracteresEspeciais, MinutosValidadeNovaSolicitacao, QuantidadeMemoria — todos em UsuarioSenhaParametros) já existem em produção; este épico apenas os lê, não propõe nenhuma linha nova.
Histórico de Versões
- v1.0 a v1.9 (07/08/2026 a 27/08/2026) — histórico completo preservado no documento original legado
(CIU-E1) Identidade e autenticação v1.9.md, arquivado emHistórico/. Nas versões legadas, este mapeamento vivia na Seção 9.3 (“Mapeamento de Tabelas”), sem subseções de tabelas novas, seeders ou migrations — o épico nunca propôs schema novo. - v2.0 (30/08/2026) — Arquivo criado pela reconstrução do documento único
(CIU-E1) Identidade e autenticação v1.9.mdno modelo padrão Seção 1-4 (ver 01-Definição, Histórico de Versões, para o detalhamento completo da reorganização). Conteúdo da tabela sem alteração de substância. Adicionada a subseção “Seeds da Funcionalidade” (Lição #19 da Skill Designer, nova nesta versão do projeto) — nenhum seed novo proposto por este épico. - v2.1 (14/09/2026) — adicionadas
ClientePerfilAcessoUsuarioeClienteEmpresaàs tabelas existentes utilizadas, consultadas pela RN-CIU-009 corrigida (Seção 1) para compor a contagem de clínicas acessíveis e o novo campoclinicasAcessiveisda resposta do login (Seção 2). Nenhuma tabela nova — ambas já existem em produção. - v2.2 (14/09/2026) — adicionadas
ClienteeClienteBDàs tabelas existentes utilizadas: a resposta do login (Seção 2) já incluíaclienteNome/clienteLogono arrayvinculos, mas esta lista não mapeava nenhuma tabela com camposNome/CaminhoLogodeCliente— lacuna encontrada em revisão técnica. Confirmado na Biblioteca de Schema (DDL),IpSeguranca.sql, queCliente(nãoClienteBD) tem esses campos, alcançável a partir deUsuarioClienteviaClienteBD(UsuarioCliente.ClienteBDId → ClienteBD.Id → ClienteBD.ClienteId → Cliente.Id). Nenhuma tabela nova — ambas já existem em produção. - v2.3 (14/09/2026) — adicionado o campo
RemovidoEmà tabelaClienteEmpresae documentado o filtroRemovidoEm IS NULLna consulta de clínicas acessíveis — consequência da confirmação do solicitante de que umaClienteEmpresadesativada deixa de dar acesso aos usuários hoje associados a ela (RN-CIU-009, Seção 1). Nenhuma tabela nova.