StepAction.cs 2.2 KB
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Rcs.Domain.Enums;

namespace Rcs.Domain.Entities
{
    /// <summary>
    /// 步骤动作实体类
    /// </summary>
    [Table("step_actions")]
    public partial class StepAction : Entity
    {
        /// <summary>
        /// 系统ID
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        [Column("action_id")]
        public Guid ActionId { get; set; }

        /// <summary>
        /// 步骤属性ID(外键)
        /// </summary>
        [Required]
        [Column("property_id")]
        public Guid PropertyId { get; set; }

        /// <summary>
        /// 动作类型(如:Pick、Drop、Lift、DetectObject等)
        /// </summary>
        [Required]
        [Column("type")]
        [MaxLength(50)]
        public string Type { get; set; } = string.Empty;

        /// <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>
        /// 阻塞类型(NONE、SOFT、HARD)
        /// </summary>
        [Column("blocking_type")]
        public ActionBlockType BlockingType { 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(PropertyId))]
        public virtual StepProperty? Property { get; set; }

        #endregion
    }
}