using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using IdentityShroud.Core.Security; namespace IdentityShroud.Core.Model; [Table("realm")] public class Realm { public Guid Id { get; set; } /// /// Note this is part of the url we should encourage users to keep it short but we do not want to limit them too much /// [MaxLength(40)] public string Slug { get; set; } = ""; [MaxLength(128)] public string Name { get; set; } = ""; public List Clients { get; init; } = []; public List Keys { get; init; } = []; public List Deks { get; init; } = []; /// /// Can be overriden per client /// public string DefaultSignatureAlgorithm { get; set; } = JsonWebAlgorithm.RS256; } [Table("realm_dek")] public record RealmDek { public required DekId Id { get; init; } public required bool Active { get; set; } public required string Algorithm { get; init; } public required EncryptedDek KeyData { get; init; } public required Guid RealmId { get; init; } }