Files
I150/srcs/RobotNet10/FleetManager/RobotNet10.FleetManager.Shared/DTOs/RobotModel/CreateRobotModelRequest.cs
2026-07-03 16:37:12 +07:00

46 lines
1.7 KiB
C#

using System.ComponentModel.DataAnnotations;
using RobotNet10.FleetManager.Shared.Enums;
namespace RobotNet10.FleetManager.Shared.DTOs.RobotModel;
/// <summary>
/// Request to create a new robot model
/// </summary>
public class CreateRobotModelRequest
{
[Required(ErrorMessage = "ModelName is required")]
[StringLength(256, ErrorMessage = "ModelName must not exceed 256 characters")]
public string ModelName { get; set; } = string.Empty;
[Required(ErrorMessage = "Length is required")]
[Range(0.01, 1000, ErrorMessage = "Length must be between 0.01 and 1000 meters")]
public double Length { get; set; }
[Required(ErrorMessage = "Width is required")]
[Range(0.01, 1000, ErrorMessage = "Width must be between 0.01 and 1000 meters")]
public double Width { get; set; }
[Required(ErrorMessage = "ImageWidth is required")]
[Range(1, 10000, ErrorMessage = "ImageWidth must be between 1 and 10000 pixels")]
public int ImageWidth { get; set; }
[Required(ErrorMessage = "ImageHeight is required")]
[Range(1, 10000, ErrorMessage = "ImageHeight must be between 1 and 10000 pixels")]
public int ImageHeight { get; set; }
[Required(ErrorMessage = "NavigationPointX is required")]
public double NavigationPointX { get; set; }
[Required(ErrorMessage = "NavigationPointY is required")]
public double NavigationPointY { get; set; }
[Required(ErrorMessage = "NavigationType is required")]
public NavigationType NavigationType { get; set; }
/// <summary>
/// Foreign key to VehicleType (in MapManager database)
/// Optional - can be set later
/// </summary>
public Guid? VehicleTypeId { get; set; }
}