using System;
using System.ComponentModel.DataAnnotations;

namespace AsbCloudApp.Data.ProcessMaps;

/// <inheritdoc/>
public abstract class ProcessMapPlanBaseDto : IId, IWellRelated
{
    /// <inheritdoc/>
    public int Id { get; set; }

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

    /// <summary>
    /// Id пользователя
    /// </summary>
    public int IdUser { get; set; }

    /// <summary>
    /// Тип секции
    /// </summary>
    [Range(1, int.MaxValue, ErrorMessage = "Id секции скважины не может быть меньше 1")]
    public int IdWellSectionType { get; set; }

    /// <summary>
    /// Дата последнего изменения
    /// </summary>
    public DateTimeOffset LastUpdate { get; set; }

    /// <summary>
    /// Глубина по стволу от, м
    /// <para>
    /// на начало интервала
    /// </para>
    /// </summary>
    [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")]
    public double DepthStart { get; set; }

    /// <summary>
    /// Глубина по стволу до, м
    /// <para>
    /// на конец интервала
    /// </para>
    /// </summary>
    [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")]
    public double DepthEnd { get; set; }

    /// <summary>
    /// Комментарий
    /// </summary>
    public string? Comment { get; set; }
}