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

namespace AsbCloudApp.Data;

/// <summary>
/// Отметка для файла
/// </summary>
public class FileMarkDto: IId
{
    /// <inheritdoc/>
    [Required]
    public int Id { get; set; }

    /// <summary>
    /// id файла
    /// </summary>
    [Required]
    [Range(1, int.MaxValue, ErrorMessage = "Id файла не может быть меньше 1")]
    public int IdFile { get; set; }

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

    /// <summary>
    /// дата/время добавления.
    /// Необязательно указывать в запросе на создание.
    /// </summary>
    [Required]
    public DateTimeOffset DateCreated { get; set; }

    /// <summary>
    /// Полезный комментарий 
    /// </summary>
    [StringLength(4096, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 4096 символов")]
    public string? Comment { get; set; }

    /// <summary>
    /// признак удаления отметки
    /// </summary>
    [Required]
    public bool IsDeleted { get; set; }

    /// <summary>
    /// Пользователь создающий отметку.
    /// Необязательно указывать в запросе на создание.
    /// </summary>
    public UserDto? User { get; set; }
}