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; } = [];
}
}