StepProperty.cs 3.8 KB
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Rcs.Domain.Enums;

namespace Rcs.Domain.Entities
{
    /// <summary>
    /// 步骤属性实体类(用于存储nodeProperty、preNodeProperty、line1等属性)
    /// </summary>
    [Table("step_properties")]
    public partial class StepProperty
    {
        /// <summary>
        /// 系统ID
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        [Column("property_id")]
        public Guid PropertyId { get; set; }

        /// <summary>
        /// 任务步骤ID(外键)
        /// </summary>
        [Required]
        [Column("step_id")]
        public Guid StepId { get; set; }

        /// <summary>
        /// 属性类型(NODE、PRE_NODE、LINE1、LINE2等)
        /// </summary>
        [Required]
        [Column("property_type")]
        public StepPropertyType PropertyType { get; set; }

        /// <summary>
        /// 节点值(如:TS等节点编码)
        /// </summary>
        [Column("node_value")]
        public NodeValueType? NodeValue { get; set; }

        /// <summary>
        /// 后置动作类型(PRE、WAIT等)
        /// </summary>
        [Column("after_action_type")]
        public AfterActionType? AfterActionType { get; set; }

        /// <summary>
        /// 请求方式(POST、GET等)
        /// </summary>
        [Column("request_method")]
        [MaxLength(10)]
        public string? RequestMethod { get; set; }

        /// <summary>
        /// 请求URL
        /// </summary>
        [Column("request_url")]
        [MaxLength(500)]
        public string? RequestUrl { get; set; }

        /// <summary>
        /// 请求参数(JSON格式)
        /// </summary>
        [Column("request_params", TypeName = "text")]
        public string? RequestParams { get; set; }

        /// <summary>
        /// 重复次数(-1表示无限重复)
        /// </summary>
        [Column("repeat_count")]
        public int? RepeatCount { get; set; }

        /// <summary>
        /// 间隔时间(毫秒)
        /// </summary>
        [Column("interval_time_ms")]
        public int? IntervalTimeMs { get; set; }

        /// <summary>
        /// 等待响应标志(Y/N)
        /// </summary>
        [Column("wait_response_flag")]
        [MaxLength(1)]
        public string? WaitResponseFlag { get; set; }

        /// <summary>
        /// 响应验证规则(如:code=200、success=true等)
        /// </summary>
        [Column("response_validation_rule")]
        [MaxLength(200)]
        public string? ResponseValidationRule { get; set; }

        /// <summary>
        /// 描述信息
        /// </summary>
        [Column("description")]
        [MaxLength(500)]
        public string? Description { get; set; }

        /// <summary>
        /// 其他扩展属性(JSON格式存储)
        /// </summary>
        [Column("extra_properties", TypeName = "text")]
        public string? ExtraProperties { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [Column("created_at", TypeName = "timestamp")]
        public DateTime? CreatedAt { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        [Column("updated_at", TypeName = "timestamp")]
        public DateTime? UpdatedAt { get; set; }

        #region 导航属性

        /// <summary>
        /// 任务步骤导航属性
        /// </summary>
        [ForeignKey(nameof(StepId))]
        public virtual TaskStep? Step { get; set; }

        /// <summary>
        /// 步骤动作列表
        /// </summary>
        public virtual ICollection<StepAction> Actions { get; set; } = new List<StepAction>();

        #endregion
    }
}