using System;
using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data;

/// <summary>
/// Сообщение для frontend
/// </summary>
public class MessageDto : IId
{
    /// <inheritdoc/>
    [Required]
    public int Id { get; set; }

    /// <summary>
    /// дата появления события
    /// </summary>
    [Required]
    public DateTimeOffset DateTime { get; set; }

    /// <summary>
    /// категория события
    /// </summary>
    [Required]
    [Range(1, int.MaxValue, ErrorMessage = "Id категории не может быть ниже 1")]
    public int CategoryId { get; set; }

    /// <summary>
    /// глубина забоя, при котором событие возникло
    /// </summary>
    [Required]
    [Range(-1, int.MaxValue, ErrorMessage = "Id скважины не может быть ниже 1")]
    public double WellDepth { get; set; }

    /// <summary>
    /// пользователь панели оператора
    /// </summary>
    public string? User { get; set; }

    /// <summary>
    /// текст сообщения
    /// </summary>
    [Required]
    [StringLength(400, MinimumLength = 1, ErrorMessage = "Допустимая длина текста сообщения от 1 до 400 символов")]
    public string Message { get; set; } = string.Empty;
}