using adas_core.Domain.Models.AppSettings;
using adas_core.Domain.Models.MongoModels;

namespace adas_core.Authentication.Models;

/// <summary>
/// Represents the result of a token-related operation, encapsulating the outcome and any associated token data.
/// </summary>
public class TokenResult
{
    public string AccessToken { get; set; } = null!;
    public DateTime AccessTokenExpiryTime { get; set; }
    public string RefreshToken { get; set; } = null!;
    public DateTime RefreshTokenExpiryTime { get; set; }
    public User User { get; set; } = new();
}

/// <summary>
/// Represents a panel UI component responsible for displaying token-related results.
/// </summary>
public class TokenResultPanel
{
    public TokenResult TokenResult { get; set; } = null!;
    public PanelPermissionTypes Permissions { get; set; } = null!;
}