using Microsoft.EntityFrameworkCore;

namespace Lookup.Database;

/// <summary>
/// Common interface for <see cref="IEntity"/> variants
/// which reference <see cref="IValueEntity{TKey,TValue}"/> instances
/// </summary>
public interface IKeyEntity<TKey, TValue> : IEntity
  where TKey : class, IKeyEntity<TKey, TValue>
  where TValue : class, IValueEntity<TKey, TValue>
{
  /// <summary>
  /// The referenced <see cref="IValueEntity{TKey,TValue}"/> instances
  /// </summary>
  DbSet<IValueEntity<TKey, TValue>> Values { get; }
}