Logica do SistemaSecao 11
Seeds, Permissoes e Configuracao
Politica de Senha de Tenant
Arquivo: cargo_fleet.Application/EventHandlers/TenantUserPasswordPolicyHandler.cs
- Ativado na criacao de usuario.
- Se
UserName.Contains("admin")(case-sensitive): setaShouldChangePasswordOnNextLogin = true. - Incoerencia: comparacao case-sensitive (
ADMINnao e afetado — SEC2-17).
DbContext — Mapeamentos
Arquivo: cargo_fleet.EntityFrameworkCore/EntityFrameworkCore/cargo_fleetDbContext.cs
DbSets: WhatsAppContacts, ApiStatuses, OfertaRecords, GalileuCredentials, Ofertas, Rotas, Notifications, DeviceTokens, SeedExecutions, Cidades.
Mapeamentos relevantes:
GalileuCredentialmapeado duas vezes (linhas 193-201 e 212-220) — P-12.ApiStatusmapeado duas vezes (linhas 203-210 e 222-229) — P-12.OfertaRecordtemOnDelete(DeleteBehavior.NoAction)para FK de Oferta — sem cascade delete.Rotatem indices para campos de carga adicional e geograficos, mas sem indice composto(Origem, Destino, Carga, Status).
Permissoes Definidas
Arquivo:
cargo_fleet.Application.Contracts/Permissions/cargo_fleetPermissions.cscargo_fleet.Dashboard.Host,.Tenantcargo_fleet.Metricas.Host,.Tenantcargo_fleet.Rotas.Default,.Edit,.Create,.Deletecargo_fleet.Ofertas.Default,.Edit,.Create,.Deletecargo_fleet.GalileuCredentials.Default,.Edit,.Create,.Deletecargo_fleet.OfertaRecords.Default,.Edit,.Create,.Deletecargo_fleet.ApiStatuses.Default,.Edit,.Create,.Deletecargo_fleet.WhatsAppContacts.Default,.Edit,.Create,.DeleteAusente: Nao existe permissao especifica para
CotarOfertaouAtualizarPreco— operacoes financeiras cobertas apenas por.Default(SEC2-07, SEC2-11).