RobotCacheLocationDto.cs 9.45 KB
using System;
using System.ComponentModel.DataAnnotations;

namespace Rcs.Application.DTOs
{
    /// <summary>
    /// Robot缓存储位列表项DTO
    /// </summary>
    public class RobotCacheLocationListItemDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public string CacheLocationId { get; set; }

        /// <summary>
        /// RobotId
        /// </summary>
        public string RobotId { get; set; }

        /// <summary>
        /// Robot编码
        /// </summary>
        public string? RobotCode { get; set; }

        /// <summary>
        /// Robot名称
        /// </summary>
        public string? RobotName { get; set; }

        /// <summary>
        /// 储位编码
        /// </summary>
        public string LocationCode { get; set; }

        /// <summary>
        /// 储位排
        /// </summary>
        public int Row { get; set; }

        /// <summary>
        /// 储位列
        /// </summary>
        public int Column { get; set; }

        /// <summary>
        /// 储位层
        /// </summary>
        public int Level { get; set; }

        /// <summary>
        /// 容器ID
        /// </summary>
        public string? ContainerId { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        public string? MaterialCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string? MaterialName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public double? Quantity { get; set; }

        /// <summary>
        /// 重量(kg)
        /// </summary>
        public double? Weight { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreatedAt { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }
    }

    /// <summary>
    /// Robot缓存储位详情DTO
    /// </summary>
    public class RobotCacheLocationDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public string CacheLocationId { get; set; }

        /// <summary>
        /// RobotId
        /// </summary>
        [Required(ErrorMessage = "机器人ID不能为空")]
        public string RobotId { get; set; }

        /// <summary>
        /// 储位编码
        /// </summary>
        [Required(ErrorMessage = "储位编码不能为空")]
        [MaxLength(100, ErrorMessage = "储位编码长度不能超过100个字符")]
        public string LocationCode { get; set; }

        /// <summary>
        /// 储位排
        /// </summary>
        [Required(ErrorMessage = "储位排不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位排必须大于或等于0")]
        public int Row { get; set; }

        /// <summary>
        /// 储位列
        /// </summary>
        [Required(ErrorMessage = "储位列不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位列必须大于或等于0")]
        public int Column { get; set; }

        /// <summary>
        /// 储位层
        /// </summary>
        [Required(ErrorMessage = "储位层不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位层必须大于或等于0")]
        public int Level { get; set; }

        /// <summary>
        /// 容器ID
        /// </summary>
        [MaxLength(100, ErrorMessage = "容器ID长度不能超过100个字符")]
        public string? ContainerId { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        [MaxLength(100, ErrorMessage = "物料编码长度不能超过100个字符")]
        public string? MaterialCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [MaxLength(200, ErrorMessage = "物料名称长度不能超过200个字符")]
        public string? MaterialName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "数量必须大于或等于0")]
        public double? Quantity { get; set; }

        /// <summary>
        /// 重量(kg)
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "重量必须大于或等于0")]
        public double? Weight { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [MaxLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string? Remark { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreatedAt { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }
    }

    /// <summary>
    /// 创建Robot缓存储位请求DTO
    /// </summary>
    public class CreateRobotCacheLocationDto
    {
        /// <summary>
        /// RobotId
        /// </summary>
        [Required(ErrorMessage = "机器人ID不能为空")]
        public string RobotId { get; set; }

        /// <summary>
        /// 储位编码
        /// </summary>
        [Required(ErrorMessage = "储位编码不能为空")]
        [MaxLength(100, ErrorMessage = "储位编码长度不能超过100个字符")]
        public string LocationCode { get; set; }

        /// <summary>
        /// 储位排
        /// </summary>
        [Required(ErrorMessage = "储位排不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位排必须大于或等于0")]
        public int Row { get; set; }

        /// <summary>
        /// 储位列
        /// </summary>
        [Required(ErrorMessage = "储位列不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位列必须大于或等于0")]
        public int Column { get; set; }

        /// <summary>
        /// 储位层
        /// </summary>
        [Required(ErrorMessage = "储位层不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位层必须大于或等于0")]
        public int Level { get; set; }

        /// <summary>
        /// 容器ID
        /// </summary>
        [MaxLength(100, ErrorMessage = "容器ID长度不能超过100个字符")]
        public string? ContainerId { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        [MaxLength(100, ErrorMessage = "物料编码长度不能超过100个字符")]
        public string? MaterialCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [MaxLength(200, ErrorMessage = "物料名称长度不能超过200个字符")]
        public string? MaterialName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "数量必须大于或等于0")]
        public double? Quantity { get; set; }

        /// <summary>
        /// 重量(kg)
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "重量必须大于或等于0")]
        public double? Weight { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [MaxLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string? Remark { get; set; }
    }

    /// <summary>
    /// 更新Robot缓存储位请求DTO
    /// </summary>
    public class UpdateRobotCacheLocationDto
    {
        /// <summary>
        /// 储位编码
        /// </summary>
        [Required(ErrorMessage = "储位编码不能为空")]
        [MaxLength(100, ErrorMessage = "储位编码长度不能超过100个字符")]
        public string LocationCode { get; set; }

        /// <summary>
        /// 储位排
        /// </summary>
        [Required(ErrorMessage = "储位排不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位排必须大于或等于0")]
        public int Row { get; set; }

        /// <summary>
        /// 储位列
        /// </summary>
        [Required(ErrorMessage = "储位列不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位列必须大于或等于0")]
        public int Column { get; set; }

        /// <summary>
        /// 储位层
        /// </summary>
        [Required(ErrorMessage = "储位层不能为空")]
        [Range(0, int.MaxValue, ErrorMessage = "储位层必须大于或等于0")]
        public int Level { get; set; }

        /// <summary>
        /// 容器ID
        /// </summary>
        [MaxLength(100, ErrorMessage = "容器ID长度不能超过100个字符")]
        public string? ContainerId { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        [MaxLength(100, ErrorMessage = "物料编码长度不能超过100个字符")]
        public string? MaterialCode { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [MaxLength(200, ErrorMessage = "物料名称长度不能超过200个字符")]
        public string? MaterialName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "数量必须大于或等于0")]
        public double? Quantity { get; set; }

        /// <summary>
        /// 重量(kg)
        /// </summary>
        [Range(0, double.MaxValue, ErrorMessage = "重量必须大于或等于0")]
        public double? Weight { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [MaxLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string? Remark { get; set; }
    }
}