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

namespace Lada.Framework.Data.Mappings.EntityMappings.Hr
{
    public class CandidateMap : IEntityMappingConfiguration<Candidate>
    {
        public void Map(EntityTypeBuilder<Candidate> builder)
        {
            builder.HasKey(a => a.Id);

            // Tạo index composite cho JobId và PhoneNumber để tối ưu hóa query kiểm tra trùng lặp
            builder.HasIndex(a => new { a.JobId, a.PhoneNumber })
                   .HasDatabaseName("IX_Candidate_JobId_PhoneNumber");

            // Tạo index cho PhoneNumber để tối ưu hóa các query khác
            builder.HasIndex(a => a.PhoneNumber)
                   .HasDatabaseName("IX_Candidate_PhoneNumber");

            builder.ToTable("Candidate");
        }
    }
}
