StepAction.cs 1.94 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
}