DD.WellWorkover.Cloud/AsbCloudApp/Data/WellDto.cs
2024-08-19 10:01:07 +05:00

92 lines
2.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace AsbCloudApp.Data;
/// <summary>
/// базовая информация о скважине
/// </summary>
public class WellWithTimezoneDto : WellInfoDto
{
/// <inheritdoc/>
[Required]
public SimpleTimezoneDto Timezone { get; set; } = null!;
/// <summary>
/// 0 - неизвестно,
/// 1 - в работе,
/// 2 - завершена
/// </summary>
[Required]
public int IdState { get; set; }
}
/// <summary>
/// Скважина
/// </summary>
public class WellDto : WellInfoDto, IMapPoint, IId
{
/// <inheritdoc/>
[Range(-90, 90, ErrorMessage = "Допустимые значения широты от -90 до 90")]
public double? Latitude { get; set; }
/// <inheritdoc/>
[Range(-180, 180, ErrorMessage = "Допустимые значения долготы от -180 до 180")]
public double? Longitude { get; set; }
/// <inheritdoc/>
[Required]
public SimpleTimezoneDto Timezone { get; set; } = null!;
/// <summary>
/// Название типа скважины
/// </summary>
public string? WellType { get; set; }
/// <summary>
/// ID типа скважины
/// </summary>
[Range(1, 2, ErrorMessage = "Тип скважины указан неправильно.")]
public int IdWellType { get; set; }
/// <summary>
/// ID куста
/// </summary>
public int IdCluster { get; set; }
/// <summary>
/// 0 - неизвестно,
/// 1 - в работе,
/// 2 - завершена
/// </summary>
[Range(0, 2, ErrorMessage = "Текущее состояние работы скважины указано неправильно.")]
public int IdState { get; set; }
/// <summary>
/// Дата/время первой операции
/// </summary>
public DateTimeOffset? StartDate { get; set; }
/// <summary>
/// Дата/время кода приходили данные последний раз
/// </summary>
public DateTimeOffset LastTelemetryDate { get; set; }
/// <summary>
/// ID телеметрии
/// </summary>
public int? IdTelemetry { get; set; }
/// <summary>
/// Объект телеметрии (инфо от панели оператора)
/// </summary>
public TelemetryBaseDto? Telemetry { get; set; }
/// <summary>
/// Компании участвующие в работах на скважине
/// </summary>
public IEnumerable<CompanyDto> Companies { get; set; } = Enumerable.Empty<CompanyDto>();
}