using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using Monitoring.Domain.Entities.AlertRule; namespace Monitoring.Infrastructure.Persistence.Configurations; /// 告警规则表映射(id + 外键索引列 + json_data + 审计)。 public class AlertRuleConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("b_alert_rules"); builder.HasKey(e => e.Id); builder.Property(e => e.Id).ValueGeneratedNever().HasComment("规则ID"); builder.Property(e => e.ExternalSystemId).HasComment("绑定的外部系统ID"); builder.Property(e => e.JsonData).HasColumnType("jsonb").IsRequired().HasComment("业务数据: 名称/指标/阈值/运算符/严重级别/启用/冷却"); // 审计列 builder.Property(e => e.CreatedBy).HasMaxLength(100).HasComment("创建人"); builder.Property(e => e.CreatedAt).HasComment("创建时间"); builder.Property(e => e.UpdatedBy).HasMaxLength(100).HasComment("更新人"); builder.Property(e => e.UpdatedAt).HasComment("更新时间"); builder.Property(e => e.IsDeleted).HasDefaultValue(false).HasComment("是否已软删除"); builder.Property(e => e.OperatorIP).HasMaxLength(50).HasComment("操作者IP"); builder.HasIndex(e => e.ExternalSystemId); } }