Cleanup folder structure again

This commit is contained in:
lumijiez
2025-06-21 20:53:49 +03:00
parent f959770e25
commit ec78744d19
100 changed files with 195 additions and 232 deletions

View File

@@ -0,0 +1,105 @@
using Imprink.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Imprink.Infrastructure.Configuration;
public class CategoryConfiguration : EntityBaseConfiguration<Category>
{
public override void Configure(EntityTypeBuilder<Category> builder)
{
base.Configure(builder);
builder.Property(c => c.Name)
.IsRequired()
.HasMaxLength(200);
builder.Property(c => c.Description)
.HasMaxLength(2000);
builder.Property(c => c.ImageUrl)
.HasMaxLength(500);
builder.Property(c => c.SortOrder)
.IsRequired()
.HasDefaultValue(0);
builder.Property(c => c.IsActive)
.IsRequired()
.HasDefaultValue(true);
builder.Property(c => c.ParentCategoryId)
.IsRequired(false);
builder.Property(c => c.CreatedAt)
.IsRequired(false);
builder.Property(c => c.CreatedBy)
.IsRequired(false);
builder.Property(c => c.ModifiedAt)
.IsRequired(false);
builder.Property(c => c.ModifiedBy)
.IsRequired(false);
builder.HasOne(c => c.ParentCategory)
.WithMany(c => c.SubCategories)
.HasForeignKey(c => c.ParentCategoryId)
.OnDelete(DeleteBehavior.Restrict);
builder.HasIndex(c => c.Name)
.HasDatabaseName("IX_Category_Name");
builder.HasIndex(c => c.IsActive)
.HasDatabaseName("IX_Category_IsActive");
builder.HasIndex(c => c.ParentCategoryId)
.HasDatabaseName("IX_Category_ParentCategoryId");
builder.HasIndex(c => new { c.ParentCategoryId, c.SortOrder })
.HasDatabaseName("IX_Category_Parent_SortOrder");
builder.HasIndex(c => new { c.IsActive, c.SortOrder })
.HasDatabaseName("IX_Category_Active_SortOrder");
builder.HasData(
new Category
{
Id = Guid.Parse("11111111-1111-1111-1111-111111111111"),
Name = "Textile",
Description = "Textile and fabric-based products",
IsActive = true,
SortOrder = 1,
CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
ModifiedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
CreatedBy = "system@printbase.com",
ModifiedBy = "system@printbase.com"
},
new Category
{
Id = Guid.Parse("22222222-2222-2222-2222-222222222222"),
Name = "Hard Surfaces",
Description = "Products for hard surface printing",
IsActive = true,
SortOrder = 2,
CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
ModifiedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
CreatedBy = "system@printbase.com",
ModifiedBy = "system@printbase.com"
},
new Category
{
Id = Guid.Parse("33333333-3333-3333-3333-333333333333"),
Name = "Paper",
Description = "Paper-based printing products",
IsActive = true,
SortOrder = 3,
CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
ModifiedAt = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc),
CreatedBy = "system@printbase.com",
ModifiedBy = "system@printbase.com"
}
);
}
}