using Mirea.Api.DataAccess.Persistence.Common; using Mirea.Api.Endpoint.Configuration.General.Attributes; using Mirea.Api.Endpoint.Configuration.General.Interfaces; using System; namespace Mirea.Api.Endpoint.Configuration.General.Settings; [RequiredSettings] public class DbSettings : IIsConfigured { public enum DatabaseEnum { Mysql, Sqlite, PostgresSql } public DatabaseEnum TypeDatabase { get; set; } public required string ConnectionStringSql { get; set; } public DatabaseProvider DatabaseProvider => TypeDatabase switch { DatabaseEnum.PostgresSql => DatabaseProvider.Postgresql, DatabaseEnum.Mysql => DatabaseProvider.Mysql, DatabaseEnum.Sqlite => DatabaseProvider.Sqlite, _ => throw new ArgumentOutOfRangeException() }; public bool IsConfigured() => !string.IsNullOrEmpty(ConnectionStringSql); }