add movie directors and writers (#219)

This commit is contained in:
Jason Dove
2021-05-27 09:24:47 -05:00
committed by GitHub
parent 68123a2f9c
commit 0bbed69e85
26 changed files with 3315 additions and 12 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,83 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Add_MovieMetadataDirectorsWriters : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
// local and plex
migrationBuilder.Sql("UPDATE MovieMetadata SET DateUpdated = '0001-01-01 00:00:00'");
migrationBuilder.Sql(
@"UPDATE LibraryFolder SET Etag = NULL WHERE LibraryPathId IN
(SELECT LibraryPathId FROM LibraryPath LP
INNER JOIN Library L on LP.LibraryId = L.Id
WHERE L.MediaKind = 1)");
// emby
migrationBuilder.Sql("UPDATE EmbyMovie SET Etag = NULL");
// jellyfin
migrationBuilder.Sql("UPDATE JellyfinMovie SET Etag = NULL");
migrationBuilder.CreateTable(
"Director",
table => new
{
Id = table.Column<int>("INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>("TEXT", nullable: true),
MovieMetadataId = table.Column<int>("INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Director", x => x.Id);
table.ForeignKey(
"FK_Director_MovieMetadata_MovieMetadataId",
x => x.MovieMetadataId,
"MovieMetadata",
"Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
"Writer",
table => new
{
Id = table.Column<int>("INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>("TEXT", nullable: true),
MovieMetadataId = table.Column<int>("INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Writer", x => x.Id);
table.ForeignKey(
"FK_Writer_MovieMetadata_MovieMetadataId",
x => x.MovieMetadataId,
"MovieMetadata",
"Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
"IX_Director_MovieMetadataId",
"Director",
"MovieMetadataId");
migrationBuilder.CreateIndex(
"IX_Writer_MovieMetadataId",
"Writer",
"MovieMetadataId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
"Director");
migrationBuilder.DropTable(
"Writer");
}
}
}
@@ -282,6 +282,27 @@ namespace ErsatzTV.Infrastructure.Migrations
b.ToTable("ConfigElement");
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.Director",
b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int?>("MovieMetadataId")
.HasColumnType("INTEGER");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("MovieMetadataId");
b.ToTable("Director");
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.EmbyConnection",
b =>
@@ -1332,6 +1353,27 @@ namespace ErsatzTV.Infrastructure.Migrations
b.ToTable("Tag");
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.Writer",
b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int?>("MovieMetadataId")
.HasColumnType("INTEGER");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("MovieMetadataId");
b.ToTable("Writer");
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.EmbyLibrary",
b =>
@@ -1878,6 +1920,16 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("MediaItem");
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.Director",
b =>
{
b.HasOne("ErsatzTV.Core.Domain.MovieMetadata", null)
.WithMany("Directors")
.HasForeignKey("MovieMetadataId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.EmbyConnection",
b =>
@@ -2417,6 +2469,16 @@ namespace ErsatzTV.Infrastructure.Migrations
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.Writer",
b =>
{
b.HasOne("ErsatzTV.Core.Domain.MovieMetadata", null)
.WithMany("Writers")
.HasForeignKey("MovieMetadataId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity(
"ErsatzTV.Core.Domain.EmbyLibrary",
b =>
@@ -2859,11 +2921,15 @@ namespace ErsatzTV.Infrastructure.Migrations
b.Navigation("Artwork");
b.Navigation("Directors");
b.Navigation("Genres");
b.Navigation("Studios");
b.Navigation("Tags");
b.Navigation("Writers");
});
modelBuilder.Entity(