ActionConfiguration.cs 3.06 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>
/// VDA动作配置实体 - 定义不同厂家、AGV类型和动作类别的动作配置
/// </summary>
[Table("action_configurations")]
public partial class ActionConfiguration : Entity
{
    /// <summary>
    /// 系统ID
    /// </summary>
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [Column("action_config_id")]
    public Guid ActionConfigId { get; set; }

    /// <summary>
    /// 动作类别(取货、放货、充电等)
    /// </summary>
    [Column("action_category")]
    public ActionCategory ActionCategory { get; set; }

    /// <summary>
    /// 动作类别名称
    /// </summary>
    [Column("action_category_name")]
    [MaxLength(100)]
    public string? ActionCategoryName { get; set; }

    /// <summary>
    /// 厂家名称(如:HikRobot、Jbt等)
    /// </summary>
    [Required]
    [Column("manufacturer")]
    [MaxLength(100)]
    public string Manufacturer { get; set; } = string.Empty;

    /// <summary>
    /// AGV类型(叉取、潜伏、牵引等,或All表示所有类型)
    /// </summary>
    [Required]
    [Column("robot_type")]
    public RobotType RobotType { get; set; }

    /// <summary>
    /// 动作名称(VDA协议中的actionType,如:pick、drop、startCharging等)
    /// </summary>
    [Required]
    [Column("action_name")]
    [MaxLength(100)]
    public string ActionName { get; set; } = string.Empty;

    /// <summary>
    /// 动作描述
    /// </summary>
    [Column("action_description")]
    [MaxLength(500)]
    public string? ActionDescription { get; set; }

    /// <summary>
    /// 执行范围(JSON格式,如:["node"]、["edge"]、["node","edge"])
    /// </summary>
    [Column("execution_scope", TypeName = "text")]
    public string? ExecutionScope { get; set; }

    /// <summary>
    /// 阻塞类型(NONE、SOFT、HARD)
    /// </summary>
    [Column("blocking_type")]
    public ActionBlockType BlockingType { get; set; }

    /// <summary>
    /// 是否启用
    /// </summary>
    [Column("is_enabled")]
    public bool IsEnabled { get; set; } = true;

    /// <summary>
    /// 排序顺序
    /// </summary>
    [Column("sort_order")]
    public int SortOrder { get; set; } = 0;

    /// <summary>
    /// 备注
    /// </summary>
    [Column("remarks")]
    [MaxLength(1000)]
    public string? Remarks { 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>
    public virtual ICollection<ActionParameterDefinition> Parameters { get; set; } = new List<ActionParameterDefinition>();

    #endregion
}