using Lada.Framework.Data.Domains.Settings;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Lada.Framework.Data.Mappings.EntityMappings.Settings
{
    public class CallPathVersionMap : IEntityMappingConfiguration<CallPathVersion>
    {
        public void Map(EntityTypeBuilder<CallPathVersion> builder)
        {
            // Tên bảng
            builder.ToTable("CallPathVersions");

            // Khóa chính
            builder.HasKey(x => x.Id);

            // Cấu hình các cột
            builder.Property(x => x.Version)
                .IsRequired()
                .HasMaxLength(50);

            builder.Property(x => x.Build)
                .IsRequired()
                .HasMaxLength(50);

            builder.Property(x => x.Domain)
                .IsRequired()
                .HasMaxLength(255);

            builder.Property(x => x.Description)
                .HasMaxLength(2000);

            // Index
            builder.HasIndex(x => new { x.Version, x.Build }).IsUnique();
        }
    }
}
