Add validators and services for Product Galleries and Product Tags
- Implemented Create, Delete, Get, and Update validators for Product Galleries. - Added Create, Delete, Get, and Update validators for Product Tags. - Created service classes for handling Discount Categories, Discount Orders, Discount Products, Discount Shopping Cart, Product Categories, Product Galleries, and Product Tags. - Each service class integrates with CQRS for command and query handling. - Established mapping profiles for Product Galleries.
This commit is contained in:
+74
@@ -0,0 +1,74 @@
|
||||
using CMSMicroservice.Domain.Entities.Message;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace CMSMicroservice.Infrastructure.Persistence.Configurations;
|
||||
|
||||
public class PublicMessageConfiguration : IEntityTypeConfiguration<PublicMessage>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<PublicMessage> builder)
|
||||
{
|
||||
builder.ToTable("PublicMessages");
|
||||
|
||||
builder.HasKey(x => x.Id);
|
||||
|
||||
builder.Property(x => x.Title)
|
||||
.IsRequired()
|
||||
.HasMaxLength(200);
|
||||
|
||||
builder.Property(x => x.Content)
|
||||
.IsRequired()
|
||||
.HasMaxLength(2000);
|
||||
|
||||
builder.Property(x => x.Type)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.Priority)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.IsActive)
|
||||
.IsRequired()
|
||||
.HasDefaultValue(true);
|
||||
|
||||
builder.Property(x => x.StartsAt)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.ExpiresAt)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.CreatedByUserId)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.ViewCount)
|
||||
.IsRequired()
|
||||
.HasDefaultValue(0);
|
||||
|
||||
builder.Property(x => x.LinkUrl)
|
||||
.HasMaxLength(500);
|
||||
|
||||
builder.Property(x => x.LinkText)
|
||||
.HasMaxLength(100);
|
||||
|
||||
// Indexes
|
||||
builder.HasIndex(x => x.IsActive)
|
||||
.HasDatabaseName("IX_PublicMessages_IsActive");
|
||||
|
||||
builder.HasIndex(x => x.Type)
|
||||
.HasDatabaseName("IX_PublicMessages_Type");
|
||||
|
||||
builder.HasIndex(x => x.Priority)
|
||||
.HasDatabaseName("IX_PublicMessages_Priority");
|
||||
|
||||
builder.HasIndex(x => x.StartsAt)
|
||||
.HasDatabaseName("IX_PublicMessages_StartsAt");
|
||||
|
||||
builder.HasIndex(x => x.ExpiresAt)
|
||||
.HasDatabaseName("IX_PublicMessages_ExpiresAt");
|
||||
|
||||
builder.HasIndex(x => x.CreatedByUserId)
|
||||
.HasDatabaseName("IX_PublicMessages_CreatedByUserId");
|
||||
|
||||
builder.HasIndex(x => new { x.IsActive, x.ExpiresAt })
|
||||
.HasDatabaseName("IX_PublicMessages_IsActive_ExpiresAt");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user