using System.Data.Common; using EntitlementDAL.DTOs; using GB5Shared.DTO.Framework.Login; namespace EntitlementDAL.Interfaces; public interface ILicenseDAL { Task GetByIdAsync(int licenseId, LoginDTO login, CancellationToken ct); Task> GetBySubscriptionAsync(int subscriptionId, LoginDTO login, CancellationToken ct); Task GetBySubscriptionAndTypeAsync(int subscriptionId, byte licenseType, LoginDTO login, CancellationToken ct); Task SaveAsync(LicenseDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task UpdateSeatsAsync(int licenseId, int seats, LoginDTO login, DbTransaction tx, CancellationToken ct); Task GetActiveAssignmentCountAsync(int licenseId, LoginDTO login, CancellationToken ct); Task> GetAssignmentsByLicenseAsync(int licenseId, LoginDTO login, CancellationToken ct); Task SaveAssignmentAsync(LicenseAssignmentDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task RevokeAssignmentAsync(int licenseAssignmentId, DateTime revokedOn, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetUtilisationByClientAsync(int clientId, LoginDTO login, CancellationToken ct); }