mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-12 08:16:05 -07:00
parent
dca5d13826
commit
dedf42ac87
33 changed files with 386 additions and 3294 deletions
|
@ -23,7 +23,7 @@ namespace Ombi.Core.Tests.Rule.Search
|
||||||
[Test]
|
[Test]
|
||||||
public async Task ShouldBe_Available_WhenFoundInPlex()
|
public async Task ShouldBe_Available_WhenFoundInPlex()
|
||||||
{
|
{
|
||||||
ContextMock.Setup(x => x.Get(It.IsAny<string>())).ReturnsAsync(new PlexContent
|
ContextMock.Setup(x => x.Get(It.IsAny<string>())).ReturnsAsync(new PlexServerContent
|
||||||
{
|
{
|
||||||
Url = "TestUrl"
|
Url = "TestUrl"
|
||||||
});
|
});
|
||||||
|
@ -38,7 +38,7 @@ namespace Ombi.Core.Tests.Rule.Search
|
||||||
[Test]
|
[Test]
|
||||||
public async Task ShouldBe_NotAvailable_WhenNotFoundInPlex()
|
public async Task ShouldBe_NotAvailable_WhenNotFoundInPlex()
|
||||||
{
|
{
|
||||||
ContextMock.Setup(x => x.Get(It.IsAny<string>())).Returns(Task.FromResult(default(PlexContent)));
|
ContextMock.Setup(x => x.Get(It.IsAny<string>())).Returns(Task.FromResult(default(PlexServerContent)));
|
||||||
var search = new SearchMovieViewModel();
|
var search = new SearchMovieViewModel();
|
||||||
var result = await Rule.Execute(search);
|
var result = await Rule.Execute(search);
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ namespace Ombi.Core.Engine
|
||||||
// But we only pass down the SearchViewModel that doesn't contain this
|
// But we only pass down the SearchViewModel that doesn't contain this
|
||||||
// So set the ImdbId to viewMovie.Id and then set it back afterwards
|
// So set the ImdbId to viewMovie.Id and then set it back afterwards
|
||||||
var oldId = viewMovie.Id;
|
var oldId = viewMovie.Id;
|
||||||
viewMovie.CustomId = viewMovie.ImdbId ?? string.Empty;
|
viewMovie.TheMovieDbId = viewMovie.TheMovieDbId;
|
||||||
|
|
||||||
await RunSearchRules(viewMovie);
|
await RunSearchRules(viewMovie);
|
||||||
|
|
||||||
|
|
|
@ -194,7 +194,8 @@ namespace Ombi.Core.Engine
|
||||||
|
|
||||||
private async Task<SearchTvShowViewModel> ProcessResult(SearchTvShowViewModel item)
|
private async Task<SearchTvShowViewModel> ProcessResult(SearchTvShowViewModel item)
|
||||||
{
|
{
|
||||||
item.CustomId = item.Id.ToString();
|
item.TheTvDbId = item.Id.ToString();
|
||||||
|
|
||||||
await RunSearchRules(item);
|
await RunSearchRules(item);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace Ombi.Core.Models.Search
|
||||||
public bool AlreadyInCp { get; set; }
|
public bool AlreadyInCp { get; set; }
|
||||||
public string Trailer { get; set; }
|
public string Trailer { get; set; }
|
||||||
public string Homepage { get; set; }
|
public string Homepage { get; set; }
|
||||||
public string ImdbId { get; set; }
|
|
||||||
public int RootPathOverride { get; set; }
|
public int RootPathOverride { get; set; }
|
||||||
public int QualityOverride { get; set; }
|
public int QualityOverride { get; set; }
|
||||||
public override RequestType Type => RequestType.Movie;
|
public override RequestType Type => RequestType.Movie;
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace Ombi.Core.Models.Search
|
||||||
public string AirsDayOfWeek { get; set; }
|
public string AirsDayOfWeek { get; set; }
|
||||||
public string AirsTime { get; set; }
|
public string AirsTime { get; set; }
|
||||||
public string Rating { get; set; }
|
public string Rating { get; set; }
|
||||||
public string ImdbId { get; set; }
|
|
||||||
public int SiteRating { get; set; }
|
public int SiteRating { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -21,6 +21,10 @@ namespace Ombi.Core.Models.Search
|
||||||
/// The custom identifier.
|
/// The custom identifier.
|
||||||
/// </value>
|
/// </value>
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public string CustomId { get; set; }
|
public string ImdbId { get; set; }
|
||||||
|
[NotMapped]
|
||||||
|
public string TheTvDbId { get; set; }
|
||||||
|
[NotMapped]
|
||||||
|
public string TheMovieDbId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -19,7 +19,7 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
|
|
||||||
public async Task<RuleResult> Execute(SearchViewModel obj)
|
public async Task<RuleResult> Execute(SearchViewModel obj)
|
||||||
{
|
{
|
||||||
var item = await EmbyContentRepository.Get(obj.CustomId);
|
var item = await EmbyContentRepository.Get(obj.ImdbId);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
obj.Available = true;
|
obj.Available = true;
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Ombi.Core.Models.Search;
|
using Ombi.Core.Models.Search;
|
||||||
using Ombi.Core.Rule.Interfaces;
|
using Ombi.Core.Rule.Interfaces;
|
||||||
|
using Ombi.Helpers;
|
||||||
using Ombi.Store.Entities;
|
using Ombi.Store.Entities;
|
||||||
using Ombi.Store.Repository;
|
using Ombi.Store.Repository;
|
||||||
|
|
||||||
|
@ -19,7 +20,42 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
|
|
||||||
public async Task<RuleResult> Execute(SearchViewModel obj)
|
public async Task<RuleResult> Execute(SearchViewModel obj)
|
||||||
{
|
{
|
||||||
var item = await PlexContentRepository.Get(obj.CustomId);
|
PlexServerContent item = null;
|
||||||
|
var useImdb = false;
|
||||||
|
var useTheMovieDb = false;
|
||||||
|
var useTvDb = false;
|
||||||
|
if (obj.ImdbId.HasValue())
|
||||||
|
{
|
||||||
|
item = await PlexContentRepository.Get(obj.ImdbId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
useImdb = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
if (obj.TheMovieDbId.HasValue())
|
||||||
|
{
|
||||||
|
item = await PlexContentRepository.Get(obj.TheMovieDbId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
useTheMovieDb = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
if (obj.TheTvDbId.HasValue())
|
||||||
|
{
|
||||||
|
item = await PlexContentRepository.Get(obj.TheTvDbId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
useTvDb = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
obj.Available = true;
|
obj.Available = true;
|
||||||
|
@ -37,9 +73,26 @@ namespace Ombi.Core.Rule.Rules.Search
|
||||||
{
|
{
|
||||||
foreach (var episode in season.Episodes)
|
foreach (var episode in season.Episodes)
|
||||||
{
|
{
|
||||||
var epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
PlexEpisode epExists = null;
|
||||||
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
if (useImdb)
|
||||||
x.Series.ProviderId == item.ProviderId.ToString());
|
{
|
||||||
|
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||||
|
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||||
|
x.Series.ImdbId == item.ImdbId.ToString());
|
||||||
|
}
|
||||||
|
if (useTheMovieDb)
|
||||||
|
{
|
||||||
|
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||||
|
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||||
|
x.Series.TheMovieDbId == item.TheMovieDbId.ToString());
|
||||||
|
}
|
||||||
|
if (useTvDb)
|
||||||
|
{
|
||||||
|
epExists = await allEpisodes.FirstOrDefaultAsync(x =>
|
||||||
|
x.EpisodeNumber == episode.EpisodeNumber && x.SeasonNumber == season.SeasonNumber &&
|
||||||
|
x.Series.TvDbId == item.TvDbId.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
if (epExists != null)
|
if (epExists != null)
|
||||||
{
|
{
|
||||||
episode.Available = true;
|
episode.Available = true;
|
||||||
|
|
|
@ -46,7 +46,7 @@ using Ombi.Schedule.Jobs.Plex;
|
||||||
using Ombi.Schedule.Jobs.Sonarr;
|
using Ombi.Schedule.Jobs.Sonarr;
|
||||||
using Ombi.Store.Repository.Requests;
|
using Ombi.Store.Repository.Requests;
|
||||||
using Ombi.Updater;
|
using Ombi.Updater;
|
||||||
using PlexContentCacher = Ombi.Schedule.Jobs.Plex.PlexContentCacher;
|
using PlexContentCacher = Ombi.Schedule.Jobs.Plex;
|
||||||
using Ombi.Api.Telegram;
|
using Ombi.Api.Telegram;
|
||||||
|
|
||||||
namespace Ombi.DependencyInjection
|
namespace Ombi.DependencyInjection
|
||||||
|
@ -108,7 +108,7 @@ namespace Ombi.DependencyInjection
|
||||||
services.AddScoped<IOmbiContext, OmbiContext>(); // https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6
|
services.AddScoped<IOmbiContext, OmbiContext>(); // https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6
|
||||||
services.AddTransient<ISettingsRepository, SettingsJsonRepository>();
|
services.AddTransient<ISettingsRepository, SettingsJsonRepository>();
|
||||||
services.AddTransient<ISettingsResolver, SettingsResolver>();
|
services.AddTransient<ISettingsResolver, SettingsResolver>();
|
||||||
services.AddTransient<IPlexContentRepository, PlexContentRepository>();
|
services.AddTransient<IPlexContentRepository, PlexServerContentRepository>();
|
||||||
services.AddTransient<IEmbyContentRepository, EmbyContentRepository>();
|
services.AddTransient<IEmbyContentRepository, EmbyContentRepository>();
|
||||||
services.AddTransient<INotificationTemplatesRepository, NotificationTemplatesRepository>();
|
services.AddTransient<INotificationTemplatesRepository, NotificationTemplatesRepository>();
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ namespace Ombi.DependencyInjection
|
||||||
{
|
{
|
||||||
services.AddTransient<IBackgroundJobClient, BackgroundJobClient>();
|
services.AddTransient<IBackgroundJobClient, BackgroundJobClient>();
|
||||||
|
|
||||||
services.AddTransient<IPlexContentCacher, PlexContentCacher>();
|
services.AddTransient<IPlexContentCacher, PlexServerContentCacher>();
|
||||||
services.AddTransient<IEmbyContentCacher, EmbyContentCacher>();
|
services.AddTransient<IEmbyContentCacher, EmbyContentCacher>();
|
||||||
services.AddTransient<IEmbyEpisodeCacher, EmbyEpisodeCacher>();
|
services.AddTransient<IEmbyEpisodeCacher, EmbyEpisodeCacher>();
|
||||||
services.AddTransient<IEmbyAvaliabilityChecker, EmbyAvaliabilityChecker>();
|
services.AddTransient<IEmbyAvaliabilityChecker, EmbyAvaliabilityChecker>();
|
||||||
|
|
|
@ -26,28 +26,57 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Ombi.Helpers
|
namespace Ombi.Helpers
|
||||||
{
|
{
|
||||||
public class PlexHelper
|
public class PlexHelper
|
||||||
{
|
{
|
||||||
public static string GetProviderIdFromPlexGuid(string guid)
|
|
||||||
|
public static ProviderId GetProviderIdFromPlexGuid(string guid)
|
||||||
{
|
{
|
||||||
|
//com.plexapp.agents.thetvdb://269586/2/8?lang=en
|
||||||
|
//com.plexapp.agents.themoviedb://390043?lang=en
|
||||||
|
//com.plexapp.agents.imdb://tt2543164?lang=en
|
||||||
if (string.IsNullOrEmpty(guid))
|
if (string.IsNullOrEmpty(guid))
|
||||||
return guid;
|
{
|
||||||
|
return new ProviderId();
|
||||||
|
}
|
||||||
|
|
||||||
var guidSplit = guid.Split(new[] { '/', '?' }, StringSplitOptions.RemoveEmptyEntries);
|
var guidSplit = guid.Split(new[] { '/', '?' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
if (guidSplit.Length > 1)
|
if (guidSplit.Length > 1)
|
||||||
{
|
{
|
||||||
return guidSplit[1];
|
if (guid.Contains("thetvdb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
return new ProviderId
|
||||||
|
{
|
||||||
|
TheTvDb = guidSplit[1]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (guid.Contains("themoviedb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
return new ProviderId
|
||||||
|
{
|
||||||
|
TheMovieDb = guidSplit[1]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (guid.Contains("imdb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
return new ProviderId
|
||||||
|
{
|
||||||
|
ImdbId = guidSplit[1]
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return string.Empty;
|
return new ProviderId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EpisodeModelHelper GetSeasonsAndEpisodesFromPlexGuid(string guid)
|
public static EpisodeModelHelper GetSeasonsAndEpisodesFromPlexGuid(string guid)
|
||||||
{
|
{
|
||||||
var ep = new EpisodeModelHelper();
|
var ep = new EpisodeModelHelper();
|
||||||
//guid="com.plexapp.agents.thetvdb://269586/2/8?lang=en"
|
//com.plexapp.agents.thetvdb://269586/2/8?lang=en
|
||||||
|
//com.plexapp.agents.themoviedb://390043?lang=en
|
||||||
|
//com.plexapp.agents.imdb://tt2543164?lang=en
|
||||||
if (string.IsNullOrEmpty(guid))
|
if (string.IsNullOrEmpty(guid))
|
||||||
return null;
|
return null;
|
||||||
try
|
try
|
||||||
|
@ -55,7 +84,20 @@ namespace Ombi.Helpers
|
||||||
var guidSplit = guid.Split(new[] { '/', '?' }, StringSplitOptions.RemoveEmptyEntries);
|
var guidSplit = guid.Split(new[] { '/', '?' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
if (guidSplit.Length > 2)
|
if (guidSplit.Length > 2)
|
||||||
{
|
{
|
||||||
ep.ProviderId = guidSplit[1];
|
if (guid.Contains("thetvdb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
ep.ProviderId = new ProviderId {TheTvDb = guidSplit[1]};
|
||||||
|
}
|
||||||
|
if (guid.Contains("themoviedb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
ep.ProviderId = new ProviderId { TheMovieDb = guidSplit[1] };
|
||||||
|
|
||||||
|
}
|
||||||
|
if (guid.Contains("imdb", CompareOptions.IgnoreCase))
|
||||||
|
{
|
||||||
|
ep.ProviderId = new ProviderId { ImdbId = guidSplit[1] };
|
||||||
|
|
||||||
|
}
|
||||||
ep.SeasonNumber = int.Parse(guidSplit[2]);
|
ep.SeasonNumber = int.Parse(guidSplit[2]);
|
||||||
ep.EpisodeNumber = int.Parse(guidSplit[3]);
|
ep.EpisodeNumber = int.Parse(guidSplit[3]);
|
||||||
}
|
}
|
||||||
|
@ -68,47 +110,52 @@ namespace Ombi.Helpers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int GetSeasonNumberFromTitle(string title)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(title))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var split = title.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
if (split.Length < 2)
|
|
||||||
{
|
|
||||||
// Cannot get the season number, it's not in the usual format
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int season;
|
|
||||||
if (int.TryParse(split[1], out season))
|
|
||||||
{
|
|
||||||
return season;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetPlexMediaUrl(string machineId, int mediaId)
|
public static string GetPlexMediaUrl(string machineId, int mediaId)
|
||||||
{
|
{
|
||||||
var url =
|
var url =
|
||||||
$"https://app.plex.tv/web/app#!/server/{machineId}/details?key=library%2Fmetadata%2F{mediaId}";
|
$"https://app.plex.tv/web/app#!/server/{machineId}/details?key=library%2Fmetadata%2F{mediaId}";
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string FormatGenres(string tags)
|
|
||||||
{
|
|
||||||
var split = tags.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
return string.Join(", ", split);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class EpisodeModelHelper
|
public class EpisodeModelHelper
|
||||||
{
|
{
|
||||||
public string ProviderId { get; set; }
|
public ProviderId ProviderId { get; set; }
|
||||||
public int SeasonNumber { get; set; }
|
public int SeasonNumber { get; set; }
|
||||||
public int EpisodeNumber { get; set; }
|
public int EpisodeNumber { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ProviderId
|
||||||
|
{
|
||||||
|
public string TheTvDb { get; set; }
|
||||||
|
public string TheMovieDb { get; set; }
|
||||||
|
public string ImdbId { get; set; }
|
||||||
|
|
||||||
|
public ProviderType Type
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (ImdbId.HasValue())
|
||||||
|
{
|
||||||
|
return ProviderType.ImdbId;
|
||||||
|
}
|
||||||
|
if (TheMovieDb.HasValue())
|
||||||
|
{
|
||||||
|
return ProviderType.TheMovieDbId;
|
||||||
|
}
|
||||||
|
if (TheTvDb.HasValue())
|
||||||
|
{
|
||||||
|
return ProviderType.TvDbId;
|
||||||
|
}
|
||||||
|
return ProviderType.ImdbId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ProviderType
|
||||||
|
{
|
||||||
|
ImdbId,
|
||||||
|
TheMovieDbId,
|
||||||
|
TvDbId
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -44,7 +44,7 @@ namespace Ombi.Schedule.Tests
|
||||||
ImdbId = "test"
|
ImdbId = "test"
|
||||||
};
|
};
|
||||||
_movie.Setup(x => x.GetAll()).Returns(new List<MovieRequests> { request }.AsQueryable());
|
_movie.Setup(x => x.GetAll()).Returns(new List<MovieRequests> { request }.AsQueryable());
|
||||||
_repo.Setup(x => x.Get("test")).ReturnsAsync(new PlexContent());
|
_repo.Setup(x => x.Get("test")).ReturnsAsync(new PlexServerContent());
|
||||||
|
|
||||||
await Checker.Start();
|
await Checker.Start();
|
||||||
|
|
||||||
|
@ -97,15 +97,15 @@ namespace Ombi.Schedule.Tests
|
||||||
{
|
{
|
||||||
new PlexEpisode
|
new PlexEpisode
|
||||||
{
|
{
|
||||||
Series = new PlexContent
|
Series = new PlexServerContent
|
||||||
{
|
{
|
||||||
ProviderId = 1.ToString(),
|
ImdbId = 1.ToString(),
|
||||||
},
|
},
|
||||||
EpisodeNumber = 1,
|
EpisodeNumber = 1,
|
||||||
SeasonNumber = 2
|
SeasonNumber = 2
|
||||||
}
|
}
|
||||||
}.AsQueryable);
|
}.AsQueryable);
|
||||||
_repo.Setup(x => x.Include(It.IsAny<IQueryable<PlexEpisode>>(),It.IsAny<Expression<Func<PlexEpisode, PlexContent>>>()));
|
_repo.Setup(x => x.Include(It.IsAny<IQueryable<PlexEpisode>>(),It.IsAny<Expression<Func<PlexEpisode, PlexServerContent>>>()));
|
||||||
|
|
||||||
await Checker.Start();
|
await Checker.Start();
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
foreach (var child in tv)
|
foreach (var child in tv)
|
||||||
{
|
{
|
||||||
var tvDbId = child.ParentRequest.TvDbId;
|
var tvDbId = child.ParentRequest.TvDbId;
|
||||||
var seriesEpisodes = plexEpisodes.Where(x => x.Series.ProviderId == tvDbId.ToString());
|
var seriesEpisodes = plexEpisodes.Where(x => x.Series.TvDbId == tvDbId.ToString());
|
||||||
foreach (var season in child.SeasonRequests)
|
foreach (var season in child.SeasonRequests)
|
||||||
{
|
{
|
||||||
foreach (var episode in season.Episodes)
|
foreach (var episode in season.Episodes)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#region Copyright
|
#region Copyright
|
||||||
// /************************************************************************
|
// /************************************************************************
|
||||||
// Copyright (c) 2017 Jamie Rees
|
// Copyright (c) 2017 Jamie Rees
|
||||||
// File: PlexContentCacher.cs
|
// File: PlexServerContentCacher.cs
|
||||||
// Created By: Jamie Rees
|
// Created By: Jamie Rees
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
@ -41,9 +41,9 @@ using Ombi.Store.Repository;
|
||||||
|
|
||||||
namespace Ombi.Schedule.Jobs.Plex
|
namespace Ombi.Schedule.Jobs.Plex
|
||||||
{
|
{
|
||||||
public class PlexContentCacher : IPlexContentCacher
|
public class PlexServerContentCacher : IPlexContentCacher
|
||||||
{
|
{
|
||||||
public PlexContentCacher(ISettingsService<PlexSettings> plex, IPlexApi plexApi, ILogger<PlexContentCacher> logger, IPlexContentRepository repo,
|
public PlexServerContentCacher(ISettingsService<PlexSettings> plex, IPlexApi plexApi, ILogger<PlexServerContentCacher> logger, IPlexContentRepository repo,
|
||||||
IPlexEpisodeCacher epsiodeCacher)
|
IPlexEpisodeCacher epsiodeCacher)
|
||||||
{
|
{
|
||||||
Plex = plex;
|
Plex = plex;
|
||||||
|
@ -55,7 +55,7 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
|
|
||||||
private ISettingsService<PlexSettings> Plex { get; }
|
private ISettingsService<PlexSettings> Plex { get; }
|
||||||
private IPlexApi PlexApi { get; }
|
private IPlexApi PlexApi { get; }
|
||||||
private ILogger<PlexContentCacher> Logger { get; }
|
private ILogger<PlexServerContentCacher> Logger { get; }
|
||||||
private IPlexContentRepository Repo { get; }
|
private IPlexContentRepository Repo { get; }
|
||||||
private IPlexEpisodeCacher EpisodeCacher { get; }
|
private IPlexEpisodeCacher EpisodeCacher { get; }
|
||||||
|
|
||||||
|
@ -97,10 +97,10 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
Logger.LogInformation("We found {0} items", allContent.Count);
|
Logger.LogInformation("We found {0} items", allContent.Count);
|
||||||
|
|
||||||
// Let's now process this.
|
// Let's now process this.
|
||||||
var contentToAdd = new List<PlexContent>();
|
var contentToAdd = new List<PlexServerContent>();
|
||||||
foreach (var content in allContent)
|
foreach (var content in allContent)
|
||||||
{
|
{
|
||||||
if (content.viewGroup.Equals(Jobs.PlexContentCacher.PlexMediaType.Show.ToString(), StringComparison.CurrentCultureIgnoreCase))
|
if (content.viewGroup.Equals(PlexMediaType.Show.ToString(), StringComparison.CurrentCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
// Process Shows
|
// Process Shows
|
||||||
Logger.LogInformation("Processing TV Shows");
|
Logger.LogInformation("Processing TV Shows");
|
||||||
|
@ -152,19 +152,30 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
// But it does not contain the `guid` property that we need to pull out thetvdb id...
|
// But it does not contain the `guid` property that we need to pull out thetvdb id...
|
||||||
var showMetadata = await PlexApi.GetMetadata(servers.PlexAuthToken, servers.FullUri,
|
var showMetadata = await PlexApi.GetMetadata(servers.PlexAuthToken, servers.FullUri,
|
||||||
show.ratingKey);
|
show.ratingKey);
|
||||||
var item = new PlexContent
|
var providerIds = PlexHelper.GetProviderIdFromPlexGuid(showMetadata.MediaContainer.Metadata.FirstOrDefault().guid);
|
||||||
|
|
||||||
|
var item = new PlexServerContent
|
||||||
{
|
{
|
||||||
AddedAt = DateTime.Now,
|
AddedAt = DateTime.Now,
|
||||||
Key = show.ratingKey,
|
Key = show.ratingKey,
|
||||||
ProviderId = PlexHelper.GetProviderIdFromPlexGuid(showMetadata.MediaContainer.Metadata
|
|
||||||
.FirstOrDefault()
|
|
||||||
.guid),
|
|
||||||
ReleaseYear = show.year.ToString(),
|
ReleaseYear = show.year.ToString(),
|
||||||
Type = PlexMediaTypeEntity.Show,
|
Type = PlexMediaTypeEntity.Show,
|
||||||
Title = show.title,
|
Title = show.title,
|
||||||
Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, show.ratingKey),
|
Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, show.ratingKey),
|
||||||
Seasons = new List<PlexSeasonsContent>()
|
Seasons = new List<PlexSeasonsContent>()
|
||||||
};
|
};
|
||||||
|
if (providerIds.Type == ProviderType.ImdbId)
|
||||||
|
{
|
||||||
|
item.ImdbId = providerIds.ImdbId;
|
||||||
|
}
|
||||||
|
if (providerIds.Type == ProviderType.TheMovieDbId)
|
||||||
|
{
|
||||||
|
item.TheMovieDbId = providerIds.TheMovieDb;
|
||||||
|
}
|
||||||
|
if (providerIds.Type == ProviderType.TvDbId)
|
||||||
|
{
|
||||||
|
item.TvDbId = providerIds.TheTvDb;
|
||||||
|
}
|
||||||
|
|
||||||
item.Seasons.ToList().AddRange(seasonsContent);
|
item.Seasons.ToList().AddRange(seasonsContent);
|
||||||
|
|
||||||
|
@ -172,7 +183,7 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (content.viewGroup.Equals(Jobs.PlexContentCacher.PlexMediaType.Movie.ToString(), StringComparison.CurrentCultureIgnoreCase))
|
if (content.viewGroup.Equals(PlexMediaType.Movie.ToString(), StringComparison.CurrentCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
Logger.LogInformation("Processing Movies");
|
Logger.LogInformation("Processing Movies");
|
||||||
foreach (var movie in content?.Metadata ?? new Metadata[]{})
|
foreach (var movie in content?.Metadata ?? new Metadata[]{})
|
||||||
|
@ -187,13 +198,14 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
Logger.LogInformation("Adding movie {0}", movie.title);
|
Logger.LogInformation("Adding movie {0}", movie.title);
|
||||||
var metaData = await PlexApi.GetMetadata(servers.PlexAuthToken, servers.FullUri,
|
var metaData = await PlexApi.GetMetadata(servers.PlexAuthToken, servers.FullUri,
|
||||||
movie.ratingKey);
|
movie.ratingKey);
|
||||||
var item = new PlexContent
|
var providerIds = PlexHelper.GetProviderIdFromPlexGuid(metaData.MediaContainer.Metadata
|
||||||
|
.FirstOrDefault()
|
||||||
|
.guid);
|
||||||
|
|
||||||
|
var item = new PlexServerContent
|
||||||
{
|
{
|
||||||
AddedAt = DateTime.Now,
|
AddedAt = DateTime.Now,
|
||||||
Key = movie.ratingKey,
|
Key = movie.ratingKey,
|
||||||
ProviderId = PlexHelper.GetProviderIdFromPlexGuid(metaData.MediaContainer.Metadata
|
|
||||||
.FirstOrDefault()
|
|
||||||
.guid),
|
|
||||||
ReleaseYear = movie.year.ToString(),
|
ReleaseYear = movie.year.ToString(),
|
||||||
Type = PlexMediaTypeEntity.Movie,
|
Type = PlexMediaTypeEntity.Movie,
|
||||||
Title = movie.title,
|
Title = movie.title,
|
||||||
|
@ -201,7 +213,18 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
Seasons = new List<PlexSeasonsContent>(),
|
Seasons = new List<PlexSeasonsContent>(),
|
||||||
Quality = movie.Media?.FirstOrDefault()?.videoResolution ?? string.Empty
|
Quality = movie.Media?.FirstOrDefault()?.videoResolution ?? string.Empty
|
||||||
};
|
};
|
||||||
|
if (providerIds.Type == ProviderType.ImdbId)
|
||||||
|
{
|
||||||
|
item.ImdbId = providerIds.ImdbId;
|
||||||
|
}
|
||||||
|
if (providerIds.Type == ProviderType.TheMovieDbId)
|
||||||
|
{
|
||||||
|
item.TheMovieDbId = providerIds.TheMovieDb;
|
||||||
|
}
|
||||||
|
if (providerIds.Type == ProviderType.TvDbId)
|
||||||
|
{
|
||||||
|
item.TvDbId = providerIds.TheTvDb;
|
||||||
|
}
|
||||||
contentToAdd.Add(item);
|
contentToAdd.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ namespace Ombi.Schedule.Jobs.Plex
|
||||||
var sections = await _api.GetLibrarySections(settings.PlexAuthToken, settings.FullUri);
|
var sections = await _api.GetLibrarySections(settings.PlexAuthToken, settings.FullUri);
|
||||||
|
|
||||||
// Filter the libSections
|
// Filter the libSections
|
||||||
var tvSections = sections.MediaContainer.Directory.Where(x => x.type.Equals(Jobs.PlexContentCacher.PlexMediaType.Show.ToString(), StringComparison.CurrentCultureIgnoreCase));
|
var tvSections = sections.MediaContainer.Directory.Where(x => x.type.Equals(PlexMediaType.Show.ToString(), StringComparison.CurrentCultureIgnoreCase));
|
||||||
|
|
||||||
foreach (var section in tvSections)
|
foreach (var section in tvSections)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,12 +28,9 @@
|
||||||
|
|
||||||
namespace Ombi.Schedule.Jobs
|
namespace Ombi.Schedule.Jobs
|
||||||
{
|
{
|
||||||
public partial class PlexContentCacher
|
public enum PlexMediaType
|
||||||
{
|
{
|
||||||
public enum PlexMediaType
|
Movie = 0,
|
||||||
{
|
Show = 1
|
||||||
Movie = 0,
|
|
||||||
Show = 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -14,7 +14,7 @@ namespace Ombi.Store.Context
|
||||||
int SaveChanges();
|
int SaveChanges();
|
||||||
Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken));
|
Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken));
|
||||||
DbSet<GlobalSettings> Settings { get; set; }
|
DbSet<GlobalSettings> Settings { get; set; }
|
||||||
DbSet<PlexContent> PlexContent { get; set; }
|
DbSet<PlexServerContent> PlexServerContent { get; set; }
|
||||||
DbSet<PlexEpisode> PlexEpisode { get; set; }
|
DbSet<PlexEpisode> PlexEpisode { get; set; }
|
||||||
DbSet<RadarrCache> RadarrCache { get; set; }
|
DbSet<RadarrCache> RadarrCache { get; set; }
|
||||||
DbSet<EmbyContent> EmbyContent { get; set; }
|
DbSet<EmbyContent> EmbyContent { get; set; }
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Ombi.Store.Context
|
||||||
|
|
||||||
public DbSet<NotificationTemplates> NotificationTemplates { get; set; }
|
public DbSet<NotificationTemplates> NotificationTemplates { get; set; }
|
||||||
public DbSet<GlobalSettings> Settings { get; set; }
|
public DbSet<GlobalSettings> Settings { get; set; }
|
||||||
public DbSet<PlexContent> PlexContent { get; set; }
|
public DbSet<PlexServerContent> PlexServerContent { get; set; }
|
||||||
public DbSet<PlexEpisode> PlexEpisode { get; set; }
|
public DbSet<PlexEpisode> PlexEpisode { get; set; }
|
||||||
public DbSet<RadarrCache> RadarrCache { get; set; }
|
public DbSet<RadarrCache> RadarrCache { get; set; }
|
||||||
public DbSet<CouchPotatoCache> CouchPotatoCache { get; set; }
|
public DbSet<CouchPotatoCache> CouchPotatoCache { get; set; }
|
||||||
|
@ -55,11 +55,10 @@ namespace Ombi.Store.Context
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder builder)
|
protected override void OnModelCreating(ModelBuilder builder)
|
||||||
{
|
{
|
||||||
builder.Entity<PlexEpisode>()
|
builder.Entity<PlexServerContent>().HasMany(x => x.Episodes)
|
||||||
.HasOne(p => p.Series)
|
.WithOne(x => x.Series)
|
||||||
.WithMany(b => b.Episodes)
|
|
||||||
.HasPrincipalKey(x => x.Key)
|
.HasPrincipalKey(x => x.Key)
|
||||||
.HasForeignKey(p => p.GrandparentKey);
|
.HasForeignKey(x => x.GrandparentKey);
|
||||||
|
|
||||||
builder.Entity<EmbyEpisode>()
|
builder.Entity<EmbyEpisode>()
|
||||||
.HasOne(p => p.Series)
|
.HasOne(p => p.Series)
|
||||||
|
|
|
@ -25,6 +25,6 @@ namespace Ombi.Store.Entities
|
||||||
public int GrandparentKey { get; set; }
|
public int GrandparentKey { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public PlexContent Series { get; set; }
|
public PlexServerContent Series { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -31,12 +31,14 @@ using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Ombi.Store.Entities
|
namespace Ombi.Store.Entities
|
||||||
{
|
{
|
||||||
[Table("PlexContent")]
|
[Table("PlexServerContent")]
|
||||||
public class PlexContent : Entity
|
public class PlexServerContent : Entity
|
||||||
{
|
{
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string ReleaseYear { get; set; }
|
public string ReleaseYear { get; set; }
|
||||||
public string ProviderId { get; set; }
|
public string ImdbId { get; set; }
|
||||||
|
public string TvDbId { get; set; }
|
||||||
|
public string TheMovieDbId { get; set; }
|
||||||
public PlexMediaTypeEntity Type { get; set; }
|
public PlexMediaTypeEntity Type { get; set; }
|
||||||
|
|
||||||
public string Url { get; set; }
|
public string Url { get; set; }
|
|
@ -1,729 +0,0 @@
|
||||||
// <auto-generated />
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.Internal;
|
|
||||||
using Ombi.Helpers;
|
|
||||||
using Ombi.Store.Context;
|
|
||||||
using Ombi.Store.Entities;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(OmbiContext))]
|
|
||||||
[Migration("20170914122422_Inital")]
|
|
||||||
partial class Inital
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.0.0-rtm-26452");
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("RoleNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoleClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderKey");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderDisplayName");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("LoginProvider", "ProviderKey");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserLogins");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "RoleId");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "LoginProvider", "Name");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserTokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.ApplicationConfiguration", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("ApplicationConfiguration");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Audit", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AuditArea");
|
|
||||||
|
|
||||||
b.Property<int>("AuditType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateTime");
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<string>("User");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Audit");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("EmbyContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<string>("ParentId");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentId");
|
|
||||||
|
|
||||||
b.ToTable("EmbyEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.GlobalSettings", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Content");
|
|
||||||
|
|
||||||
b.Property<string>("SettingsName");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("GlobalSettings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.NotificationTemplates", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Agent");
|
|
||||||
|
|
||||||
b.Property<bool>("Enabled");
|
|
||||||
|
|
||||||
b.Property<string>("Message");
|
|
||||||
|
|
||||||
b.Property<int>("NotificationType");
|
|
||||||
|
|
||||||
b.Property<string>("Subject");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("NotificationTemplates");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.OmbiUser", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AccessFailedCount");
|
|
||||||
|
|
||||||
b.Property<string>("Alias");
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Email")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<bool>("EmailConfirmed");
|
|
||||||
|
|
||||||
b.Property<bool>("LockoutEnabled");
|
|
||||||
|
|
||||||
b.Property<DateTimeOffset?>("LockoutEnd");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedEmail")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedUserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("PasswordHash");
|
|
||||||
|
|
||||||
b.Property<string>("PhoneNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("PhoneNumberConfirmed");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderUserId");
|
|
||||||
|
|
||||||
b.Property<string>("SecurityStamp");
|
|
||||||
|
|
||||||
b.Property<bool>("TwoFactorEnabled");
|
|
||||||
|
|
||||||
b.Property<string>("UserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<int>("UserType");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedEmail")
|
|
||||||
.HasName("EmailIndex");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedUserName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("UserNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUsers");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<int>("GrandparentKey");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("GrandparentKey");
|
|
||||||
|
|
||||||
b.ToTable("PlexEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("RadarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("ParentRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentRequestId");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("ChildRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("MovieId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("MovieId");
|
|
||||||
|
|
||||||
b.ToTable("MovieIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("MovieRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.Property<int>("TvId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("TvId");
|
|
||||||
|
|
||||||
b.ToTable("TvIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int?>("RootFolder");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("TvRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Token");
|
|
||||||
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("Tokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AirDate");
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("Requested");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("SeasonId");
|
|
||||||
|
|
||||||
b.ToTable("EpisodeRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ChildRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ChildRequestId");
|
|
||||||
|
|
||||||
b.ToTable("SeasonRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.EmbyContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("ParentId")
|
|
||||||
.HasPrincipalKey("EmbyId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("GrandparentKey")
|
|
||||||
.HasPrincipalKey("Key")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
|
||||||
.WithMany("Seasons")
|
|
||||||
.HasForeignKey("PlexContentId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.TvRequests", "ParentRequest")
|
|
||||||
.WithMany("ChildRequests")
|
|
||||||
.HasForeignKey("ParentRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests", "Movie")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("MovieId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "Child")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("TvId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "User")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Repository.Requests.SeasonRequests", "Season")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("SeasonId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "ChildRequest")
|
|
||||||
.WithMany("SeasonRequests")
|
|
||||||
.HasForeignKey("ChildRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,731 +0,0 @@
|
||||||
// <auto-generated />
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.Internal;
|
|
||||||
using Ombi.Helpers;
|
|
||||||
using Ombi.Store.Context;
|
|
||||||
using Ombi.Store.Entities;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(OmbiContext))]
|
|
||||||
[Migration("20170928150420_LastLoggedIn")]
|
|
||||||
partial class LastLoggedIn
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.0.0-rtm-26452");
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("RoleNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoleClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderKey");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderDisplayName");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("LoginProvider", "ProviderKey");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserLogins");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "RoleId");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "LoginProvider", "Name");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserTokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.ApplicationConfiguration", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("ApplicationConfiguration");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Audit", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AuditArea");
|
|
||||||
|
|
||||||
b.Property<int>("AuditType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateTime");
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<string>("User");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Audit");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("EmbyContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<string>("ParentId");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentId");
|
|
||||||
|
|
||||||
b.ToTable("EmbyEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.GlobalSettings", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Content");
|
|
||||||
|
|
||||||
b.Property<string>("SettingsName");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("GlobalSettings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.NotificationTemplates", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Agent");
|
|
||||||
|
|
||||||
b.Property<bool>("Enabled");
|
|
||||||
|
|
||||||
b.Property<string>("Message");
|
|
||||||
|
|
||||||
b.Property<int>("NotificationType");
|
|
||||||
|
|
||||||
b.Property<string>("Subject");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("NotificationTemplates");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.OmbiUser", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AccessFailedCount");
|
|
||||||
|
|
||||||
b.Property<string>("Alias");
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Email")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<bool>("EmailConfirmed");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastLoggedIn");
|
|
||||||
|
|
||||||
b.Property<bool>("LockoutEnabled");
|
|
||||||
|
|
||||||
b.Property<DateTimeOffset?>("LockoutEnd");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedEmail")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedUserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("PasswordHash");
|
|
||||||
|
|
||||||
b.Property<string>("PhoneNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("PhoneNumberConfirmed");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderUserId");
|
|
||||||
|
|
||||||
b.Property<string>("SecurityStamp");
|
|
||||||
|
|
||||||
b.Property<bool>("TwoFactorEnabled");
|
|
||||||
|
|
||||||
b.Property<string>("UserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<int>("UserType");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedEmail")
|
|
||||||
.HasName("EmailIndex");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedUserName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("UserNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUsers");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<int>("GrandparentKey");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("GrandparentKey");
|
|
||||||
|
|
||||||
b.ToTable("PlexEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("RadarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("ParentRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentRequestId");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("ChildRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("MovieId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("MovieId");
|
|
||||||
|
|
||||||
b.ToTable("MovieIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("MovieRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.Property<int>("TvId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("TvId");
|
|
||||||
|
|
||||||
b.ToTable("TvIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int?>("RootFolder");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("TvRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Token");
|
|
||||||
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("Tokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AirDate");
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("Requested");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("SeasonId");
|
|
||||||
|
|
||||||
b.ToTable("EpisodeRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ChildRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ChildRequestId");
|
|
||||||
|
|
||||||
b.ToTable("SeasonRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.EmbyContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("ParentId")
|
|
||||||
.HasPrincipalKey("EmbyId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("GrandparentKey")
|
|
||||||
.HasPrincipalKey("Key")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
|
||||||
.WithMany("Seasons")
|
|
||||||
.HasForeignKey("PlexContentId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.TvRequests", "ParentRequest")
|
|
||||||
.WithMany("ChildRequests")
|
|
||||||
.HasForeignKey("ParentRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests", "Movie")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("MovieId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "Child")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("TvId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "User")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Repository.Requests.SeasonRequests", "Season")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("SeasonId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "ChildRequest")
|
|
||||||
.WithMany("SeasonRequests")
|
|
||||||
.HasForeignKey("ChildRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
public partial class LastLoggedIn : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<DateTime>(
|
|
||||||
name: "LastLoggedIn",
|
|
||||||
table: "AspNetUsers",
|
|
||||||
type: "TEXT",
|
|
||||||
nullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "LastLoggedIn",
|
|
||||||
table: "AspNetUsers");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,747 +0,0 @@
|
||||||
// <auto-generated />
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.Internal;
|
|
||||||
using Ombi.Helpers;
|
|
||||||
using Ombi.Store.Context;
|
|
||||||
using Ombi.Store.Entities;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(OmbiContext))]
|
|
||||||
[Migration("20171002113357_SonarrCacher")]
|
|
||||||
partial class SonarrCacher
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.0.0-rtm-26452");
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("RoleNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoleClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderKey");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderDisplayName");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("LoginProvider", "ProviderKey");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserLogins");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "RoleId");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "LoginProvider", "Name");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserTokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.ApplicationConfiguration", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("ApplicationConfiguration");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Audit", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AuditArea");
|
|
||||||
|
|
||||||
b.Property<int>("AuditType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateTime");
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<string>("User");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Audit");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("EmbyContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<string>("ParentId");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentId");
|
|
||||||
|
|
||||||
b.ToTable("EmbyEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.GlobalSettings", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Content");
|
|
||||||
|
|
||||||
b.Property<string>("SettingsName");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("GlobalSettings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.NotificationTemplates", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Agent");
|
|
||||||
|
|
||||||
b.Property<bool>("Enabled");
|
|
||||||
|
|
||||||
b.Property<string>("Message");
|
|
||||||
|
|
||||||
b.Property<int>("NotificationType");
|
|
||||||
|
|
||||||
b.Property<string>("Subject");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("NotificationTemplates");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.OmbiUser", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AccessFailedCount");
|
|
||||||
|
|
||||||
b.Property<string>("Alias");
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Email")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<bool>("EmailConfirmed");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastLoggedIn");
|
|
||||||
|
|
||||||
b.Property<bool>("LockoutEnabled");
|
|
||||||
|
|
||||||
b.Property<DateTimeOffset?>("LockoutEnd");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedEmail")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedUserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("PasswordHash");
|
|
||||||
|
|
||||||
b.Property<string>("PhoneNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("PhoneNumberConfirmed");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderUserId");
|
|
||||||
|
|
||||||
b.Property<string>("SecurityStamp");
|
|
||||||
|
|
||||||
b.Property<bool>("TwoFactorEnabled");
|
|
||||||
|
|
||||||
b.Property<string>("UserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<int>("UserType");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedEmail")
|
|
||||||
.HasName("EmailIndex");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedUserName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("UserNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUsers");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<int>("GrandparentKey");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("GrandparentKey");
|
|
||||||
|
|
||||||
b.ToTable("PlexEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("RadarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("ParentRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentRequestId");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("ChildRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("MovieId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("MovieId");
|
|
||||||
|
|
||||||
b.ToTable("MovieIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<int>("QualityOverride");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<int>("RootPathOverride");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("MovieRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.Property<int>("TvId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("TvId");
|
|
||||||
|
|
||||||
b.ToTable("TvIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int?>("RootFolder");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("TvRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.SonarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("SonarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Token");
|
|
||||||
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("Tokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AirDate");
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("Requested");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("SeasonId");
|
|
||||||
|
|
||||||
b.ToTable("EpisodeRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ChildRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ChildRequestId");
|
|
||||||
|
|
||||||
b.ToTable("SeasonRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.EmbyContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("ParentId")
|
|
||||||
.HasPrincipalKey("EmbyId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("GrandparentKey")
|
|
||||||
.HasPrincipalKey("Key")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
|
||||||
.WithMany("Seasons")
|
|
||||||
.HasForeignKey("PlexContentId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.TvRequests", "ParentRequest")
|
|
||||||
.WithMany("ChildRequests")
|
|
||||||
.HasForeignKey("ParentRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests", "Movie")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("MovieId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "Child")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("TvId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "User")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Repository.Requests.SeasonRequests", "Season")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("SeasonId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "ChildRequest")
|
|
||||||
.WithMany("SeasonRequests")
|
|
||||||
.HasForeignKey("ChildRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
public partial class SonarrCacher : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "QualityOverride",
|
|
||||||
table: "MovieRequests",
|
|
||||||
type: "INTEGER",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "RootPathOverride",
|
|
||||||
table: "MovieRequests",
|
|
||||||
type: "INTEGER",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "SonarrCache",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
TvDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_SonarrCache", x => x.Id);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "SonarrCache");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "QualityOverride",
|
|
||||||
table: "MovieRequests");
|
|
||||||
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "RootPathOverride",
|
|
||||||
table: "MovieRequests");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,763 +0,0 @@
|
||||||
// <auto-generated />
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.Internal;
|
|
||||||
using Ombi.Helpers;
|
|
||||||
using Ombi.Store.Context;
|
|
||||||
using Ombi.Store.Entities;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(OmbiContext))]
|
|
||||||
[Migration("20171004155149_SonarrEpisodes")]
|
|
||||||
partial class SonarrEpisodes
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.0.0-rtm-26452");
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Name")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("RoleNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetRoleClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ClaimType");
|
|
||||||
|
|
||||||
b.Property<string>("ClaimValue");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserClaims");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderKey");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderDisplayName");
|
|
||||||
|
|
||||||
b.Property<string>("UserId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("LoginProvider", "ProviderKey");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserLogins");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("RoleId");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "RoleId");
|
|
||||||
|
|
||||||
b.HasIndex("RoleId");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserRoles");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.Property<string>("LoginProvider");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("UserId", "LoginProvider", "Name");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUserTokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.ApplicationConfiguration", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Value");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("ApplicationConfiguration");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Audit", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AuditArea");
|
|
||||||
|
|
||||||
b.Property<int>("AuditType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("DateTime");
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<string>("User");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("Audit");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("EmbyContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<string>("EmbyId");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<string>("ParentId");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentId");
|
|
||||||
|
|
||||||
b.ToTable("EmbyEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.GlobalSettings", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Content");
|
|
||||||
|
|
||||||
b.Property<string>("SettingsName");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("GlobalSettings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.NotificationTemplates", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("Agent");
|
|
||||||
|
|
||||||
b.Property<bool>("Enabled");
|
|
||||||
|
|
||||||
b.Property<string>("Message");
|
|
||||||
|
|
||||||
b.Property<int>("NotificationType");
|
|
||||||
|
|
||||||
b.Property<string>("Subject");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("NotificationTemplates");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.OmbiUser", b =>
|
|
||||||
{
|
|
||||||
b.Property<string>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AccessFailedCount");
|
|
||||||
|
|
||||||
b.Property<string>("Alias");
|
|
||||||
|
|
||||||
b.Property<string>("ConcurrencyStamp")
|
|
||||||
.IsConcurrencyToken();
|
|
||||||
|
|
||||||
b.Property<string>("Email")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<bool>("EmailConfirmed");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("LastLoggedIn");
|
|
||||||
|
|
||||||
b.Property<bool>("LockoutEnabled");
|
|
||||||
|
|
||||||
b.Property<DateTimeOffset?>("LockoutEnd");
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedEmail")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("NormalizedUserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<string>("PasswordHash");
|
|
||||||
|
|
||||||
b.Property<string>("PhoneNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("PhoneNumberConfirmed");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderUserId");
|
|
||||||
|
|
||||||
b.Property<string>("SecurityStamp");
|
|
||||||
|
|
||||||
b.Property<bool>("TwoFactorEnabled");
|
|
||||||
|
|
||||||
b.Property<string>("UserName")
|
|
||||||
.HasMaxLength(256);
|
|
||||||
|
|
||||||
b.Property<int>("UserType");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedEmail")
|
|
||||||
.HasName("EmailIndex");
|
|
||||||
|
|
||||||
b.HasIndex("NormalizedUserName")
|
|
||||||
.IsUnique()
|
|
||||||
.HasName("UserNameIndex");
|
|
||||||
|
|
||||||
b.ToTable("AspNetUsers");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<int>("GrandparentKey");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("GrandparentKey");
|
|
||||||
|
|
||||||
b.ToTable("PlexEpisode");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ParentKey");
|
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("RadarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("ParentRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ParentRequestId");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("ChildRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<int>("MovieId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("MovieId");
|
|
||||||
|
|
||||||
b.ToTable("MovieIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<bool?>("Denied");
|
|
||||||
|
|
||||||
b.Property<string>("DeniedReason");
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<int>("QualityOverride");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int>("RequestType");
|
|
||||||
|
|
||||||
b.Property<DateTime>("RequestedDate");
|
|
||||||
|
|
||||||
b.Property<string>("RequestedUserId");
|
|
||||||
|
|
||||||
b.Property<int>("RootPathOverride");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<int>("TheMovieDbId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("RequestedUserId");
|
|
||||||
|
|
||||||
b.ToTable("MovieRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Description");
|
|
||||||
|
|
||||||
b.Property<int?>("IssueId");
|
|
||||||
|
|
||||||
b.Property<string>("Subect");
|
|
||||||
|
|
||||||
b.Property<int>("TvId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("IssueId");
|
|
||||||
|
|
||||||
b.HasIndex("TvId");
|
|
||||||
|
|
||||||
b.ToTable("TvIssues");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("ImdbId");
|
|
||||||
|
|
||||||
b.Property<string>("Overview");
|
|
||||||
|
|
||||||
b.Property<string>("PosterPath");
|
|
||||||
|
|
||||||
b.Property<DateTime>("ReleaseDate");
|
|
||||||
|
|
||||||
b.Property<int?>("RootFolder");
|
|
||||||
|
|
||||||
b.Property<string>("Status");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("TvRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.SonarrCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("SonarrCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.SonarrEpisodeCache", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.Property<int>("TvDbId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("SonarrEpisodeCache");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Token");
|
|
||||||
|
|
||||||
b.Property<string>("UserId");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("UserId");
|
|
||||||
|
|
||||||
b.ToTable("Tokens");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AirDate");
|
|
||||||
|
|
||||||
b.Property<bool>("Approved");
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<int>("EpisodeNumber");
|
|
||||||
|
|
||||||
b.Property<bool>("Requested");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonId");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("SeasonId");
|
|
||||||
|
|
||||||
b.ToTable("EpisodeRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("ChildRequestId");
|
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.HasIndex("ChildRequestId");
|
|
||||||
|
|
||||||
b.ToTable("SeasonRequests");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RoleId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.EmbyContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("ParentId")
|
|
||||||
.HasPrincipalKey("EmbyId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("GrandparentKey")
|
|
||||||
.HasPrincipalKey("Key")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
|
||||||
.WithMany("Seasons")
|
|
||||||
.HasForeignKey("PlexContentId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.TvRequests", "ParentRequest")
|
|
||||||
.WithMany("ChildRequests")
|
|
||||||
.HasForeignKey("ParentRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.MovieRequests", "Movie")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("MovieId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RequestedUserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.TvIssues", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests")
|
|
||||||
.WithMany("Issues")
|
|
||||||
.HasForeignKey("IssueId");
|
|
||||||
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "Child")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("TvId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Tokens", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.OmbiUser", "User")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("UserId");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Repository.Requests.SeasonRequests", "Season")
|
|
||||||
.WithMany("Episodes")
|
|
||||||
.HasForeignKey("SeasonId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "ChildRequest")
|
|
||||||
.WithMany("SeasonRequests")
|
|
||||||
.HasForeignKey("ChildRequestId")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
public partial class SonarrEpisodes : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "SonarrEpisodeCache",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
EpisodeNumber = table.Column<int>(type: "INTEGER", nullable: false),
|
|
||||||
SeasonNumber = table.Column<int>(type: "INTEGER", nullable: false),
|
|
||||||
TvDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_SonarrEpisodeCache", x => x.Id);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "SonarrEpisodeCache");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ombi.Store.Migrations
|
|
||||||
{
|
|
||||||
public partial class CouchPotatoCacher : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.CreateTable(
|
|
||||||
name: "CouchPotatoCache",
|
|
||||||
columns: table => new
|
|
||||||
{
|
|
||||||
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
|
||||||
TheMovieDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
|
||||||
},
|
|
||||||
constraints: table =>
|
|
||||||
{
|
|
||||||
table.PrimaryKey("PK_CouchPotatoCache", x => x.Id);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropTable(
|
|
||||||
name: "CouchPotatoCache");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,8 +13,8 @@ using System;
|
||||||
namespace Ombi.Store.Migrations
|
namespace Ombi.Store.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(OmbiContext))]
|
[DbContext(typeof(OmbiContext))]
|
||||||
[Migration("20171015200035_CouchPotatoCacher")]
|
[Migration("20171103003202_Inital")]
|
||||||
partial class CouchPotatoCacher
|
partial class Inital
|
||||||
{
|
{
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
|
@ -314,32 +314,6 @@ namespace Ombi.Store.Migrations
|
||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
|
@ -373,17 +347,49 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
b.Property<int>("PlexContentId");
|
||||||
|
|
||||||
|
b.Property<int?>("PlexServerContentId");
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
b.Property<int>("SeasonKey");
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
b.Property<int>("SeasonNumber");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
b.HasIndex("PlexServerContentId");
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
b.ToTable("PlexSeasonsContent");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Ombi.Store.Entities.PlexServerContent", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedAt");
|
||||||
|
|
||||||
|
b.Property<string>("ImdbId");
|
||||||
|
|
||||||
|
b.Property<int>("Key");
|
||||||
|
|
||||||
|
b.Property<string>("Quality");
|
||||||
|
|
||||||
|
b.Property<string>("ReleaseYear");
|
||||||
|
|
||||||
|
b.Property<string>("TheMovieDbId");
|
||||||
|
|
||||||
|
b.Property<string>("Title");
|
||||||
|
|
||||||
|
b.Property<string>("TvDbId");
|
||||||
|
|
||||||
|
b.Property<int>("Type");
|
||||||
|
|
||||||
|
b.Property<string>("Url");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("PlexServerContent");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
|
@ -689,7 +695,7 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
b.HasOne("Ombi.Store.Entities.PlexServerContent", "Series")
|
||||||
.WithMany("Episodes")
|
.WithMany("Episodes")
|
||||||
.HasForeignKey("GrandparentKey")
|
.HasForeignKey("GrandparentKey")
|
||||||
.HasPrincipalKey("Key")
|
.HasPrincipalKey("Key")
|
||||||
|
@ -698,10 +704,9 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
b.HasOne("Ombi.Store.Entities.PlexServerContent")
|
||||||
.WithMany("Seasons")
|
.WithMany("Seasons")
|
||||||
.HasForeignKey("PlexContentId")
|
.HasForeignKey("PlexServerContentId");
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
|
@ -46,6 +46,7 @@ namespace Ombi.Store.Migrations
|
||||||
ConcurrencyStamp = table.Column<string>(type: "TEXT", nullable: true),
|
ConcurrencyStamp = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
Email = table.Column<string>(type: "TEXT", maxLength: 256, nullable: true),
|
Email = table.Column<string>(type: "TEXT", maxLength: 256, nullable: true),
|
||||||
EmailConfirmed = table.Column<bool>(type: "INTEGER", nullable: false),
|
EmailConfirmed = table.Column<bool>(type: "INTEGER", nullable: false),
|
||||||
|
LastLoggedIn = table.Column<DateTime>(type: "TEXT", nullable: true),
|
||||||
LockoutEnabled = table.Column<bool>(type: "INTEGER", nullable: false),
|
LockoutEnabled = table.Column<bool>(type: "INTEGER", nullable: false),
|
||||||
LockoutEnd = table.Column<DateTimeOffset>(type: "TEXT", nullable: true),
|
LockoutEnd = table.Column<DateTimeOffset>(type: "TEXT", nullable: true),
|
||||||
NormalizedEmail = table.Column<string>(type: "TEXT", maxLength: 256, nullable: true),
|
NormalizedEmail = table.Column<string>(type: "TEXT", maxLength: 256, nullable: true),
|
||||||
|
@ -81,6 +82,19 @@ namespace Ombi.Store.Migrations
|
||||||
table.PrimaryKey("PK_Audit", x => x.Id);
|
table.PrimaryKey("PK_Audit", x => x.Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "CouchPotatoCache",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
TheMovieDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_CouchPotatoCache", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "EmbyContent",
|
name: "EmbyContent",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
|
@ -131,24 +145,26 @@ namespace Ombi.Store.Migrations
|
||||||
});
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "PlexContent",
|
name: "PlexServerContent",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
{
|
{
|
||||||
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
AddedAt = table.Column<DateTime>(type: "TEXT", nullable: false),
|
AddedAt = table.Column<DateTime>(type: "TEXT", nullable: false),
|
||||||
|
ImdbId = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
Key = table.Column<int>(type: "INTEGER", nullable: false),
|
Key = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
ProviderId = table.Column<string>(type: "TEXT", nullable: true),
|
|
||||||
Quality = table.Column<string>(type: "TEXT", nullable: true),
|
Quality = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
ReleaseYear = table.Column<string>(type: "TEXT", nullable: true),
|
ReleaseYear = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
|
TheMovieDbId = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
Title = table.Column<string>(type: "TEXT", nullable: true),
|
Title = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
|
TvDbId = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
Type = table.Column<int>(type: "INTEGER", nullable: false),
|
Type = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
Url = table.Column<string>(type: "TEXT", nullable: true)
|
Url = table.Column<string>(type: "TEXT", nullable: true)
|
||||||
},
|
},
|
||||||
constraints: table =>
|
constraints: table =>
|
||||||
{
|
{
|
||||||
table.PrimaryKey("PK_PlexContent", x => x.Id);
|
table.PrimaryKey("PK_PlexServerContent", x => x.Id);
|
||||||
table.UniqueConstraint("AK_PlexContent_Key", x => x.Key);
|
table.UniqueConstraint("AK_PlexServerContent_Key", x => x.Key);
|
||||||
});
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
|
@ -164,6 +180,34 @@ namespace Ombi.Store.Migrations
|
||||||
table.PrimaryKey("PK_RadarrCache", x => x.Id);
|
table.PrimaryKey("PK_RadarrCache", x => x.Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "SonarrCache",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
TvDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_SonarrCache", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "SonarrEpisodeCache",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
|
EpisodeNumber = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
|
SeasonNumber = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
|
TvDbId = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_SonarrEpisodeCache", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "TvRequests",
|
name: "TvRequests",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
|
@ -304,10 +348,12 @@ namespace Ombi.Store.Migrations
|
||||||
IssueId = table.Column<int>(type: "INTEGER", nullable: true),
|
IssueId = table.Column<int>(type: "INTEGER", nullable: true),
|
||||||
Overview = table.Column<string>(type: "TEXT", nullable: true),
|
Overview = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
PosterPath = table.Column<string>(type: "TEXT", nullable: true),
|
PosterPath = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
|
QualityOverride = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
ReleaseDate = table.Column<DateTime>(type: "TEXT", nullable: false),
|
ReleaseDate = table.Column<DateTime>(type: "TEXT", nullable: false),
|
||||||
RequestType = table.Column<int>(type: "INTEGER", nullable: false),
|
RequestType = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
RequestedDate = table.Column<DateTime>(type: "TEXT", nullable: false),
|
RequestedDate = table.Column<DateTime>(type: "TEXT", nullable: false),
|
||||||
RequestedUserId = table.Column<string>(type: "TEXT", nullable: true),
|
RequestedUserId = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
|
RootPathOverride = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
Status = table.Column<string>(type: "TEXT", nullable: true),
|
Status = table.Column<string>(type: "TEXT", nullable: true),
|
||||||
TheMovieDbId = table.Column<int>(type: "INTEGER", nullable: false),
|
TheMovieDbId = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
Title = table.Column<string>(type: "TEXT", nullable: true)
|
Title = table.Column<string>(type: "TEXT", nullable: true)
|
||||||
|
@ -385,9 +431,9 @@ namespace Ombi.Store.Migrations
|
||||||
{
|
{
|
||||||
table.PrimaryKey("PK_PlexEpisode", x => x.Id);
|
table.PrimaryKey("PK_PlexEpisode", x => x.Id);
|
||||||
table.ForeignKey(
|
table.ForeignKey(
|
||||||
name: "FK_PlexEpisode_PlexContent_GrandparentKey",
|
name: "FK_PlexEpisode_PlexServerContent_GrandparentKey",
|
||||||
column: x => x.GrandparentKey,
|
column: x => x.GrandparentKey,
|
||||||
principalTable: "PlexContent",
|
principalTable: "PlexServerContent",
|
||||||
principalColumn: "Key",
|
principalColumn: "Key",
|
||||||
onDelete: ReferentialAction.Cascade);
|
onDelete: ReferentialAction.Cascade);
|
||||||
});
|
});
|
||||||
|
@ -400,6 +446,7 @@ namespace Ombi.Store.Migrations
|
||||||
.Annotation("Sqlite:Autoincrement", true),
|
.Annotation("Sqlite:Autoincrement", true),
|
||||||
ParentKey = table.Column<int>(type: "INTEGER", nullable: false),
|
ParentKey = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
PlexContentId = table.Column<int>(type: "INTEGER", nullable: false),
|
PlexContentId = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
|
PlexServerContentId = table.Column<int>(type: "INTEGER", nullable: true),
|
||||||
SeasonKey = table.Column<int>(type: "INTEGER", nullable: false),
|
SeasonKey = table.Column<int>(type: "INTEGER", nullable: false),
|
||||||
SeasonNumber = table.Column<int>(type: "INTEGER", nullable: false)
|
SeasonNumber = table.Column<int>(type: "INTEGER", nullable: false)
|
||||||
},
|
},
|
||||||
|
@ -407,11 +454,11 @@ namespace Ombi.Store.Migrations
|
||||||
{
|
{
|
||||||
table.PrimaryKey("PK_PlexSeasonsContent", x => x.Id);
|
table.PrimaryKey("PK_PlexSeasonsContent", x => x.Id);
|
||||||
table.ForeignKey(
|
table.ForeignKey(
|
||||||
name: "FK_PlexSeasonsContent_PlexContent_PlexContentId",
|
name: "FK_PlexSeasonsContent_PlexServerContent_PlexServerContentId",
|
||||||
column: x => x.PlexContentId,
|
column: x => x.PlexServerContentId,
|
||||||
principalTable: "PlexContent",
|
principalTable: "PlexServerContent",
|
||||||
principalColumn: "Id",
|
principalColumn: "Id",
|
||||||
onDelete: ReferentialAction.Cascade);
|
onDelete: ReferentialAction.Restrict);
|
||||||
});
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
|
@ -628,9 +675,9 @@ namespace Ombi.Store.Migrations
|
||||||
column: "GrandparentKey");
|
column: "GrandparentKey");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_PlexSeasonsContent_PlexContentId",
|
name: "IX_PlexSeasonsContent_PlexServerContentId",
|
||||||
table: "PlexSeasonsContent",
|
table: "PlexSeasonsContent",
|
||||||
column: "PlexContentId");
|
column: "PlexServerContentId");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_SeasonRequests_ChildRequestId",
|
name: "IX_SeasonRequests_ChildRequestId",
|
||||||
|
@ -676,6 +723,9 @@ namespace Ombi.Store.Migrations
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Audit");
|
name: "Audit");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "CouchPotatoCache");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "EmbyEpisode");
|
name: "EmbyEpisode");
|
||||||
|
|
||||||
|
@ -700,6 +750,12 @@ namespace Ombi.Store.Migrations
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "RadarrCache");
|
name: "RadarrCache");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "SonarrCache");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "SonarrEpisodeCache");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Tokens");
|
name: "Tokens");
|
||||||
|
|
||||||
|
@ -719,7 +775,7 @@ namespace Ombi.Store.Migrations
|
||||||
name: "MovieRequests");
|
name: "MovieRequests");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "PlexContent");
|
name: "PlexServerContent");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "ChildRequests");
|
name: "ChildRequests");
|
|
@ -313,32 +313,6 @@ namespace Ombi.Store.Migrations
|
||||||
b.ToTable("AspNetUsers");
|
b.ToTable("AspNetUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexContent", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("Id")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<DateTime>("AddedAt");
|
|
||||||
|
|
||||||
b.Property<int>("Key");
|
|
||||||
|
|
||||||
b.Property<string>("ProviderId");
|
|
||||||
|
|
||||||
b.Property<string>("Quality");
|
|
||||||
|
|
||||||
b.Property<string>("ReleaseYear");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<int>("Type");
|
|
||||||
|
|
||||||
b.Property<string>("Url");
|
|
||||||
|
|
||||||
b.HasKey("Id");
|
|
||||||
|
|
||||||
b.ToTable("PlexContent");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
|
@ -372,17 +346,49 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
b.Property<int>("PlexContentId");
|
b.Property<int>("PlexContentId");
|
||||||
|
|
||||||
|
b.Property<int?>("PlexServerContentId");
|
||||||
|
|
||||||
b.Property<int>("SeasonKey");
|
b.Property<int>("SeasonKey");
|
||||||
|
|
||||||
b.Property<int>("SeasonNumber");
|
b.Property<int>("SeasonNumber");
|
||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.HasIndex("PlexContentId");
|
b.HasIndex("PlexServerContentId");
|
||||||
|
|
||||||
b.ToTable("PlexSeasonsContent");
|
b.ToTable("PlexSeasonsContent");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Ombi.Store.Entities.PlexServerContent", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedAt");
|
||||||
|
|
||||||
|
b.Property<string>("ImdbId");
|
||||||
|
|
||||||
|
b.Property<int>("Key");
|
||||||
|
|
||||||
|
b.Property<string>("Quality");
|
||||||
|
|
||||||
|
b.Property<string>("ReleaseYear");
|
||||||
|
|
||||||
|
b.Property<string>("TheMovieDbId");
|
||||||
|
|
||||||
|
b.Property<string>("Title");
|
||||||
|
|
||||||
|
b.Property<string>("TvDbId");
|
||||||
|
|
||||||
|
b.Property<int>("Type");
|
||||||
|
|
||||||
|
b.Property<string>("Url");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("PlexServerContent");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b =>
|
||||||
{
|
{
|
||||||
b.Property<int>("Id")
|
b.Property<int>("Id")
|
||||||
|
@ -688,7 +694,7 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent", "Series")
|
b.HasOne("Ombi.Store.Entities.PlexServerContent", "Series")
|
||||||
.WithMany("Episodes")
|
.WithMany("Episodes")
|
||||||
.HasForeignKey("GrandparentKey")
|
.HasForeignKey("GrandparentKey")
|
||||||
.HasPrincipalKey("Key")
|
.HasPrincipalKey("Key")
|
||||||
|
@ -697,10 +703,9 @@ namespace Ombi.Store.Migrations
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("Ombi.Store.Entities.PlexContent")
|
b.HasOne("Ombi.Store.Entities.PlexServerContent")
|
||||||
.WithMany("Seasons")
|
.WithMany("Seasons")
|
||||||
.HasForeignKey("PlexContentId")
|
.HasForeignKey("PlexServerContentId");
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b =>
|
||||||
|
|
|
@ -5,13 +5,13 @@ using Ombi.Store.Entities;
|
||||||
|
|
||||||
namespace Ombi.Store.Repository
|
namespace Ombi.Store.Repository
|
||||||
{
|
{
|
||||||
public interface IPlexContentRepository : IRepository<PlexContent>
|
public interface IPlexContentRepository : IRepository<PlexServerContent>
|
||||||
{
|
{
|
||||||
Task<PlexContent> Add(PlexContent content);
|
Task<PlexServerContent> Add(PlexServerContent content);
|
||||||
Task<bool> ContentExists(string providerId);
|
Task<bool> ContentExists(string providerId);
|
||||||
Task<PlexContent> Get(string providerId);
|
Task<PlexServerContent> Get(string providerId);
|
||||||
Task<PlexContent> GetByKey(int key);
|
Task<PlexServerContent> GetByKey(int key);
|
||||||
Task Update(PlexContent existingContent);
|
Task Update(PlexServerContent existingContent);
|
||||||
IQueryable<PlexEpisode> GetAllEpisodes();
|
IQueryable<PlexEpisode> GetAllEpisodes();
|
||||||
Task<PlexEpisode> Add(PlexEpisode content);
|
Task<PlexEpisode> Add(PlexEpisode content);
|
||||||
Task<PlexEpisode> GetEpisodeByKey(int key);
|
Task<PlexEpisode> GetEpisodeByKey(int key);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#region Copyright
|
#region Copyright
|
||||||
// /************************************************************************
|
// /************************************************************************
|
||||||
// Copyright (c) 2017 Jamie Rees
|
// Copyright (c) 2017 Jamie Rees
|
||||||
// File: PlexContentRepository.cs
|
// File: PlexServerContentRepository.cs
|
||||||
// Created By: Jamie Rees
|
// Created By: Jamie Rees
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
@ -34,10 +34,10 @@ using Ombi.Store.Entities;
|
||||||
|
|
||||||
namespace Ombi.Store.Repository
|
namespace Ombi.Store.Repository
|
||||||
{
|
{
|
||||||
public class PlexContentRepository : Repository<PlexContent>, IPlexContentRepository
|
public class PlexServerContentRepository : Repository<PlexServerContent>, IPlexContentRepository
|
||||||
{
|
{
|
||||||
|
|
||||||
public PlexContentRepository(IOmbiContext db) : base(db)
|
public PlexServerContentRepository(IOmbiContext db) : base(db)
|
||||||
{
|
{
|
||||||
Db = db;
|
Db = db;
|
||||||
}
|
}
|
||||||
|
@ -47,22 +47,36 @@ namespace Ombi.Store.Repository
|
||||||
|
|
||||||
public async Task<bool> ContentExists(string providerId)
|
public async Task<bool> ContentExists(string providerId)
|
||||||
{
|
{
|
||||||
return await Db.PlexContent.AnyAsync(x => x.ProviderId == providerId);
|
var any = await Db.PlexServerContent.AnyAsync(x => x.ImdbId == providerId);
|
||||||
|
if (!any)
|
||||||
|
{
|
||||||
|
any = await Db.PlexServerContent.AnyAsync(x => x.TheMovieDbId == providerId);
|
||||||
|
if (!any)
|
||||||
|
{
|
||||||
|
any = await Db.PlexServerContent.AnyAsync(x => x.TvDbId == providerId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return any;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PlexContent> Get(string providerId)
|
public async Task<PlexServerContent> Get(string providerId)
|
||||||
{
|
{
|
||||||
return await Db.PlexContent.FirstOrDefaultAsync(x => x.ProviderId == providerId);
|
var item = await Db.PlexServerContent.FirstOrDefaultAsync(x => x.ImdbId == providerId);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
item = await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TheMovieDbId == providerId) ?? await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TvDbId == providerId);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PlexContent> GetByKey(int key)
|
public async Task<PlexServerContent> GetByKey(int key)
|
||||||
{
|
{
|
||||||
return await Db.PlexContent.Include(x => x.Seasons).FirstOrDefaultAsync(x => x.Key == key);
|
return await Db.PlexServerContent.Include(x => x.Seasons).FirstOrDefaultAsync(x => x.Key == key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Update(PlexContent existingContent)
|
public async Task Update(PlexServerContent existingContent)
|
||||||
{
|
{
|
||||||
Db.PlexContent.Update(existingContent);
|
Db.PlexServerContent.Update(existingContent);
|
||||||
await Db.SaveChangesAsync();
|
await Db.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ export class MovieSearchComponent implements OnInit {
|
||||||
private updateItem(key: ISearchMovieResult, updated: ISearchMovieResult) {
|
private updateItem(key: ISearchMovieResult, updated: ISearchMovieResult) {
|
||||||
const index = this.movieResults.indexOf(key, 0);
|
const index = this.movieResults.indexOf(key, 0);
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
|
debugger;
|
||||||
const copy = { ...this.movieResults[index] };
|
const copy = { ...this.movieResults[index] };
|
||||||
this.movieResults[index] = updated;
|
this.movieResults[index] = updated;
|
||||||
this.movieResults[index].background = copy.background;
|
this.movieResults[index].background = copy.background;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue