using Entities.Models;
namespace Application.Abstractions.Interfaces;
///
/// Repository interface for AdminKey entity operations
///
public interface IAdminKeyRepository
{
Task GetByIdAsync(int id);
Task GetByKeyCodeAsync(string keyCode);
Task> GetAllAsync();
Task> GetUnusedKeysAsync();
Task> GetKeysByAdminAsync(int adminId);
Task IsKeyValidAsync(string keyCode);
Task AddAsync(AdminKey adminKey);
Task UpdateAsync(AdminKey adminKey);
Task DeleteAsync(int id);
Task SaveChangesAsync();
}