Move model configuration to its own classes

This commit is contained in:
Fernando Fernández
2021-09-06 21:05:21 +02:00
parent c2652d21e1
commit f4af78817d
9 changed files with 238 additions and 92 deletions

View File

@@ -0,0 +1,26 @@
using Jellyfin.Data.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Jellyfin.Server.Implementations.ModelConfiguration
{
/// <summary>
/// FluentAPI configuration for the Permission entity.
/// </summary>
public class PermissionConfiguration : IEntityTypeConfiguration<Permission>
{
/// <inheritdoc/>
public void Configure(EntityTypeBuilder<Permission> builder)
{
// Indexes
// Used to get a user's permissions or a specific permission for a user.
// Also prevents multiple values being created for a user.
// Filtered over non-null user ids for when other entities (groups, API keys) get permissions
builder
.HasIndex(p => new { p.UserId, p.Kind })
.HasFilter("[UserId] IS NOT NULL")
.IsUnique();
}
}
}