diff --git a/src/Imprink.Application/Imprink.Application.csproj b/src/Imprink.Application/Imprink.Application.csproj
index 7d1c2ec..892e1ef 100644
--- a/src/Imprink.Application/Imprink.Application.csproj
+++ b/src/Imprink.Application/Imprink.Application.csproj
@@ -17,4 +17,10 @@
+
+
+
+
+
+
diff --git a/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs b/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs
deleted file mode 100644
index 3ffbc28..0000000
--- a/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class CreateCategoryCommand : IRequest
-{
- public string Name { get; set; } = null!;
- public string Description { get; set; } = null!;
- public string? ImageUrl { get; set; }
- public int SortOrder { get; set; }
- public bool IsActive { get; set; } = true;
- public Guid? ParentCategoryId { get; set; }
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Commands/CreateProductCommand.cs b/src/Imprink.Application/Products/Commands/CreateProductCommand.cs
deleted file mode 100644
index 4233044..0000000
--- a/src/Imprink.Application/Products/Commands/CreateProductCommand.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class CreateProductCommand : IRequest
-{
- public string Name { get; set; } = null!;
- public string? Description { get; set; }
- public decimal BasePrice { get; set; }
- public bool IsCustomizable { get; set; }
- public bool IsActive { get; set; } = true;
- public string? ImageUrl { get; set; }
- public Guid? CategoryId { get; set; }
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs b/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs
deleted file mode 100644
index f6edcfd..0000000
--- a/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class CreateProductVariantCommand : IRequest
-{
- public Guid ProductId { get; set; }
- public string Size { get; set; } = null!;
- public string? Color { get; set; }
- public decimal Price { get; set; }
- public string? ImageUrl { get; set; }
- public string Sku { get; set; } = null!;
- public int StockQuantity { get; set; }
- public bool IsActive { get; set; } = true;
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs b/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs
deleted file mode 100644
index 28f3694..0000000
--- a/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class DeleteCategoryCommand : IRequest
-{
- public Guid Id { get; set; }
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs b/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs
deleted file mode 100644
index a40687f..0000000
--- a/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class DeleteProductCommand : IRequest
-{
- public Guid Id { get; set; }
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs b/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs
deleted file mode 100644
index df13945..0000000
--- a/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using MediatR;
-
-namespace Imprink.Application.Products.Commands;
-
-public class DeleteProductVariantCommand : IRequest
-{
- public Guid Id { get; set; }
-}
diff --git a/src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs b/src/Imprink.Application/Products/Create/CreateCategoryHandler.cs
similarity index 81%
rename from src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs
rename to src/Imprink.Application/Products/Create/CreateCategoryHandler.cs
index 1d3c136..6b3cda4 100644
--- a/src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs
+++ b/src/Imprink.Application/Products/Create/CreateCategoryHandler.cs
@@ -1,9 +1,18 @@
-using Imprink.Application.Products.Commands;
using Imprink.Application.Products.Dtos;
using Imprink.Domain.Entities.Product;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Create;
+
+public class CreateCategoryCommand : IRequest
+{
+ public string Name { get; set; } = null!;
+ public string Description { get; set; } = null!;
+ public string? ImageUrl { get; set; }
+ public int SortOrder { get; set; }
+ public bool IsActive { get; set; } = true;
+ public Guid? ParentCategoryId { get; set; }
+}
public class CreateCategoryHandler(IUnitOfWork unitOfWork) : IRequestHandler
{
diff --git a/src/Imprink.Application/Products/Handlers/CreateProductHandler.cs b/src/Imprink.Application/Products/Create/CreateProductHandler.cs
similarity index 85%
rename from src/Imprink.Application/Products/Handlers/CreateProductHandler.cs
rename to src/Imprink.Application/Products/Create/CreateProductHandler.cs
index ba353eb..8cdce4c 100644
--- a/src/Imprink.Application/Products/Handlers/CreateProductHandler.cs
+++ b/src/Imprink.Application/Products/Create/CreateProductHandler.cs
@@ -1,9 +1,19 @@
-using Imprink.Application.Products.Commands;
using Imprink.Application.Products.Dtos;
using Imprink.Domain.Entities.Product;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Create;
+
+public class CreateProductCommand : IRequest
+{
+ public string Name { get; set; } = null!;
+ public string? Description { get; set; }
+ public decimal BasePrice { get; set; }
+ public bool IsCustomizable { get; set; }
+ public bool IsActive { get; set; } = true;
+ public string? ImageUrl { get; set; }
+ public Guid? CategoryId { get; set; }
+}
public class CreateProductHandler(IUnitOfWork unitOfWork) : IRequestHandler
{
diff --git a/src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs b/src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs
similarity index 80%
rename from src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs
rename to src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs
index f02bc88..c01eacd 100644
--- a/src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs
+++ b/src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs
@@ -1,9 +1,20 @@
-using Imprink.Application.Products.Commands;
using Imprink.Application.Products.Dtos;
using Imprink.Domain.Entities.Product;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Create;
+
+public class CreateProductVariantCommand : IRequest
+{
+ public Guid ProductId { get; set; }
+ public string Size { get; set; } = null!;
+ public string? Color { get; set; }
+ public decimal Price { get; set; }
+ public string? ImageUrl { get; set; }
+ public string Sku { get; set; } = null!;
+ public int StockQuantity { get; set; }
+ public bool IsActive { get; set; } = true;
+}
public class CreateProductVariantHandler(IUnitOfWork unitOfWork)
: IRequestHandler
diff --git a/src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs b/src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs
similarity index 87%
rename from src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs
rename to src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs
index 4b93917..fe6dfc2 100644
--- a/src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs
+++ b/src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs
@@ -1,7 +1,11 @@
-using Imprink.Application.Products.Commands;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Delete;
+
+public class DeleteCategoryCommand : IRequest
+{
+ public Guid Id { get; set; }
+}
public class DeleteCategoryHandler(IUnitOfWork unitOfWork) : IRequestHandler
{
diff --git a/src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs b/src/Imprink.Application/Products/Delete/DeleteProductHandler.cs
similarity index 87%
rename from src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs
rename to src/Imprink.Application/Products/Delete/DeleteProductHandler.cs
index 29de5c2..70edc5a 100644
--- a/src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs
+++ b/src/Imprink.Application/Products/Delete/DeleteProductHandler.cs
@@ -1,7 +1,11 @@
-using Imprink.Application.Products.Commands;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Delete;
+
+public class DeleteProductCommand : IRequest
+{
+ public Guid Id { get; set; }
+}
public class DeleteProductHandler(IUnitOfWork unitOfWork) : IRequestHandler
{
diff --git a/src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs b/src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs
similarity index 87%
rename from src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs
rename to src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs
index d39a6f6..410fb3a 100644
--- a/src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs
+++ b/src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs
@@ -1,7 +1,11 @@
-using Imprink.Application.Products.Commands;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Delete;
+
+public class DeleteProductVariantCommand : IRequest
+{
+ public Guid Id { get; set; }
+}
public class DeleteProductVariantHandler(IUnitOfWork unitOfWork) : IRequestHandler
{
diff --git a/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs b/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs
deleted file mode 100644
index dff7db6..0000000
--- a/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using MediatR;
-
-namespace Imprink.Application.Products.Queries;
-
-public class GetCategoriesQuery : IRequest>
-{
- public bool? IsActive { get; set; }
- public bool RootCategoriesOnly { get; set; } = false;
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs b/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs
deleted file mode 100644
index c150d32..0000000
--- a/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using MediatR;
-
-namespace Imprink.Application.Products.Queries;
-
-public class GetProductVariantsQuery : IRequest>
-{
- public Guid? ProductId { get; set; }
- public bool? IsActive { get; set; }
- public bool InStockOnly { get; set; } = false;
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Queries/GetProductsQuery.cs b/src/Imprink.Application/Products/Queries/GetProductsQuery.cs
deleted file mode 100644
index 7329b15..0000000
--- a/src/Imprink.Application/Products/Queries/GetProductsQuery.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Imprink.Application.Products.Dtos;
-using Imprink.Domain.Common.Models;
-using MediatR;
-
-namespace Imprink.Application.Products.Queries;
-
-public class GetProductsQuery : IRequest>
-{
- public ProductFilterParameters FilterParameters { get; set; } = new();
-}
\ No newline at end of file
diff --git a/src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs b/src/Imprink.Application/Products/Query/GetCategoriesHandler.cs
similarity index 85%
rename from src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs
rename to src/Imprink.Application/Products/Query/GetCategoriesHandler.cs
index 8bb0985..0baf581 100644
--- a/src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs
+++ b/src/Imprink.Application/Products/Query/GetCategoriesHandler.cs
@@ -1,9 +1,14 @@
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
using Imprink.Domain.Entities.Product;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Query;
+
+public class GetCategoriesQuery : IRequest>
+{
+ public bool? IsActive { get; set; }
+ public bool RootCategoriesOnly { get; set; } = false;
+}
public class GetCategoriesHandler(IUnitOfWork unitOfWork)
: IRequestHandler>
diff --git a/src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs b/src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs
similarity index 89%
rename from src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs
rename to src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs
index cddae77..adfa831 100644
--- a/src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs
+++ b/src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs
@@ -1,9 +1,15 @@
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
using Imprink.Domain.Entities.Product;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Query;
+
+public class GetProductVariantsQuery : IRequest>
+{
+ public Guid? ProductId { get; set; }
+ public bool? IsActive { get; set; }
+ public bool InStockOnly { get; set; } = false;
+}
public class GetProductVariantsHandler(IUnitOfWork unitOfWork)
: IRequestHandler>
diff --git a/src/Imprink.Application/Products/Handlers/GetProductsHandler.cs b/src/Imprink.Application/Products/Query/GetProductsHandler.cs
similarity index 87%
rename from src/Imprink.Application/Products/Handlers/GetProductsHandler.cs
rename to src/Imprink.Application/Products/Query/GetProductsHandler.cs
index 4116892..de8cfaa 100644
--- a/src/Imprink.Application/Products/Handlers/GetProductsHandler.cs
+++ b/src/Imprink.Application/Products/Query/GetProductsHandler.cs
@@ -1,8 +1,13 @@
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
+using Imprink.Domain.Common.Models;
using MediatR;
-namespace Imprink.Application.Products.Handlers;
+namespace Imprink.Application.Products.Query;
+
+public class GetProductsQuery : IRequest>
+{
+ public ProductFilterParameters FilterParameters { get; set; } = new();
+}
public class GetProductsHandler(IUnitOfWork unitOfWork) : IRequestHandler>
{
diff --git a/src/Imprink.WebApi/Controllers/CategoriesController.cs b/src/Imprink.WebApi/Controllers/CategoriesController.cs
index 557f8e2..fb6d872 100644
--- a/src/Imprink.WebApi/Controllers/CategoriesController.cs
+++ b/src/Imprink.WebApi/Controllers/CategoriesController.cs
@@ -1,6 +1,7 @@
-using Imprink.Application.Products.Commands;
+using Imprink.Application.Products.Create;
+using Imprink.Application.Products.Delete;
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
+using Imprink.Application.Products.Query;
using MediatR;
using Microsoft.AspNetCore.Mvc;
diff --git a/src/Imprink.WebApi/Controllers/ProductVariantsController.cs b/src/Imprink.WebApi/Controllers/ProductVariantsController.cs
index 1454e3e..7f2835b 100644
--- a/src/Imprink.WebApi/Controllers/ProductVariantsController.cs
+++ b/src/Imprink.WebApi/Controllers/ProductVariantsController.cs
@@ -1,6 +1,7 @@
-using Imprink.Application.Products.Commands;
+using Imprink.Application.Products.Create;
+using Imprink.Application.Products.Delete;
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
+using Imprink.Application.Products.Query;
using MediatR;
using Microsoft.AspNetCore.Mvc;
diff --git a/src/Imprink.WebApi/Controllers/ProductsController.cs b/src/Imprink.WebApi/Controllers/ProductsController.cs
index 5a7d74b..00024ea 100644
--- a/src/Imprink.WebApi/Controllers/ProductsController.cs
+++ b/src/Imprink.WebApi/Controllers/ProductsController.cs
@@ -1,6 +1,7 @@
-using Imprink.Application.Products.Commands;
+using Imprink.Application.Products.Create;
+using Imprink.Application.Products.Delete;
using Imprink.Application.Products.Dtos;
-using Imprink.Application.Products.Queries;
+using Imprink.Application.Products.Query;
using Imprink.Domain.Common.Models;
using MediatR;
using Microsoft.AspNetCore.Mvc;
diff --git a/src/Imprink.WebApi/Startup.cs b/src/Imprink.WebApi/Startup.cs
index 683a413..18bcfa4 100644
--- a/src/Imprink.WebApi/Startup.cs
+++ b/src/Imprink.WebApi/Startup.cs
@@ -1,5 +1,5 @@
using Imprink.Application;
-using Imprink.Application.Products.Handlers;
+using Imprink.Application.Products.Create;
using Imprink.Domain.Repositories;
using Imprink.Infrastructure;
using Imprink.Infrastructure.Database;