using Mirea.Api.DataAccess.Persistence.Common; using Mirea.Api.Dto.Common; using Mirea.Api.Endpoint.Configuration.Validation.Attributes; using Mirea.Api.Endpoint.Configuration.Validation.Interfaces; using System; using System.Text.Json.Serialization; namespace Mirea.Api.Endpoint.Configuration.Model.GeneralSettings; [RequiredSettings] public class DbSettings : IIsConfigured { public DatabaseType TypeDatabase { get; set; } public required string ConnectionStringSql { get; set; } [JsonIgnore] public DatabaseProvider DatabaseProvider => TypeDatabase switch { DatabaseType.PostgresSql => DatabaseProvider.Postgresql, DatabaseType.Mysql => DatabaseProvider.Mysql, DatabaseType.Sqlite => DatabaseProvider.Sqlite, _ => throw new ArgumentOutOfRangeException() }; public bool IsConfigured() => !string.IsNullOrEmpty(ConnectionStringSql); }