Repositories + some models

This commit is contained in:
lumijiez
2025-05-27 12:28:12 +03:00
parent 6fedaf9737
commit 73269bd42a
26 changed files with 416 additions and 3133 deletions

View File

@@ -0,0 +1,20 @@
using Printbase.Domain.Entities.Product;
namespace Printbase.Domain.Repositories;
public interface ICategoryRepository
{
Task<Category?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default);
Task<Category?> GetByIdWithSubCategoriesAsync(Guid id, CancellationToken cancellationToken = default);
Task<Category?> GetByIdWithProductsAsync(Guid id, CancellationToken cancellationToken = default);
Task<IEnumerable<Category>> GetAllAsync(CancellationToken cancellationToken = default);
Task<IEnumerable<Category>> GetActiveAsync(CancellationToken cancellationToken = default);
Task<IEnumerable<Category>> GetRootCategoriesAsync(CancellationToken cancellationToken = default);
Task<IEnumerable<Category>> GetSubCategoriesAsync(Guid parentCategoryId, CancellationToken cancellationToken = default);
Task<Category> AddAsync(Category category, CancellationToken cancellationToken = default);
Task<Category> UpdateAsync(Category category, CancellationToken cancellationToken = default);
Task DeleteAsync(Guid id, CancellationToken cancellationToken = default);
Task<bool> ExistsAsync(Guid id, CancellationToken cancellationToken = default);
Task<bool> HasSubCategoriesAsync(Guid categoryId, CancellationToken cancellationToken = default);
Task<bool> HasProductsAsync(Guid categoryId, CancellationToken cancellationToken = default);
}