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; /// /// Суточный отчёт /// public class DailyReportDto : IId, IWellRelated { /// [Required] public int Id { get; set; } /// [Required] public int IdWell { get; set; } /// /// Название скважины /// [Required] public string WellCaption { get; set; } = null!; /// /// Название типа скважины /// public string? WellType { get; set; } /// /// Название куста /// public string? Cluster { get; set; } /// /// Заказчик /// public string? Customer { get; set; } /// /// Подрядчик /// public string? Contractor { get; set; } /// /// Месторождение /// public string? Deposit { get; set; } /// /// Глубина забоя на дату начала интервала /// public double? DepthStart { get; set; } /// /// Глубина забоя на дату окончания интервала /// public double? DepthEnd { get; set; } /// /// Дата формирования отчёта /// [Required] public DateOnly Date { get; set; } /// /// Дата последнего обновления /// public DateTime? DateLastUpdate { get; set; } /// /// Блок фактической траектории /// [Required] public TrajectoryBlockDto TrajectoryBlock { get; set; } = null!; /// /// Фактические операции /// [Required] public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!; /// /// Баланс времени /// public TimeBalanceBlockDto? TimeBalanceBlock { get; set; } /// /// Наработка подсистем /// public SubsystemBlockDto? SubsystemBlock { get; set; } /// /// Подпись /// public SignBlockDto? SignBlock { get; set; } /// /// Блок расписания /// [Required] public IEnumerable ScheduleBlock { get; set; } = Enumerable.Empty(); /// /// РТК /// [Required] public IEnumerable ProcessMapWellDrillingBlock { get; set; } = Enumerable.Empty(); }