using System.Collections.Generic;

namespace StandardScene.Fass2Simulator
{
    public sealed class Fass2SimConfig
    {
        public ushort VehicleCode { get; set; } = 1;
        public string VehicleListenAddress { get; set; } = "0.0.0.0";
        public int VehicleListenPort { get; set; } = 5000;
        public string SchedulerHost { get; set; } = "127.0.0.1";
        public int SchedulerListenPort { get; set; } = 20103;
        public int ReportIntervalMs { get; set; } = 200;
        public ushort InitialNode { get; set; } = 1;
        public byte InitialState { get; set; } = 0;
        public byte BatteryCharge { get; set; } = 100;
        public ushort CarLength { get; set; } = 1200;
        public ushort CarWidth { get; set; } = 800;
        public bool LogRawFrames { get; set; }
        public double DefaultSpeed { get; set; } = 500;
        public double DefaultSegmentDistance { get; set; } = 1000;
        public double SecondsPerSegment { get; set; } = 2;
        public bool AutoContinueOnPass { get; set; } = true;
        public int ActionDelayMs { get; set; } = 1000;
        public bool AutoCompleteStationActions { get; set; }
        public string NodeProfilesPath { get; set; } = "sim-nodes.json";
        public bool EnableFileLog { get; set; } = true;
        public string LogDirectory { get; set; } = "logs";
        public Dictionary<string, Fass2SimNodeProfile> NodeProfiles { get; set; } = new Dictionary<string, Fass2SimNodeProfile>();
    }
}
