using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data
{
    /// <summary>
    /// инфо о результатах замера
    /// </summary>
    public class MeasureDto : 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>
        /// название категории замера
        /// </summary>
        [Required]
        [StringLength(120, MinimumLength = 1, ErrorMessage = "Название категории не может быть больше 120 символов")]
        public string CategoryName { get; set; } = string.Empty;

        /// <summary>
        /// отметка времени замера
        /// </summary>
        [Required]
        public DateTimeOffset Timestamp { get; set; }

        /// <summary>
        /// данные замера
        /// </summary>
        [Required]
        public Dictionary<string, object> Data { get; set; } = new();
    }
}