diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillingDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillingDto.cs
new file mode 100644
index 00000000..67d6c74b
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillingDto.cs
@@ -0,0 +1,103 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps;
+
+///
+/// РТК план бурение скважины
+///
+public class ProcessMapPlanDrillingDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// Id режима 1-ротор, 2 - слайд
+ ///
+ [Range(1, 2, ErrorMessage = "Id режима должен быть либо 1-ротор либо 2-слайд")]
+ public int IdMode { get; set; }
+
+ ///
+ /// Название режима бурения
+ ///
+ public string? Mode { get; set; }
+
+ ///
+ /// Осевая нагрузка, т план
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Осевая нагрузка, т должна быть в пределах от 0 до 99999.9")]
+ public double AxialLoadPlan { get; set; }
+
+ ///
+ /// Осевая нагрузка, т ограничение
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Осевая нагрузка, т должна быть в пределах от 0 до 99999.9")]
+ public double AxialLoadLimitMax { get; set; }
+
+ ///
+ /// Перепад давления, атм план
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Перепад давления, атм должна быть в пределах от 0 до 99999.9")]
+ public double DeltaPressurePlan { get; set; }
+
+ ///
+ /// Перепад давления, атм ограничение
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Перепад давления, атм должна быть в пределах от 0 до 99999.9")]
+ public double DeltaPressureLimitMax { get; set; }
+
+ ///
+ /// Момент на ВСП, кН*м план
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Момент на ВСП, кН*м должна быть в пределах от 0 до 99999.9")]
+ public double TopDriveTorquePlan { get; set; }
+
+ ///
+ /// Момент на ВСП, кН*м ограничение
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Момент на ВСП, кН*м должна быть в пределах от 0 до 99999.9")]
+ public double TopDriveTorqueLimitMax { get; set; }
+
+ ///
+ /// Обороты на ВСП, об/мин план
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Обороты на ВСП, об/мин должна быть в пределах от 0 до 99999.9")]
+ public double TopDriveSpeedPlan { get; set; }
+
+ ///
+ /// Обороты на ВСП, об/мин ограничение
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Обороты на ВСП, об/мин должна быть в пределах от 0 до 99999.9")]
+ public double TopDriveSpeedLimitMax { get; set; }
+
+ ///
+ /// Расход, л/с план
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Расход, л/с должна быть в пределах от 0 до 99999.9")]
+ public double FlowPlan { get; set; }
+
+ ///
+ /// Расход, л/с ограничение
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Расход, л/с должна быть в пределах от 0 до 99999.9")]
+ public double FlowLimitMax { get; set; }
+
+ ///
+ /// Плановая механическая скорость, м/ч
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Плановая механическая скорость, м/ч должно быть в пределах от 0 до 99999.9")]
+ public double RopPlan { get; set; }
+
+ ///
+ /// Плановый процент использования АКБ
+ ///
+ [Range(0, 100, ErrorMessage = "Процент использования АКБ должен быть в пределах от 0 до 100")]
+ public double UsageSaub { get; set; }
+
+ ///
+ /// Плановый процент использования spin master
+ ///
+ [Range(0, 100, ErrorMessage = "Процент использования spin master должен быть в пределах от 0 до 100")]
+ public double UsageSpin { get; set; }
+
+ ///
+ /// Комментарий
+ ///
+ public string Comment { get; set; } = string.Empty;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs
new file mode 100644
index 00000000..9d6438dc
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs
@@ -0,0 +1,82 @@
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps;
+
+///
+/// РТК план проработка скважины
+///
+public class ProcessMapPlanReamDto : ProcessMapPlanBaseDto, IValidatableObject
+{
+ ///
+ /// Количество повторений
+ ///
+ [Required]
+ [Range(0, 100, ErrorMessage = "Количество повторений должно быть в пределах от 0 до 100")]
+ public double Repeats { get; set; }
+
+ ///
+ /// Вращение при движении вверх, об/мин
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Количество вращений вверх должно быть в пределах от 0 до 99999.9")]
+ public double SpinUpward { get; set; }
+
+ ///
+ /// Вращение при движении вниз, об/мин
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Количество вращений вниз должно быть в пределах от 0 до 99999.9")]
+ public double SpinDownward { get; set; }
+
+ ///
+ /// Скорость подъёма, м/ч
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Скорость подъёма должна быть в пределах от 0 до 99999.9")]
+ public double SpeedUpward { get; set; }
+
+ ///
+ /// Скорость спуска, м/ч
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Скорость спуска должна быть в пределах от 0 до 99999.9")]
+ public double SpeedDownward { get; set; }
+
+ ///
+ /// Уставка зятяжки, т
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")]
+ public double SetpointDrag { get; set; }
+
+ ///
+ /// Уставка посадки, т
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")]
+ public double SetpointTight { get; set; }
+
+ ///
+ /// Давление, атм
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Давление должно быть в пределах от 0 до 99999.9")]
+ public double Pressure { get; set; }
+
+ ///
+ /// Момент, кН*м
+ ///
+ [Required]
+ [Range(0, 99999.9, ErrorMessage = "Крутящий момент должен быть в пределах от 0 до 99999.9")]
+ public double Torque { get; set; }
+
+ ///
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ if (DepthEnd < DepthStart)
+ yield return new ValidationResult(
+ $"{nameof(DepthEnd)}:{DepthEnd:#0.0} меньше {nameof(DepthStart)}:{DepthStart:#0.0}",
+ new[] { nameof(DepthEnd), nameof(DepthStart) });
+ }
+}
\ No newline at end of file