using Sonex.Data.Database; namespace Sonex.Data.Records; public sealed class PermissionRecord { public int Id { get; set; } public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public string DisplayName { get { var text = Name.Replace("permission_", string.Empty, StringComparison.OrdinalIgnoreCase).Replace('_', ' ').Trim(); return string.IsNullOrEmpty(text) ? string.Empty : char.ToUpperInvariant(text[0]) + text[1..]; } } public static Task> Get(string name) { return DB.QuerySingleAsync( "SELECT * FROM sonex.v_permissions WHERE name = @permission_name LIMIT 1;", new { permission_name = name }); } public static Task> GetAll() { return DB.QueryListAsync( "SELECT * FROM sonex.v_permissions;"); } }