using EntitlementDAL.DTO.User;
using GB5Shared.DTO.Framework.Login;
namespace EntitlementDAL.Interfaces;
///
/// Narrow MUSER write path for ClientUserProvisioner — see its own doc comment for why this
/// exists instead of a FrameworkBLL/FrameworkDAL reference.
///
public interface IEntitlementUserDAL
{
Task SaveUserAsync(EntitlementUserDTO userDto, LoginDTO login, CancellationToken ct);
/// Tracker §49 Decision 8/9 — reads back a central account's admin identity to seed
/// a real per-prospect MUSER inside a pooled demo instance's own physical database.
Task GetUserByIdAsync(int userId, LoginDTO login, CancellationToken ct);
/// Tracker §49 — resolves a demo/trial ClientId's own admin contact (Name/Email) for
/// the warning-email step, without needing UserId threaded through the whole expiry pipeline.
Task GetUserByClientIdAsync(int clientId, LoginDTO login, CancellationToken ct);
}