Stream custom live channels using your own media
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

36 lines
1.1 KiB

using ErsatzTV.Core.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace ErsatzTV.Infrastructure.Data.Configurations;
public class ArtworkConfiguration : IEntityTypeConfiguration<Artwork>
{
public void Configure(EntityTypeBuilder<Artwork> builder)
{
builder.ToTable("Artwork");
string[] fkColumns =
[
"ArtistMetadataId",
"ChannelId",
"EpisodeMetadataId",
"MovieMetadataId",
"MusicVideoMetadataId",
"OtherVideoMetadataId",
"SeasonMetadataId",
"ShowMetadataId",
"SongMetadataId",
"ImageMetadataId",
"RemoteStreamMetadataId"
];
var coalesceList = string.Join(", ", fkColumns);
var computedSql = $"CASE WHEN COALESCE({coalesceList}) IS NULL THEN 1 ELSE NULL END";
builder.Property(a => a.IsMetadataOrphan)
.HasComputedColumnSql(computedSql, stored: false);
builder.HasIndex(a => a.IsMetadataOrphan);
}
}