add other videos library kind (#429)

This commit is contained in:
Jason Dove
2021-10-14 12:58:37 -05:00
committed by GitHub
parent 22da19845b
commit 0daeb844b9
49 changed files with 8483 additions and 29 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,24 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Add_LocalLibrary_OtherVideos : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
// create local other videos library
migrationBuilder.Sql(
@"INSERT INTO Library (Name, MediaKind, MediaSourceId)
SELECT 'Other Videos', 4, Id FROM
(SELECT LMS.Id FROM LocalMediaSource LMS
INNER JOIN Library L on L.MediaSourceId = LMS.Id
INNER JOIN LocalLibrary LL on L.Id = LL.Id
WHERE L.Name = 'Movies')");
migrationBuilder.Sql("INSERT INTO LocalLibrary (Id) Values (last_insert_rowid())");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,287 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Add_OtherVideo_OtherVideoMetadata : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "Tag",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "Studio",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "MetadataGuid",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoId",
table: "MediaVersion",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "Genre",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "Artwork",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OtherVideoMetadataId",
table: "Actor",
type: "INTEGER",
nullable: true);
migrationBuilder.CreateTable(
name: "OtherVideo",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true)
},
constraints: table =>
{
table.PrimaryKey("PK_OtherVideo", x => x.Id);
table.ForeignKey(
name: "FK_OtherVideo_MediaItem_Id",
column: x => x.Id,
principalTable: "MediaItem",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "OtherVideoMetadata",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
OtherVideoId = table.Column<int>(type: "INTEGER", nullable: false),
MetadataKind = table.Column<int>(type: "INTEGER", nullable: false),
Title = table.Column<string>(type: "TEXT", nullable: true),
OriginalTitle = table.Column<string>(type: "TEXT", nullable: true),
SortTitle = table.Column<string>(type: "TEXT", nullable: true),
Year = table.Column<int>(type: "INTEGER", nullable: true),
ReleaseDate = table.Column<DateTime>(type: "TEXT", nullable: true),
DateAdded = table.Column<DateTime>(type: "TEXT", nullable: false),
DateUpdated = table.Column<DateTime>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_OtherVideoMetadata", x => x.Id);
table.ForeignKey(
name: "FK_OtherVideoMetadata_OtherVideo_OtherVideoId",
column: x => x.OtherVideoId,
principalTable: "OtherVideo",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Tag_OtherVideoMetadataId",
table: "Tag",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_Studio_OtherVideoMetadataId",
table: "Studio",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_MetadataGuid_OtherVideoMetadataId",
table: "MetadataGuid",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_MediaVersion_OtherVideoId",
table: "MediaVersion",
column: "OtherVideoId");
migrationBuilder.CreateIndex(
name: "IX_Genre_OtherVideoMetadataId",
table: "Genre",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_Artwork_OtherVideoMetadataId",
table: "Artwork",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_Actor_OtherVideoMetadataId",
table: "Actor",
column: "OtherVideoMetadataId");
migrationBuilder.CreateIndex(
name: "IX_OtherVideoMetadata_OtherVideoId",
table: "OtherVideoMetadata",
column: "OtherVideoId");
migrationBuilder.AddForeignKey(
name: "FK_Actor_OtherVideoMetadata_OtherVideoMetadataId",
table: "Actor",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Artwork_OtherVideoMetadata_OtherVideoMetadataId",
table: "Artwork",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Genre_OtherVideoMetadata_OtherVideoMetadataId",
table: "Genre",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_MediaVersion_OtherVideo_OtherVideoId",
table: "MediaVersion",
column: "OtherVideoId",
principalTable: "OtherVideo",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_MetadataGuid_OtherVideoMetadata_OtherVideoMetadataId",
table: "MetadataGuid",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Studio_OtherVideoMetadata_OtherVideoMetadataId",
table: "Studio",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Tag_OtherVideoMetadata_OtherVideoMetadataId",
table: "Tag",
column: "OtherVideoMetadataId",
principalTable: "OtherVideoMetadata",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Actor_OtherVideoMetadata_OtherVideoMetadataId",
table: "Actor");
migrationBuilder.DropForeignKey(
name: "FK_Artwork_OtherVideoMetadata_OtherVideoMetadataId",
table: "Artwork");
migrationBuilder.DropForeignKey(
name: "FK_Genre_OtherVideoMetadata_OtherVideoMetadataId",
table: "Genre");
migrationBuilder.DropForeignKey(
name: "FK_MediaVersion_OtherVideo_OtherVideoId",
table: "MediaVersion");
migrationBuilder.DropForeignKey(
name: "FK_MetadataGuid_OtherVideoMetadata_OtherVideoMetadataId",
table: "MetadataGuid");
migrationBuilder.DropForeignKey(
name: "FK_Studio_OtherVideoMetadata_OtherVideoMetadataId",
table: "Studio");
migrationBuilder.DropForeignKey(
name: "FK_Tag_OtherVideoMetadata_OtherVideoMetadataId",
table: "Tag");
migrationBuilder.DropTable(
name: "OtherVideoMetadata");
migrationBuilder.DropTable(
name: "OtherVideo");
migrationBuilder.DropIndex(
name: "IX_Tag_OtherVideoMetadataId",
table: "Tag");
migrationBuilder.DropIndex(
name: "IX_Studio_OtherVideoMetadataId",
table: "Studio");
migrationBuilder.DropIndex(
name: "IX_MetadataGuid_OtherVideoMetadataId",
table: "MetadataGuid");
migrationBuilder.DropIndex(
name: "IX_MediaVersion_OtherVideoId",
table: "MediaVersion");
migrationBuilder.DropIndex(
name: "IX_Genre_OtherVideoMetadataId",
table: "Genre");
migrationBuilder.DropIndex(
name: "IX_Artwork_OtherVideoMetadataId",
table: "Artwork");
migrationBuilder.DropIndex(
name: "IX_Actor_OtherVideoMetadataId",
table: "Actor");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "Tag");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "Studio");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "MetadataGuid");
migrationBuilder.DropColumn(
name: "OtherVideoId",
table: "MediaVersion");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "Genre");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "Artwork");
migrationBuilder.DropColumn(
name: "OtherVideoMetadataId",
table: "Actor");
}
}
}
@@ -14,7 +14,7 @@ namespace ErsatzTV.Infrastructure.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "5.0.10");
.HasAnnotation("ProductVersion", "5.0.11");
modelBuilder.Entity("ErsatzTV.Core.Domain.Actor", b =>
{
@@ -43,6 +43,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<int?>("Order")
.HasColumnType("INTEGER");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<string>("Role")
.HasColumnType("TEXT");
@@ -65,6 +68,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -151,6 +156,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<int?>("MusicVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<string>("Path")
.HasColumnType("TEXT");
@@ -172,6 +180,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -525,6 +535,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("SeasonMetadataId")
.HasColumnType("INTEGER");
@@ -541,6 +554,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -815,6 +830,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<int?>("OtherVideoId")
.HasColumnType("INTEGER");
b.Property<string>("RFrameRate")
.HasColumnType("TEXT");
@@ -835,6 +853,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoId");
b.HasIndex("OtherVideoId");
b.ToTable("MediaVersion");
});
@@ -859,6 +879,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<int?>("MusicVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("SeasonMetadataId")
.HasColumnType("INTEGER");
@@ -875,6 +898,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -1055,6 +1080,46 @@ namespace ErsatzTV.Infrastructure.Migrations
b.ToTable("MusicVideoMetadata");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideoMetadata", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("DateAdded")
.HasColumnType("TEXT");
b.Property<DateTime>("DateUpdated")
.HasColumnType("TEXT");
b.Property<int>("MetadataKind")
.HasColumnType("INTEGER");
b.Property<string>("OriginalTitle")
.HasColumnType("TEXT");
b.Property<int>("OtherVideoId")
.HasColumnType("INTEGER");
b.Property<DateTime?>("ReleaseDate")
.HasColumnType("TEXT");
b.Property<string>("SortTitle")
.HasColumnType("TEXT");
b.Property<string>("Title")
.HasColumnType("TEXT");
b.Property<int?>("Year")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("OtherVideoId");
b.ToTable("OtherVideoMetadata");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b =>
{
b.Property<int>("Id")
@@ -1436,6 +1501,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("SeasonMetadataId")
.HasColumnType("INTEGER");
@@ -1452,6 +1520,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -1499,6 +1569,9 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<int?>("OtherVideoMetadataId")
.HasColumnType("INTEGER");
b.Property<int?>("SeasonMetadataId")
.HasColumnType("INTEGER");
@@ -1515,6 +1588,8 @@ namespace ErsatzTV.Infrastructure.Migrations
b.HasIndex("MusicVideoMetadataId");
b.HasIndex("OtherVideoMetadataId");
b.HasIndex("SeasonMetadataId");
b.HasIndex("ShowMetadataId");
@@ -1733,6 +1808,13 @@ namespace ErsatzTV.Infrastructure.Migrations
b.ToTable("MusicVideo");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideo", b =>
{
b.HasBaseType("ErsatzTV.Core.Domain.MediaItem");
b.ToTable("OtherVideo");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b =>
{
b.HasBaseType("ErsatzTV.Core.Domain.MediaItem");
@@ -2039,6 +2121,10 @@ namespace ErsatzTV.Infrastructure.Migrations
.WithMany("Actors")
.HasForeignKey("MusicVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Actors")
.HasForeignKey("OtherVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Actors")
.HasForeignKey("SeasonMetadataId");
@@ -2089,6 +2175,11 @@ namespace ErsatzTV.Infrastructure.Migrations
.HasForeignKey("MusicVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Artwork")
.HasForeignKey("OtherVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Artwork")
.HasForeignKey("SeasonMetadataId")
@@ -2214,6 +2305,10 @@ namespace ErsatzTV.Infrastructure.Migrations
.HasForeignKey("MusicVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Genres")
.HasForeignKey("OtherVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Genres")
.HasForeignKey("SeasonMetadataId");
@@ -2328,6 +2423,11 @@ namespace ErsatzTV.Infrastructure.Migrations
.WithMany("MediaVersions")
.HasForeignKey("MusicVideoId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.OtherVideo", null)
.WithMany("MediaVersions")
.HasForeignKey("OtherVideoId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("ErsatzTV.Core.Domain.MetadataGuid", b =>
@@ -2350,6 +2450,10 @@ namespace ErsatzTV.Infrastructure.Migrations
.WithMany("Guids")
.HasForeignKey("MusicVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Guids")
.HasForeignKey("OtherVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Guids")
.HasForeignKey("SeasonMetadataId")
@@ -2429,6 +2533,17 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("MusicVideo");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideoMetadata", b =>
{
b.HasOne("ErsatzTV.Core.Domain.OtherVideo", "OtherVideo")
.WithMany("OtherVideoMetadata")
.HasForeignKey("OtherVideoId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OtherVideo");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b =>
{
b.HasOne("ErsatzTV.Core.Domain.Channel", "Channel")
@@ -2679,6 +2794,10 @@ namespace ErsatzTV.Infrastructure.Migrations
.HasForeignKey("MusicVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Studios")
.HasForeignKey("OtherVideoMetadataId");
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Studios")
.HasForeignKey("SeasonMetadataId");
@@ -2717,6 +2836,11 @@ namespace ErsatzTV.Infrastructure.Migrations
.HasForeignKey("MusicVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.OtherVideoMetadata", null)
.WithMany("Tags")
.HasForeignKey("OtherVideoMetadataId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("ErsatzTV.Core.Domain.SeasonMetadata", null)
.WithMany("Tags")
.HasForeignKey("SeasonMetadataId");
@@ -2866,6 +2990,15 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("Artist");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideo", b =>
{
b.HasOne("ErsatzTV.Core.Domain.MediaItem", null)
.WithOne()
.HasForeignKey("ErsatzTV.Core.Domain.OtherVideo", "Id")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b =>
{
b.HasOne("ErsatzTV.Core.Domain.MediaItem", null)
@@ -3223,6 +3356,21 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("Tags");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideoMetadata", b =>
{
b.Navigation("Actors");
b.Navigation("Artwork");
b.Navigation("Genres");
b.Navigation("Guids");
b.Navigation("Studios");
b.Navigation("Tags");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b =>
{
b.Navigation("Items");
@@ -3310,6 +3458,13 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("MusicVideoMetadata");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.OtherVideo", b =>
{
b.Navigation("MediaVersions");
b.Navigation("OtherVideoMetadata");
});
modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b =>
{
b.Navigation("Episodes");