diff --git a/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs b/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs
new file mode 100644
index 00000000..d249d734
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs
@@ -0,0 +1,92 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMap;
+
+///
+/// Проработка ствола скважины
+///
+public class ProcessMapWellboreDevelopmentDto : IId, IWellRelated
+{
+ ///
+ public int Id { get; set; }
+
+ ///
+ public int IdWell { get; set; }
+
+ ///
+ /// Дата последнего изменения
+ ///
+ public DateTimeOffset LastUpdate { get; set; }
+
+ ///
+ /// Стартовая глубина
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение стартовой глубины должна быть в пределах от 0 до 99999.9")]
+ public double DepthStart { get; set; }
+
+ ///
+ /// Окончательная глубина
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение окончательной глубины должна быть в пределах от 0 до 99999.9")]
+ public double DepthEnd { get; set; }
+
+ ///
+ /// Количество повторений
+ ///
+ [Range(0, 100, ErrorMessage = "Значение количества повторений должно быть в пределах от 0 до 100")]
+ public double Repeats { get; set; }
+
+ ///
+ /// Вращение вверх, об/мин
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение количества вращений вверх должно быть в пределах от 0 до 99999.9")]
+ public double SpinUpward { get; set; }
+
+ ///
+ /// Вращение вниз, об/мин
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение количества вращений вниз должно быть в пределах от 0 до 99999.9")]
+ public double SpinDownward { get; set; }
+
+ ///
+ /// Скорость подъема, м/ч
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение скорости подъёма должна быть в пределах от 0 до 99999.9")]
+ public double SpeedUpward { get; set; }
+
+ ///
+ /// Скорость спуска, м/ч
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение скорости спуска должна быть в пределах от 0 до 99999.9")]
+ public double SpeedDownward { get; set; }
+
+ ///
+ /// Уставка зятяжки, т
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")]
+ public double SetpointDrags { get; set; }
+
+ ///
+ /// Уставка посадки, т
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")]
+ public double SetpointTights { get; set; }
+
+ ///
+ /// Давление, атм
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение давления должно быть в пределах от 0 до 99999.9")]
+ public double Pressure { get; set; }
+
+ ///
+ /// Момент, кН м
+ ///
+ [Range(0, 99999.9, ErrorMessage = "Значение крутящего момента должно быть в пределах от 0 до 99999.9")]
+ public double Torque { get; set; }
+
+ ///
+ /// Комментарий
+ ///
+ public string? Comment { get; set; }
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs b/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs
new file mode 100644
index 00000000..11e8607e
--- /dev/null
+++ b/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using AsbCloudApp.Data.ProcessMap;
+using AsbCloudApp.Services;
+
+namespace AsbCloudApp.Repositories;
+
+///
+/// Репозиторий для проработки скважины
+///
+public interface IProcessMapWellboreDevelopmentRepository : IRepositoryWellRelated
+{
+ ///
+ /// Получить проработку начиная с даты
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task> GetAllAsync(int idWell, DateTime? updateFrom, CancellationToken cancellationToken);
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs b/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs
new file mode 100644
index 00000000..6a03e957
--- /dev/null
+++ b/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using AsbCloudApp.Data.ProcessMap;
+
+namespace AsbCloudApp.Services;
+
+///
+/// Сервис для проработок скважины
+///
+public interface IProcessMapWellboreDevelopmentService
+{
+ ///
+ /// Добавить запись проработки
+ ///
+ ///
+ ///
+ ///
+ Task InsertAsync(ProcessMapWellboreDevelopmentDto processMapWellboreDevelopment, CancellationToken cancellationToken);
+
+ ///
+ /// Обновить запись проработки
+ ///
+ ///
+ ///
+ ///
+ Task UpdateAsync(ProcessMapWellboreDevelopmentDto processMapWellboreDevelopment, CancellationToken cancellationToken);
+
+ ///
+ /// Получить записи проработок по уникальному ключу телеметрии
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task> GetByTelemetryAsync(string uid, DateTime updateFrom,
+ CancellationToken cancellationToken);
+}
\ No newline at end of file