using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using RobotNet10.FleetManager.Shared.Enums; namespace RobotNet10.FleetManager.Data; /// /// Robot model entity - Master data for robot types /// [Table("RobotModels")] public class RobotModel { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } /// /// Model name /// [Required] [StringLength(256)] public string ModelName { get; set; } = string.Empty; /// /// Robot length in meters /// [Required] public double Length { get; set; } /// /// Robot width in meters /// [Required] public double Width { get; set; } /// /// Image width in pixels /// [Required] public int ImageWidth { get; set; } /// /// Image height in pixels /// [Required] public int ImageHeight { get; set; } /// /// Navigation point X coordinate (relative to robot center) in meters /// [Required] public double NavigationPointX { get; set; } /// /// Navigation point Y coordinate (relative to robot center) in meters /// [Required] public double NavigationPointY { get; set; } /// /// Navigation type /// [Required] public NavigationType NavigationType { get; set; } /// /// Foreign key to VehicleType (in MapManager database) /// Links RobotModel to VehicleType for map filtering /// public Guid? VehicleTypeId { get; set; } /// /// Created date /// [Required] public DateTime CreatedDate { get; set; } = DateTime.UtcNow; /// /// Updated date /// public DateTime? UpdatedDate { get; set; } // Navigation properties /// /// Collection of robots using this model /// public virtual ICollection Robots { get; set; } = []; }