// using System; using FinlyticAnalyzer.Database; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace FinlyticAnalyzer.Migrations { [DbContext(typeof(AnalyzerDbContext))] [Migration("20260815184017_AddDynamicSettings")] partial class AddDynamicSettings { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.9") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("FinlyticAnalyzer.Entities.AnalysisEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("AiOutputJson") .IsRequired() .HasColumnType("jsonb"); b.Property("AnalysisId") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("EventId") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)"); b.Property("ImpactScore") .HasColumnType("double precision"); b.Property("IsTradeProposed") .HasColumnType("boolean"); b.Property("Isin") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("N8nDecision") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("N8nEvalScore") .HasColumnType("double precision"); b.Property("N8nResponseJson") .IsRequired() .HasColumnType("jsonb"); b.Property("RawDataJson") .IsRequired() .HasColumnType("jsonb"); b.Property("Sector") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)"); b.Property("Symbol") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("VixRegime") .HasColumnType("integer"); b.Property("VixValue") .HasColumnType("numeric"); b.Property("WinRate") .HasColumnType("double precision"); b.HasKey("Id"); b.HasIndex("AnalysisId") .IsUnique(); b.HasIndex("CreatedAt"); b.HasIndex("EventId"); b.HasIndex("Isin"); b.HasIndex("Sector"); b.ToTable("analyses"); }); modelBuilder.Entity("FinlyticAnalyzer.Entities.AnalyzerSettingsEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("EnableLogAnalyzerAuto") .HasColumnType("boolean"); b.Property("EnableLogAnalyzerManual") .HasColumnType("boolean"); b.Property("EnableLogDatabaseOps") .HasColumnType("boolean"); b.Property("EnableLogMqttGeneral") .HasColumnType("boolean"); b.Property("EnableLogMqttHealthPing") .HasColumnType("boolean"); b.Property("MinSignalScore") .HasColumnType("double precision"); b.Property("ScanCronSchedule") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.ToTable("Settings"); }); modelBuilder.Entity("FinlyticAnalyzer.Entities.TradeProposalEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("AnalysisId") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)"); b.Property("ConfidenceScore") .HasColumnType("double precision"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("EntryPrice") .HasColumnType("decimal(18,4)"); b.Property("EntryZoneMax") .HasColumnType("decimal(18,4)"); b.Property("EntryZoneMin") .HasColumnType("decimal(18,4)"); b.Property("EventId") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)"); b.Property("ExpiresAt") .HasColumnType("timestamp with time zone"); b.Property("FundamentalRationale") .IsRequired() .HasColumnType("text"); b.Property("InstrumentType") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("Isin") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("MaxLeverage") .HasColumnType("decimal(18,4)"); b.Property("Name") .IsRequired() .HasMaxLength(150) .HasColumnType("character varying(150)"); b.Property("ProposedAction") .IsRequired() .HasMaxLength(20) .HasColumnType("character varying(20)"); b.Property("ReasonSummary") .IsRequired() .HasColumnType("text"); b.Property("RiskRewardRatio") .HasColumnType("decimal(18,4)"); b.Property("RiskTolerance") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("RiskWarning") .IsRequired() .HasColumnType("text"); b.Property("Sector") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)"); b.Property("StopLoss") .HasColumnType("decimal(18,4)"); b.Property("Symbol") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("TakeProfit") .HasColumnType("decimal(18,4)"); b.Property("TakeProfitTargets") .HasColumnType("text"); b.Property("TechnicalRationale") .IsRequired() .HasColumnType("text"); b.Property("Timeframe") .IsRequired() .HasMaxLength(20) .HasColumnType("character varying(20)"); b.Property("Type") .HasColumnType("integer"); b.Property("VixRegime") .HasColumnType("integer"); b.Property("VixValue") .HasColumnType("decimal(18,4)"); b.Property("WinRate") .HasColumnType("double precision"); b.HasKey("Id"); b.HasIndex("ExpiresAt"); b.HasIndex("Isin"); b.ToTable("trade_proposals"); }); modelBuilder.Entity("FinlyticCore.Entities.Settings.SettingEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("Key") .IsRequired() .HasMaxLength(150) .HasColumnType("character varying(150)"); b.Property("LastUpdatedUtc") .HasColumnType("timestamp with time zone"); b.Property("ServiceIdentifier") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)"); b.Property("ValueJson") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("Key") .IsUnique(); b.ToTable("DynamicSettings"); }); #pragma warning restore 612, 618 } } }