using System.ComponentModel.DataAnnotations;
using RobotNet10.FleetManager.Shared.Enums;
namespace RobotNet10.FleetManager.Shared.DTOs.RobotModel;
///
/// Request to create a new robot model
///
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; }
///
/// Foreign key to VehicleType (in MapManager database)
/// Optional - can be set later
///
public Guid? VehicleTypeId { get; set; }
}