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

namespace AsbCloudApp.Data.Trajectory;

/// <summary>
/// Базовая географическая траектория
/// </summary>
public abstract class TrajectoryGeoDto : IId, IValidatableObject
{
    /// <summary>
    /// ИД строки с координатами
    /// </summary>        
    public int Id { get; set; }
    /// <summary>
    /// Id скважины
    /// </summary>
    public int IdWell { get; set; }

    /// <summary>
    /// Глубина по стволу
    /// </summary>
    public double WellboreDepth { get; set; }
    /// <summary>
    /// Угол зенитный
    /// </summary>
    public double ZenithAngle { get; set; }

    /// <summary>
    /// Азимут Географ.
    /// </summary>
    public double AzimuthGeo { get; set; }

    /// <summary>
    /// Азимут Магнитный
    /// </summary>
    public double? AzimuthMagnetic { get; set; }

    /// <summary>
    /// Глубина вертикальная
    /// </summary>
    public double? VerticalDepth { get; set; }

    /// <summary>
    /// Дата загрузки
    /// </summary>
    public DateTimeOffset UpdateDate { get; set; }

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

    /// <inheritdoc />
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        return Enumerable.Empty<ValidationResult>();
    }
}