using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.ProcessMaps;
///
public abstract class ProcessMapPlanBaseDto : IId, IWellRelated, IValidatableObject
{
///
/// Id скважины
///
public int IdWell { get; set; }
///
/// Id записи
///
public int Id { get; set; }
///
/// Тип секции
///
[Range(1, int.MaxValue, ErrorMessage = "Id секции скважины не может быть меньше 1")]
public int IdWellSectionType { get; set; }
///
/// Название секции
///
public string? Section { get; set; }
///
/// Глубина по стволу от, м
///
/// на начало интервала
///
///
[Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")]
public double DepthStart { get; set; }
///
/// Глубина по стволу до, м
///
/// на конец интервала
///
///
[Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")]
public double DepthEnd { get; set; }
///
public virtual IEnumerable Validate(ValidationContext validationContext)
{
if (DepthEnd <= DepthStart)
yield return new("Глубина окончания должна быть больше глубины начала", new string[] { nameof(DepthEnd) });
}
}