using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using AsbCloudApp.Data.WellOperation; namespace AsbCloudApp.Data.DetectedOperation; /// /// Автоматически определенная операция /// public class DetectedOperationDto : IId { /// [Required] public int Id { get; set; } /// /// Id телеметрии /// [Required] public int IdTelemetry { get; set; } /// /// Id названия/описания операции /// [Required] public int IdCategory { get; set; } /// /// Id пользователя панели на момент начала операции /// public int? IdUserAtStart { get; set; } /// /// Id пользователя изменившего операцию /// public int? IdEditor { get; set; } /// /// Дата завершения операции в часовом поясе скважины /// [Required] public DateTimeOffset DateEnd { get; set; } /// /// Дата начала операции в часовом поясе скважины /// [Required] public DateTimeOffset DateStart { get; set; } /// /// глубина на завершения операции, м /// [Required] public double DepthEnd { get; set; } /// /// глубина на начало операции, м /// [Required] public double DepthStart { get; set; } /// /// Продолжительность операции в минутах /// [Required] public double DurationMinutes => (DateEnd - DateStart).TotalMinutes; /// /// название/описание операции /// [Required] public WellOperationCategoryDto OperationCategory { get; set; } = null!; /// /// Включенные подсистемы /// [Required] public EnabledSubsystems EnabledSubsystems { get; set; } /// /// Значение ключевой параметра операции /// [Required] public double Value { get; set; } /// /// Доп. инфо по операции /// public IDictionary ExtraData { get; set; } = new Dictionary(); }