using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using AsbCloudApp.Data.User; namespace AsbCloudApp.Data { /// <summary> /// DTO информации о файле. Используется для загрузки файла. /// </summary> public class FileInfoDto : IId, IWellRelated { /// <inheritdoc/> [Required] public int Id { get; set; } /// <inheritdoc/> [Required] [Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] public int IdWell { get; set; } /// <summary> /// id категории файла /// </summary> [Required] [Range(1, int.MaxValue, ErrorMessage = "Id категории файла не может быть меньше 1")] public int IdCategory { get; set; } /// <summary> /// Id автора /// </summary> public int? IdAuthor { get; set; } /// <summary> /// имя файла /// </summary> [Required] [StringLength(260, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 260 символов")] public string Name { get; set; } = null!; /// <summary> /// дата загрузки /// </summary> [Required] public DateTimeOffset UploadDate { get; set; } /// <summary> /// размер в байтах /// </summary> [Required] public long Size { get; set; } /// <summary> /// Помечен как удаленный /// </summary> [Required] public bool IsDeleted { get; set; } /// <summary> /// DTO автора /// </summary> public UserDto? Author { get; set; } /// <summary> /// список отметок файла /// </summary> [Required] public IEnumerable<FileMarkDto> FileMarks { get; set; } = Enumerable.Empty<FileMarkDto>(); } }