TaskStep.cs 1.95 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
}