Files
Jorge Luis caudillo esparza d0c284d9c0 First Commit
2026-05-09 16:36:57 -07:00

30 lines
2.3 KiB
Plaintext

Quiero rehacer desde cero la API ADS.Apis.Gps con orden limpio (Domain / Application / Infrastructure / Controllers) y multi-tenant por headers internos desde el Host.
Contexto:
- El Host (gateway) resuelve tenant y manda headers internos firmados (InternalRouting).
- En el micro GPS ya uso UseInternalTenantDb() para validar firma y poblar TenantContext.
- TenantContext tiene: EmpresaId, ClienteId, TenantId (string), Culture, Theme, Database { Provider, ConnectionString }, CustomSettings.
- GPS NO debe leer appsettings para tenants ni duplicar config del Host. NO usar ITenantStore en GPS.
- La conexión a BD siempre sale de TenantContext.Database.ConnectionString y se abre vía ITenantDbConnectionFactory (ADS.Helpers.Data).
Objetivo inmediato:
1) Definir la estructura de carpetas y proyectos dentro de ADS.Apis.Gps:
- Domain: modelos/puertos (interfaces) sin SQL ni Dapper.
- Application: casos de uso/servicios y orquestación.
- Infrastructure: Dapper/SQL repos/stores.
- Controllers: endpoints.
2) Implementar autenticación Sicrep en GPS:
- Endpoint POST /gps/sicrep/auth/token
- Antes de generar JWT, ejecutar el SP [dbo].[PA_Sis_UsuarioValidacionGet] con @Usuario, @Contraseña (varchar(32)), @CveEmpresa (del tenant), y validar que CveUsuario > 0 y Acceso = 1.
- Luego emitir JWT usando ADS.Helpers.Auth (IAdsTokenService) con TenantId string y claims (CveUsuario, CveEmpresa, CveCliente, CveRol, etc.)
3) Entregarme:
- Árbol final de carpetas.
- Código completo de: puertos (interfaces), modelos domain, repos Infrastructure (Dapper + SP), servicio Application (caso de uso), controller, y registros DI en Program.cs.
- NOTA: No uses GetConnectionString("...") ni appsettings para la DB del micro.
Datos extra:
- Confirmar si la contraseña en BD ya viene en MD5 hex 32 o si debo hashear antes de llamar al SP. (Si no sabes, deja helper para MD5 y comenta dónde se decide).
IMPORTANTE: No inventes métodos que no existan; si necesitas agregar algo a ADS.Helpers.Auth o ADS.Helpers.MultiTenant/Helpers.Data, dilo explícitamente y dame el código exacto del archivo a modificar.
pasame un script para la generacion de archivos y carpetas
tampoco te inventes rutas nuevas las apis las estoy guardando en la carpeta de apis
la ruta del proyecto debe ser exatamente la misma para que funciione con ADS.Apis.slnx