using System;
using System.Text.Json.Serialization;

namespace AsbCloudDb.Model.DailyReport
{
    public class Head : ItemInfo
    {
        /// <summary>
        /// название скважины
        /// </summary>
        public string WellName { get; set; } = string.Empty;

        /// <summary>
        /// название куста
        /// </summary>
        public string ClusterName { get; set; } = string.Empty;

        /// <summary>
        /// заказчик
        /// </summary>
        public string Customer { get; set; } = string.Empty;

        /// <summary>
        /// подрядчик
        /// </summary>
        public string Contractor { get; set; } = string.Empty;

        /// <summary>
        /// дата рапорта
        /// </summary>
        [JsonConverter(typeof(DateOnlyJsonConverter))]
        public DateOnly ReportDate { get; set; }

        /// <summary>
        /// глубина забоя на дату начала интервала
        /// </summary>
        public double? WellDepthIntervalStartDate { get; set; }

        /// <summary>
        /// глубина забоя на дату окончания интервала
        /// </summary>
        public double? WellDepthIntervalFinishDate { get; set; }

        /// <summary>
        /// Глубина забоя по стволу на окончание отчетного периода
        /// </summary>
        public double? BottomholeDepth { get; set; }

        /// <summary>
        /// Глубина забоя по вертикали на дату окончания отчетного периода
        /// </summary>
        public double? VerticalDepth { get; set; }

        /// <summary>
        /// Зенитный угол на дату окончания отчетного периода
        /// </summary>
        public double? ZenithAngle { get; set; }

        /// <summary>
        /// Азимутальный угол на дату окончания отчетного периода
        /// </summary>
        public double? AzimuthAngle { get; set; }

        /// <summary>
        /// ФИО бурильщиков
        /// </summary>
        public string FirstDriller { get; set; } = string.Empty;

        /// <summary>
        /// ФИО бурильщиков
        /// </summary>
        public string SecondDriller { get; set; } = string.Empty;

        /// <summary>
        /// Время работы АПД
        /// </summary>
        public double? WorkTimeSAUB { get; set; }

        /// <summary>
        /// Время работы спин мастер
        /// </summary>
        public double? WorkTimeSpinMaster { get; set; }

        /// <summary>
        /// Время работы torqueMaster
        /// </summary>
        public double? WorkTimeTorkMaster { get; set; }

        /// <summary>
        /// количество метров пробуренных с включенным АПД
        /// </summary>
        public double? PenetrationSAUB { get; set; }

        /// <summary>
        /// количество метров пробуренных с включенным Спин мастер
        /// </summary>
        public double? PenetrationSpinMaster { get; set; }

        /// <summary>
        /// количество метров пробуренных с включенным torqueMaster
        /// </summary>
        public double? PenetrationTorkMaster { get; set; }

        /// <summary>
        /// Количество запусков МСЕ
        /// </summary>
        public int CountLaunchesMSE { get; set; }
    }
}