diff --git a/Kyoo.Common/Models/Resources/Show.cs b/Kyoo.Common/Models/Resources/Show.cs
index bddc6920..57c9fcef 100644
--- a/Kyoo.Common/Models/Resources/Show.cs
+++ b/Kyoo.Common/Models/Resources/Show.cs
@@ -185,5 +185,5 @@ namespace Kyoo.Models
///
/// The enum containing show's status.
///
- public enum Status { Finished, Airing, Planned, Unknown }
+ public enum Status { Unknown, Finished, Airing, Planned }
}
diff --git a/Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs b/Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs
similarity index 95%
rename from Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs
rename to Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs
index f1733a77..3016a040 100644
--- a/Kyoo.Postgresql/Migrations/20210627141933_Initial.Designer.cs
+++ b/Kyoo.Postgresql/Migrations/20210723224326_Initial.Designer.cs
@@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace Kyoo.Postgresql.Migrations
{
[DbContext(typeof(PostgresContext))]
- [Migration("20210627141933_Initial")]
+ [Migration("20210723224326_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -20,10 +20,10 @@ namespace Kyoo.Postgresql.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" })
- .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" })
+ .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" })
.HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" })
.HasAnnotation("Relational:MaxIdentifierLength", 63)
- .HasAnnotation("ProductVersion", "5.0.7")
+ .HasAnnotation("ProductVersion", "5.0.8")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
modelBuilder.Entity("Kyoo.Models.Collection", b =>
@@ -189,6 +189,51 @@ namespace Kyoo.Postgresql.Migrations
b.ToTable("libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .HasColumnType("integer")
+ .HasColumnName("id")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("EndAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("end_air");
+
+ b.Property("Overview")
+ .HasColumnType("text")
+ .HasColumnName("overview");
+
+ b.Property("Poster")
+ .HasColumnType("text")
+ .HasColumnName("poster");
+
+ b.Property("Slug")
+ .HasColumnType("text")
+ .HasColumnName("slug");
+
+ b.Property("StartAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("start_air");
+
+ b.Property("Status")
+ .HasColumnType("status")
+ .HasColumnName("status");
+
+ b.Property("Title")
+ .HasColumnType("text")
+ .HasColumnName("title");
+
+ b.Property("Type")
+ .HasColumnType("item_type")
+ .HasColumnName("type");
+
+ b.HasKey("ID")
+ .HasName("pk_library_items");
+
+ b.ToView("library_items");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -621,7 +666,7 @@ namespace Kyoo.Postgresql.Migrations
.HasColumnType("timestamp without time zone")
.HasColumnName("start_air");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("status")
.HasColumnName("status");
@@ -1078,7 +1123,8 @@ namespace Kyoo.Postgresql.Migrations
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
.HasForeignKey("StudioID")
- .HasConstraintName("fk_shows_studios_studio_id");
+ .HasConstraintName("fk_shows_studios_studio_id")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});
diff --git a/Kyoo.Postgresql/Migrations/20210627141933_Initial.cs b/Kyoo.Postgresql/Migrations/20210723224326_Initial.cs
similarity index 99%
rename from Kyoo.Postgresql/Migrations/20210627141933_Initial.cs
rename to Kyoo.Postgresql/Migrations/20210723224326_Initial.cs
index 29b51490..2ba22c6a 100644
--- a/Kyoo.Postgresql/Migrations/20210627141933_Initial.cs
+++ b/Kyoo.Postgresql/Migrations/20210723224326_Initial.cs
@@ -12,7 +12,7 @@ namespace Kyoo.Postgresql.Migrations
{
migrationBuilder.AlterDatabase()
.Annotation("Npgsql:Enum:item_type", "show,movie,collection")
- .Annotation("Npgsql:Enum:status", "finished,airing,planned,unknown")
+ .Annotation("Npgsql:Enum:status", "unknown,finished,airing,planned")
.Annotation("Npgsql:Enum:stream_type", "unknown,video,audio,subtitle,attachment");
migrationBuilder.CreateTable(
@@ -208,7 +208,7 @@ namespace Kyoo.Postgresql.Migrations
aliases = table.Column(type: "text[]", nullable: true),
path = table.Column(type: "text", nullable: true),
overview = table.Column(type: "text", nullable: true),
- status = table.Column(type: "status", nullable: true),
+ status = table.Column(type: "status", nullable: false),
trailer_url = table.Column(type: "text", nullable: true),
start_air = table.Column(type: "timestamp without time zone", nullable: true),
end_air = table.Column(type: "timestamp without time zone", nullable: true),
diff --git a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs
similarity index 95%
rename from Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs
rename to Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs
index fc019baf..d377a09f 100644
--- a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.Designer.cs
+++ b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.Designer.cs
@@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace Kyoo.Postgresql.Migrations
{
[DbContext(typeof(PostgresContext))]
- [Migration("20210627141941_Triggers")]
+ [Migration("20210723224335_Triggers")]
partial class Triggers
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -20,10 +20,10 @@ namespace Kyoo.Postgresql.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" })
- .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" })
+ .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" })
.HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" })
.HasAnnotation("Relational:MaxIdentifierLength", 63)
- .HasAnnotation("ProductVersion", "5.0.7")
+ .HasAnnotation("ProductVersion", "5.0.8")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
modelBuilder.Entity("Kyoo.Models.Collection", b =>
@@ -189,6 +189,51 @@ namespace Kyoo.Postgresql.Migrations
b.ToTable("libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .HasColumnType("integer")
+ .HasColumnName("id")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("EndAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("end_air");
+
+ b.Property("Overview")
+ .HasColumnType("text")
+ .HasColumnName("overview");
+
+ b.Property("Poster")
+ .HasColumnType("text")
+ .HasColumnName("poster");
+
+ b.Property("Slug")
+ .HasColumnType("text")
+ .HasColumnName("slug");
+
+ b.Property("StartAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("start_air");
+
+ b.Property("Status")
+ .HasColumnType("status")
+ .HasColumnName("status");
+
+ b.Property("Title")
+ .HasColumnType("text")
+ .HasColumnName("title");
+
+ b.Property("Type")
+ .HasColumnType("item_type")
+ .HasColumnName("type");
+
+ b.HasKey("ID")
+ .HasName("pk_library_items");
+
+ b.ToView("library_items");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -621,7 +666,7 @@ namespace Kyoo.Postgresql.Migrations
.HasColumnType("timestamp without time zone")
.HasColumnName("start_air");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("status")
.HasColumnName("status");
@@ -1078,7 +1123,8 @@ namespace Kyoo.Postgresql.Migrations
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
.HasForeignKey("StudioID")
- .HasConstraintName("fk_shows_studios_studio_id");
+ .HasConstraintName("fk_shows_studios_studio_id")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});
diff --git a/Kyoo.Postgresql/Migrations/20210627141941_Triggers.cs b/Kyoo.Postgresql/Migrations/20210723224335_Triggers.cs
similarity index 100%
rename from Kyoo.Postgresql/Migrations/20210627141941_Triggers.cs
rename to Kyoo.Postgresql/Migrations/20210723224335_Triggers.cs
diff --git a/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs b/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs
index e5044c60..f2d55f24 100644
--- a/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs
+++ b/Kyoo.Postgresql/Migrations/PostgresContextModelSnapshot.cs
@@ -18,10 +18,10 @@ namespace Kyoo.Postgresql.Migrations
#pragma warning disable 612, 618
modelBuilder
.HasPostgresEnum(null, "item_type", new[] { "show", "movie", "collection" })
- .HasPostgresEnum(null, "status", new[] { "finished", "airing", "planned", "unknown" })
+ .HasPostgresEnum(null, "status", new[] { "unknown", "finished", "airing", "planned" })
.HasPostgresEnum(null, "stream_type", new[] { "unknown", "video", "audio", "subtitle", "attachment" })
.HasAnnotation("Relational:MaxIdentifierLength", 63)
- .HasAnnotation("ProductVersion", "5.0.7")
+ .HasAnnotation("ProductVersion", "5.0.8")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
modelBuilder.Entity("Kyoo.Models.Collection", b =>
@@ -187,6 +187,51 @@ namespace Kyoo.Postgresql.Migrations
b.ToTable("libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .HasColumnType("integer")
+ .HasColumnName("id")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("EndAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("end_air");
+
+ b.Property("Overview")
+ .HasColumnType("text")
+ .HasColumnName("overview");
+
+ b.Property("Poster")
+ .HasColumnType("text")
+ .HasColumnName("poster");
+
+ b.Property("Slug")
+ .HasColumnType("text")
+ .HasColumnName("slug");
+
+ b.Property("StartAir")
+ .HasColumnType("timestamp without time zone")
+ .HasColumnName("start_air");
+
+ b.Property("Status")
+ .HasColumnType("status")
+ .HasColumnName("status");
+
+ b.Property("Title")
+ .HasColumnType("text")
+ .HasColumnName("title");
+
+ b.Property("Type")
+ .HasColumnType("item_type")
+ .HasColumnName("type");
+
+ b.HasKey("ID")
+ .HasName("pk_library_items");
+
+ b.ToView("library_items");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -619,7 +664,7 @@ namespace Kyoo.Postgresql.Migrations
.HasColumnType("timestamp without time zone")
.HasColumnName("start_air");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("status")
.HasColumnName("status");
@@ -1076,7 +1121,8 @@ namespace Kyoo.Postgresql.Migrations
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
.HasForeignKey("StudioID")
- .HasConstraintName("fk_shows_studios_studio_id");
+ .HasConstraintName("fk_shows_studios_studio_id")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});
diff --git a/Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs b/Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs
similarity index 96%
rename from Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs
rename to Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs
index 1337ce6b..eca501eb 100644
--- a/Kyoo.SqLite/Migrations/20210626141337_Initial.Designer.cs
+++ b/Kyoo.SqLite/Migrations/20210723224542_Initial.Designer.cs
@@ -9,14 +9,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace Kyoo.SqLite.Migrations
{
[DbContext(typeof(SqLiteContext))]
- [Migration("20210626141337_Initial")]
+ [Migration("20210723224542_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "5.0.7");
+ .HasAnnotation("ProductVersion", "5.0.8");
modelBuilder.Entity("Kyoo.Models.Collection", b =>
{
@@ -143,6 +143,41 @@ namespace Kyoo.SqLite.Migrations
b.ToTable("Libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("EndAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Overview")
+ .HasColumnType("TEXT");
+
+ b.Property("Poster")
+ .HasColumnType("TEXT");
+
+ b.Property("Slug")
+ .HasColumnType("TEXT");
+
+ b.Property("StartAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Status")
+ .HasColumnType("INTEGER");
+
+ b.Property("Title")
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("ID");
+
+ b.ToView("LibraryItems");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -477,7 +512,7 @@ namespace Kyoo.SqLite.Migrations
b.Property("StartAir")
.HasColumnType("TEXT");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("INTEGER");
b.Property("StudioID")
@@ -864,7 +899,8 @@ namespace Kyoo.SqLite.Migrations
{
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
- .HasForeignKey("StudioID");
+ .HasForeignKey("StudioID")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});
diff --git a/Kyoo.SqLite/Migrations/20210626141337_Initial.cs b/Kyoo.SqLite/Migrations/20210723224542_Initial.cs
similarity index 99%
rename from Kyoo.SqLite/Migrations/20210626141337_Initial.cs
rename to Kyoo.SqLite/Migrations/20210723224542_Initial.cs
index 88823571..1fa93860 100644
--- a/Kyoo.SqLite/Migrations/20210626141337_Initial.cs
+++ b/Kyoo.SqLite/Migrations/20210723224542_Initial.cs
@@ -200,7 +200,7 @@ namespace Kyoo.SqLite.Migrations
Aliases = table.Column(type: "TEXT", nullable: true),
Path = table.Column(type: "TEXT", nullable: true),
Overview = table.Column(type: "TEXT", nullable: true),
- Status = table.Column(type: "INTEGER", nullable: true),
+ Status = table.Column(type: "INTEGER", nullable: false),
TrailerUrl = table.Column(type: "TEXT", nullable: true),
StartAir = table.Column(type: "TEXT", nullable: true),
EndAir = table.Column(type: "TEXT", nullable: true),
diff --git a/Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs b/Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs
similarity index 96%
rename from Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs
rename to Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs
index 02045e3f..059a3aa4 100644
--- a/Kyoo.SqLite/Migrations/20210626141347_Triggers.Designer.cs
+++ b/Kyoo.SqLite/Migrations/20210723224550_Triggers.Designer.cs
@@ -9,14 +9,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace Kyoo.SqLite.Migrations
{
[DbContext(typeof(SqLiteContext))]
- [Migration("20210626141347_Triggers")]
+ [Migration("20210723224550_Triggers")]
partial class Triggers
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "5.0.7");
+ .HasAnnotation("ProductVersion", "5.0.8");
modelBuilder.Entity("Kyoo.Models.Collection", b =>
{
@@ -143,6 +143,41 @@ namespace Kyoo.SqLite.Migrations
b.ToTable("Libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("EndAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Overview")
+ .HasColumnType("TEXT");
+
+ b.Property("Poster")
+ .HasColumnType("TEXT");
+
+ b.Property("Slug")
+ .HasColumnType("TEXT");
+
+ b.Property("StartAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Status")
+ .HasColumnType("INTEGER");
+
+ b.Property("Title")
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("ID");
+
+ b.ToView("LibraryItems");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -477,7 +512,7 @@ namespace Kyoo.SqLite.Migrations
b.Property("StartAir")
.HasColumnType("TEXT");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("INTEGER");
b.Property("StudioID")
@@ -864,7 +899,8 @@ namespace Kyoo.SqLite.Migrations
{
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
- .HasForeignKey("StudioID");
+ .HasForeignKey("StudioID")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});
diff --git a/Kyoo.SqLite/Migrations/20210626141347_Triggers.cs b/Kyoo.SqLite/Migrations/20210723224550_Triggers.cs
similarity index 100%
rename from Kyoo.SqLite/Migrations/20210626141347_Triggers.cs
rename to Kyoo.SqLite/Migrations/20210723224550_Triggers.cs
diff --git a/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs b/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs
index 58ded130..12f5d94b 100644
--- a/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs
+++ b/Kyoo.SqLite/Migrations/SqLiteContextModelSnapshot.cs
@@ -14,7 +14,7 @@ namespace Kyoo.SqLite.Migrations
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "5.0.7");
+ .HasAnnotation("ProductVersion", "5.0.8");
modelBuilder.Entity("Kyoo.Models.Collection", b =>
{
@@ -141,6 +141,41 @@ namespace Kyoo.SqLite.Migrations
b.ToTable("Libraries");
});
+ modelBuilder.Entity("Kyoo.Models.LibraryItem", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("EndAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Overview")
+ .HasColumnType("TEXT");
+
+ b.Property("Poster")
+ .HasColumnType("TEXT");
+
+ b.Property("Slug")
+ .HasColumnType("TEXT");
+
+ b.Property("StartAir")
+ .HasColumnType("TEXT");
+
+ b.Property("Status")
+ .HasColumnType("INTEGER");
+
+ b.Property("Title")
+ .HasColumnType("TEXT");
+
+ b.Property("Type")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("ID");
+
+ b.ToView("LibraryItems");
+ });
+
modelBuilder.Entity("Kyoo.Models.Link", b =>
{
b.Property("FirstID")
@@ -475,7 +510,7 @@ namespace Kyoo.SqLite.Migrations
b.Property("StartAir")
.HasColumnType("TEXT");
- b.Property("Status")
+ b.Property("Status")
.HasColumnType("INTEGER");
b.Property("StudioID")
@@ -862,7 +897,8 @@ namespace Kyoo.SqLite.Migrations
{
b.HasOne("Kyoo.Models.Studio", "Studio")
.WithMany("Shows")
- .HasForeignKey("StudioID");
+ .HasForeignKey("StudioID")
+ .OnDelete(DeleteBehavior.SetNull);
b.Navigation("Studio");
});