DD.WellWorkover.Cloud/AsbCloudApp/Data/DailyReport/DailyReportDto.cs

117 lines
3.1 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using AsbCloudApp.Data.DailyReport.Blocks;
using AsbCloudApp.Data.DailyReport.Blocks.Sign;
using AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
using AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
using AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
namespace AsbCloudApp.Data.DailyReport;
/// <summary>
/// Суточный отчёт
/// </summary>
public class DailyReportDto : IId,
IWellRelated
{
/// <inheritdoc/>
[Required]
public int Id { get; set; }
/// <inheritdoc/>
[Required]
public int IdWell { get; set; }
/// <summary>
/// Название скважины
/// </summary>
[Required]
public string WellCaption { get; set; } = null!;
/// <summary>
/// Название типа скважины
/// </summary>
public string? WellType { get; set; }
/// <summary>
/// Название куста
/// </summary>
public string? Cluster { get; set; }
/// <summary>
/// Заказчик
/// </summary>
public string? Customer { get; set; }
/// <summary>
/// Подрядчик
/// </summary>
public string? Contractor { get; set; }
/// <summary>
/// Месторождение
/// </summary>
public string? Deposit { get; set; }
/// <summary>
/// Глубина забоя на дату начала интервала
/// </summary>
public double? DepthStart { get; set; }
/// <summary>
/// Глубина забоя на дату окончания интервала
/// </summary>
public double? DepthEnd { get; set; }
/// <summary>
/// Дата формирования отчёта
/// </summary>
[Required]
public DateOnly Date { get; set; }
/// <summary>
/// Дата последнего обновления
/// </summary>
public DateTimeOffset? DateLastUpdate { get; set; }
/// <summary>
/// Блок фактической траектории
/// </summary>
[Required]
public TrajectoryBlockDto TrajectoryBlock { get; set; } = null!;
/// <summary>
/// Фактические операции
/// </summary>
[Required]
public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!;
/// <summary>
/// Баланс времени
/// </summary>
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
/// <summary>
/// Наработка подсистем
/// </summary>
public SubsystemBlockDto? SubsystemBlock { get; set; }
/// <summary>
/// Подпись
/// </summary>
public SignBlockDto? SignBlock { get; set; }
/// <summary>
/// Блок расписания
/// </summary>
[Required]
public IEnumerable<ScheduleRecordDto> ScheduleBlock { get; set; } = Enumerable.Empty<ScheduleRecordDto>();
/// <summary>
/// РТК
/// </summary>
[Required]
public IEnumerable<ProcessMapWellDrillingRecordDto> ProcessMapWellDrillingBlock { get; set; } = Enumerable.Empty<ProcessMapWellDrillingRecordDto>();
}