using Elsa.Secrets.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Elsa.Secrets.Persistence.EntityFrameworkCore;
///
/// EF Core configuration for various entity types.
///
public class Configurations : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.Name)}");
builder.HasIndex(x => x.Scope).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.Scope)}");
builder.HasIndex(x => x.Version).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.Version)}");
builder.HasIndex(x => x.Status).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.Status)}");
builder.HasIndex(x => x.ExpiresAt).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.ExpiresAt)}");
builder.HasIndex(x => x.LastAccessedAt).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.LastAccessedAt)}");
builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(Secret)}_{nameof(Secret.TenantId)}");
}
}