using Mirea.Api.Endpoint.Common.Services; using Mirea.Api.Security.Common.Domain; using System.IO; using System.Text.Json; using System.Text.Json.Serialization; namespace Mirea.Api.Endpoint.Configuration.Model; public class Admin : ISaveSettings { [JsonIgnore] private const string FileName = "admin.json"; [JsonIgnore] public static string FilePath => PathBuilder.Combine(FileName); public required string Username { get; set; } public required string Email { get; set; } public required string PasswordHash { get; set; } public required string Salt { get; set; } public SecondFactor SecondFactor { get; set; } = SecondFactor.None; public string? Secret { get; set; } public void SaveSetting() { File.WriteAllText(FilePath, JsonSerializer.Serialize(this)); } }