mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Updating migrations
This commit is contained in:
parent
9777551b78
commit
5f49986d9d
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq.Expressions;
|
||||
using Kyoo.Models.Attributes;
|
||||
|
||||
@ -18,7 +19,7 @@ namespace Kyoo.Models
|
||||
/// A type union between <see cref="Show"/> and <see cref="Collection"/>.
|
||||
/// This is used to list content put inside a library.
|
||||
/// </summary>
|
||||
public class LibraryItem : IResource
|
||||
public class LibraryItem : IResource, IThumbnails
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public int ID { get; set; }
|
||||
@ -52,13 +53,17 @@ namespace Kyoo.Models
|
||||
/// It can also be null if this is unknown.
|
||||
/// </summary>
|
||||
public DateTime? EndAir { get; set; }
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public Dictionary<int, string> Images { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The path of this item's poster.
|
||||
/// By default, the http path for this poster is returned from the public API.
|
||||
/// This can be disabled using the internal query flag.
|
||||
/// </summary>
|
||||
[SerializeAs("{HOST}/api/{Type:l}/{Slug}/poster")] public string Poster { get; set; }
|
||||
[SerializeAs("{HOST}/api/{Type:l}/{Slug}/poster")]
|
||||
public string Poster => Images[Thumbnails.Poster];
|
||||
|
||||
/// <summary>
|
||||
/// The type of this item (ether a collection, a show or a movie).
|
||||
@ -84,7 +89,7 @@ namespace Kyoo.Models
|
||||
Status = show.Status;
|
||||
StartAir = show.StartAir;
|
||||
EndAir = show.EndAir;
|
||||
Poster = show.Poster;
|
||||
Images = show.Images;
|
||||
Type = show.IsMovie ? ItemType.Movie : ItemType.Show;
|
||||
}
|
||||
|
||||
@ -101,7 +106,7 @@ namespace Kyoo.Models
|
||||
Status = Models.Status.Unknown;
|
||||
StartAir = null;
|
||||
EndAir = null;
|
||||
Poster = collection.Poster;
|
||||
Images = collection.Images;
|
||||
Type = ItemType.Collection;
|
||||
}
|
||||
|
||||
@ -117,7 +122,7 @@ namespace Kyoo.Models
|
||||
Status = x.Status,
|
||||
StartAir = x.StartAir,
|
||||
EndAir = x.EndAir,
|
||||
Poster= x.Poster,
|
||||
Images = x.Images,
|
||||
Type = x.IsMovie ? ItemType.Movie : ItemType.Show
|
||||
};
|
||||
|
||||
@ -133,7 +138,7 @@ namespace Kyoo.Models
|
||||
Status = Models.Status.Unknown,
|
||||
StartAir = null,
|
||||
EndAir = null,
|
||||
Poster = x.Poster,
|
||||
Images = x.Images,
|
||||
Type = ItemType.Collection
|
||||
};
|
||||
}
|
||||
|
@ -13,27 +13,22 @@ namespace Kyoo.Models
|
||||
/// The ID of the resource which possess the metadata.
|
||||
/// </summary>
|
||||
[SerializeIgnore] public int ResourceID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The name of the resource type. This is only used internally to discriminate types.
|
||||
/// </summary>
|
||||
[SerializeIgnore] public string ResourceType { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The ID of the provider.
|
||||
/// </summary>
|
||||
[SerializeIgnore] public int ProviderID { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The provider that can do something with this ID.
|
||||
/// </summary>
|
||||
public Provider Provider { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The ID of the resource on the external provider.
|
||||
/// </summary>
|
||||
public string DataID { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The URL of the resource on the external provider.
|
||||
/// </summary>
|
||||
@ -44,10 +39,7 @@ namespace Kyoo.Models
|
||||
/// </summary>
|
||||
public static Expression<Func<MetadataID, object>> PrimaryKey
|
||||
{
|
||||
get
|
||||
{
|
||||
return x => new {First = x.ResourceID, Second = x.ProviderID, Type = x.ResourceType};
|
||||
}
|
||||
get { return x => new { First = x.ResourceID, Second = x.ProviderID }; }
|
||||
}
|
||||
}
|
||||
}
|
@ -65,7 +65,10 @@ namespace Kyoo.Models
|
||||
{
|
||||
Slug = Utility.ToSlug(name);
|
||||
Name = name;
|
||||
Images[Thumbnails.Logo] = logo;
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Logo] = logo
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
@ -60,10 +60,7 @@ namespace Kyoo
|
||||
/// All providers of Kyoo. See <see cref="Provider"/>.
|
||||
/// </summary>
|
||||
public DbSet<Provider> Providers { get; set; }
|
||||
/// <summary>
|
||||
/// All metadata ids, not discriminated by type. See <see cref="MetadataID"/>.
|
||||
/// </summary>
|
||||
public DbSet<MetadataID> MetadataIDs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The list of registered users.
|
||||
/// </summary>
|
||||
@ -87,6 +84,25 @@ namespace Kyoo
|
||||
/// </remarks>
|
||||
public DbSet<LibraryItem> LibraryItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the name of the metadata table of the given type.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type related to the metadata</typeparam>
|
||||
/// <returns>The name of the table containing the metadata.</returns>
|
||||
protected abstract string MetadataName<T>()
|
||||
where T : IMetadata;
|
||||
|
||||
/// <summary>
|
||||
/// Get all metadataIDs (ExternalIDs) of a given resource. See <see cref="MetadataID"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The metadata of this type will be returned.</typeparam>
|
||||
/// <returns>A queryable of metadata ids for a type.</returns>
|
||||
public DbSet<MetadataID> MetadataIds<T>()
|
||||
where T : class, IMetadata
|
||||
{
|
||||
return Set<MetadataID>(MetadataName<T>());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a generic link between two resource types.
|
||||
/// </summary>
|
||||
@ -133,9 +149,12 @@ namespace Kyoo
|
||||
private void _HasMetadata<T>(ModelBuilder modelBuilder)
|
||||
where T : class, IMetadata
|
||||
{
|
||||
modelBuilder.Entity<T>()
|
||||
.HasMany(x => x.ExternalIDs)
|
||||
.WithOne()
|
||||
modelBuilder.SharedTypeEntity<MetadataID>(MetadataName<T>())
|
||||
.HasKey(MetadataID.PrimaryKey);
|
||||
|
||||
modelBuilder.SharedTypeEntity<MetadataID>(MetadataName<T>())
|
||||
.HasOne<T>()
|
||||
.WithMany(x => x.ExternalIDs)
|
||||
.HasForeignKey(x => x.ResourceID)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
}
|
||||
@ -149,6 +168,9 @@ namespace Kyoo
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
modelBuilder.Entity<PeopleRole>()
|
||||
.Ignore(x => x.ForPeople);
|
||||
|
||||
modelBuilder.Entity<Show>()
|
||||
.HasMany(x => x.Seasons)
|
||||
.WithOne(x => x.Show)
|
||||
@ -243,14 +265,6 @@ namespace Kyoo
|
||||
.WithMany(x => x.ShowLinks),
|
||||
y => y.HasKey(Link<User, Show>.PrimaryKey));
|
||||
|
||||
modelBuilder.Entity<MetadataID>()
|
||||
.HasKey(MetadataID.PrimaryKey);
|
||||
modelBuilder.Entity<MetadataID>()
|
||||
.Property(x => x.ResourceType)
|
||||
.IsRequired();
|
||||
modelBuilder.Entity<MetadataID>()
|
||||
.HasDiscriminator(x => x.ResourceType);
|
||||
|
||||
_HasMetadata<Collection>(modelBuilder);
|
||||
_HasMetadata<Show>(modelBuilder);
|
||||
_HasMetadata<Season>(modelBuilder);
|
||||
@ -259,7 +273,7 @@ namespace Kyoo
|
||||
_HasMetadata<Studio>(modelBuilder);
|
||||
|
||||
modelBuilder.Entity<WatchedEpisode>()
|
||||
.HasKey(x => new {First = x.FirstID, Second = x.SecondID});
|
||||
.HasKey(x => new { First = x.FirstID, Second = x.SecondID });
|
||||
|
||||
modelBuilder.Entity<Collection>().Property(x => x.Slug).IsRequired();
|
||||
modelBuilder.Entity<Genre>().Property(x => x.Slug).IsRequired();
|
||||
|
@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
namespace Kyoo.Postgresql.Migrations
|
||||
{
|
||||
[DbContext(typeof(PostgresContext))]
|
||||
[Migration("20210723224326_Initial")]
|
||||
[Migration("20210728141410_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -34,6 +34,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
@ -42,10 +46,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -77,6 +77,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("episode_number");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -106,10 +110,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("thumb");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
@ -200,14 +200,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
@ -348,114 +348,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("link_user_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_episode");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_episode_second_id");
|
||||
|
||||
b.ToTable("metadata_id_episode");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_people");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_people_second_id");
|
||||
|
||||
b.ToTable("metadata_id_people");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_season");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_season_second_id");
|
||||
|
||||
b.ToTable("metadata_id_season");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_show");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_show_second_id");
|
||||
|
||||
b.ToTable("metadata_id_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
@ -464,14 +356,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -495,10 +387,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("for_people");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("people_id");
|
||||
@ -535,9 +423,9 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
.HasColumnType("text")
|
||||
@ -574,14 +462,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_date");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("season_number");
|
||||
@ -629,22 +517,18 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text[]")
|
||||
.HasColumnName("aliases");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("backdrop");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("is_movie");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -653,10 +537,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("path");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -678,10 +558,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("trailer_url");
|
||||
|
||||
b.HasKey("ID")
|
||||
.HasName("pk_shows");
|
||||
|
||||
@ -855,6 +731,168 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("watched_episodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_collection_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_collection_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("collection_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_episode_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_episode_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("episode_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_people_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_people_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("people_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_season_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_season_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("season_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_show_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_show_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("show_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_studio_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_studio_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("studio_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -1001,90 +1039,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_episode_episodes_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_episode_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_people_people_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_people_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_season_seasons_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_season_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_show_shows_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_show_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -1162,8 +1116,124 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_collection_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_collection_metadata_id_collections_collection_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_episode_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_episode_metadata_id_episodes_episode_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_people_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_people_metadata_id_people_people_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_season_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_season_metadata_id_seasons_season_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_show_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_show_metadata_id_shows_show_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_studio_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_studio_metadata_id_studios_studio_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -1228,6 +1298,8 @@ namespace Kyoo.Postgresql.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
@ -23,7 +23,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||
slug = table.Column<string>(type: "text", nullable: false),
|
||||
name = table.Column<string>(type: "text", nullable: true),
|
||||
poster = table.Column<string>(type: "text", nullable: true),
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true),
|
||||
overview = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
@ -68,7 +68,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||
slug = table.Column<string>(type: "text", nullable: false),
|
||||
name = table.Column<string>(type: "text", nullable: true),
|
||||
poster = table.Column<string>(type: "text", nullable: true)
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
@ -83,7 +83,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||
slug = table.Column<string>(type: "text", nullable: false),
|
||||
name = table.Column<string>(type: "text", nullable: true),
|
||||
logo = table.Column<string>(type: "text", nullable: true),
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true),
|
||||
logo_extension = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
@ -147,6 +147,32 @@ namespace Kyoo.Postgresql.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "collection_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_collection_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_collection_metadata_id_collections_collection_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "collections",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_collection_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "link_library_provider",
|
||||
columns: table => new
|
||||
@ -172,26 +198,26 @@ namespace Kyoo.Postgresql.Migrations
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "metadata_id_people",
|
||||
name: "people_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
first_id = table.Column<int>(type: "integer", nullable: false),
|
||||
second_id = table.Column<int>(type: "integer", nullable: false),
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_metadata_id_people", x => new { x.first_id, x.second_id });
|
||||
table.PrimaryKey("pk_people_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_people_people_first_id",
|
||||
column: x => x.first_id,
|
||||
name: "fk_people_metadata_id_people_people_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "people",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_people_providers_second_id",
|
||||
column: x => x.second_id,
|
||||
name: "fk_people_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
@ -209,12 +235,9 @@ namespace Kyoo.Postgresql.Migrations
|
||||
path = table.Column<string>(type: "text", nullable: true),
|
||||
overview = table.Column<string>(type: "text", nullable: true),
|
||||
status = table.Column<Status>(type: "status", nullable: false),
|
||||
trailer_url = table.Column<string>(type: "text", nullable: true),
|
||||
start_air = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
||||
end_air = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
||||
poster = table.Column<string>(type: "text", nullable: true),
|
||||
logo = table.Column<string>(type: "text", nullable: true),
|
||||
backdrop = table.Column<string>(type: "text", nullable: true),
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true),
|
||||
is_movie = table.Column<bool>(type: "boolean", nullable: false),
|
||||
studio_id = table.Column<int>(type: "integer", nullable: true)
|
||||
},
|
||||
@ -229,6 +252,32 @@ namespace Kyoo.Postgresql.Migrations
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "studio_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_studio_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_studio_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_studio_metadata_id_studios_studio_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "studios",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "link_collection_show",
|
||||
columns: table => new
|
||||
@ -325,39 +374,12 @@ namespace Kyoo.Postgresql.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "metadata_id_show",
|
||||
columns: table => new
|
||||
{
|
||||
first_id = table.Column<int>(type: "integer", nullable: false),
|
||||
second_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_metadata_id_show", x => new { x.first_id, x.second_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_show_providers_second_id",
|
||||
column: x => x.second_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_show_shows_first_id",
|
||||
column: x => x.first_id,
|
||||
principalTable: "shows",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "people_roles",
|
||||
columns: table => new
|
||||
{
|
||||
id = table.Column<int>(type: "integer", nullable: false)
|
||||
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
||||
for_people = table.Column<bool>(type: "boolean", nullable: false),
|
||||
people_id = table.Column<int>(type: "integer", nullable: false),
|
||||
show_id = table.Column<int>(type: "integer", nullable: false),
|
||||
type = table.Column<string>(type: "text", nullable: true),
|
||||
@ -393,7 +415,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
overview = table.Column<string>(type: "text", nullable: true),
|
||||
start_date = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
||||
end_date = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
||||
poster = table.Column<string>(type: "text", nullable: true)
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
@ -406,6 +428,32 @@ namespace Kyoo.Postgresql.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "show_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_show_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_show_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_show_metadata_id_shows_show_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "shows",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "episodes",
|
||||
columns: table => new
|
||||
@ -419,7 +467,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
episode_number = table.Column<int>(type: "integer", nullable: true),
|
||||
absolute_number = table.Column<int>(type: "integer", nullable: true),
|
||||
path = table.Column<string>(type: "text", nullable: true),
|
||||
thumb = table.Column<string>(type: "text", nullable: true),
|
||||
images = table.Column<Dictionary<int, string>>(type: "jsonb", nullable: true),
|
||||
title = table.Column<string>(type: "text", nullable: true),
|
||||
overview = table.Column<string>(type: "text", nullable: true),
|
||||
release_date = table.Column<DateTime>(type: "timestamp without time zone", nullable: true)
|
||||
@ -442,52 +490,52 @@ namespace Kyoo.Postgresql.Migrations
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "metadata_id_season",
|
||||
name: "season_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
first_id = table.Column<int>(type: "integer", nullable: false),
|
||||
second_id = table.Column<int>(type: "integer", nullable: false),
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_metadata_id_season", x => new { x.first_id, x.second_id });
|
||||
table.PrimaryKey("pk_season_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_season_providers_second_id",
|
||||
column: x => x.second_id,
|
||||
name: "fk_season_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_season_seasons_first_id",
|
||||
column: x => x.first_id,
|
||||
name: "fk_season_metadata_id_seasons_season_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "seasons",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "metadata_id_episode",
|
||||
name: "episode_metadata_id",
|
||||
columns: table => new
|
||||
{
|
||||
first_id = table.Column<int>(type: "integer", nullable: false),
|
||||
second_id = table.Column<int>(type: "integer", nullable: false),
|
||||
resource_id = table.Column<int>(type: "integer", nullable: false),
|
||||
provider_id = table.Column<int>(type: "integer", nullable: false),
|
||||
data_id = table.Column<string>(type: "text", nullable: true),
|
||||
link = table.Column<string>(type: "text", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("pk_metadata_id_episode", x => new { x.first_id, x.second_id });
|
||||
table.PrimaryKey("pk_episode_metadata_id", x => new { x.resource_id, x.provider_id });
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_episode_episodes_first_id",
|
||||
column: x => x.first_id,
|
||||
name: "fk_episode_metadata_id_episodes_episode_id",
|
||||
column: x => x.resource_id,
|
||||
principalTable: "episodes",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "fk_metadata_id_episode_providers_second_id",
|
||||
column: x => x.second_id,
|
||||
name: "fk_episode_metadata_id_providers_provider_id",
|
||||
column: x => x.provider_id,
|
||||
principalTable: "providers",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
@ -547,12 +595,22 @@ namespace Kyoo.Postgresql.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_collection_metadata_id_provider_id",
|
||||
table: "collection_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_collections_slug",
|
||||
table: "collections",
|
||||
column: "slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_episode_metadata_id_provider_id",
|
||||
table: "episode_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_episodes_season_id",
|
||||
table: "episodes",
|
||||
@ -612,32 +670,17 @@ namespace Kyoo.Postgresql.Migrations
|
||||
table: "link_user_show",
|
||||
column: "second_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_metadata_id_episode_second_id",
|
||||
table: "metadata_id_episode",
|
||||
column: "second_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_metadata_id_people_second_id",
|
||||
table: "metadata_id_people",
|
||||
column: "second_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_metadata_id_season_second_id",
|
||||
table: "metadata_id_season",
|
||||
column: "second_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_metadata_id_show_second_id",
|
||||
table: "metadata_id_show",
|
||||
column: "second_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_people_slug",
|
||||
table: "people",
|
||||
column: "slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_people_metadata_id_provider_id",
|
||||
table: "people_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_people_roles_people_id",
|
||||
table: "people_roles",
|
||||
@ -654,6 +697,11 @@ namespace Kyoo.Postgresql.Migrations
|
||||
column: "slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_season_metadata_id_provider_id",
|
||||
table: "season_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_seasons_show_id_season_number",
|
||||
table: "seasons",
|
||||
@ -666,6 +714,11 @@ namespace Kyoo.Postgresql.Migrations
|
||||
column: "slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_show_metadata_id_provider_id",
|
||||
table: "show_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_shows_slug",
|
||||
table: "shows",
|
||||
@ -677,6 +730,11 @@ namespace Kyoo.Postgresql.Migrations
|
||||
table: "shows",
|
||||
column: "studio_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_studio_metadata_id_provider_id",
|
||||
table: "studio_metadata_id",
|
||||
column: "provider_id");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "ix_studios_slug",
|
||||
table: "studios",
|
||||
@ -709,6 +767,12 @@ namespace Kyoo.Postgresql.Migrations
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "collection_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "episode_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "link_collection_show");
|
||||
|
||||
@ -728,20 +792,20 @@ namespace Kyoo.Postgresql.Migrations
|
||||
name: "link_user_show");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "metadata_id_episode");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "metadata_id_people");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "metadata_id_season");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "metadata_id_show");
|
||||
name: "people_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "people_roles");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "season_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "show_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "studio_metadata_id");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "tracks");
|
||||
|
||||
@ -758,10 +822,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
name: "genres");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "providers");
|
||||
name: "people");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "people");
|
||||
name: "providers");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "episodes");
|
@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
namespace Kyoo.Postgresql.Migrations
|
||||
{
|
||||
[DbContext(typeof(PostgresContext))]
|
||||
[Migration("20210723224335_Triggers")]
|
||||
[Migration("20210728142213_Triggers")]
|
||||
partial class Triggers
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -34,6 +34,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
@ -42,10 +46,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -77,6 +77,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("episode_number");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -106,10 +110,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("thumb");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
@ -200,14 +200,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
@ -348,114 +348,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("link_user_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_episode");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_episode_second_id");
|
||||
|
||||
b.ToTable("metadata_id_episode");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_people");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_people_second_id");
|
||||
|
||||
b.ToTable("metadata_id_people");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_season");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_season_second_id");
|
||||
|
||||
b.ToTable("metadata_id_season");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_show");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_show_second_id");
|
||||
|
||||
b.ToTable("metadata_id_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
@ -464,14 +356,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -495,10 +387,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("for_people");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("people_id");
|
||||
@ -535,9 +423,9 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
.HasColumnType("text")
|
||||
@ -574,14 +462,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_date");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("season_number");
|
||||
@ -629,22 +517,18 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text[]")
|
||||
.HasColumnName("aliases");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("backdrop");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("is_movie");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -653,10 +537,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("path");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -678,10 +558,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("trailer_url");
|
||||
|
||||
b.HasKey("ID")
|
||||
.HasName("pk_shows");
|
||||
|
||||
@ -855,6 +731,168 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("watched_episodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_collection_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_collection_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("collection_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_episode_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_episode_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("episode_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_people_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_people_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("people_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_season_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_season_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("season_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_show_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_show_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("show_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_studio_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_studio_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("studio_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -1001,90 +1039,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_episode_episodes_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_episode_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_people_people_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_people_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_season_seasons_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_season_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_show_shows_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_show_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -1162,8 +1116,124 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_collection_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_collection_metadata_id_collections_collection_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_episode_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_episode_metadata_id_episodes_episode_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_people_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_people_metadata_id_people_people_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_season_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_season_metadata_id_seasons_season_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_show_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_show_metadata_id_shows_show_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_studio_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_studio_metadata_id_studios_studio_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -1228,6 +1298,8 @@ namespace Kyoo.Postgresql.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
@ -141,7 +141,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"
|
||||
CREATE VIEW library_items AS
|
||||
SELECT s.id, s.slug, s.title, s.overview, s.status, s.start_air, s.end_air, s.poster, CASE
|
||||
SELECT s.id, s.slug, s.title, s.overview, s.status, s.start_air, s.end_air, s.images, CASE
|
||||
WHEN s.is_movie THEN 'movie'::item_type
|
||||
ELSE 'show'::item_type
|
||||
END AS type
|
||||
@ -153,7 +153,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
WHERE s.id = l.second_id))
|
||||
UNION ALL
|
||||
SELECT -c0.id, c0.slug, c0.name AS title, c0.overview, 'unknown'::status AS status,
|
||||
NULL AS start_air, NULL AS end_air, c0.poster, 'collection'::item_type AS type
|
||||
NULL AS start_air, NULL AS end_air, c0.images, 'collection'::item_type AS type
|
||||
FROM collections AS c0");
|
||||
}
|
||||
|
@ -32,6 +32,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
@ -40,10 +44,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -75,6 +75,10 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("episode_number");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -104,10 +108,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("thumb");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
@ -198,14 +198,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("slug");
|
||||
@ -346,114 +346,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("link_user_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_episode");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_episode_second_id");
|
||||
|
||||
b.ToTable("metadata_id_episode");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_people");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_people_second_id");
|
||||
|
||||
b.ToTable("metadata_id_people");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_season");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_season_second_id");
|
||||
|
||||
b.ToTable("metadata_id_season");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("first_id");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("second_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("FirstID", "SecondID")
|
||||
.HasName("pk_metadata_id_show");
|
||||
|
||||
b.HasIndex("SecondID")
|
||||
.HasDatabaseName("ix_metadata_id_show_second_id");
|
||||
|
||||
b.ToTable("metadata_id_show");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
@ -462,14 +354,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("name");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -493,10 +385,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("for_people");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("people_id");
|
||||
@ -533,9 +421,9 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnName("id")
|
||||
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
.HasColumnType("text")
|
||||
@ -572,14 +460,14 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_date");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("season_number");
|
||||
@ -627,22 +515,18 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text[]")
|
||||
.HasColumnName("aliases");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("backdrop");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("timestamp without time zone")
|
||||
.HasColumnName("end_air");
|
||||
|
||||
b.Property<Dictionary<int, string>>("Images")
|
||||
.HasColumnType("jsonb")
|
||||
.HasColumnName("images");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("boolean")
|
||||
.HasColumnName("is_movie");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("logo");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("overview");
|
||||
@ -651,10 +535,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("path");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("poster");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
@ -676,10 +556,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("title");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("trailer_url");
|
||||
|
||||
b.HasKey("ID")
|
||||
.HasName("pk_shows");
|
||||
|
||||
@ -853,6 +729,168 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.ToTable("watched_episodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_collection_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_collection_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("collection_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_episode_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_episode_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("episode_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_people_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_people_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("people_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_season_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_season_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("season_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_show_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_show_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("show_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("resource_id");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("integer")
|
||||
.HasColumnName("provider_id");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("data_id");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("link");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID")
|
||||
.HasName("pk_studio_metadata_id");
|
||||
|
||||
b.HasIndex("ProviderID")
|
||||
.HasDatabaseName("ix_studio_metadata_id_provider_id");
|
||||
|
||||
b.ToTable("studio_metadata_id");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -999,90 +1037,6 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_episode_episodes_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_episode_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_people_people_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_people_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_season_seasons_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_season_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.HasConstraintName("fk_metadata_id_show_shows_first_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.HasConstraintName("fk_metadata_id_show_providers_second_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -1160,8 +1114,124 @@ namespace Kyoo.Postgresql.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("collection_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_collection_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_collection_metadata_id_collections_collection_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("episode_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_episode_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_episode_metadata_id_episodes_episode_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("people_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_people_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_people_metadata_id_people_people_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("season_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_season_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_season_metadata_id_seasons_season_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("show_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_show_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_show_metadata_id_shows_show_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("studio_metadata_id", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.HasConstraintName("fk_studio_metadata_id_providers_provider_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.HasConstraintName("fk_studio_metadata_id_studios_studio_id")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -1226,6 +1296,8 @@ namespace Kyoo.Postgresql.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
using EFCore.NamingConventions.Internal;
|
||||
using Kyoo.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Npgsql;
|
||||
@ -99,9 +101,38 @@ namespace Kyoo.Postgresql
|
||||
.Property(x => x.ExtraData)
|
||||
.HasColumnType("jsonb");
|
||||
|
||||
modelBuilder.Entity<LibraryItem>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<Collection>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<Show>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<Season>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<Episode>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<People>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
modelBuilder.Entity<Provider>()
|
||||
.Property(x => x.Images)
|
||||
.HasColumnType("jsonb");
|
||||
|
||||
base.OnModelCreating(modelBuilder);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override string MetadataName<T>()
|
||||
{
|
||||
SnakeCaseNameRewriter rewriter = new(CultureInfo.InvariantCulture);
|
||||
return rewriter.RewriteName(typeof(T).Name + nameof(MetadataID));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override bool IsDuplicateException(Exception ex)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
namespace Kyoo.SqLite.Migrations
|
||||
{
|
||||
[DbContext(typeof(SqLiteContext))]
|
||||
[Migration("20210723224542_Initial")]
|
||||
[Migration("20210728134952_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -18,21 +18,63 @@ namespace Kyoo.SqLite.Migrations
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "5.0.8");
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("CollectionMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("EpisodeMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -57,6 +99,9 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<int?>("EpisodeNumber")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -79,9 +124,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -152,10 +194,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -268,100 +310,16 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("Link<User, Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Episode>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<People>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Season>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Name")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -382,9 +340,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
@ -412,7 +367,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
@ -442,10 +397,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndDate")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
@ -484,27 +439,21 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Aliases")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Path")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -521,9 +470,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ID");
|
||||
|
||||
b.HasIndex("Slug")
|
||||
@ -657,6 +603,124 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("WatchedEpisodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("PeopleMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("SeasonMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("ShowMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("StudioMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -789,82 +853,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -935,8 +923,78 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -1001,6 +1059,8 @@ namespace Kyoo.SqLite.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
@ -15,7 +15,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.Annotation("Sqlite:Autoincrement", true),
|
||||
Slug = table.Column<string>(type: "TEXT", nullable: false),
|
||||
Name = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Poster = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Overview = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
@ -60,7 +60,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.Annotation("Sqlite:Autoincrement", true),
|
||||
Slug = table.Column<string>(type: "TEXT", nullable: false),
|
||||
Name = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Poster = table.Column<string>(type: "TEXT", nullable: true)
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
@ -75,7 +75,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.Annotation("Sqlite:Autoincrement", true),
|
||||
Slug = table.Column<string>(type: "TEXT", nullable: false),
|
||||
Name = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Logo = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true),
|
||||
LogoExtension = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
@ -139,6 +139,32 @@ namespace Kyoo.SqLite.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "CollectionMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_CollectionMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_CollectionMetadataID_Collections_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "Collections",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_CollectionMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Link<Library, Provider>",
|
||||
columns: table => new
|
||||
@ -164,26 +190,26 @@ namespace Kyoo.SqLite.Migrations
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "MetadataID<People>",
|
||||
name: "PeopleMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
FirstID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
SecondID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_MetadataID<People>", x => new { x.FirstID, x.SecondID });
|
||||
table.PrimaryKey("PK_PeopleMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<People>_People_FirstID",
|
||||
column: x => x.FirstID,
|
||||
name: "FK_PeopleMetadataID_People_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "People",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<People>_Providers_SecondID",
|
||||
column: x => x.SecondID,
|
||||
name: "FK_PeopleMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
@ -201,12 +227,9 @@ namespace Kyoo.SqLite.Migrations
|
||||
Path = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Overview = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Status = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
TrailerUrl = table.Column<string>(type: "TEXT", nullable: true),
|
||||
StartAir = table.Column<DateTime>(type: "TEXT", nullable: true),
|
||||
EndAir = table.Column<DateTime>(type: "TEXT", nullable: true),
|
||||
Poster = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Logo = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Backdrop = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true),
|
||||
IsMovie = table.Column<bool>(type: "INTEGER", nullable: false),
|
||||
StudioID = table.Column<int>(type: "INTEGER", nullable: true)
|
||||
},
|
||||
@ -221,6 +244,32 @@ namespace Kyoo.SqLite.Migrations
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "StudioMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_StudioMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_StudioMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_StudioMetadataID_Studios_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "Studios",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Link<Collection, Show>",
|
||||
columns: table => new
|
||||
@ -317,39 +366,12 @@ namespace Kyoo.SqLite.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "MetadataID<Show>",
|
||||
columns: table => new
|
||||
{
|
||||
FirstID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
SecondID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_MetadataID<Show>", x => new { x.FirstID, x.SecondID });
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Show>_Providers_SecondID",
|
||||
column: x => x.SecondID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Show>_Shows_FirstID",
|
||||
column: x => x.FirstID,
|
||||
principalTable: "Shows",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PeopleRoles",
|
||||
columns: table => new
|
||||
{
|
||||
ID = table.Column<int>(type: "INTEGER", nullable: false)
|
||||
.Annotation("Sqlite:Autoincrement", true),
|
||||
ForPeople = table.Column<bool>(type: "INTEGER", nullable: false),
|
||||
PeopleID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ShowID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
Type = table.Column<string>(type: "TEXT", nullable: true),
|
||||
@ -385,7 +407,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
Overview = table.Column<string>(type: "TEXT", nullable: true),
|
||||
StartDate = table.Column<DateTime>(type: "TEXT", nullable: true),
|
||||
EndDate = table.Column<DateTime>(type: "TEXT", nullable: true),
|
||||
Poster = table.Column<string>(type: "TEXT", nullable: true)
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
@ -398,6 +420,32 @@ namespace Kyoo.SqLite.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ShowMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_ShowMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_ShowMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_ShowMetadataID_Shows_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "Shows",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Episodes",
|
||||
columns: table => new
|
||||
@ -411,7 +459,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
EpisodeNumber = table.Column<int>(type: "INTEGER", nullable: true),
|
||||
AbsoluteNumber = table.Column<int>(type: "INTEGER", nullable: true),
|
||||
Path = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Thumb = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Images = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Title = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Overview = table.Column<string>(type: "TEXT", nullable: true),
|
||||
ReleaseDate = table.Column<DateTime>(type: "TEXT", nullable: true)
|
||||
@ -434,52 +482,52 @@ namespace Kyoo.SqLite.Migrations
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "MetadataID<Season>",
|
||||
name: "SeasonMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
FirstID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
SecondID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_MetadataID<Season>", x => new { x.FirstID, x.SecondID });
|
||||
table.PrimaryKey("PK_SeasonMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Season>_Providers_SecondID",
|
||||
column: x => x.SecondID,
|
||||
name: "FK_SeasonMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Season>_Seasons_FirstID",
|
||||
column: x => x.FirstID,
|
||||
name: "FK_SeasonMetadataID_Seasons_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "Seasons",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "MetadataID<Episode>",
|
||||
name: "EpisodeMetadataID",
|
||||
columns: table => new
|
||||
{
|
||||
FirstID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
SecondID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ResourceID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
ProviderID = table.Column<int>(type: "INTEGER", nullable: false),
|
||||
DataID = table.Column<string>(type: "TEXT", nullable: true),
|
||||
Link = table.Column<string>(type: "TEXT", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_MetadataID<Episode>", x => new { x.FirstID, x.SecondID });
|
||||
table.PrimaryKey("PK_EpisodeMetadataID", x => new { x.ResourceID, x.ProviderID });
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Episode>_Episodes_FirstID",
|
||||
column: x => x.FirstID,
|
||||
name: "FK_EpisodeMetadataID_Episodes_ResourceID",
|
||||
column: x => x.ResourceID,
|
||||
principalTable: "Episodes",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_MetadataID<Episode>_Providers_SecondID",
|
||||
column: x => x.SecondID,
|
||||
name: "FK_EpisodeMetadataID_Providers_ProviderID",
|
||||
column: x => x.ProviderID,
|
||||
principalTable: "Providers",
|
||||
principalColumn: "ID",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
@ -539,12 +587,22 @@ namespace Kyoo.SqLite.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_CollectionMetadataID_ProviderID",
|
||||
table: "CollectionMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Collections_Slug",
|
||||
table: "Collections",
|
||||
column: "Slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_EpisodeMetadataID_ProviderID",
|
||||
table: "EpisodeMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Episodes_SeasonID",
|
||||
table: "Episodes",
|
||||
@ -604,32 +662,17 @@ namespace Kyoo.SqLite.Migrations
|
||||
table: "Link<User, Show>",
|
||||
column: "SecondID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_MetadataID<Episode>_SecondID",
|
||||
table: "MetadataID<Episode>",
|
||||
column: "SecondID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_MetadataID<People>_SecondID",
|
||||
table: "MetadataID<People>",
|
||||
column: "SecondID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_MetadataID<Season>_SecondID",
|
||||
table: "MetadataID<Season>",
|
||||
column: "SecondID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_MetadataID<Show>_SecondID",
|
||||
table: "MetadataID<Show>",
|
||||
column: "SecondID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_People_Slug",
|
||||
table: "People",
|
||||
column: "Slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PeopleMetadataID_ProviderID",
|
||||
table: "PeopleMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PeopleRoles_PeopleID",
|
||||
table: "PeopleRoles",
|
||||
@ -646,6 +689,11 @@ namespace Kyoo.SqLite.Migrations
|
||||
column: "Slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_SeasonMetadataID_ProviderID",
|
||||
table: "SeasonMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Seasons_ShowID_SeasonNumber",
|
||||
table: "Seasons",
|
||||
@ -658,6 +706,11 @@ namespace Kyoo.SqLite.Migrations
|
||||
column: "Slug",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_ShowMetadataID_ProviderID",
|
||||
table: "ShowMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Shows_Slug",
|
||||
table: "Shows",
|
||||
@ -669,6 +722,11 @@ namespace Kyoo.SqLite.Migrations
|
||||
table: "Shows",
|
||||
column: "StudioID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_StudioMetadataID_ProviderID",
|
||||
table: "StudioMetadataID",
|
||||
column: "ProviderID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Studios_Slug",
|
||||
table: "Studios",
|
||||
@ -701,6 +759,12 @@ namespace Kyoo.SqLite.Migrations
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "CollectionMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "EpisodeMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Link<Collection, Show>");
|
||||
|
||||
@ -720,20 +784,20 @@ namespace Kyoo.SqLite.Migrations
|
||||
name: "Link<User, Show>");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "MetadataID<Episode>");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "MetadataID<People>");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "MetadataID<Season>");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "MetadataID<Show>");
|
||||
name: "PeopleMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "PeopleRoles");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "SeasonMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "ShowMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "StudioMetadataID");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Tracks");
|
||||
|
||||
@ -750,10 +814,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
name: "Genres");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Providers");
|
||||
name: "People");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "People");
|
||||
name: "Providers");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Episodes");
|
@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
namespace Kyoo.SqLite.Migrations
|
||||
{
|
||||
[DbContext(typeof(SqLiteContext))]
|
||||
[Migration("20210723224550_Triggers")]
|
||||
[Migration("20210728135127_Triggers")]
|
||||
partial class Triggers
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -18,21 +18,63 @@ namespace Kyoo.SqLite.Migrations
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "5.0.8");
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("CollectionMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("EpisodeMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -57,6 +99,9 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<int?>("EpisodeNumber")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -79,9 +124,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -152,10 +194,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -268,100 +310,16 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("Link<User, Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Episode>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<People>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Season>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Name")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -382,9 +340,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
@ -412,7 +367,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
@ -442,10 +397,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndDate")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
@ -484,27 +439,21 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Aliases")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Path")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -521,9 +470,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ID");
|
||||
|
||||
b.HasIndex("Slug")
|
||||
@ -657,6 +603,124 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("WatchedEpisodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("PeopleMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("SeasonMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("ShowMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("StudioMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -789,82 +853,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -935,8 +923,78 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -1001,6 +1059,8 @@ namespace Kyoo.SqLite.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
@ -154,7 +154,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
// language=SQLite
|
||||
migrationBuilder.Sql(@"
|
||||
CREATE VIEW LibraryItems AS
|
||||
SELECT s.ID, s.Slug, s.Title, s.Overview, s.Status, s.StartAir, s.EndAir, s.Poster, CASE
|
||||
SELECT s.ID, s.Slug, s.Title, s.Overview, s.Status, s.StartAir, s.EndAir, s.Images, CASE
|
||||
WHEN s.IsMovie THEN 1
|
||||
ELSE 0
|
||||
END AS Type
|
||||
@ -166,7 +166,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
WHERE s.ID = l.SecondID))
|
||||
UNION ALL
|
||||
SELECT -c0.ID, c0.Slug, c0.Name AS Title, c0.Overview, 3 AS Status,
|
||||
NULL AS StartAir, NULL AS EndAir, c0.Poster, 2 AS Type
|
||||
NULL AS StartAir, NULL AS EndAir, c0.Images, 2 AS Type
|
||||
FROM collections AS c0");
|
||||
}
|
||||
|
@ -16,21 +16,63 @@ namespace Kyoo.SqLite.Migrations
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "5.0.8");
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("CollectionMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("EpisodeMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -55,6 +97,9 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<int?>("EpisodeNumber")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -77,9 +122,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAddOrUpdate()
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Thumb")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
@ -150,10 +192,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -266,100 +308,16 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("Link<User, Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Episode>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<People>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Season>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.Property<int>("FirstID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("SecondID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("FirstID", "SecondID");
|
||||
|
||||
b.HasIndex("SecondID");
|
||||
|
||||
b.ToTable("MetadataID<Show>");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.People", b =>
|
||||
{
|
||||
b.Property<int>("ID")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Name")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
@ -380,9 +338,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<bool>("ForPeople")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("PeopleID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
@ -410,7 +365,7 @@ namespace Kyoo.SqLite.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("LogoExtension")
|
||||
@ -440,10 +395,10 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<DateTime?>("EndDate")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<int>("SeasonNumber")
|
||||
@ -482,27 +437,21 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Aliases")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Backdrop")
|
||||
b.Property<DateTime?>("EndAir")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<DateTime?>("EndAir")
|
||||
b.Property<string>("Images")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<bool>("IsMovie")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("Logo")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Overview")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Path")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Poster")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Slug")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT");
|
||||
@ -519,9 +468,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Property<string>("Title")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("TrailerUrl")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ID");
|
||||
|
||||
b.HasIndex("Slug")
|
||||
@ -655,6 +601,124 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.ToTable("WatchedEpisodes");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("PeopleMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("SeasonMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("ShowMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.Property<int>("ResourceID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<int>("ProviderID")
|
||||
.HasColumnType("INTEGER");
|
||||
|
||||
b.Property<string>("DataID")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.Property<string>("Link")
|
||||
.HasColumnType("TEXT");
|
||||
|
||||
b.HasKey("ResourceID", "ProviderID");
|
||||
|
||||
b.HasIndex("ProviderID");
|
||||
|
||||
b.ToTable("StudioMetadataID");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CollectionMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Collection", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("EpisodeMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Episode", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Episode", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "Season")
|
||||
@ -787,82 +851,6 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Episode>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Episode", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.People>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Season>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Season", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.MetadataID<Kyoo.Models.Show>", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Show", "First")
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("FirstID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Provider", "Second")
|
||||
.WithMany()
|
||||
.HasForeignKey("SecondID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("First");
|
||||
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.PeopleRole", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.People", "People")
|
||||
@ -933,8 +921,78 @@ namespace Kyoo.SqLite.Migrations
|
||||
b.Navigation("Second");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PeopleMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.People", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("SeasonMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Season", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("ShowMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Show", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("StudioMetadataID", b =>
|
||||
{
|
||||
b.HasOne("Kyoo.Models.Provider", "Provider")
|
||||
.WithMany()
|
||||
.HasForeignKey("ProviderID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Kyoo.Models.Studio", null)
|
||||
.WithMany("ExternalIDs")
|
||||
.HasForeignKey("ResourceID")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Provider");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Collection", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("LibraryLinks");
|
||||
|
||||
b.Navigation("ShowLinks");
|
||||
@ -999,6 +1057,8 @@ namespace Kyoo.SqLite.Migrations
|
||||
|
||||
modelBuilder.Entity("Kyoo.Models.Studio", b =>
|
||||
{
|
||||
b.Navigation("ExternalIDs");
|
||||
|
||||
b.Navigation("Shows");
|
||||
});
|
||||
|
||||
|
@ -102,12 +102,38 @@ namespace Kyoo.SqLite
|
||||
.Property(x => x.Type)
|
||||
.HasConversion<int>();
|
||||
|
||||
ValueConverter<Dictionary<string, string>, string> jsonConvertor = new(
|
||||
ValueConverter<Dictionary<string, string>, string> extraDataConvertor = new(
|
||||
x => JsonConvert.SerializeObject(x),
|
||||
x => JsonConvert.DeserializeObject<Dictionary<string, string>>(x));
|
||||
modelBuilder.Entity<User>()
|
||||
.Property(x => x.ExtraData)
|
||||
.HasConversion(extraDataConvertor);
|
||||
|
||||
ValueConverter<Dictionary<int, string>, string> jsonConvertor = new(
|
||||
x => JsonConvert.SerializeObject(x),
|
||||
x => JsonConvert.DeserializeObject<Dictionary<int, string>>(x));
|
||||
modelBuilder.Entity<LibraryItem>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<Collection>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<Show>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<Season>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<Episode>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<People>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
modelBuilder.Entity<Provider>()
|
||||
.Property(x => x.Images)
|
||||
.HasConversion(jsonConvertor);
|
||||
|
||||
|
||||
modelBuilder.Entity<LibraryItem>()
|
||||
.ToView("LibraryItems")
|
||||
@ -115,6 +141,12 @@ namespace Kyoo.SqLite
|
||||
base.OnModelCreating(modelBuilder);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override string MetadataName<T>()
|
||||
{
|
||||
return typeof(T).Name + nameof(MetadataID);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override bool IsDuplicateException(Exception ex)
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ namespace Kyoo.Tests
|
||||
Slug = "collection",
|
||||
Name = "Collection",
|
||||
Overview = "A nice collection for tests",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster"
|
||||
}
|
||||
@ -66,7 +66,7 @@ namespace Kyoo.Tests
|
||||
Status = Status.Finished,
|
||||
StartAir = new DateTime(2011, 1, 1),
|
||||
EndAir = new DateTime(2011, 1, 1),
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
@ -88,7 +88,7 @@ namespace Kyoo.Tests
|
||||
Overview = "The first season",
|
||||
StartDate = new DateTime(2020, 06, 05),
|
||||
EndDate = new DateTime(2020, 07, 05),
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
@ -108,7 +108,7 @@ namespace Kyoo.Tests
|
||||
EpisodeNumber = 1,
|
||||
AbsoluteNumber = 1,
|
||||
Path = "/home/kyoo/anohana-s1e1",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
@ -144,7 +144,7 @@ namespace Kyoo.Tests
|
||||
ID = 1,
|
||||
Slug = "the-actor",
|
||||
Name = "The Actor",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
@ -177,7 +177,7 @@ namespace Kyoo.Tests
|
||||
ID = 1,
|
||||
Slug = "tvdb",
|
||||
Name = "The TVDB",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "path/tvdb.svg",
|
||||
@ -282,7 +282,7 @@ namespace Kyoo.Tests
|
||||
EpisodeNumber = null,
|
||||
AbsoluteNumber = 3,
|
||||
Path = "/home/kyoo/anohana-3",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
@ -302,7 +302,7 @@ namespace Kyoo.Tests
|
||||
ShowSlug = "anohana",
|
||||
ShowID = 1,
|
||||
Path = "/home/kyoo/john-wick",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = "Poster",
|
||||
[Thumbnails.Logo] = "Logo",
|
||||
|
@ -1,3 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Kyoo.Models;
|
||||
using TMDbLib.Objects.General;
|
||||
@ -29,7 +30,7 @@ namespace Kyoo.TheMovieDb
|
||||
Status = movie.Status == "Released" ? Status.Finished : Status.Planned,
|
||||
StartAir = movie.ReleaseDate,
|
||||
EndAir = movie.ReleaseDate,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = movie.PosterPath != null
|
||||
? $"https://image.tmdb.org/t/p/original{movie.PosterPath}"
|
||||
@ -79,7 +80,7 @@ namespace Kyoo.TheMovieDb
|
||||
Status = tv.Status == "Ended" ? Status.Finished : Status.Planned,
|
||||
StartAir = tv.FirstAirDate,
|
||||
EndAir = tv.LastAirDate,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = tv.PosterPath != null
|
||||
? $"https://image.tmdb.org/t/p/original{tv.PosterPath}"
|
||||
@ -125,7 +126,7 @@ namespace Kyoo.TheMovieDb
|
||||
{
|
||||
Slug = Utility.ToSlug(collection.Name),
|
||||
Name = collection.Name,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = collection.PosterPath != null
|
||||
? $"https://image.tmdb.org/t/p/original{collection.PosterPath}"
|
||||
@ -152,7 +153,7 @@ namespace Kyoo.TheMovieDb
|
||||
Overview = movie.Overview,
|
||||
StartAir = movie.ReleaseDate,
|
||||
EndAir = movie.ReleaseDate,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = movie.PosterPath != null
|
||||
? $"https://image.tmdb.org/t/p/original{movie.PosterPath}"
|
||||
@ -188,7 +189,7 @@ namespace Kyoo.TheMovieDb
|
||||
Title = tv.Name,
|
||||
Overview = tv.Overview,
|
||||
StartAir = tv.FirstAirDate,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = tv.PosterPath != null
|
||||
? $"https://image.tmdb.org/t/p/original{tv.PosterPath}"
|
||||
@ -224,7 +225,7 @@ namespace Kyoo.TheMovieDb
|
||||
{
|
||||
Slug = Utility.ToSlug(cast.Name),
|
||||
Name = cast.Name,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = cast.ProfilePath != null
|
||||
? $"https://image.tmdb.org/t/p/original{cast.ProfilePath}"
|
||||
@ -259,7 +260,7 @@ namespace Kyoo.TheMovieDb
|
||||
{
|
||||
Slug = Utility.ToSlug(cast.Name),
|
||||
Name = cast.Name,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = cast.ProfilePath != null
|
||||
? $"https://image.tmdb.org/t/p/original{cast.ProfilePath}"
|
||||
@ -294,7 +295,7 @@ namespace Kyoo.TheMovieDb
|
||||
{
|
||||
Slug = Utility.ToSlug(crew.Name),
|
||||
Name = crew.Name,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = crew.ProfilePath != null
|
||||
? $"https://image.tmdb.org/t/p/original{crew.ProfilePath}"
|
||||
|
@ -29,7 +29,7 @@ namespace Kyoo.TheMovieDb
|
||||
Slug = "the-moviedb",
|
||||
Name = "TheMovieDB",
|
||||
LogoExtension = "svg",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Logo] = "https://www.themoviedb.org/assets/2/v4/logos/v2/" +
|
||||
"blue_short-8e7b30f73a4020692ccca9c88bafe5dcb6f8a62a4c6bc55cd9ba82bb2cd95f6c.svg"
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using Kyoo.Models;
|
||||
@ -55,7 +56,7 @@ namespace Kyoo.TheTvdb
|
||||
Overview = result.Overview,
|
||||
Status = _GetStatus(result.Status),
|
||||
StartAir = _ParseDate(result.FirstAired),
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = result.Poster != null
|
||||
? $"https://www.thetvdb.com{result.Poster}"
|
||||
@ -89,7 +90,7 @@ namespace Kyoo.TheTvdb
|
||||
Overview = series.Overview,
|
||||
Status = _GetStatus(series.Status),
|
||||
StartAir = _ParseDate(series.FirstAired),
|
||||
Images=
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = series.Poster != null
|
||||
? $"https://www.thetvdb.com/banners/{series.Poster}"
|
||||
@ -125,7 +126,7 @@ namespace Kyoo.TheTvdb
|
||||
{
|
||||
Slug = Utility.ToSlug(actor.Name),
|
||||
Name = actor.Name,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Poster] = actor.Image != null
|
||||
? $"https://www.thetvdb.com/banners/{actor.Image}"
|
||||
@ -161,7 +162,7 @@ namespace Kyoo.TheTvdb
|
||||
AbsoluteNumber = episode.AbsoluteNumber,
|
||||
Title = episode.EpisodeName,
|
||||
Overview = episode.Overview,
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Thumbnail] = episode.Filename != null
|
||||
? $"https://www.thetvdb.com/banners/{episode.Filename}"
|
||||
|
@ -33,7 +33,7 @@ namespace Kyoo.TheTvdb
|
||||
Slug = "the-tvdb",
|
||||
Name = "TheTVDB",
|
||||
LogoExtension = "png",
|
||||
Images =
|
||||
Images = new Dictionary<int, string>
|
||||
{
|
||||
[Thumbnails.Logo] = "https://www.thetvdb.com/images/logo.png"
|
||||
}
|
||||
|
@ -53,7 +53,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
await base.Create(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
obj.ExternalIDs.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
await _database.SaveChangesAsync($"Trying to insert a duplicated collection (slug {obj.Slug} already exists).");
|
||||
return obj;
|
||||
}
|
||||
@ -66,7 +65,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
x.Provider = await _providers.CreateIfNotExists(x.Provider);
|
||||
x.ProviderID = x.Provider.ID;
|
||||
x.ResourceType = nameof(Collection);
|
||||
_database.Entry(x.Provider).State = EntityState.Detached;
|
||||
});
|
||||
}
|
||||
|
@ -111,7 +111,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
await base.Create(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
obj.ExternalIDs.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
await _database.SaveChangesAsync($"Trying to insert a duplicated episode (slug {obj.Slug} already exists).");
|
||||
return await ValidateTracks(obj);
|
||||
}
|
||||
@ -162,7 +161,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
x.Provider = await _providers.CreateIfNotExists(x.Provider);
|
||||
x.ProviderID = x.Provider.ID;
|
||||
x.ResourceType = nameof(Episode);
|
||||
_database.Entry(x.Provider).State = EntityState.Detached;
|
||||
});
|
||||
}
|
||||
|
@ -62,7 +62,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
await base.Create(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
obj.ExternalIDs.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
await _database.SaveChangesAsync($"Trying to insert a duplicated people (slug {obj.Slug} already exists).");
|
||||
return obj;
|
||||
}
|
||||
@ -75,7 +74,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
id.Provider = await _providers.CreateIfNotExists(id.Provider);
|
||||
id.ProviderID = id.Provider.ID;
|
||||
id.ResourceType = nameof(People);
|
||||
_database.Entry(id.Provider).State = EntityState.Detached;
|
||||
});
|
||||
await resource.Roles.ForEachAsync(async role =>
|
||||
|
@ -69,11 +69,9 @@ namespace Kyoo.Controllers
|
||||
where T : class, IMetadata
|
||||
{
|
||||
string discriminator = typeof(T).Name;
|
||||
return ApplyFilters(_database.MetadataIDs
|
||||
.Include(y => y.Provider)
|
||||
.Where(x => x.ResourceType == discriminator),
|
||||
x => _database.MetadataIDs.FirstOrDefaultAsync(y => y.ResourceID == x
|
||||
&& y.ResourceType == discriminator),
|
||||
return ApplyFilters(_database.MetadataIds<T>()
|
||||
.Include(y => y.Provider),
|
||||
x => _database.MetadataIds<T>().FirstOrDefaultAsync(y => y.ResourceID == x),
|
||||
x => x.ResourceID,
|
||||
where,
|
||||
sort,
|
||||
|
@ -87,7 +87,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
await base.Create(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
obj.ExternalIDs.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
await _database.SaveChangesAsync($"Trying to insert a duplicated season (slug {obj.Slug} already exists).");
|
||||
return obj;
|
||||
}
|
||||
@ -108,7 +107,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
id.Provider = await _providers.CreateIfNotExists(id.Provider);
|
||||
id.ProviderID = id.Provider.ID;
|
||||
id.ResourceType = nameof(Season);
|
||||
_database.Entry(id.Provider).State = EntityState.Detached;
|
||||
});
|
||||
}
|
||||
|
@ -78,7 +78,6 @@ namespace Kyoo.Controllers
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
obj.GenreLinks.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
obj.People.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
obj.ExternalIDs.ForEach(x => _database.Entry(x).State = EntityState.Added);
|
||||
await _database.SaveChangesAsync($"Trying to insert a duplicated show (slug {obj.Slug} already exists).");
|
||||
return obj;
|
||||
}
|
||||
@ -103,7 +102,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
id.Provider = await _providers.CreateIfNotExists(id.Provider);
|
||||
id.ProviderID = id.Provider.ID;
|
||||
id.ResourceType = nameof(Show);
|
||||
_database.Entry(id.Provider).State = EntityState.Detached;
|
||||
});
|
||||
await resource.People.ForEachAsync(async role =>
|
||||
|
@ -66,7 +66,6 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
x.Provider = await _providers.CreateIfNotExists(x.Provider);
|
||||
x.ProviderID = x.Provider.ID;
|
||||
x.ResourceType = nameof(Studio);
|
||||
_database.Entry(x.Provider).State = EntityState.Detached;
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user