ActionConfiguration.cs 3.42 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
    }
}