using ReC.Infrastructure.Exceptions; using ReC.Infrastructure.Options.Shared; namespace ReC.Infrastructure.Options; public record DbModelOptions { public Dictionary Entities { get; init; } = []; public Dictionary VirtualEntities { get; init; } = []; public void EnsureEntity(bool isVirtual) { var entities = isVirtual ? VirtualEntities.ToDictionary(kvp => kvp.Key, kvp => kvp.Value as EntityBaseOptions) : Entities.ToDictionary(kvp => kvp.Key, kvp => kvp.Value as EntityBaseOptions); if(entities.TryGetValue(nameof(T), out var entityOptions)) entityOptions.EnsureProperties(); else throw new DbModelConfigurationException($"Entity options for type '{typeof(T).FullName}' not found."); } }