namespace MyOffice.Data.Repositories.Account;

using Models.Accounts;

public interface IAccountAccessInviteRepository
{
	AccountAccessInvite? Get(Guid userId, string email);
	Task<AccountAccessInvite?> GetAsync(Guid userId, string email, CancellationToken cancellationToken = default);
	IEnumerable<AccountAccessInvite> GetActive(string email);
	Task<List<AccountAccessInvite>> GetActiveAsync(string email, CancellationToken cancellationToken = default);
	AccountAccessInvite? Get(Guid id);
	Task<AccountAccessInvite?> GetAsync(Guid id, CancellationToken cancellationToken = default);
	bool Add(AccountAccessInvite invite);
	Task<bool> AddAsync(AccountAccessInvite invite, CancellationToken cancellationToken = default);
	bool Update(AccountAccessInvite invite);
	Task<bool> UpdateAsync(AccountAccessInvite invite, CancellationToken cancellationToken = default);
}