namespace MyOffice.Data.Repositories.Account;

using Models.Accounts;

public interface IAccountCategoryRepository
{
	List<AccountCategory> GetAll(Guid userId);
	Task<List<AccountCategory>> GetAllAsync(Guid userId, CancellationToken cancellationToken = default);
	bool Add(AccountCategory accountCategory);
	Task<bool> AddAsync(AccountCategory accountCategory, CancellationToken cancellationToken = default);
	AccountCategory? Get(Guid userId, Guid id);
	Task<AccountCategory?> GetAsync(Guid userId, Guid id, CancellationToken cancellationToken = default);
	bool Update(AccountCategory accountCategory);
	Task<bool> UpdateAsync(AccountCategory accountCategory, CancellationToken cancellationToken = default);
	bool Remove(AccountCategory accountCategory);
	Task<bool> RemoveAsync(AccountCategory accountCategory, CancellationToken cancellationToken = default);
}
