// using System; using System.Collections.Generic; using Cleanuparr.Persistence; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace Cleanuparr.Persistence.Postgres.Migrations.Events { [DbContext(typeof(EventsContext))] partial class EventsContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasDefaultSchema("events") .HasAnnotation("ProductVersion", "10.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Cleanuparr.Persistence.Models.Events.AppEvent", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CleanReason") .HasColumnType("text") .HasColumnName("clean_reason"); b.Property("CleanedCategory") .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("cleaned_category"); b.Property("CompletedAt") .HasColumnType("timestamp with time zone") .HasColumnName("completed_at"); b.Property("CycleId") .HasColumnType("uuid") .HasColumnName("cycle_id"); b.Property("DeleteReason") .HasColumnType("text") .HasColumnName("delete_reason"); b.Property("DownloadClientId") .HasColumnType("uuid") .HasColumnName("download_client_id"); b.Property("EventType") .IsRequired() .HasColumnType("text") .HasColumnName("event_type"); b.PrimitiveCollection>("FailedImportReasons") .IsRequired() .HasColumnType("text[]") .HasColumnName("failed_import_reasons"); b.PrimitiveCollection>("GrabbedItems") .IsRequired() .HasColumnType("text[]") .HasColumnName("grabbed_items"); b.Property("IsCategoryTag") .HasColumnType("boolean") .HasColumnName("is_category_tag"); b.Property("IsDryRun") .HasColumnType("boolean") .HasColumnName("is_dry_run"); b.Property("ItemHash") .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("item_hash"); b.Property("ItemTitle") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("item_title"); b.Property("JobRunId") .HasColumnType("uuid") .HasColumnName("job_run_id"); b.Property("Message") .IsRequired() .HasMaxLength(1000) .HasColumnType("character varying(1000)") .HasColumnName("message"); b.Property("NewCategory") .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("new_category"); b.Property("OldCategory") .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("old_category"); b.Property("RemoveFromClient") .HasColumnType("boolean") .HasColumnName("remove_from_client"); b.Property("SearchReason") .HasColumnType("text") .HasColumnName("search_reason"); b.Property("SearchStatus") .HasColumnType("text") .HasColumnName("search_status"); b.Property("SearchType") .HasColumnType("text") .HasColumnName("search_type"); b.Property("SeedRatio") .HasColumnType("double precision") .HasColumnName("seed_ratio"); b.Property("SeedingTimeHours") .HasColumnType("double precision") .HasColumnName("seeding_time_hours"); b.Property("Severity") .IsRequired() .HasColumnType("text") .HasColumnName("severity"); b.Property("StrikeCount") .HasColumnType("integer") .HasColumnName("strike_count"); b.Property("StrikeId") .HasColumnType("uuid") .HasColumnName("strike_id"); b.Property("Timestamp") .HasColumnType("timestamp with time zone") .HasColumnName("timestamp"); b.Property("TrackingId") .HasColumnType("uuid") .HasColumnName("tracking_id"); b.HasKey("Id") .HasName("pk_events"); b.HasIndex("ArrInstanceId") .HasDatabaseName("ix_events_arr_instance_id"); b.HasIndex("CycleId") .HasDatabaseName("ix_events_cycle_id"); b.HasIndex("DeleteReason") .HasDatabaseName("ix_events_delete_reason"); b.HasIndex("EventType") .HasDatabaseName("ix_events_event_type"); b.HasIndex("JobRunId") .HasDatabaseName("ix_events_job_run_id"); b.HasIndex("Severity") .HasDatabaseName("ix_events_severity"); b.HasIndex("StrikeId") .HasDatabaseName("ix_events_strike_id"); b.HasIndex("Timestamp") .IsDescending() .HasDatabaseName("ix_events_timestamp"); b.ToTable("events", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.Events.ManualEvent", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("DownloadClientName") .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("download_client_name"); b.Property("DownloadClientType") .HasColumnType("text") .HasColumnName("download_client_type"); b.Property("InstanceType") .HasColumnType("text") .HasColumnName("instance_type"); b.Property("InstanceUrl") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("instance_url"); b.Property("IsDryRun") .HasColumnType("boolean") .HasColumnName("is_dry_run"); b.Property("IsResolved") .HasColumnType("boolean") .HasColumnName("is_resolved"); b.Property("ItemHash") .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("item_hash"); b.Property("ItemTitle") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("item_title"); b.Property("JobRunId") .HasColumnType("uuid") .HasColumnName("job_run_id"); b.Property("Message") .IsRequired() .HasMaxLength(1000) .HasColumnType("character varying(1000)") .HasColumnName("message"); b.Property("ResolvedAt") .HasColumnType("timestamp with time zone") .HasColumnName("resolved_at"); b.Property("Severity") .IsRequired() .HasColumnType("text") .HasColumnName("severity"); b.Property("StrikeCount") .HasColumnType("integer") .HasColumnName("strike_count"); b.Property("Timestamp") .HasColumnType("timestamp with time zone") .HasColumnName("timestamp"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.HasKey("Id") .HasName("pk_manual_events"); b.HasIndex("InstanceType") .HasDatabaseName("ix_manual_events_instance_type"); b.HasIndex("IsResolved") .HasDatabaseName("ix_manual_events_is_resolved"); b.HasIndex("JobRunId") .HasDatabaseName("ix_manual_events_job_run_id"); b.HasIndex("Message") .HasDatabaseName("ix_manual_events_message"); b.HasIndex("Severity") .HasDatabaseName("ix_manual_events_severity"); b.HasIndex("Timestamp") .IsDescending() .HasDatabaseName("ix_manual_events_timestamp"); b.HasIndex("Type", "ItemHash") .IsUnique() .HasDatabaseName("ix_manual_events_type_item_hash") .HasFilter("is_resolved = false"); b.ToTable("manual_events", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.CustomFormatScoreEntry", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CurrentScore") .HasColumnType("integer") .HasColumnName("current_score"); b.Property("CutoffScore") .HasColumnType("integer") .HasColumnName("cutoff_score"); b.Property("EpisodeId") .HasColumnType("bigint") .HasColumnName("episode_id"); b.Property("ExternalItemId") .HasColumnType("bigint") .HasColumnName("external_item_id"); b.Property("FileId") .HasColumnType("bigint") .HasColumnName("file_id"); b.Property("IsMonitored") .HasColumnType("boolean") .HasColumnName("is_monitored"); b.Property("ItemType") .IsRequired() .HasColumnType("text") .HasColumnName("item_type"); b.Property("LastSyncedAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_synced_at"); b.Property("LastUpgradedAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_upgraded_at"); b.Property("QualityProfileName") .IsRequired() .HasColumnType("text") .HasColumnName("quality_profile_name"); b.Property("Title") .IsRequired() .HasColumnType("text") .HasColumnName("title"); b.HasKey("Id") .HasName("pk_custom_format_score_entries"); b.HasIndex("LastUpgradedAt") .HasDatabaseName("ix_custom_format_score_entries_last_upgraded_at"); b.HasIndex("ArrInstanceId", "ExternalItemId", "EpisodeId") .IsUnique() .HasDatabaseName("ix_custom_format_score_entries_arr_instance_id_external_item_i"); b.ToTable("custom_format_score_entries", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.CustomFormatScoreHistory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CutoffScore") .HasColumnType("integer") .HasColumnName("cutoff_score"); b.Property("EpisodeId") .HasColumnType("bigint") .HasColumnName("episode_id"); b.Property("ExternalItemId") .HasColumnType("bigint") .HasColumnName("external_item_id"); b.Property("ItemType") .IsRequired() .HasColumnType("text") .HasColumnName("item_type"); b.Property("RecordedAt") .HasColumnType("timestamp with time zone") .HasColumnName("recorded_at"); b.Property("Score") .HasColumnType("integer") .HasColumnName("score"); b.Property("Title") .IsRequired() .HasColumnType("text") .HasColumnName("title"); b.HasKey("Id") .HasName("pk_custom_format_score_history"); b.HasIndex("RecordedAt") .HasDatabaseName("ix_custom_format_score_history_recorded_at"); b.HasIndex("ArrInstanceId", "ExternalItemId", "EpisodeId") .HasDatabaseName("ix_custom_format_score_history_arr_instance_id_external_item_i"); b.ToTable("custom_format_score_history", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.DownloadItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("DownloadId") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("download_id"); b.Property("IsMarkedForRemoval") .HasColumnType("boolean") .HasColumnName("is_marked_for_removal"); b.Property("IsRemoved") .HasColumnType("boolean") .HasColumnName("is_removed"); b.Property("IsReturning") .HasColumnType("boolean") .HasColumnName("is_returning"); b.Property("Title") .IsRequired() .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("title"); b.HasKey("Id") .HasName("pk_download_items"); b.HasIndex("DownloadId") .IsUnique() .HasDatabaseName("ix_download_items_download_id"); b.ToTable("download_items", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.JobRun", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("CompletedAt") .HasColumnType("timestamp with time zone") .HasColumnName("completed_at"); b.Property("StartedAt") .HasColumnType("timestamp with time zone") .HasColumnName("started_at"); b.Property("Status") .HasColumnType("text") .HasColumnName("status"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.HasKey("Id") .HasName("pk_job_runs"); b.HasIndex("StartedAt") .IsDescending() .HasDatabaseName("ix_job_runs_started_at"); b.HasIndex("Type") .HasDatabaseName("ix_job_runs_type"); b.ToTable("job_runs", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.SearchQueueItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("ItemId") .HasColumnType("bigint") .HasColumnName("item_id"); b.Property("SearchType") .HasColumnType("text") .HasColumnName("search_type"); b.Property("SeriesId") .HasColumnType("bigint") .HasColumnName("series_id"); b.Property("Title") .IsRequired() .HasColumnType("text") .HasColumnName("title"); b.HasKey("Id") .HasName("pk_search_queue"); b.HasIndex("ArrInstanceId") .HasDatabaseName("ix_search_queue_arr_instance_id"); b.ToTable("search_queue", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.SeekerCommandTracker", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CommandId") .HasColumnType("bigint") .HasColumnName("command_id"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("EpisodeId") .HasColumnType("bigint") .HasColumnName("episode_id"); b.Property("EventId") .HasColumnType("uuid") .HasColumnName("event_id"); b.Property("ExternalItemId") .HasColumnType("bigint") .HasColumnName("external_item_id"); b.Property("ItemTitle") .IsRequired() .HasColumnType("text") .HasColumnName("item_title"); b.Property("SeasonNumber") .HasColumnType("integer") .HasColumnName("season_number"); b.Property("Status") .IsRequired() .HasColumnType("text") .HasColumnName("status"); b.HasKey("Id") .HasName("pk_seeker_command_trackers"); b.HasIndex("ArrInstanceId") .HasDatabaseName("ix_seeker_command_trackers_arr_instance_id"); b.ToTable("seeker_command_trackers", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.SeekerHistory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ArrInstanceId") .HasColumnType("uuid") .HasColumnName("arr_instance_id"); b.Property("CycleId") .HasColumnType("uuid") .HasColumnName("cycle_id"); b.Property("ExternalItemId") .HasColumnType("bigint") .HasColumnName("external_item_id"); b.Property("IsDryRun") .HasColumnType("boolean") .HasColumnName("is_dry_run"); b.Property("ItemTitle") .IsRequired() .HasColumnType("text") .HasColumnName("item_title"); b.Property("ItemType") .IsRequired() .HasColumnType("text") .HasColumnName("item_type"); b.Property("LastSearchedAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_searched_at"); b.Property("SearchCount") .HasColumnType("integer") .HasColumnName("search_count"); b.Property("SeasonNumber") .HasColumnType("integer") .HasColumnName("season_number"); b.HasKey("Id") .HasName("pk_seeker_history"); b.HasIndex("ArrInstanceId", "ExternalItemId", "ItemType", "SeasonNumber", "CycleId") .IsUnique() .HasDatabaseName("ix_seeker_history_arr_instance_id_external_item_id_item_type_s"); b.ToTable("seeker_history", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.Strike", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("DownloadItemId") .HasColumnType("uuid") .HasColumnName("download_item_id"); b.Property("IsDryRun") .HasColumnType("boolean") .HasColumnName("is_dry_run"); b.Property("JobRunId") .HasColumnType("uuid") .HasColumnName("job_run_id"); b.Property("LastDownloadedBytes") .HasColumnType("bigint") .HasColumnName("last_downloaded_bytes"); b.Property("Type") .IsRequired() .HasColumnType("text") .HasColumnName("type"); b.HasKey("Id") .HasName("pk_strikes"); b.HasIndex("CreatedAt") .HasDatabaseName("ix_strikes_created_at"); b.HasIndex("JobRunId") .HasDatabaseName("ix_strikes_job_run_id"); b.HasIndex("DownloadItemId", "Type") .HasDatabaseName("ix_strikes_download_item_id_type"); b.ToTable("strikes", "events"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.Events.AppEvent", b => { b.HasOne("Cleanuparr.Persistence.Models.State.JobRun", "JobRun") .WithMany("Events") .HasForeignKey("JobRunId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_events_job_runs_job_run_id"); b.HasOne("Cleanuparr.Persistence.Models.State.Strike", "Strike") .WithMany() .HasForeignKey("StrikeId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_events_strikes_strike_id"); b.Navigation("JobRun"); b.Navigation("Strike"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.Events.ManualEvent", b => { b.HasOne("Cleanuparr.Persistence.Models.State.JobRun", "JobRun") .WithMany("ManualEvents") .HasForeignKey("JobRunId") .HasConstraintName("fk_manual_events_job_runs_job_run_id"); b.Navigation("JobRun"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.Strike", b => { b.HasOne("Cleanuparr.Persistence.Models.State.DownloadItem", "DownloadItem") .WithMany("Strikes") .HasForeignKey("DownloadItemId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_strikes_download_items_download_item_id"); b.HasOne("Cleanuparr.Persistence.Models.State.JobRun", "JobRun") .WithMany("Strikes") .HasForeignKey("JobRunId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_strikes_job_runs_job_run_id"); b.Navigation("DownloadItem"); b.Navigation("JobRun"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.DownloadItem", b => { b.Navigation("Strikes"); }); modelBuilder.Entity("Cleanuparr.Persistence.Models.State.JobRun", b => { b.Navigation("Events"); b.Navigation("ManualEvents"); b.Navigation("Strikes"); }); #pragma warning restore 612, 618 } } }