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