using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace RobotNet10.MapManager.Data; /// /// Station entity - Interaction points for vehicles /// Maps to VDMA LIF: layouts[].stations[] /// [Table("Stations")] public class Station { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } /// /// Parent level reference /// [Required] public Guid LevelId { get; set; } /// /// Station identifier (VDMA LIF: stationId) - Required /// Unique within level /// [Required] [StringLength(128)] public string StationId { get; set; } = string.Empty; /// /// Station name (VDMA LIF: stationName) - Optional /// [StringLength(256)] public string? StationName { get; set; } /// /// Station description (VDMA LIF: stationDescription) - Optional /// public string? StationDescription { get; set; } /// /// Station height in meters (VDMA LIF: stationHeight) - Optional /// public double? StationHeight { get; set; } /// /// X coordinate in meters (VDMA LIF: stationPosition.x) - Required /// [Required] public double X { get; set; } /// /// Y coordinate in meters (VDMA LIF: stationPosition.y) - Required /// [Required] public double Y { get; set; } /// /// Theta orientation in radians (VDMA LIF: stationPosition.theta) - Optional /// Range: [-Pi ... Pi] /// public double? Theta { get; set; } // Navigation properties [ForeignKey(nameof(LevelId))] public virtual LayoutLevel Level { get; set; } = null!; public virtual ICollection InteractionNodes { get; set; } = new List(); }