46 lines
1.7 KiB
C#
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; }
|
|
}
|