using Mirea.Api.Dto.Common;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Mirea.Api.Dto.Responses;

/// <summary>
/// Represents a response containing user information.
/// </summary>
public class UserResponse
{
    /// <summary>
    /// Gets or sets the email address of the user.
    /// </summary>
    [Required]
    public required string Email { get; set; }

    /// <summary>
    /// Gets or sets the username of the user.
    /// </summary>
    [Required]
    public required string Username { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether the user has two-factor authentication enabled.
    /// </summary>
    [Required]
    public bool TwoFactorAuthenticatorEnabled { get; set; }

    /// <summary>
    /// Gets or sets a collection of OAuth providers used by the user.
    /// </summary>
    [Required]
    public required IEnumerable<OAuthProvider> UsedOAuthProviders { get; set; }
}