//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using RobotNet10.NavigationTune.Data;
#nullable disable
namespace RobotNet10.RobotApp.Data.Migrations.TuneDb
{
[DbContext(typeof(TuningDbContext))]
partial class TuningDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(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
}
}
}