mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-09-13 13:58:20 -04:00
1994 lines
84 KiB
C#
1994 lines
84 KiB
C#
// <auto-generated />
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Cleanuparr.Persistence;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
#nullable disable
|
|
|
|
namespace Cleanuparr.Persistence.Postgres.Migrations.Data
|
|
{
|
|
[DbContext(typeof(DataContext))]
|
|
[Migration("20260822111024_AddHttpSendUserAgent")]
|
|
partial class AddHttpSendUserAgent
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
{
|
|
#pragma warning disable 612, 618
|
|
modelBuilder
|
|
.HasDefaultSchema("data")
|
|
.HasAnnotation("ProductVersion", "10.0.1")
|
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
|
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Arr.ArrConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<short>("FailedImportMaxStrikes")
|
|
.HasColumnType("smallint")
|
|
.HasColumnName("failed_import_max_strikes");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("type");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_arr_configs");
|
|
|
|
b.ToTable("arr_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Arr.ArrInstance", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("ApiKey")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("api_key");
|
|
|
|
b.Property<Guid>("ArrConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("arr_config_id");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<string>("ExternalUrl")
|
|
.HasColumnType("text")
|
|
.HasColumnName("external_url");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<string>("Url")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("url");
|
|
|
|
b.Property<float>("Version")
|
|
.HasColumnType("real")
|
|
.HasColumnName("version");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_arr_instances");
|
|
|
|
b.HasIndex("ArrConfigId")
|
|
.HasDatabaseName("ix_arr_instances_arr_config_id");
|
|
|
|
b.ToTable("arr_instances", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.BlacklistSync.BlacklistSyncConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("BlacklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("blacklist_path");
|
|
|
|
b.Property<string>("CronExpression")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("cron_expression");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_blacklist_sync_configs");
|
|
|
|
b.ToTable("blacklist_sync_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.DeadTorrentConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<int>("MaxStrikes")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("max_strikes");
|
|
|
|
b.Property<string>("TargetCategory")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("target_category");
|
|
|
|
b.Property<bool>("UseTag")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_tag");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_dead_torrent_configs");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_dead_torrent_configs_download_client_config_id");
|
|
|
|
b.ToTable("dead_torrent_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.DelugeSeedingRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<bool>("DeleteSourceFiles")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_source_files");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<double>("MaxRatio")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_ratio");
|
|
|
|
b.Property<double>("MaxSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_seed_time");
|
|
|
|
b.Property<double>("MinSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("min_seed_time");
|
|
|
|
b.Property<int>("MinSeeders")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_seeders");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<string>("TrackerPatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tracker_patterns");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_deluge_seeding_rules");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.HasDatabaseName("ix_deluge_seeding_rules_download_client_config_id");
|
|
|
|
b.ToTable("deluge_seeding_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.DownloadCleanerConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("CronExpression")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("cron_expression");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.PrimitiveCollection<List<string>>("IgnoredDownloads")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("ignored_downloads");
|
|
|
|
b.Property<bool>("UseAdvancedScheduling")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_advanced_scheduling");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_download_cleaner_configs");
|
|
|
|
b.ToTable("download_cleaner_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.OrphanedFilesConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<string>("ExcludePatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("exclude_patterns");
|
|
|
|
b.Property<int>("MinFileAgeHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_file_age_hours");
|
|
|
|
b.Property<string>("OrphanedDirectory")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("orphaned_directory");
|
|
|
|
b.Property<int?>("PurgeAfterHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("purge_after_hours");
|
|
|
|
b.Property<string>("ScanDirectories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("scan_directories");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_orphaned_files_configs");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_orphaned_files_configs_download_client_config_id");
|
|
|
|
b.ToTable("orphaned_files_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.QBitSeedingRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<bool>("DeleteSourceFiles")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_source_files");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<double>("MaxInactiveDays")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_inactive_days");
|
|
|
|
b.Property<double>("MaxRatio")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_ratio");
|
|
|
|
b.Property<double>("MaxSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_seed_time");
|
|
|
|
b.Property<double>("MinSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("min_seed_time");
|
|
|
|
b.Property<int>("MinSeeders")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_seeders");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<string>("TagsAll")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tags_all");
|
|
|
|
b.Property<string>("TagsAny")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tags_any");
|
|
|
|
b.Property<string>("TrackerPatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tracker_patterns");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_q_bit_seeding_rules");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.HasDatabaseName("ix_q_bit_seeding_rules_download_client_config_id");
|
|
|
|
b.ToTable("q_bit_seeding_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.RTorrentSeedingRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<bool>("DeleteSourceFiles")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_source_files");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<double>("MaxRatio")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_ratio");
|
|
|
|
b.Property<double>("MaxSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_seed_time");
|
|
|
|
b.Property<double>("MinSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("min_seed_time");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<string>("TrackerPatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tracker_patterns");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_r_torrent_seeding_rules");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.HasDatabaseName("ix_r_torrent_seeding_rules_download_client_config_id");
|
|
|
|
b.ToTable("r_torrent_seeding_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.TransmissionSeedingRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<bool>("DeleteSourceFiles")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_source_files");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<double>("MaxRatio")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_ratio");
|
|
|
|
b.Property<double>("MaxSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_seed_time");
|
|
|
|
b.Property<double>("MinSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("min_seed_time");
|
|
|
|
b.Property<int>("MinSeeders")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_seeders");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<string>("TagsAll")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tags_all");
|
|
|
|
b.Property<string>("TagsAny")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tags_any");
|
|
|
|
b.Property<string>("TrackerPatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tracker_patterns");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_transmission_seeding_rules");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.HasDatabaseName("ix_transmission_seeding_rules_download_client_config_id");
|
|
|
|
b.ToTable("transmission_seeding_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.UTorrentSeedingRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<bool>("DeleteSourceFiles")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_source_files");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<double>("MaxRatio")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_ratio");
|
|
|
|
b.Property<double>("MaxSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_seed_time");
|
|
|
|
b.Property<double>("MinSeedTime")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("min_seed_time");
|
|
|
|
b.Property<int>("MinSeeders")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_seeders");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<string>("TrackerPatterns")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tracker_patterns");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_u_torrent_seeding_rules");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.HasDatabaseName("ix_u_torrent_seeding_rules_download_client_config_id");
|
|
|
|
b.ToTable("u_torrent_seeding_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.UnlinkedConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.PrimitiveCollection<List<string>>("Categories")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("categories");
|
|
|
|
b.Property<Guid>("DownloadClientConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_config_id");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.PrimitiveCollection<List<string>>("IgnoredRootDirs")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("ignored_root_dirs");
|
|
|
|
b.Property<string>("TargetCategory")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("target_category");
|
|
|
|
b.Property<bool>("UseTag")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_tag");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_unlinked_configs");
|
|
|
|
b.HasIndex("DownloadClientConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_unlinked_configs_download_client_config_id");
|
|
|
|
b.ToTable("unlinked_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("DownloadDirectorySource")
|
|
.HasColumnType("text")
|
|
.HasColumnName("download_directory_source");
|
|
|
|
b.Property<string>("DownloadDirectoryTarget")
|
|
.HasColumnType("text")
|
|
.HasColumnName("download_directory_target");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<string>("ExternalUrl")
|
|
.HasColumnType("text")
|
|
.HasColumnName("external_url");
|
|
|
|
b.Property<string>("Host")
|
|
.HasColumnType("text")
|
|
.HasColumnName("host");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<string>("Password")
|
|
.HasColumnType("text")
|
|
.HasColumnName("password");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("type");
|
|
|
|
b.Property<string>("TypeName")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("type_name");
|
|
|
|
b.Property<string>("UrlBase")
|
|
.HasColumnType("text")
|
|
.HasColumnName("url_base");
|
|
|
|
b.Property<string>("Username")
|
|
.HasColumnType("text")
|
|
.HasColumnName("username");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_download_clients");
|
|
|
|
b.ToTable("download_clients", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.General.GeneralConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<bool>("ConnectivityCheckEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("connectivity_check_enabled");
|
|
|
|
b.PrimitiveCollection<List<string>>("ConnectivityCheckUrls")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("connectivity_check_urls");
|
|
|
|
b.Property<bool>("DisplaySupportBanner")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("display_support_banner");
|
|
|
|
b.Property<bool>("DryRun")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("dry_run");
|
|
|
|
b.Property<string>("EncryptionKey")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("encryption_key");
|
|
|
|
b.Property<int>("HistoryRetentionDays")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("history_retention_days");
|
|
|
|
b.Property<string>("HttpCertificateValidation")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("http_certificate_validation");
|
|
|
|
b.Property<int>("HttpMaxRetries")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("http_max_retries");
|
|
|
|
b.Property<bool>("HttpSendUserAgent")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("http_send_user_agent");
|
|
|
|
b.Property<int>("HttpTimeout")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("http_timeout");
|
|
|
|
b.PrimitiveCollection<List<string>>("IgnoredDownloads")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("ignored_downloads");
|
|
|
|
b.Property<bool>("StatusCheckEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("status_check_enabled");
|
|
|
|
b.Property<int>("StrikeInactivityWindowHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("strike_inactivity_window_hours");
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Auth", "Cleanuparr.Persistence.Models.Configuration.General.GeneralConfig.Auth#AuthConfig", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<bool>("DisableAuthForLocalAddresses")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("auth_disable_auth_for_local_addresses");
|
|
|
|
b1.Property<bool>("TrustForwardedHeaders")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("auth_trust_forwarded_headers");
|
|
|
|
b1.Property<string>("TrustedNetworks")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("auth_trusted_networks");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Log", "Cleanuparr.Persistence.Models.Configuration.General.GeneralConfig.Log#LoggingConfig", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<bool>("ArchiveEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("log_archive_enabled");
|
|
|
|
b1.Property<int>("ArchiveRetainedCount")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("log_archive_retained_count");
|
|
|
|
b1.Property<int>("ArchiveTimeLimitHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("log_archive_time_limit_hours");
|
|
|
|
b1.Property<string>("Level")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("log_level");
|
|
|
|
b1.Property<int>("RetainedFileCount")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("log_retained_file_count");
|
|
|
|
b1.Property<int>("RollingSizeMB")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("log_rolling_size_mb");
|
|
|
|
b1.Property<int>("TimeLimitHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("log_time_limit_hours");
|
|
});
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_general_configs");
|
|
|
|
b.ToTable("general_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("CronExpression")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("cron_expression");
|
|
|
|
b.Property<bool>("DeleteIfAnyFileBlocked")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_if_any_file_blocked");
|
|
|
|
b.Property<bool>("DeletePrivate")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_private");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<bool>("IgnorePrivate")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("ignore_private");
|
|
|
|
b.PrimitiveCollection<List<string>>("IgnoredDownloads")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("ignored_downloads");
|
|
|
|
b.Property<bool>("ProcessNoContentId")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("process_no_content_id");
|
|
|
|
b.Property<bool>("UseAdvancedScheduling")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_advanced_scheduling");
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "LazyLibrarian", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.LazyLibrarian#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("lazy_librarian_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("lazy_librarian_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("lazy_librarian_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Lidarr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Lidarr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("lidarr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("lidarr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("lidarr_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Radarr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Radarr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("radarr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("radarr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("radarr_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Readarr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Readarr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("readarr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("readarr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("readarr_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Sonarr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Sonarr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("sonarr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("sonarr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("sonarr_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Sportarr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Sportarr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("sportarr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("sportarr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("sportarr_enabled");
|
|
});
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "Whisparr", "Cleanuparr.Persistence.Models.Configuration.MalwareBlocker.ContentBlockerConfig.Whisparr#BlocklistSettings", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<string>("BlocklistPath")
|
|
.HasColumnType("text")
|
|
.HasColumnName("whisparr_blocklist_path");
|
|
|
|
b1.Property<string>("BlocklistType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("whisparr_blocklist_type");
|
|
|
|
b1.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("whisparr_enabled");
|
|
});
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_content_blocker_configs");
|
|
|
|
b.ToTable("content_blocker_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.AppriseConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("Key")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("key");
|
|
|
|
b.Property<string>("Mode")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("mode");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<string>("ServiceUrls")
|
|
.HasMaxLength(4000)
|
|
.HasColumnType("character varying(4000)")
|
|
.HasColumnName("service_urls");
|
|
|
|
b.Property<string>("Tags")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("tags");
|
|
|
|
b.Property<string>("Url")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("url");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_apprise_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_apprise_configs_notification_config_id");
|
|
|
|
b.ToTable("apprise_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.DiscordConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("AvatarUrl")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("avatar_url");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<string>("Username")
|
|
.IsRequired()
|
|
.HasMaxLength(80)
|
|
.HasColumnType("character varying(80)")
|
|
.HasColumnName("username");
|
|
|
|
b.Property<string>("WebhookUrl")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("webhook_url");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_discord_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_discord_configs_notification_config_id");
|
|
|
|
b.ToTable("discord_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.GotifyConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("ApplicationToken")
|
|
.IsRequired()
|
|
.HasMaxLength(200)
|
|
.HasColumnType("character varying(200)")
|
|
.HasColumnName("application_token");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<int>("Priority")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("ServerUrl")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("server_url");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_gotify_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_gotify_configs_notification_config_id");
|
|
|
|
b.ToTable("gotify_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NotifiarrConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("ApiKey")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("api_key");
|
|
|
|
b.Property<string>("ChannelId")
|
|
.IsRequired()
|
|
.HasMaxLength(50)
|
|
.HasColumnType("character varying(50)")
|
|
.HasColumnName("channel_id");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_notifiarr_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_notifiarr_configs_notification_config_id");
|
|
|
|
b.ToTable("notifiarr_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<DateTimeOffset>("CreatedAt")
|
|
.HasColumnType("timestamp with time zone")
|
|
.HasColumnName("created_at");
|
|
|
|
b.Property<bool>("IsEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("is_enabled");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(100)
|
|
.HasColumnType("character varying(100)")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<bool>("OnCategoryChanged")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_category_changed");
|
|
|
|
b.Property<bool>("OnDownloadCleaned")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_download_cleaned");
|
|
|
|
b.Property<bool>("OnFailedImportStrike")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_failed_import_strike");
|
|
|
|
b.Property<bool>("OnQueueItemDeleted")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_queue_item_deleted");
|
|
|
|
b.Property<bool>("OnSearchItemGrabbed")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_search_item_grabbed");
|
|
|
|
b.Property<bool>("OnSearchTriggered")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_search_triggered");
|
|
|
|
b.Property<bool>("OnSlowStrike")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_slow_strike");
|
|
|
|
b.Property<bool>("OnStalledStrike")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("on_stalled_strike");
|
|
|
|
b.Property<string>("Type")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("type");
|
|
|
|
b.Property<DateTimeOffset>("UpdatedAt")
|
|
.HasColumnType("timestamp with time zone")
|
|
.HasColumnName("updated_at");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_notification_configs");
|
|
|
|
b.HasIndex("Name")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_notification_configs_name");
|
|
|
|
b.ToTable("notification_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NtfyConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("AccessToken")
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("access_token");
|
|
|
|
b.Property<string>("AuthenticationType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("authentication_type");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<string>("Password")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("password");
|
|
|
|
b.Property<string>("Priority")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<string>("ServerUrl")
|
|
.IsRequired()
|
|
.HasMaxLength(500)
|
|
.HasColumnType("character varying(500)")
|
|
.HasColumnName("server_url");
|
|
|
|
b.PrimitiveCollection<List<string>>("Tags")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("tags");
|
|
|
|
b.PrimitiveCollection<List<string>>("Topics")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("topics");
|
|
|
|
b.Property<string>("Username")
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("username");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_ntfy_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_ntfy_configs_notification_config_id");
|
|
|
|
b.ToTable("ntfy_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.PushoverConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("ApiToken")
|
|
.IsRequired()
|
|
.HasMaxLength(50)
|
|
.HasColumnType("character varying(50)")
|
|
.HasColumnName("api_token");
|
|
|
|
b.Property<string>("Devices")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("devices");
|
|
|
|
b.Property<int?>("Expire")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("expire");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<string>("Priority")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("priority");
|
|
|
|
b.Property<int?>("Retry")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("retry");
|
|
|
|
b.Property<string>("Sound")
|
|
.HasMaxLength(50)
|
|
.HasColumnType("character varying(50)")
|
|
.HasColumnName("sound");
|
|
|
|
b.Property<string>("Tags")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("tags");
|
|
|
|
b.Property<string>("UserKey")
|
|
.IsRequired()
|
|
.HasMaxLength(50)
|
|
.HasColumnType("character varying(50)")
|
|
.HasColumnName("user_key");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_pushover_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_pushover_configs_notification_config_id");
|
|
|
|
b.ToTable("pushover_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.TelegramConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("BotToken")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)")
|
|
.HasColumnName("bot_token");
|
|
|
|
b.Property<string>("ChatId")
|
|
.IsRequired()
|
|
.HasMaxLength(100)
|
|
.HasColumnType("character varying(100)")
|
|
.HasColumnName("chat_id");
|
|
|
|
b.Property<Guid>("NotificationConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("notification_config_id");
|
|
|
|
b.Property<bool>("SendSilently")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("send_silently");
|
|
|
|
b.Property<string>("TopicId")
|
|
.HasMaxLength(100)
|
|
.HasColumnType("character varying(100)")
|
|
.HasColumnName("topic_id");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_telegram_configs");
|
|
|
|
b.HasIndex("NotificationConfigId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_telegram_configs_notification_config_id");
|
|
|
|
b.ToTable("telegram_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.QueueCleanerConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<string>("CronExpression")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("cron_expression");
|
|
|
|
b.Property<int>("DownloadingMetadataMaxStrikes")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("downloading_metadata_max_strikes");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.PrimitiveCollection<List<string>>("IgnoredDownloads")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("ignored_downloads");
|
|
|
|
b.Property<bool>("ProcessNoContentId")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("process_no_content_id");
|
|
|
|
b.Property<bool>("UseAdvancedScheduling")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_advanced_scheduling");
|
|
|
|
b.ComplexProperty(typeof(Dictionary<string, object>), "FailedImport", "Cleanuparr.Persistence.Models.Configuration.QueueCleaner.QueueCleanerConfig.FailedImport#FailedImportConfig", b1 =>
|
|
{
|
|
b1.IsRequired();
|
|
|
|
b1.Property<bool>("ChangeCategory")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("failed_import_change_category");
|
|
|
|
b1.Property<bool>("DeletePrivate")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("failed_import_delete_private");
|
|
|
|
b1.Property<bool>("IgnorePrivate")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("failed_import_ignore_private");
|
|
|
|
b1.Property<int>("MaxStrikes")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("failed_import_max_strikes");
|
|
|
|
b1.Property<string>("PatternMode")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("failed_import_pattern_mode");
|
|
|
|
b1.PrimitiveCollection<string[]>("Patterns")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("failed_import_patterns");
|
|
|
|
b1.Property<bool>("SkipIfNotFoundInClient")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("failed_import_skip_if_not_found_in_client");
|
|
});
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_queue_cleaner_configs");
|
|
|
|
b.ToTable("queue_cleaner_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.SlowRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<bool>("ChangeCategory")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("change_category");
|
|
|
|
b.Property<bool>("DeletePrivateTorrentsFromClient")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_private_torrents_from_client");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<string>("IgnoreAboveSize")
|
|
.HasColumnType("text")
|
|
.HasColumnName("ignore_above_size");
|
|
|
|
b.Property<bool>("IgnoreWhileAltSpeedActive")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("ignore_while_alt_speed_active");
|
|
|
|
b.Property<int>("MaxCompletionPercentage")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("max_completion_percentage");
|
|
|
|
b.Property<int>("MaxStrikes")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("max_strikes");
|
|
|
|
b.Property<double>("MaxTimeHours")
|
|
.HasColumnType("double precision")
|
|
.HasColumnName("max_time_hours");
|
|
|
|
b.Property<int>("MinCompletionPercentage")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_completion_percentage");
|
|
|
|
b.Property<string>("MinSpeed")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("min_speed");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<Guid>("QueueCleanerConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("queue_cleaner_config_id");
|
|
|
|
b.Property<bool>("ResetStrikesOnProgress")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("reset_strikes_on_progress");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_slow_rules");
|
|
|
|
b.HasIndex("QueueCleanerConfigId")
|
|
.HasDatabaseName("ix_slow_rules_queue_cleaner_config_id");
|
|
|
|
b.ToTable("slow_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.StallRule", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<bool>("ChangeCategory")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("change_category");
|
|
|
|
b.Property<bool>("DeletePrivateTorrentsFromClient")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("delete_private_torrents_from_client");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<int>("MaxCompletionPercentage")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("max_completion_percentage");
|
|
|
|
b.Property<int>("MaxStrikes")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("max_strikes");
|
|
|
|
b.Property<int>("MinCompletionPercentage")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_completion_percentage");
|
|
|
|
b.Property<string>("MinimumProgress")
|
|
.HasColumnType("text")
|
|
.HasColumnName("minimum_progress");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("name");
|
|
|
|
b.Property<string>("PrivacyType")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("privacy_type");
|
|
|
|
b.Property<Guid>("QueueCleanerConfigId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("queue_cleaner_config_id");
|
|
|
|
b.Property<bool>("ResetStrikesOnProgress")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("reset_strikes_on_progress");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_stall_rules");
|
|
|
|
b.HasIndex("QueueCleanerConfigId")
|
|
.HasDatabaseName("ix_stall_rules_queue_cleaner_config_id");
|
|
|
|
b.ToTable("stall_rules", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Seeker.SeekerConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<int>("PostReleaseGraceHours")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("post_release_grace_hours");
|
|
|
|
b.Property<bool>("ProactiveSearchEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("proactive_search_enabled");
|
|
|
|
b.Property<bool>("SearchEnabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("search_enabled");
|
|
|
|
b.Property<int>("SearchInterval")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("search_interval");
|
|
|
|
b.Property<string>("SelectionStrategy")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("selection_strategy");
|
|
|
|
b.Property<bool>("UseRoundRobin")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_round_robin");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_seeker_configs");
|
|
|
|
b.ToTable("seeker_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Seeker.SeekerInstanceConfig", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<int>("ActiveDownloadLimit")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("active_download_limit");
|
|
|
|
b.Property<Guid>("ArrInstanceId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("arr_instance_id");
|
|
|
|
b.Property<Guid>("CurrentCycleId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("current_cycle_id");
|
|
|
|
b.Property<bool>("Enabled")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("enabled");
|
|
|
|
b.Property<DateTimeOffset?>("LastProcessedAt")
|
|
.HasColumnType("timestamp with time zone")
|
|
.HasColumnName("last_processed_at");
|
|
|
|
b.Property<int>("MinCycleTimeDays")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("min_cycle_time_days");
|
|
|
|
b.Property<bool>("MonitoredOnly")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("monitored_only");
|
|
|
|
b.PrimitiveCollection<List<string>>("SkipTags")
|
|
.IsRequired()
|
|
.HasColumnType("text[]")
|
|
.HasColumnName("skip_tags");
|
|
|
|
b.Property<int>("TotalEligibleItems")
|
|
.HasColumnType("integer")
|
|
.HasColumnName("total_eligible_items");
|
|
|
|
b.Property<bool>("UseCustomFormatScore")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_custom_format_score");
|
|
|
|
b.Property<bool>("UseCutoff")
|
|
.HasColumnType("boolean")
|
|
.HasColumnName("use_cutoff");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_seeker_instance_configs");
|
|
|
|
b.HasIndex("ArrInstanceId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_seeker_instance_configs_arr_instance_id");
|
|
|
|
b.ToTable("seeker_instance_configs", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.State.BlacklistSyncHistory", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("id");
|
|
|
|
b.Property<Guid>("DownloadClientId")
|
|
.HasColumnType("uuid")
|
|
.HasColumnName("download_client_id");
|
|
|
|
b.Property<string>("Hash")
|
|
.IsRequired()
|
|
.HasColumnType("text")
|
|
.HasColumnName("hash");
|
|
|
|
b.HasKey("Id")
|
|
.HasName("pk_blacklist_sync_history");
|
|
|
|
b.HasIndex("DownloadClientId")
|
|
.HasDatabaseName("ix_blacklist_sync_history_download_client_id");
|
|
|
|
b.HasIndex("Hash")
|
|
.HasDatabaseName("ix_blacklist_sync_history_hash");
|
|
|
|
b.HasIndex("Hash", "DownloadClientId")
|
|
.IsUnique()
|
|
.HasDatabaseName("ix_blacklist_sync_history_hash_download_client_id");
|
|
|
|
b.ToTable("blacklist_sync_history", "data");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Arr.ArrInstance", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Arr.ArrConfig", "ArrConfig")
|
|
.WithMany("Instances")
|
|
.HasForeignKey("ArrConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_arr_instances_arr_configs_arr_config_id");
|
|
|
|
b.Navigation("ArrConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.DeadTorrentConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_dead_torrent_configs_download_clients_download_client_confi");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.DelugeSeedingRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_deluge_seeding_rules_download_clients_download_client_confi");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.OrphanedFilesConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_orphaned_files_configs_download_clients_download_client_con");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.QBitSeedingRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_q_bit_seeding_rules_download_clients_download_client_config");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.RTorrentSeedingRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_r_torrent_seeding_rules_download_clients_download_client_co");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.TransmissionSeedingRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_transmission_seeding_rules_download_clients_download_client");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.UTorrentSeedingRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_u_torrent_seeding_rules_download_clients_download_client_co");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.DownloadCleaner.UnlinkedConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClientConfig")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_unlinked_configs_download_clients_download_client_config_id");
|
|
|
|
b.Navigation("DownloadClientConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.AppriseConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("AppriseConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.AppriseConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_apprise_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.DiscordConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("DiscordConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.DiscordConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_discord_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.GotifyConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("GotifyConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.GotifyConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_gotify_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NotifiarrConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("NotifiarrConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.NotifiarrConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_notifiarr_configs_notification_configs_notification_config_");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NtfyConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("NtfyConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.NtfyConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_ntfy_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.PushoverConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("PushoverConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.PushoverConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_pushover_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.TelegramConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", "NotificationConfig")
|
|
.WithOne("TelegramConfiguration")
|
|
.HasForeignKey("Cleanuparr.Persistence.Models.Configuration.Notification.TelegramConfig", "NotificationConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_telegram_configs_notification_configs_notification_config_id");
|
|
|
|
b.Navigation("NotificationConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.SlowRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.QueueCleanerConfig", "QueueCleanerConfig")
|
|
.WithMany("SlowRules")
|
|
.HasForeignKey("QueueCleanerConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_slow_rules_queue_cleaner_configs_queue_cleaner_config_id");
|
|
|
|
b.Navigation("QueueCleanerConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.StallRule", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.QueueCleanerConfig", "QueueCleanerConfig")
|
|
.WithMany("StallRules")
|
|
.HasForeignKey("QueueCleanerConfigId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_stall_rules_queue_cleaner_configs_queue_cleaner_config_id");
|
|
|
|
b.Navigation("QueueCleanerConfig");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Seeker.SeekerInstanceConfig", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.Arr.ArrInstance", "ArrInstance")
|
|
.WithMany()
|
|
.HasForeignKey("ArrInstanceId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_seeker_instance_configs_arr_instances_arr_instance_id");
|
|
|
|
b.Navigation("ArrInstance");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.State.BlacklistSyncHistory", b =>
|
|
{
|
|
b.HasOne("Cleanuparr.Persistence.Models.Configuration.DownloadClientConfig", "DownloadClient")
|
|
.WithMany()
|
|
.HasForeignKey("DownloadClientId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired()
|
|
.HasConstraintName("fk_blacklist_sync_history_download_clients_download_client_id");
|
|
|
|
b.Navigation("DownloadClient");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Arr.ArrConfig", b =>
|
|
{
|
|
b.Navigation("Instances");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.Notification.NotificationConfig", b =>
|
|
{
|
|
b.Navigation("AppriseConfiguration");
|
|
|
|
b.Navigation("DiscordConfiguration");
|
|
|
|
b.Navigation("GotifyConfiguration");
|
|
|
|
b.Navigation("NotifiarrConfiguration");
|
|
|
|
b.Navigation("NtfyConfiguration");
|
|
|
|
b.Navigation("PushoverConfiguration");
|
|
|
|
b.Navigation("TelegramConfiguration");
|
|
});
|
|
|
|
modelBuilder.Entity("Cleanuparr.Persistence.Models.Configuration.QueueCleaner.QueueCleanerConfig", b =>
|
|
{
|
|
b.Navigation("SlowRules");
|
|
|
|
b.Navigation("StallRules");
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|