namespace decePubClient.Models { /// /// The signed-in session, kept in localStorage: the root's /clientapi JWT and, per persona the client used, the /// Mastodon token PrivaPub issued for it in exchange (one token per persona, never naming the root). /// public class AuthData { /// The root's JWT, for /clientapi and for exchanging persona tokens. public string Token { get; set; } /// When the JWT expires, in .NET ticks (JwtUser.Expiration). public long? TokenExpiration { get; set; } /// When the client received the JWT, in .NET ticks: with TokenExpiration, how long PrivaPub's tokens last. public long? TokenIssuedAt { get; set; } public string CurrentLanguageCode { get; set; } = "en"; /// The root's login name; shown only to its owner. public string UserName { get; set; } public List Policies { get; set; } = []; /// The avatar id of the persona the client acts as. public string PersonaId { get; set; } /// Avatar id → that persona's Mastodon access token. public Dictionary PersonaTokens { get; set; } = []; } }