mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 01:24:44 +01:00
Added EF BaseItem migration
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
using Jellyfin.Data.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace Jellyfin.Server.Implementations.ModelConfiguration;
|
||||
|
||||
/// <summary>
|
||||
/// FluentAPI configuration for the AttachmentStreamInfo entity.
|
||||
/// </summary>
|
||||
public class AttachmentStreamInfoConfiguration : IEntityTypeConfiguration<AttachmentStreamInfo>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<AttachmentStreamInfo> builder)
|
||||
{
|
||||
builder.HasKey(e => new { e.ItemId, e.Index });
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using SQLitePCL;
|
||||
|
||||
namespace Jellyfin.Server.Implementations.ModelConfiguration;
|
||||
|
||||
@@ -14,10 +15,10 @@ public class BaseItemConfiguration : IEntityTypeConfiguration<BaseItemEntity>
|
||||
public void Configure(EntityTypeBuilder<BaseItemEntity> builder)
|
||||
{
|
||||
builder.HasKey(e => e.Id);
|
||||
builder.HasOne(e => e.Parent);
|
||||
builder.HasOne(e => e.TopParent);
|
||||
builder.HasOne(e => e.Season);
|
||||
builder.HasOne(e => e.Series);
|
||||
builder.HasOne(e => e.Parent).WithMany(e => e.DirectChildren).HasForeignKey(e => e.ParentId);
|
||||
builder.HasOne(e => e.TopParent).WithMany(e => e.AllChildren).HasForeignKey(e => e.TopParentId);
|
||||
builder.HasOne(e => e.Season).WithMany(e => e.SeasonEpisodes).HasForeignKey(e => e.SeasonId);
|
||||
builder.HasOne(e => e.Series).WithMany(e => e.SeriesEpisodes).HasForeignKey(e => e.SeriesId);
|
||||
builder.HasMany(e => e.Peoples);
|
||||
builder.HasMany(e => e.UserData);
|
||||
builder.HasMany(e => e.ItemValues);
|
||||
|
||||
@@ -13,7 +13,7 @@ public class ChapterConfiguration : IEntityTypeConfiguration<Chapter>
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<Chapter> builder)
|
||||
{
|
||||
builder.HasNoKey();
|
||||
builder.HasIndex(e => new { e.ItemId, e.ChapterIndex });
|
||||
builder.HasKey(e => new { e.ItemId, e.ChapterIndex });
|
||||
builder.HasOne(e => e.Item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ public class ItemValuesConfiguration : IEntityTypeConfiguration<ItemValue>
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<ItemValue> builder)
|
||||
{
|
||||
builder.HasNoKey();
|
||||
builder.HasKey(e => new { e.ItemId, e.Type, e.Value });
|
||||
builder.HasIndex(e => new { e.ItemId, e.Type, e.CleanValue });
|
||||
builder.HasIndex(e => new { e.ItemId, e.Type, e.Value });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using Jellyfin.Data.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace Jellyfin.Server.Implementations.ModelConfiguration;
|
||||
|
||||
/// <summary>
|
||||
/// People configuration.
|
||||
/// </summary>
|
||||
public class MediaStreamInfoConfiguration : IEntityTypeConfiguration<MediaStreamInfo>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<MediaStreamInfo> builder)
|
||||
{
|
||||
builder.HasKey(e => new { e.ItemId, e.StreamIndex });
|
||||
builder.HasIndex(e => e.StreamIndex);
|
||||
builder.HasIndex(e => e.StreamType);
|
||||
builder.HasIndex(e => new { e.StreamIndex, e.StreamType });
|
||||
builder.HasIndex(e => new { e.StreamIndex, e.StreamType, e.Language });
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ public class PeopleConfiguration : IEntityTypeConfiguration<People>
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<People> builder)
|
||||
{
|
||||
builder.HasNoKey();
|
||||
builder.HasKey(e => new { e.ItemId, e.Role, e.ListOrder });
|
||||
builder.HasIndex(e => new { e.ItemId, e.ListOrder });
|
||||
builder.HasIndex(e => e.Name);
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@ public class UserDataConfiguration : IEntityTypeConfiguration<UserData>
|
||||
/// <inheritdoc/>
|
||||
public void Configure(EntityTypeBuilder<UserData> builder)
|
||||
{
|
||||
builder.HasNoKey();
|
||||
builder.HasIndex(d => new { d.Key, d.UserId }).IsUnique();
|
||||
builder.HasKey(d => new { d.Key, d.UserId });
|
||||
builder.HasIndex(d => new { d.Key, d.UserId, d.Played });
|
||||
builder.HasIndex(d => new { d.Key, d.UserId, d.PlaybackPositionTicks });
|
||||
builder.HasIndex(d => new { d.Key, d.UserId, d.IsFavorite });
|
||||
|
||||
Reference in New Issue
Block a user