using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Requests; /// <summary> /// Запрос получения ГГД /// </summary> public class WellOperationRequestBase : RequestBase { /// <summary> /// Больше или равно дате начала операции /// </summary> public DateTimeOffset? GeDate { get; set; } /// <summary> /// Меньше или равно дате окончания операции /// </summary> public DateTimeOffset? LeDate { get; set; } /// <summary> /// Больше или равно глубины скважины на начало операции. /// </summary> public double? GeDepth { get; set; } /// <summary> /// Меньше или равно глубины скважины на конец операции. /// </summary> public double? LeDepth { get; set; } /// <summary> /// Идентификаторы категорий операции /// </summary> public IEnumerable<int>? OperationCategoryIds { get; set; } /// <summary> /// Тип операций /// <list type="bullet"> /// <item>0 - плановая операция</item> /// <item>1 - фактическая операция</item> /// </list> /// </summary> public int? OperationType { get; set; } /// <summary> /// Идентификаторы конструкций секции /// </summary> public IEnumerable<int>? SectionTypeIds { get; set; } /// <summary> /// /// </summary> public WellOperationRequestBase() { } /// <summary> /// /// </summary> /// <param name="request"></param> public WellOperationRequestBase(WellOperationRequestBase request) { GeDepth = request.GeDepth; LeDepth = request.LeDepth; GeDate = request.GeDate; LeDate = request.LeDate; OperationCategoryIds = request.OperationCategoryIds; OperationType = request.OperationType; SectionTypeIds = request.SectionTypeIds; Skip = request.Skip; Take = request.Take; SortFields = request.SortFields; } } /// <summary> /// Запрос получения ГГД с идентификаторами скважин /// </summary> public class WellOperationRequest : WellOperationRequestBase { /// <inheritdoc /> public WellOperationRequest(IEnumerable<int> idsWell) { IdsWell = idsWell; } /// <inheritdoc /> public WellOperationRequest(WellOperationRequestBase request, IEnumerable<int> idsWell) : base(request) { IdsWell = idsWell; } /// <summary> /// Идентификаторы скважин /// </summary> [Required] [Length(1, 100)] public IEnumerable<int> IdsWell { get; } } /// <summary> /// Запрос получения ГГД с идентификаторами скважин /// </summary> public class WellOperationRepositoryRequest { /// <summary> /// Идентификаторы скважин /// </summary> [Required] [Length(1, 100)] public IEnumerable<int> IdsWell { get; } /// <summary> /// Меньше или равно дате окончания операции /// </summary> public DateTimeOffset? LeDate { get; set; } /// <summary> /// Меньше или равно глубины скважины на конец операции. /// </summary> public double? LeDepth { get; set; } /// <summary> /// Тип операций /// <list type="bullet"> /// <item>0 - плановая операция</item> /// <item>1 - фактическая операция</item> /// </list> /// </summary> public int? OperationType { get; set; } /// <summary> /// /// </summary> /// <param name="request"></param> public WellOperationRepositoryRequest(WellOperationRequest request) { IdsWell = request.IdsWell; LeDate = request.LeDate; LeDepth = request.LeDepth; OperationType = request.OperationType; } }