using System; using MultiWheelC.TrajectoryPlanning.CoarsePath; using MultiWheelC.TrajectoryPlanning.Mapping; using MultiWheelC.TrajectoryPlanning.PathSmoothing; namespace MultiWheelC.TrajectoryPlanning.EMPlanner; public sealed class EmPlanningRequest { public EmPlanningRequest( PathSmoothingResult referencePath, PlanningGridMap map, VehicleParameters vehicle, VehicleMotionState vehicleState, EmPlannerConfiguration configuration, int segmentIndex, EmTrajectory previousTrajectory, DateTimeOffset requestedAtUtc, DateTimeOffset effectiveAtUtc, string outputTrajectoryId, string referencePathId, string previousTrajectoryId, EmMotionModel motionModel) { ReferencePath = referencePath; Map = map; Vehicle = vehicle; VehicleState = vehicleState; Configuration = configuration; SegmentIndex = segmentIndex; PreviousTrajectory = previousTrajectory; RequestedAtUtc = requestedAtUtc; EffectiveAtUtc = effectiveAtUtc; OutputTrajectoryId = outputTrajectoryId; ReferencePathId = referencePathId; PreviousTrajectoryId = previousTrajectoryId; MotionModel = motionModel; } public PathSmoothingResult ReferencePath { get; } public PlanningGridMap Map { get; } public VehicleParameters Vehicle { get; } public VehicleMotionState VehicleState { get; } public EmPlannerConfiguration Configuration { get; } public int SegmentIndex { get; } public EmTrajectory PreviousTrajectory { get; } public DateTimeOffset RequestedAtUtc { get; } public DateTimeOffset EffectiveAtUtc { get; } public string OutputTrajectoryId { get; } public string ReferencePathId { get; } public string PreviousTrajectoryId { get; } public EmMotionModel MotionModel { get; } } // The request owns this DTO contract; Task 2 adds its request-bound settings. public sealed partial class EmPlannerConfiguration { }