using Domain.Entities.EmailVerification; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.EmailVerification; public sealed class EmailVerifyTokenConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasIndex(x => x.Type); builder.HasIndex(x => x.Email); builder.HasIndex(x => x.Token); builder.HasIndex(x => x.IsVerified); builder.HasIndex(x => x.Expiration); builder.HasIndex(x => new { x.Type, x.Email, x.Token }); builder.HasIndex(x => new { x.Type, x.Email, x.Token, x.IsVerified }); builder.ToTable(nameof(EmailVerifyToken), x => x.HasComment("À̸ÞÀÏ ÀÎÁõ ÅäÅ«µé")); builder.HasKey(x => x.ID); builder.Property(x => x.ID).ValueGeneratedOnAdd().HasComment("PK"); builder.Property(x => x.Type).HasConversion().IsRequired().HasComment("ÀÎÁõ À¯Çü (À̸ÞÀÏ ÀÎÁõ / ºñ¹Ð¹øÈ£ Àç¼³Á¤)"); builder.Property(x => x.Email).HasMaxLength(60).IsRequired().HasComment("À̸ÞÀÏ"); builder.Property(x => x.Token).HasMaxLength(256).IsRequired().HasComment("Token"); builder.Property(x => x.IsVerified).IsRequired().HasComment("ÀÎÁõ ¿©ºÎ"); builder.Property(x => x.Expiration).IsRequired().HasComment("¸¸·á ÀϽÃ"); builder.Property(x => x.Additional).HasComment("Ãß°¡ Á¤º¸(JSON)"); builder.Property(x => x.CreatedAt).IsRequired().HasComment("µî·Ï ÀϽÃ"); builder.Ignore(x => x.AdditionalData); } }