using GB5Shared.DTO.Framework.Login; namespace DXPDAL.Common; // Global DXP tables (MDXPPARTY, TDXPPARTYLINK, TDXPPARTYBRANCHLINK, MDXPUSER, // MDXPUSERPARTYROLE, MDXPREFRESHTOKEN, MDXPPARTYKYCPROFILE, TDXPPOACKNOWLEDGEMENT) all live in // ONE dedicated DXP system database — never inside any client's tenant DB (see migration // headers). Every DAL call against these tables uses GetSystemLogin, never a tenant LoginDTO. // Mirrors FlsRespondentDAL.GetByTokenAsync's `new LoginDTO { ClientId = 0, UserId = -1 }` // precedent for cross-tenant/pre-authentication lookups. public interface IDXPSystemContext { LoginDTO GetSystemLogin(int userId = -1); // For DIRECT reads against a tenant's own database (TMMHEAD/TMMDETAIL/MPARTYACCOUNTOU) — // valid because GB5 modules share one physical per-tenant database (see Phase 1.3 migration // header). NEVER used for writes into another module's transactional tables — those go // through that module's own HTTP endpoint instead (see IMmIntegrationService). LoginDTO GetTenantLogin(int tenantId, string databaseName, byte databaseType, int localPartyId, int actingUserId); }