DD.WellWorkover.Cloud/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs

91 lines
2.4 KiB
C#
Raw Normal View History

2022-04-28 15:04:13 +05:00
using System;
2024-02-20 13:15:05 +05:00
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
2024-04-01 15:35:21 +05:00
using AsbCloudApp.Data.WellOperation;
2022-04-28 15:04:13 +05:00
2024-02-08 11:38:25 +05:00
namespace AsbCloudApp.Data.DetectedOperation;
/// <summary>
/// Автоматически определенная операция
/// </summary>
public class DetectedOperationDto : IId
2022-04-28 15:04:13 +05:00
{
/// <inheritdoc/>
[Required]
public int Id { get; set; }
2024-02-08 11:38:25 +05:00
/// <summary>
/// Id телеметрии
/// </summary>
[Required]
public int IdTelemetry { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// Id названия/описания операции
/// </summary>
[Required]
public int IdCategory { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// Id пользователя панели на момент начала операции
/// </summary>
public int? IdUserAtStart { get; set; }
/// <summary>
/// Id пользователя изменившего операцию
/// </summary>
public int? IdEditor { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// Дата завершения операции в часовом поясе скважины
/// </summary>
[Required]
public DateTimeOffset DateEnd { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// Дата начала операции в часовом поясе скважины
/// </summary>
[Required]
public DateTimeOffset DateStart { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// глубина на завершения операции, м
/// </summary>
[Required]
public double DepthEnd { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// глубина на начало операции, м
/// </summary>
[Required]
public double DepthStart { get; set; }
2022-04-28 15:04:13 +05:00
/// <summary>
/// Продолжительность операции в минутах
/// </summary>
[Required]
public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
/// <summary>
/// название/описание операции
/// </summary>
[Required]
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
/// <summary>
/// Включенные подсистемы
/// </summary>
[Required]
public EnabledSubsystems EnabledSubsystems { get; set; }
/// <summary>
/// Значение ключевой параметра операции
/// </summary>
[Required]
public double Value { get; set; }
/// <summary>
/// Доп. инфо по операции
/// </summary>
public IDictionary<string, object> ExtraData { get; set; } = new Dictionary<string, object>();
2024-02-08 11:38:25 +05:00
}