NetActionPropertysConfiguration.cs 2.59 KB
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Rcs.Domain.Entities;
using Rcs.Domain.Enums;

namespace Rcs.Infrastructure.DB.Configuration.Domain
{
    /// <summary>
    /// StepPropertyAction实体的EF Core配置
    /// @author zzy
    /// </summary>
    public class NetActionPropertysConfiguration : IEntityTypeConfiguration<NetActionPropertys>
    {
        public void Configure(EntityTypeBuilder<NetActionPropertys> builder)
        {
            // 配置表名
            builder.ToTable("net_action_propertys");

            // 配置主键
            builder.HasKey(e => e.NetActionId);

            // 配置属性
            builder.Property(e => e.NetActionId)
                .HasColumnName("net_action_id")
                .ValueGeneratedNever();

            builder.Property(e => e.ActionName)
                .HasColumnName("action_name")
                .HasMaxLength(100)
                .IsRequired();

            builder.Property(e => e.IsActive)
                .HasColumnName("is_active")
                .HasDefaultValue(true);

            builder.Property(e => e.RequestMethod)
                .HasColumnName("request_method")
                .HasMaxLength(10);

            builder.Property(e => e.RequestUrl)
                .HasColumnName("request_url")
                .HasMaxLength(500);

            builder.Property(e => e.RequestParams)
                .HasColumnName("request_params")
                .HasColumnType("text");

            builder.Property(e => e.RepeatCount)
                .HasColumnName("repeat_count");

            builder.Property(e => e.IntervalTimeMs)
                .HasColumnName("interval_time_ms");

            builder.Property(e => e.WaitResponseType)
                .HasColumnName("wait_response_type")
                .HasDefaultValue(ResponseWaitType.None);

            builder.Property(e => e.ResponseValidationRule)
                .HasColumnName("response_validation_rule")
                .HasMaxLength(200);

            builder.Property(e => e.Description)
                .HasColumnName("description")
                .HasMaxLength(500);

            builder.Property(e => e.ExtraProperties)
                .HasColumnName("extra_properties")
                .HasColumnType("text");

            builder.Property(e => e.CreatedAt)
                .HasColumnName("created_at")
                .HasColumnType("timestamp without time zone");

            builder.Property(e => e.UpdatedAt)
                .HasColumnName("updated_at")
                .HasColumnType("timestamp without time zone");
        }
    }
}