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!;
    }
}