TaskStep.cs 2.21 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>
    /// 任务步骤实体类
    /// </summary>
    [Table("task_steps")]
    public partial class TaskStep : Entity
    {
        /// <summary>
        /// 系统ID
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        [Column("step_id")]
        public Guid StepId { get; set; }

        /// <summary>
        /// 任务模板ID(外键)
        /// </summary>
        [Required]
        [Column("template_id")]
        public Guid TemplateId { get; set; }

        /// <summary>
        /// 步骤类型(如:MOVE_TO_NODE等)
        /// </summary>
        [Required]
        [Column("type")]
        public TaskStepType Type { get; set; }

        /// <summary>
        /// 步骤名称
        /// </summary>
        [Column("step_name")]
        [MaxLength(100)]
        public string? StepName { get; set; }

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

        /// <summary>
        /// 执行顺序(从1开始)
        /// </summary>
        [Required]
        [Column("order")]
        public int Order { 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(TemplateId))]
        public virtual TaskTemplate? Template { get; set; }

        /// <summary>
        /// 步骤属性列表(nodeProperty、preNodeProperty、line1等)
        /// </summary>
        public virtual ICollection<StepProperty> Properties { get; set; } = new List<StepProperty>();

        #endregion
    }
}