diff --git a/Webshop.Api/Controllers/Admin/AdminCategoryController.cs b/Webshop.Api/Controllers/Admin/AdminCategorieController.cs similarity index 100% rename from Webshop.Api/Controllers/Admin/AdminCategoryController.cs rename to Webshop.Api/Controllers/Admin/AdminCategorieController.cs diff --git a/Webshop.Api/Controllers/Public/CategoryController.cs b/Webshop.Api/Controllers/Public/CategorieController.cs similarity index 100% rename from Webshop.Api/Controllers/Public/CategoryController.cs rename to Webshop.Api/Controllers/Public/CategorieController.cs diff --git a/Webshop.Application/DTOs/Categories/CategoryDto.cs b/Webshop.Application/DTOs/Categories/CategorieDto.cs similarity index 100% rename from Webshop.Application/DTOs/Categories/CategoryDto.cs rename to Webshop.Application/DTOs/Categories/CategorieDto.cs diff --git a/Webshop.Application/DTOs/Categories/CreateCategoryDto.cs b/Webshop.Application/DTOs/Categories/CreateCategorieDto.cs similarity index 100% rename from Webshop.Application/DTOs/Categories/CreateCategoryDto.cs rename to Webshop.Application/DTOs/Categories/CreateCategorieDto.cs diff --git a/Webshop.Domain/Entities/Category.cs b/Webshop.Domain/Entities/Categorie.cs similarity index 100% rename from Webshop.Domain/Entities/Category.cs rename to Webshop.Domain/Entities/Categorie.cs diff --git a/Webshop.Domain/Entities/CategoryDiscount.cs b/Webshop.Domain/Entities/CategorieDiscount.cs similarity index 100% rename from Webshop.Domain/Entities/CategoryDiscount.cs rename to Webshop.Domain/Entities/CategorieDiscount.cs diff --git a/Webshop.Domain/Entities/ProductCategory.cs b/Webshop.Domain/Entities/ProductCategorie.cs similarity index 100% rename from Webshop.Domain/Entities/ProductCategory.cs rename to Webshop.Domain/Entities/ProductCategorie.cs diff --git a/Webshop.Domain/Interfaces/ICategoryRepository.cs b/Webshop.Domain/Interfaces/ICategorieRepository.cs similarity index 100% rename from Webshop.Domain/Interfaces/ICategoryRepository.cs rename to Webshop.Domain/Interfaces/ICategorieRepository.cs diff --git a/Webshop.Infrastructure/Migrations/20250801114205_FinalSchema.Designer.cs b/Webshop.Infrastructure/Migrations/20250801131532_FinalSchema.Designer.cs similarity index 99% rename from Webshop.Infrastructure/Migrations/20250801114205_FinalSchema.Designer.cs rename to Webshop.Infrastructure/Migrations/20250801131532_FinalSchema.Designer.cs index bb12e91..91cde8a 100644 --- a/Webshop.Infrastructure/Migrations/20250801114205_FinalSchema.Designer.cs +++ b/Webshop.Infrastructure/Migrations/20250801131532_FinalSchema.Designer.cs @@ -12,7 +12,7 @@ using Webshop.Infrastructure.Data; namespace Webshop.Infrastructure.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20250801114205_FinalSchema")] + [Migration("20250801131532_FinalSchema")] partial class FinalSchema { /// @@ -218,70 +218,6 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Addresses"); }); - modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedDate") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("character varying(1000)"); - - b.Property("DisplayOrder") - .HasColumnType("integer"); - - b.Property("ImageUrl") - .HasMaxLength(2000) - .HasColumnType("character varying(2000)"); - - b.Property("IsActive") - .HasColumnType("boolean"); - - b.Property("LastModifiedDate") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("ParentcategorieId") - .HasColumnType("uuid"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.HasKey("Id"); - - b.HasIndex("ParentcategorieId"); - - b.HasIndex("Slug") - .IsUnique(); - - b.ToTable("categories"); - }); - - modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => - { - b.Property("categorieId") - .HasColumnType("uuid"); - - b.Property("DiscountId") - .HasColumnType("uuid"); - - b.HasKey("categorieId", "DiscountId"); - - b.HasIndex("DiscountId"); - - b.ToTable("categorieDiscounts"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => { b.Property("Id") @@ -655,21 +591,6 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Products"); }); - modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => - { - b.Property("ProductId") - .HasColumnType("uuid"); - - b.Property("categorieId") - .HasColumnType("uuid"); - - b.HasKey("ProductId", "categorieId"); - - b.HasIndex("categorieId"); - - b.ToTable("Productcategories"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.ProductDiscount", b => { b.Property("ProductId") @@ -729,6 +650,21 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("ProductVariants"); }); + modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => + { + b.Property("ProductId") + .HasColumnType("uuid"); + + b.Property("categorieId") + .HasColumnType("uuid"); + + b.HasKey("ProductId", "categorieId"); + + b.HasIndex("categorieId"); + + b.ToTable("Productcategories"); + }); + modelBuilder.Entity("Webshop.Domain.Entities.Review", b => { b.Property("Id") @@ -876,6 +812,70 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Suppliers"); }); + modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreatedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Description") + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImageUrl") + .HasMaxLength(2000) + .HasColumnType("character varying(2000)"); + + b.Property("IsActive") + .HasColumnType("boolean"); + + b.Property("LastModifiedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)"); + + b.Property("ParentcategorieId") + .HasColumnType("uuid"); + + b.Property("Slug") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)"); + + b.HasKey("Id"); + + b.HasIndex("ParentcategorieId"); + + b.HasIndex("Slug") + .IsUnique(); + + b.ToTable("categories"); + }); + + modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => + { + b.Property("categorieId") + .HasColumnType("uuid"); + + b.Property("DiscountId") + .HasColumnType("uuid"); + + b.HasKey("categorieId", "DiscountId"); + + b.HasIndex("DiscountId"); + + b.ToTable("categorieDiscounts"); + }); + modelBuilder.Entity("Webshop.Domain.Identity.ApplicationUser", b => { b.Property("Id") @@ -1006,35 +1006,6 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Customer"); }); - modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "Parentcategorie") - .WithMany("Subcategories") - .HasForeignKey("ParentcategorieId") - .OnDelete(DeleteBehavior.Restrict); - - b.Navigation("Parentcategorie"); - }); - - modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "categorie") - .WithMany("categorieDiscounts") - .HasForeignKey("categorieId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Webshop.Domain.Entities.Discount", "Discount") - .WithMany("categorieDiscounts") - .HasForeignKey("DiscountId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("categorie"); - - b.Navigation("Discount"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => { b.HasOne("Webshop.Domain.Identity.ApplicationUser", "User") @@ -1117,25 +1088,6 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Supplier"); }); - modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "categorie") - .WithMany("Productcategories") - .HasForeignKey("categorieId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Webshop.Domain.Entities.Product", "Product") - .WithMany("Productcategories") - .HasForeignKey("ProductId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("categorie"); - - b.Navigation("Product"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.ProductDiscount", b => { b.HasOne("Webshop.Domain.Entities.Discount", "Discount") @@ -1166,6 +1118,25 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Product"); }); + modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => + { + b.HasOne("Webshop.Domain.Entities.Product", "Product") + .WithMany("Productcategories") + .HasForeignKey("ProductId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Webshop.Domain.Entities.categorie", "categorie") + .WithMany("Productcategories") + .HasForeignKey("categorieId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Product"); + + b.Navigation("categorie"); + }); + modelBuilder.Entity("Webshop.Domain.Entities.Review", b => { b.HasOne("Webshop.Domain.Entities.Customer", "Customer") @@ -1194,11 +1165,31 @@ namespace Webshop.Infrastructure.Migrations modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => { - b.Navigation("categorieDiscounts"); + b.HasOne("Webshop.Domain.Entities.categorie", "Parentcategorie") + .WithMany("Subcategories") + .HasForeignKey("ParentcategorieId") + .OnDelete(DeleteBehavior.Restrict); - b.Navigation("Productcategories"); + b.Navigation("Parentcategorie"); + }); - b.Navigation("Subcategories"); + modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => + { + b.HasOne("Webshop.Domain.Entities.Discount", "Discount") + .WithMany("categorieDiscounts") + .HasForeignKey("DiscountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Webshop.Domain.Entities.categorie", "categorie") + .WithMany("categorieDiscounts") + .HasForeignKey("categorieId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Discount"); + + b.Navigation("categorie"); }); modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => @@ -1212,9 +1203,9 @@ namespace Webshop.Infrastructure.Migrations modelBuilder.Entity("Webshop.Domain.Entities.Discount", b => { - b.Navigation("categorieDiscounts"); - b.Navigation("ProductDiscounts"); + + b.Navigation("categorieDiscounts"); }); modelBuilder.Entity("Webshop.Domain.Entities.Order", b => @@ -1238,6 +1229,15 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Products"); }); + modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => + { + b.Navigation("Productcategories"); + + b.Navigation("Subcategories"); + + b.Navigation("categorieDiscounts"); + }); + modelBuilder.Entity("Webshop.Domain.Identity.ApplicationUser", b => { b.Navigation("Customer"); diff --git a/Webshop.Infrastructure/Migrations/20250801114205_FinalSchema.cs b/Webshop.Infrastructure/Migrations/20250801131532_FinalSchema.cs similarity index 100% rename from Webshop.Infrastructure/Migrations/20250801114205_FinalSchema.cs rename to Webshop.Infrastructure/Migrations/20250801131532_FinalSchema.cs diff --git a/Webshop.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs b/Webshop.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs index ebc88e0..6697329 100644 --- a/Webshop.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Webshop.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs @@ -215,70 +215,6 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Addresses"); }); - modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedDate") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("character varying(1000)"); - - b.Property("DisplayOrder") - .HasColumnType("integer"); - - b.Property("ImageUrl") - .HasMaxLength(2000) - .HasColumnType("character varying(2000)"); - - b.Property("IsActive") - .HasColumnType("boolean"); - - b.Property("LastModifiedDate") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("ParentcategorieId") - .HasColumnType("uuid"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.HasKey("Id"); - - b.HasIndex("ParentcategorieId"); - - b.HasIndex("Slug") - .IsUnique(); - - b.ToTable("categories"); - }); - - modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => - { - b.Property("categorieId") - .HasColumnType("uuid"); - - b.Property("DiscountId") - .HasColumnType("uuid"); - - b.HasKey("categorieId", "DiscountId"); - - b.HasIndex("DiscountId"); - - b.ToTable("categorieDiscounts"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => { b.Property("Id") @@ -652,21 +588,6 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Products"); }); - modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => - { - b.Property("ProductId") - .HasColumnType("uuid"); - - b.Property("categorieId") - .HasColumnType("uuid"); - - b.HasKey("ProductId", "categorieId"); - - b.HasIndex("categorieId"); - - b.ToTable("Productcategories"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.ProductDiscount", b => { b.Property("ProductId") @@ -726,6 +647,21 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("ProductVariants"); }); + modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => + { + b.Property("ProductId") + .HasColumnType("uuid"); + + b.Property("categorieId") + .HasColumnType("uuid"); + + b.HasKey("ProductId", "categorieId"); + + b.HasIndex("categorieId"); + + b.ToTable("Productcategories"); + }); + modelBuilder.Entity("Webshop.Domain.Entities.Review", b => { b.Property("Id") @@ -873,6 +809,70 @@ namespace Webshop.Infrastructure.Migrations b.ToTable("Suppliers"); }); + modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreatedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Description") + .HasMaxLength(1000) + .HasColumnType("character varying(1000)"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImageUrl") + .HasMaxLength(2000) + .HasColumnType("character varying(2000)"); + + b.Property("IsActive") + .HasColumnType("boolean"); + + b.Property("LastModifiedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)"); + + b.Property("ParentcategorieId") + .HasColumnType("uuid"); + + b.Property("Slug") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)"); + + b.HasKey("Id"); + + b.HasIndex("ParentcategorieId"); + + b.HasIndex("Slug") + .IsUnique(); + + b.ToTable("categories"); + }); + + modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => + { + b.Property("categorieId") + .HasColumnType("uuid"); + + b.Property("DiscountId") + .HasColumnType("uuid"); + + b.HasKey("categorieId", "DiscountId"); + + b.HasIndex("DiscountId"); + + b.ToTable("categorieDiscounts"); + }); + modelBuilder.Entity("Webshop.Domain.Identity.ApplicationUser", b => { b.Property("Id") @@ -1003,35 +1003,6 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Customer"); }); - modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "Parentcategorie") - .WithMany("Subcategories") - .HasForeignKey("ParentcategorieId") - .OnDelete(DeleteBehavior.Restrict); - - b.Navigation("Parentcategorie"); - }); - - modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "categorie") - .WithMany("categorieDiscounts") - .HasForeignKey("categorieId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Webshop.Domain.Entities.Discount", "Discount") - .WithMany("categorieDiscounts") - .HasForeignKey("DiscountId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("categorie"); - - b.Navigation("Discount"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => { b.HasOne("Webshop.Domain.Identity.ApplicationUser", "User") @@ -1114,25 +1085,6 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Supplier"); }); - modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => - { - b.HasOne("Webshop.Domain.Entities.categorie", "categorie") - .WithMany("Productcategories") - .HasForeignKey("categorieId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Webshop.Domain.Entities.Product", "Product") - .WithMany("Productcategories") - .HasForeignKey("ProductId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("categorie"); - - b.Navigation("Product"); - }); - modelBuilder.Entity("Webshop.Domain.Entities.ProductDiscount", b => { b.HasOne("Webshop.Domain.Entities.Discount", "Discount") @@ -1163,6 +1115,25 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Product"); }); + modelBuilder.Entity("Webshop.Domain.Entities.Productcategorie", b => + { + b.HasOne("Webshop.Domain.Entities.Product", "Product") + .WithMany("Productcategories") + .HasForeignKey("ProductId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Webshop.Domain.Entities.categorie", "categorie") + .WithMany("Productcategories") + .HasForeignKey("categorieId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Product"); + + b.Navigation("categorie"); + }); + modelBuilder.Entity("Webshop.Domain.Entities.Review", b => { b.HasOne("Webshop.Domain.Entities.Customer", "Customer") @@ -1191,11 +1162,31 @@ namespace Webshop.Infrastructure.Migrations modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => { - b.Navigation("categorieDiscounts"); + b.HasOne("Webshop.Domain.Entities.categorie", "Parentcategorie") + .WithMany("Subcategories") + .HasForeignKey("ParentcategorieId") + .OnDelete(DeleteBehavior.Restrict); - b.Navigation("Productcategories"); + b.Navigation("Parentcategorie"); + }); - b.Navigation("Subcategories"); + modelBuilder.Entity("Webshop.Domain.Entities.categorieDiscount", b => + { + b.HasOne("Webshop.Domain.Entities.Discount", "Discount") + .WithMany("categorieDiscounts") + .HasForeignKey("DiscountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Webshop.Domain.Entities.categorie", "categorie") + .WithMany("categorieDiscounts") + .HasForeignKey("categorieId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Discount"); + + b.Navigation("categorie"); }); modelBuilder.Entity("Webshop.Domain.Entities.Customer", b => @@ -1209,9 +1200,9 @@ namespace Webshop.Infrastructure.Migrations modelBuilder.Entity("Webshop.Domain.Entities.Discount", b => { - b.Navigation("categorieDiscounts"); - b.Navigation("ProductDiscounts"); + + b.Navigation("categorieDiscounts"); }); modelBuilder.Entity("Webshop.Domain.Entities.Order", b => @@ -1235,6 +1226,15 @@ namespace Webshop.Infrastructure.Migrations b.Navigation("Products"); }); + modelBuilder.Entity("Webshop.Domain.Entities.categorie", b => + { + b.Navigation("Productcategories"); + + b.Navigation("Subcategories"); + + b.Navigation("categorieDiscounts"); + }); + modelBuilder.Entity("Webshop.Domain.Identity.ApplicationUser", b => { b.Navigation("Customer"); diff --git a/Webshop.Infrastructure/Repositories/CategoryRepository.cs b/Webshop.Infrastructure/Repositories/CategorieRepository.cs similarity index 100% rename from Webshop.Infrastructure/Repositories/CategoryRepository.cs rename to Webshop.Infrastructure/Repositories/CategorieRepository.cs