// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using RobotNet10.NavigationTune.Data; #nullable disable namespace RobotNet10.RobotApp.Data.Migrations.TuneDb { [DbContext(typeof(TuningDbContext))] [Migration("20260227022756_AddTunDb")] partial class AddTunDb { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "10.0.2"); modelBuilder.Entity("RobotNet10.NavigationTune.Data.TestScenarioEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ConfigJson") .IsRequired() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("TEXT"); b.Property("Description") .IsRequired() .HasMaxLength(500) .HasColumnType("TEXT"); b.Property("IsDefault") .HasColumnType("INTEGER"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("Type") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("CreatedAt"); b.HasIndex("Name"); b.HasIndex("Type"); b.ToTable("test_scenarios", (string)null); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.NavigationParameterSet", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ControllerType") .HasColumnType("INTEGER"); b.Property("CreatedAt") .HasColumnType("TEXT"); b.Property("Description") .IsRequired() .HasMaxLength(500) .HasColumnType("TEXT"); b.Property("EstimatorConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("IsDefault") .HasColumnType("INTEGER"); b.Property("MotorDynamicsConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("MovePidConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("NavigationConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("PurePursuitConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("RotatePidConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("SignalConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("StanleyConfig") .IsRequired() .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("TEXT"); b.Property("Version") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("CreatedAt"); b.HasIndex("IsDefault"); b.HasIndex("Name"); b.ToTable("parameter_sets", (string)null); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.SafetyViolation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Message") .IsRequired() .HasMaxLength(500) .HasColumnType("TEXT"); b.Property("Severity") .HasColumnType("INTEGER"); b.Property("TestRunId") .HasColumnType("TEXT"); b.Property("Threshold") .HasColumnType("REAL"); b.Property("Timestamp") .HasColumnType("TEXT"); b.Property("Type") .HasColumnType("INTEGER"); b.Property("Value") .HasColumnType("REAL"); b.HasKey("Id"); b.HasIndex("TestRunId"); b.HasIndex("Timestamp"); b.HasIndex("TestRunId", "Timestamp"); b.ToTable("safety_violations", (string)null); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.TestMetrics", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AccelerationStdDev") .HasColumnType("REAL"); b.Property("AverageSpeed") .HasColumnType("REAL"); b.Property("CompletionTime") .HasColumnType("REAL"); b.Property("CrossTrackErrorMean") .HasColumnType("REAL"); b.Property("CrossTrackErrorPeak") .HasColumnType("REAL"); b.Property("CrossTrackErrorRMS") .HasColumnType("REAL"); b.Property("CrossTrackErrorStdDev") .HasColumnType("REAL"); b.Property("EfficiencyScore") .HasColumnType("REAL"); b.Property("GoalHeadingError") .HasColumnType("REAL"); b.Property("GoalPositionError") .HasColumnType("REAL"); b.Property("HeadingErrorPeak") .HasColumnType("REAL"); b.Property("HeadingErrorRMS") .HasColumnType("REAL"); b.Property("MaxSpeed") .HasColumnType("REAL"); b.Property("OverallScore") .HasColumnType("REAL"); b.Property("PassedCriteria") .HasColumnType("INTEGER"); b.Property("PathLengthRatio") .HasColumnType("REAL"); b.Property("SmoothnessScore") .HasColumnType("REAL"); b.Property("TestRunId") .HasColumnType("TEXT"); b.Property("TrackingScore") .HasColumnType("REAL"); b.Property("VelocityStdDev") .HasColumnType("REAL"); b.HasKey("Id"); b.HasIndex("TestRunId") .IsUnique(); b.ToTable("test_metrics", (string)null); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.TestRun", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Duration") .HasColumnType("REAL"); b.Property("EndTime") .HasColumnType("TEXT"); b.Property("ErrorMessage") .HasMaxLength(1000) .HasColumnType("TEXT"); b.Property("Notes") .HasMaxLength(1000) .HasColumnType("TEXT"); b.Property("ParameterSetId") .HasColumnType("TEXT"); b.Property("ScenarioId") .HasColumnType("TEXT"); b.Property("StartTime") .HasColumnType("TEXT"); b.Property("Status") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ParameterSetId"); b.HasIndex("ScenarioId"); b.HasIndex("StartTime"); b.HasIndex("Status"); b.HasIndex("ScenarioId", "ParameterSetId"); b.ToTable("test_runs", (string)null); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.SafetyViolation", b => { b.HasOne("RobotNet10.NavigationTune.Shared.Models.TestRun", null) .WithMany("SafetyViolations") .HasForeignKey("TestRunId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.TestMetrics", b => { b.HasOne("RobotNet10.NavigationTune.Shared.Models.TestRun", null) .WithOne("Metrics") .HasForeignKey("RobotNet10.NavigationTune.Shared.Models.TestMetrics", "TestRunId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("RobotNet10.NavigationTune.Shared.Models.TestRun", b => { b.Navigation("Metrics"); b.Navigation("SafetyViolations"); }); #pragma warning restore 612, 618 } } }