using System;
using System.ComponentModel.DataAnnotations;
using AsbCloudApp.Data.User;

namespace AsbCloudApp.Data;

/// <summary>
/// DTO статистики запросов по пользователю
/// </summary>
public class RequestLogUserDto
{
    /// <summary>
    /// Id пользователя
    /// </summary>
    [Required]
    public int UserId { get; set; }

    /// <summary>
    /// логин
    /// </summary>
    [Required]
    public string Login { get; set; } = string.Empty;

    /// <summary>
    /// IP адрес пользователя
    /// </summary>
    public string? Ip { get; set; }

    /// <summary>
    /// время выполнения запроса
    /// </summary>
    [Required]
    public long ElapsedMs { get; set; }

    /// <summary>
    /// метка времени последнего запроса
    /// </summary>
    [Required]
    public DateTime LastDate { get; set; }

    /// <summary>
    /// кол-во запросов
    /// </summary>
    [Required]
    public long Requests { get; set; }

    /// <summary>
    /// кол-во ошибок
    /// </summary>
    [Required]
    public long Errors { get; set; }

    /// <summary>
    /// DTO пользователя
    /// </summary>
    [Required]
    public UserDto User { get; set; } = null!;
}