From 814515d8ac69546d45fe52535fc9c4b3db8ddfcc Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 24 Jun 2024 15:06:50 +0500 Subject: [PATCH 01/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BF=D1=80=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=BE=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationReamingRotorDto.cs | 210 ++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 1 + AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanOperationReamingRotor.cs | 158 +++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 7 + ...essMapPlanOperationReamingRotorTemplate.cs | 18 ++ ...pPlanOperationReamingRotorExportService.cs | 30 +++ ...ocessMapPlanOperationReamingRotorParser.cs | 42 ++++ ...sMapPlanOperationReamingRotorController.cs | 28 +++ 9 files changed, 495 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs new file mode 100644 index 00000000..a29892da --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs @@ -0,0 +1,210 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanOperationReamingRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимальное давление, атм + /// + [Range(0.0, 400.0)] + public double MaxPressure { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0)] + public double DifferentialPressure { get; set; } + + /// + /// Уставки, т., затяжка + /// + [Range(0.0, 20.0)] + public double SetpointsTight { get; set; } + + /// + /// Уставки, т., посадка + /// + [Range(0.0, 20.0)] + public double SetpointsSlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0)] + public double MaxTorque { get; set; } + + /// + /// Проработка 1, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming1NumberOfRepetitions { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming1ROPUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming1ROPDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming1RPMUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming1RPMDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming2NumberOfRepetitions { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming2ROPUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming2ROPDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming2RPMUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming2RPMDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming3NumberOfRepetitions { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming3ROPUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming3ROPDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming3RPMUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming3RPMDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 19f46c52..87438528 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -22,6 +22,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanRotor => Set(); public virtual DbSet ProcessMapPlanSlide => Set(); public virtual DbSet ProcessMapPlanReams => Set(); + public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index f21f8173..b34be878 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -81,6 +81,7 @@ namespace AsbCloudDb.Model DbSet DataSaubStat { get; } DatabaseFacade Database { get; } DbSet ProcessMapPlanReams { get; } + DbSet ProcessMapPlanOperationReamingRotor { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs new file mode 100644 index 00000000..21d97567 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs @@ -0,0 +1,158 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")] +public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase +{ + [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Range(0.0, 400.0)] + [Required] + public double MaxPressure { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsTight { get; set; } + + [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsSlackingOff { get; set; } + + [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double MaxTorque { get; set; } + + [Column("reaming1_number_of_ repetitions"), Comment("Проработка 1, Количество повторений, шт.")] + [Range(0.0, 99.0)] + [Required] + public double Reaming1NumberOfRepetitions { get; set; } + + [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPUp { get; set; } + + [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPDown { get; set; } + + [Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + [Required] + public double Reaming1RPMUp { get; set; } + + [Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + [Required] + public double Reaming1RPMDown { get; set; } + + [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateUp { get; set; } + + [Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateDown { get; set; } + + [Column("reaming1_interval"), Comment("Проработка 1, Интервал проработки, м.")] + [Range(0.0, 30.0)] + [Required] + public double Reaming1Interval { get; set; } + + [Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + [Required] + public double Reaming1StopPointOffBottom { get; set; } + + [Column("reaming2_number_of_ repetitions"), Comment("Проработка 2, Количество повторений, шт.")] + [Range(0.0, 99.0)] + public double Reaming2NumberOfRepetitions { get; set; } + + [Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + public double Reaming2ROPUp { get; set; } + + [Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + public double Reaming2ROPDown { get; set; } + + [Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + public double Reaming2RPMUp { get; set; } + + [Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + public double Reaming2RPMDown { get; set; } + + [Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + public double Reaming2FlowRateUp { get; set; } + + [Column("reaming2_flow_rate_down"), Comment("Проработка 2, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + public double Reaming2FlowRateDown { get; set; } + + [Column("reaming2_interval"), Comment("Проработка 2, Интервал проработки, м.")] + [Range(0.0, 30.0)] + public double Reaming2Interval { get; set; } + + [Column("reaming2_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + public double Reaming2StopPointOffBottom { get; set; } + + [Column("reaming3_number_of_ repetitions"), Comment("Проработка 3, Количество повторений, шт.")] + [Range(0.0, 99.0)] + public double Reaming3NumberOfRepetitions { get; set; } + + [Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + public double Reaming3ROPUp { get; set; } + + [Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + public double Reaming3ROPDown { get; set; } + + [Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + public double Reaming3RPMUp { get; set; } + + [Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + public double Reaming3RPMDown { get; set; } + + [Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + public double Reaming3FlowRateUp { get; set; } + + [Column("reaming3_flow_rate_down"), Comment("Проработка 3, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + public double Reaming3FlowRateDown { get; set; } + + [Column("reaming3_interval"), Comment("Проработка 3, Интервал проработки, м.")] + [Range(0.0, 30.0)] + public double Reaming3Interval { get; set; } + + [Column("reaming3_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + public double Reaming3StopPointOffBottom { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationReamingRotor? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 86ec923b..64d800b2 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -214,6 +214,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -261,6 +265,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -317,6 +322,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -325,6 +331,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs new file mode 100644 index 00000000..319e9fa8 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using AsbCloudApp.Data.ProcessMaps; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationReamingRotorTemplate : ITemplateParameters +{ + public string SheetName => "Проработка ротор"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationReamingRotorTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs new file mode 100644 index 00000000..1131e015 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationReamingRotorExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationReamingRotorExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationReamingRotorTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_проработка_ротор.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs new file mode 100644 index 00000000..2f028b3b --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationReamingRotorParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationReamingRotorParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationReamingRotorTemplate(); + + protected override ProcessMapPlanOperationReamingRotorDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs new file mode 100644 index 00000000..01b6eebc --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanOperationReamingRotorController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationReamingRotorController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationReamingRotorParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationReamingRotorExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_проработка_ротор.xlsx"; +} \ No newline at end of file From 328f580100fef44fd7e5bd7b06646e7997b8ab64 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 24 Jun 2024 16:05:45 +0500 Subject: [PATCH 02/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D1=81=D0=BB=D0=B0=D0=B9=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 21 +++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 3 + .../ProcessMapPlanOperationReamingSlide.cs | 158 ++++++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 21 +++ ...essMapPlanOperationReamingSlideTemplate.cs | 17 ++ ...pPlanOperationReamingSlideExportService.cs | 30 ++++ ...ocessMapPlanOperationReamingSlideParser.cs | 42 +++++ ...sMapPlanOperationReamingRotorController.cs | 2 +- ...sMapPlanOperationReamingSlideController.cs | 28 ++++ 9 files changed, 321 insertions(+), 1 deletion(-) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 87438528..21f1da7a 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -23,6 +23,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanSlide => Set(); public virtual DbSet ProcessMapPlanReams => Set(); public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); + public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -454,6 +455,16 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -464,6 +475,16 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index b34be878..612e900f 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -81,7 +81,10 @@ namespace AsbCloudDb.Model DbSet DataSaubStat { get; } DatabaseFacade Database { get; } DbSet ProcessMapPlanReams { get; } + DbSet ProcessMapPlanRotor { get; } + DbSet ProcessMapPlanSlide { get; } DbSet ProcessMapPlanOperationReamingRotor { get; } + DbSet ProcessMapPlanOperationReamingSlide { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs new file mode 100644 index 00000000..c2038304 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs @@ -0,0 +1,158 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_reaming_slide"), Comment("РТК проработка слайд")] +public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase +{ + [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Range(0.0, 400.0)] + [Required] + public double MaxPressure { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsTight { get; set; } + + [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsSlackingOff { get; set; } + + [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double MaxTorque { get; set; } + + [Column("reaming1_number_of_ repetitions"), Comment("Проработка 1, Количество повторений, шт.")] + [Range(0.0, 99.0)] + [Required] + public double Reaming1NumberOfRepetitions { get; set; } + + [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPUp { get; set; } + + [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPDown { get; set; } + + [Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + [Required] + public double Reaming1RPMUp { get; set; } + + [Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + [Required] + public double Reaming1RPMDown { get; set; } + + [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateUp { get; set; } + + [Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateDown { get; set; } + + [Column("reaming1_interval"), Comment("Проработка 1, Интервал проработки, м.")] + [Range(0.0, 30.0)] + [Required] + public double Reaming1Interval { get; set; } + + [Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + [Required] + public double Reaming1StopPointOffBottom { get; set; } + + [Column("reaming2_number_of_ repetitions"), Comment("Проработка 2, Количество повторений, шт.")] + [Range(0.0, 99.0)] + public double Reaming2NumberOfRepetitions { get; set; } + + [Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + public double Reaming2ROPUp { get; set; } + + [Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + public double Reaming2ROPDown { get; set; } + + [Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + public double Reaming2RPMUp { get; set; } + + [Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + public double Reaming2RPMDown { get; set; } + + [Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + public double Reaming2FlowRateUp { get; set; } + + [Column("reaming2_flow_rate_down"), Comment("Проработка 2, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + public double Reaming2FlowRateDown { get; set; } + + [Column("reaming2_interval"), Comment("Проработка 2, Интервал проработки, м.")] + [Range(0.0, 30.0)] + public double Reaming2Interval { get; set; } + + [Column("reaming2_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + public double Reaming2StopPointOffBottom { get; set; } + + [Column("reaming3_number_of_ repetitions"), Comment("Проработка 3, Количество повторений, шт.")] + [Range(0.0, 99.0)] + public double Reaming3NumberOfRepetitions { get; set; } + + [Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + public double Reaming3ROPUp { get; set; } + + [Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + public double Reaming3ROPDown { get; set; } + + [Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")] + [Range(0.0, 270.0)] + public double Reaming3RPMUp { get; set; } + + [Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")] + [Range(0.0, 270.0)] + public double Reaming3RPMDown { get; set; } + + [Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + public double Reaming3FlowRateUp { get; set; } + + [Column("reaming3_flow_rate_down"), Comment("Проработка 3, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + public double Reaming3FlowRateDown { get; set; } + + [Column("reaming3_interval"), Comment("Проработка 3, Интервал проработки, м.")] + [Range(0.0, 30.0)] + public double Reaming3Interval { get; set; } + + [Column("reaming3_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + public double Reaming3StopPointOffBottom { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationReamingSlide? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 64d800b2..3aee40c5 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -145,6 +145,20 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -218,6 +232,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -266,6 +284,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -323,6 +342,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -332,6 +352,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs new file mode 100644 index 00000000..b670bc4e --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationReamingSlideTemplate : ITemplateParameters +{ + public string SheetName => "Проработка слайд"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationReamingSlideTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs new file mode 100644 index 00000000..d6e4ba73 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationReamingSlideExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationReamingSlideExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationReamingSlideTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_проработка_слайд.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs new file mode 100644 index 00000000..5db156c1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationReamingSlideParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationReamingSlideParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationReamingSlideTemplate(); + + protected override ProcessMapPlanOperationReamingSlideDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs index 01b6eebc..5b48d92b 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs @@ -12,7 +12,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// РТК план проработка для ротора /// public class ProcessMapPlanOperationReamingRotorController : - ProcessMapPlanBaseController + ProcessMapPlanBaseController { public ProcessMapPlanOperationReamingRotorController( IChangeLogRepository repository, diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs new file mode 100644 index 00000000..007d0844 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanOperationReamingSlideController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationReamingSlideController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationReamingSlideParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationReamingSlideExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_проработка_слайд.xlsx"; +} \ No newline at end of file From 8a506d3683b045bf64e97773770f482c3e48ee1b Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 24 Jun 2024 16:45:58 +0500 Subject: [PATCH 03/74] =?UTF-8?q?=D0=92=D1=8B=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=BD=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanOperationLoadCapacity.cs | 31 ++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...essMapPlanOperationLoadCapacityTemplate.cs | 17 ++++++++ ...pPlanOperationLoadCapacityExportService.cs | 30 +++++++++++++ ...ocessMapPlanOperationLoadCapacityParser.cs | 42 +++++++++++++++++++ ...sMapPlanOperationLoadCapacityController.cs | 28 +++++++++++++ 8 files changed, 174 insertions(+) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 21f1da7a..d9163fcd 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -24,6 +24,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanReams => Set(); public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); + public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -465,6 +466,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -485,6 +491,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 612e900f..0d772b6a 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -85,6 +85,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanSlide { get; } DbSet ProcessMapPlanOperationReamingRotor { get; } DbSet ProcessMapPlanOperationReamingSlide { get; } + DbSet ProcessMapPlanOperationLoadCapacity { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs new file mode 100644 index 00000000..b3aee563 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs @@ -0,0 +1,31 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_load_capacity"), Comment("РТК выработка нагрузки")] +public class ProcessMapPlanOperationLoadCapacity : ProcessMapPlanBase +{ + [Column("time_load_capacity_min"), Comment("Время выработки минимальное, сек")] + [Range(0.0, 800.0)] + [Required] + public double TimeLoadCapacityMin { get; set; } + + [Column("differential_pressure_min"), Comment("Перепад давления минимальный, атм")] + [Range(0.1, 400.0)] + [Required] + public double DifferentialPressureMin { get; set; } + + [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] + [Range(0.1, 99.0)] + [Required] + public double WeightOnBitMin { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationLoadCapacity? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 3aee40c5..8b397143 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -159,6 +159,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -236,6 +243,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -285,6 +296,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -343,6 +355,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -353,6 +366,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs new file mode 100644 index 00000000..766b9fa9 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationLoadCapacityTemplate : ITemplateParameters +{ + public string SheetName => "Выработка нагрузки"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationLoadCapacityTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs new file mode 100644 index 00000000..640f2b8f --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationLoadCapacityExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationLoadCapacityExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationLoadCapacityTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_выработка_нагрузки.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs new file mode 100644 index 00000000..6bb3a263 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationLoadCapacityParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationLoadCapacityParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationLoadCapacityTemplate(); + + protected override ProcessMapPlanOperationLoadCapacityDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs new file mode 100644 index 00000000..9a3b6929 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выработка нагрузки +/// +public class ProcessMapPlanOperationLoadCapacityController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationLoadCapacityController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationLoadCapacityParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationLoadCapacityExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_проработка_слайд.xlsx"; +} \ No newline at end of file From 5171eed3a732ff89e8fbb8767fa2402d1f41264c Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 09:24:34 +0500 Subject: [PATCH 04/74] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlan/ProcessMapPlanSurvey.cs | 18 ++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ .../ProcessMapPlanSurveyTemplate.cs | 17 ++++++++ .../ProcessMapPlanSurveyExportService.cs | 30 +++++++++++++ .../Parser/ProcessMapPlanSurveyParser.cs | 42 +++++++++++++++++++ .../ProcessMapPlanSurveyController.cs | 28 +++++++++++++ 8 files changed, 161 insertions(+) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index d9163fcd..e94555c0 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -25,6 +25,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); + public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -471,6 +472,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -496,6 +502,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 0d772b6a..2686fa3d 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -86,6 +86,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationReamingRotor { get; } DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } + DbSet ProcessMapPlanSurvey { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs new file mode 100644 index 00000000..3667bcf9 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_survey"), Comment("Запись статического замера")] +public class ProcessMapPlanSurvey : ProcessMapPlanBase +{ + [Column("measurement_recording_time"), Comment("Время записи замера, сек")] + [Range(0.0, 1800.0)] + [Required] + public double MeasurementRecordingTime { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanSurvey? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 8b397143..60f5fc21 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -166,6 +166,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -247,6 +254,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -297,6 +308,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -356,6 +368,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -367,6 +380,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs new file mode 100644 index 00000000..8b8d9ad2 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanSurveyTemplate : ITemplateParameters +{ + public string SheetName => "Запись статического замера"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanSurveyTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs new file mode 100644 index 00000000..d74ba725 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanSurveyExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanSurveyExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSurveyTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_запись_статического_замера.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs new file mode 100644 index 00000000..c17eff10 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanSurveyParser : ProcessMapPlanParser +{ + public ProcessMapPlanSurveyParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSurveyTemplate(); + + protected override ProcessMapPlanSurveyDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs new file mode 100644 index 00000000..8e896694 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanSurveyController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanSurveyController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanSurveyParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanSurveyExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_запись_статического_замера.xlsx"; +} \ No newline at end of file From 4b155cb89331da3c53ecfc7bb20bd37bc5538522 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 10:19:47 +0500 Subject: [PATCH 05/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B7=D0=B8=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B4=20=D0=B7=D0=B0=D0=B1=D0=BE=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationLoadCapacityDto.cs | 36 +++ ...PlanOperationPositioningOffTheBottomDto.cs | 16 ++ .../ProcessMapPlanOperationReamingSlideDto.cs | 210 ++++++++++++++++++ .../ProcessMaps/ProcessMapPlanSurveyDto.cs | 16 ++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 + AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + ...MapPlanOperationPositioningOffTheBottom.cs | 18 ++ AsbCloudInfrastructure/DependencyInjection.cs | 14 ++ ...perationPositioningOffTheBottomTemplate.cs | 17 ++ ...ionPositioningOffTheBottomExportService.cs | 30 +++ ...nOperationPositioningOffTheBottomParser.cs | 42 ++++ ...rationPositioningOffTheBottomController.cs | 28 +++ 12 files changed, 439 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs new file mode 100644 index 00000000..adf38aae --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs @@ -0,0 +1,36 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выработка нагрузки +/// +public class ProcessMapPlanOperationLoadCapacityDto : ProcessMapPlanBaseDto +{ + /// + /// Время выработки минимальное, сек + /// + [Range(0.0, 800.0)] + public double TimeLoadCapacityMin { get; set; } + + /// + /// Перепад давления минимальный, атм + /// + [Range(0.1, 400.0)] + public double DifferentialPressureMin { get; set; } + + /// + /// Нагрузка минимальная, т + /// + [Range(0.1, 99.0)] + public double WeightOnBitMin { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs new file mode 100644 index 00000000..bad705c6 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план позиционирования над забоем +/// +public class ProcessMapPlanOperationPositioningOffTheBottomDto : ProcessMapPlanBaseDto +{ + /// + /// Остановка над забоем, м + /// + [Range(0.0, 30.0)] + public double StopOffTheBottom { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs new file mode 100644 index 00000000..5f8289ca --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs @@ -0,0 +1,210 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanOperationReamingSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимальное давление, атм + /// + [Range(0.0, 400.0)] + public double MaxPressure { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0)] + public double DifferentialPressure { get; set; } + + /// + /// Уставки, т., затяжка + /// + [Range(0.0, 20.0)] + public double SetpointsTight { get; set; } + + /// + /// Уставки, т., посадка + /// + [Range(0.0, 20.0)] + public double SetpointsSlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0)] + public double MaxTorque { get; set; } + + /// + /// Проработка 1, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming1NumberOfRepetitions { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming1ROPUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming1ROPDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming1RPMUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming1RPMDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming2NumberOfRepetitions { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming2ROPUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming2ROPDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming2RPMUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming2RPMDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0.0, 99.0)] + public double Reaming3NumberOfRepetitions { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming3ROPUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming3ROPDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0)] + public double Reaming3RPMUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0)] + public double Reaming3RPMDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0)] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs new file mode 100644 index 00000000..4d8e6766 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanSurveyDto : ProcessMapPlanBaseDto +{ + /// + /// Время записи замера, сек + /// + [Range(0.0, 1800.0)] + public double MeasurementRecordingTime { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index e94555c0..4c0cc80d 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -26,6 +26,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); + public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -477,6 +478,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -507,6 +513,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 2686fa3d..28bc88f7 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -87,6 +87,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } + DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs new file mode 100644 index 00000000..424cac69 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_positioning_off_the_bottom"), Comment("Позиционирование над забоем")] +public class ProcessMapPlanOperationPositioningOffTheBottom : ProcessMapPlanBase +{ + [Column("stop_off_the_bottom"), Comment("Остановка над забоем, м")] + [Range(0.0, 30.0)] + [Required] + public double StopOffTheBottom { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationPositioningOffTheBottom? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 60f5fc21..5482af4e 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -173,6 +173,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -258,6 +265,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -309,6 +320,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -369,6 +381,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -381,6 +394,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs new file mode 100644 index 00000000..3cb9aadf --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationPositioningOffTheBottomTemplate : ITemplateParameters +{ + public string SheetName => "Позиционирование над забоем"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationPositioningOffTheBottomTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs new file mode 100644 index 00000000..d1049e01 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationPositioningOffTheBottomExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationPositioningOffTheBottomExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationPositioningOffTheBottomTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_позиционирование_над_забоем.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs new file mode 100644 index 00000000..a921e0eb --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationPositioningOffTheBottomParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationPositioningOffTheBottomParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationPositioningOffTheBottomTemplate(); + + protected override ProcessMapPlanOperationPositioningOffTheBottomDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs new file mode 100644 index 00000000..ba4c9e91 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план позиционирование над забоем +/// +public class ProcessMapPlanOperationPositioningOffTheBottomController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationPositioningOffTheBottomController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationPositioningOffTheBottomParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationPositioningOffTheBottomExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_позиционирование_над_забоем.xlsx"; +} \ No newline at end of file From 52b1e6c04317e864f34db8c2e03c3d27dc2109c7 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 11:05:18 +0500 Subject: [PATCH 06/74] =?UTF-8?q?=D0=9E=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B3=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tionDeterminationOfOscillationAnglesDto.cs | 46 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + ...erationDeterminationOfOscillationAngles.cs | 43 +++++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 ++++++ ...eterminationOfOscillationAnglesTemplate.cs | 17 +++++++ ...inationOfOscillationAnglesExportService.cs | 30 ++++++++++++ ...nDeterminationOfOscillationAnglesParser.cs | 42 +++++++++++++++++ ...erminationOfOscillationAnglesController.cs | 28 +++++++++++ 9 files changed, 232 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs new file mode 100644 index 00000000..351cc144 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesDto : ProcessMapPlanBaseDto +{ + /// + /// Максимальное давление, атм + /// + [Range(0.0, 400.0)] + public double MaxPressure { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0)] + public double DifferentialPressure { get; set; } + + /// + /// Уставки, т., затяжка + /// + [Range(0.0, 20.0)] + public double SetpointsTight { get; set; } + + /// + /// Уставки, т., посадка + /// + [Range(0.0, 20.0)] + public double SetpointsSlackingOff { get; set; } + + /// + /// Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming1ROPUp { get; set; } + + /// + /// Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming1ROPDown { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 4c0cc80d..6deaa5c5 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -27,6 +27,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); + public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -483,6 +484,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -518,6 +524,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 28bc88f7..c7f8e455 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -88,6 +88,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } + DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs new file mode 100644 index 00000000..148d3274 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs @@ -0,0 +1,43 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")] +public class ProcessMapPlanOperationDeterminationOfOscillationAngles : ProcessMapPlanBase +{ + [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Range(0.0, 400.0)] + [Required] + public double MaxPressure { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsTight { get; set; } + + [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsSlackingOff { get; set; } + + [Column("reaming1_rop_up"), Comment("Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPUp { get; set; } + + [Column("reaming1_rop_down"), Comment("Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPDown { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationDeterminationOfOscillationAngles? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 5482af4e..14356f82 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -180,6 +180,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -269,6 +276,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -321,6 +332,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -382,6 +394,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -395,6 +408,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs new file mode 100644 index 00000000..ca63f61e --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate : ITemplateParameters +{ + public string SheetName => "Определение углов осцилляции"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs new file mode 100644 index 00000000..4f43f0f9 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_определения_углов_осцилляции.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs new file mode 100644 index 00000000..685b7c7d --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationDeterminationOfOscillationAnglesParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate(); + + protected override ProcessMapPlanOperationDeterminationOfOscillationAnglesDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs new file mode 100644 index 00000000..7e5311f1 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationDeterminationOfOscillationAnglesController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationDeterminationOfOscillationAnglesParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_позиционирование_над_забоем.xlsx"; +} \ No newline at end of file From 0c8632b6f34b3ceef7d436c6b69105e835aede3e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 15:22:32 +0500 Subject: [PATCH 07/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=8B=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProcessMapPlanOperationTFOrientationDto.cs | 94 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanOperationReamingRotor.cs | 2 +- .../ProcessMapPlanOperationReamingSlide.cs | 2 +- .../ProcessMapPlanOperationTFOrientation.cs | 83 ++++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++ ...ssMapPlanOperationTFOrientationTemplate.cs | 17 ++++ ...PlanOperationTFOrientationExportService.cs | 30 ++++++ ...cessMapPlanOperationTFOrientationParser.cs | 42 +++++++++ ...MapPlanOperationTFOrientationController.cs | 28 ++++++ 11 files changed, 322 insertions(+), 2 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs new file mode 100644 index 00000000..a40f5c2f --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs @@ -0,0 +1,94 @@ +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanOperationTFOrientationDto : ProcessMapPlanBaseDto +{ + /// + /// План TF, град + /// + [Range(0.0, 360.0)] + public double planTF { get; set; } + + /// + /// Пружина, град + /// + [Range(0.0, 10000.0)] + public double Spring { get; set; } + + /// + /// Максимальное давление, атм + /// + [Range(0.0, 400.0)] + public double MaxPressure { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0)] + public double DifferentialPressure { get; set; } + + /// + /// Уставки, т., затяжка + /// + [Range(0.0, 20.0)] + public double SetpointsTight { get; set; } + + /// + /// Уставки, т., посадка + /// + [Range(0.0, 20.0)] + public double SetpointsSlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0)] + public double MaxTorque { get; set; } + + /// + /// Проработка 1, Количество расхаживаний, шт + /// + [Range(0.0, 99.0)] + public double Reaming1NumberOfRepetitions { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0)] + public double Reaming1ROPUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0)] + public double Reaming1ROPDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0)] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал расхаживания, м. + /// + [Range(0.0, 30.0)] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0)] + public double Reaming1StopPointOffBottom { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 6deaa5c5..5726b219 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -28,6 +28,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); + public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -489,6 +490,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -529,6 +535,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index c7f8e455..9479d8f8 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -89,6 +89,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } + DbSet ProcessMapPlanOperationTFOrientation { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs index 21d97567..44f8c1e8 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs @@ -78,7 +78,7 @@ public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase [Required] public double Reaming1StopPointOffBottom { get; set; } - [Column("reaming2_number_of_ repetitions"), Comment("Проработка 2, Количество повторений, шт.")] + [Column("reaming2_number_of_repetitions"), Comment("Проработка 2, Количество повторений, шт.")] [Range(0.0, 99.0)] public double Reaming2NumberOfRepetitions { get; set; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs index c2038304..a2b38354 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs @@ -33,7 +33,7 @@ public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase [Required] public double MaxTorque { get; set; } - [Column("reaming1_number_of_ repetitions"), Comment("Проработка 1, Количество повторений, шт.")] + [Column("reaming1_number_of_repetitions"), Comment("Проработка 1, Количество повторений, шт.")] [Range(0.0, 99.0)] [Required] public double Reaming1NumberOfRepetitions { get; set; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs new file mode 100644 index 00000000..0aa4adbf --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs @@ -0,0 +1,83 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_tf_orientation"), Comment("Выставление")] +public class ProcessMapPlanOperationTFOrientation : ProcessMapPlanBase +{ + [Column("plan_tf"), Comment("План TF, град")] + [Range(0.0, 360.0)] + [Required] + public double planTF { get; set; } + + [Column("spring"), Comment("Пружина, град ")] + [Range(0.0, 10000.0)] + [Required] + public double Spring { get; set; } + + [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Range(0.0, 400.0)] + [Required] + public double MaxPressure { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsTight { get; set; } + + [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Range(0.0, 20.0)] + [Required] + public double SetpointsSlackingOff { get; set; } + + [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double MaxTorque { get; set; } + + [Column("reaming1_number_of_repetitions"), Comment("Проработка 1, Количество расхаживаний, шт")] + [Range(0.0, 99.0)] + [Required] + public double Reaming1NumberOfRepetitions { get; set; } + + [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPUp { get; set; } + + [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] + [Range(0.0, 999.0)] + [Required] + public double Reaming1ROPDown { get; set; } + + [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateUp { get; set; } + + [Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")] + [Range(0.0, 100.0)] + [Required] + public double Reaming1FlowRateDown { get; set; } + + [Column("reaming1_interval"), Comment("Проработка 1, Интервал расхаживания, м.")] + [Range(0.0, 30.0)] + [Required] + public double Reaming1Interval { get; set; } + + [Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Range(0.0, 10.0)] + [Required] + public double Reaming1StopPointOffBottom { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationTFOrientation? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 14356f82..f23b5d61 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -187,6 +187,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -280,6 +287,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -333,6 +344,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -395,6 +407,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -409,6 +422,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs new file mode 100644 index 00000000..b44fc5df --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationTFOrientationTemplate : ITemplateParameters +{ + public string SheetName => "Определение выставление"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationTFOrientationTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs new file mode 100644 index 00000000..e1c6ffa4 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationTFOrientationExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationTFOrientationExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationTFOrientationTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_выставление.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs new file mode 100644 index 00000000..620d4e99 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationTFOrientationParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationTFOrientationParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationTFOrientationTemplate(); + + protected override ProcessMapPlanOperationTFOrientationDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs new file mode 100644 index 00000000..2df9de7e --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanOperationTFOrientationController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationTFOrientationController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationTFOrientationParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationTFOrientationExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выставление.xlsx"; +} \ No newline at end of file From af6aea6d462d1b123207b034c4109c477501f96d Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 15:48:24 +0500 Subject: [PATCH 08/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=8B=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B0=D1=81=D0=BE=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanOperationSwitchPump.cs | 22 ++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...ocessMapPlanOperationSwitchPumpTemplate.cs | 17 ++++++++ ...MapPlanOperationSwitchPumpExportService.cs | 30 +++++++++++++ ...ProcessMapPlanOperationSwitchPumpParser.cs | 42 +++++++++++++++++++ ...essMapPlanOperationSwitchPumpController.cs | 28 +++++++++++++ 8 files changed, 165 insertions(+) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 5726b219..9e81349b 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -29,6 +29,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); + public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -495,6 +496,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -540,6 +546,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 9479d8f8..ca8cb671 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -90,6 +90,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } + DbSet ProcessMapPlanOperationSwitchPump { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs new file mode 100644 index 00000000..d547eb61 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_switch_pump"), Comment("Выключение насоса")] +public class ProcessMapPlanOperationSwitchPump : ProcessMapPlanBase +{ + [Column("duration"), Comment("Продолжительность, сек.")] + [Range(0.0, 1800.0)] + [Required] + public double Duration { get; set; } + + [Column("residual_pressure_limit"), Comment("Лимит остаточного давления, атм.")] + [Range(0.0, 100.0)] + public double ResidualPressureLimit { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationSwitchPump? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index f23b5d61..70192ba9 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -194,6 +194,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -291,6 +298,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -345,6 +356,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -408,6 +420,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -423,6 +436,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs new file mode 100644 index 00000000..396c4234 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanOperationSwitchPumpTemplate : ITemplateParameters +{ + public string SheetName => "Выключение насоса"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanOperationSwitchPumpTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs new file mode 100644 index 00000000..bb848e3f --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanOperationSwitchPumpExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanOperationSwitchPumpExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchPumpTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_выключение_насоса.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs new file mode 100644 index 00000000..ac54d139 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanOperationSwitchPumpParser : ProcessMapPlanParser +{ + public ProcessMapPlanOperationSwitchPumpParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchPumpTemplate(); + + protected override ProcessMapPlanOperationSwitchPumpDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs new file mode 100644 index 00000000..bb55b039 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanOperationSwitchPumpController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationSwitchPumpController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationSwitchPumpParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationSwitchPumpExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выключение_насоса.xlsx"; +} \ No newline at end of file From f8f829669bb3e91fcdcc02d4799138e5b8401010 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 17:00:58 +0500 Subject: [PATCH 09/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D1=8F=20=D1=81=D0=BA?= =?UTF-8?q?=D0=B2=D0=B0=D0=B6=D0=B8=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationSwitchPumpDto.cs | 21 ++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlan/ProcessMapPlanSection.cs | 22 ++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ .../ProcessMapPlanSectionTemplate.cs | 17 ++++++++ .../ProcessMapPlanSectionExportService.cs | 30 +++++++++++++ .../Parser/ProcessMapPlanSectionParser.cs | 42 +++++++++++++++++++ .../ProcessMapPlanSectionController.cs | 28 +++++++++++++ 9 files changed, 186 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs new file mode 100644 index 00000000..2fb85655 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanOperationSwitchPumpDto : ProcessMapPlanBaseDto +{ + /// + /// Продолжительность, сек. + /// + [Range(0.0, 1800.0)] + public double Duration { get; set; } + + /// + /// Лимит остаточного давления, атм. + /// + [Range(0.0, 100.0)] + public double ResidualPressureLimit { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 9e81349b..a56b91e7 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -30,6 +30,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); + public virtual DbSet ProcessMapPlanSection => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -501,6 +502,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -551,6 +557,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index ca8cb671..577da8b8 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -91,6 +91,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } + DbSet ProcessMapPlanSection { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs new file mode 100644 index 00000000..2c236aca --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_section"), Comment("Конструкция скважины")] +public class ProcessMapPlanSection : ProcessMapPlanBase +{ + [Column("outer_diameter"), Comment("Диаметр секции, мм., наружный")] + [Range(0.0, 9999.9)] + public double OuterDiameter { get; set; } + + [Column("inner_diameter"), Comment("Диаметр секции, мм., внутренний")] + [Range(0.0, 9999.9)] + public double InnerDiameter { get; set; } + + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanSection? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 70192ba9..7ca58492 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -201,6 +201,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -302,6 +309,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -357,6 +368,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -421,6 +433,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -437,6 +450,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs new file mode 100644 index 00000000..7a0237a6 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanSectionTemplate : ITemplateParameters +{ + public string SheetName => "Конструкция скважины"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanSectionTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs new file mode 100644 index 00000000..bcd29a08 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanSectionExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanSectionExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSectionTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_конструкция_скважины.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs new file mode 100644 index 00000000..6164a153 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanSectionParser : ProcessMapPlanParser +{ + public ProcessMapPlanSectionParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSectionTemplate(); + + protected override ProcessMapPlanSectionDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs new file mode 100644 index 00000000..361f44d9 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план конструкция скважины +/// +public class ProcessMapPlanSectionController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanSectionController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanSectionParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanSectionExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_конструкция_скважины.xlsx"; +} \ No newline at end of file From a8177fc0765bab833bd11d1525741e9a1c6c5670 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 25 Jun 2024 17:11:30 +0500 Subject: [PATCH 10/74] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=86=D0=B8=D1=8F=20=D1=81=D0=BA=D0=B2=D0=B0=D0=B6?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=20"=D0=92=D1=8B=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +++--- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...cs => ProcessMapPlanOperationSwitchMode.cs} | 4 ++-- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++++++++--------- ...ocessMapPlanOperationSwitchModeTemplate.cs} | 6 +++--- ...MapPlanOperationSwitchModeExportService.cs} | 10 +++++----- ...ProcessMapPlanOperationSwitchModeParser.cs} | 8 ++++---- ...essMapPlanOperationSwitchModeController.cs} | 16 ++++++++-------- 8 files changed, 35 insertions(+), 35 deletions(-) rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanSection.cs => ProcessMapPlanOperationSwitchMode.cs} (82%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanSectionTemplate.cs => ProcessMapPlanOperationSwitchModeTemplate.cs} (54%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanSectionExportService.cs => ProcessMapPlanOperationSwitchModeExportService.cs} (64%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanSectionParser.cs => ProcessMapPlanOperationSwitchModeParser.cs} (73%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanSectionController.cs => ProcessMapPlanOperationSwitchModeController.cs} (51%) diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index a56b91e7..37bc58b2 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -30,7 +30,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); - public virtual DbSet ProcessMapPlanSection => Set(); + public virtual DbSet ProcessMapPlanSection => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -502,7 +502,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -557,7 +557,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 577da8b8..e22fd544 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -91,7 +91,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } - DbSet ProcessMapPlanSection { get; } + DbSet ProcessMapPlanSection { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs similarity index 82% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs index 2c236aca..78351caf 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSection.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_section"), Comment("Конструкция скважины")] -public class ProcessMapPlanSection : ProcessMapPlanBase +public class ProcessMapPlanOperationSwitchMode : ProcessMapPlanBase { [Column("outer_diameter"), Comment("Диаметр секции, мм., наружный")] [Range(0.0, 9999.9)] @@ -18,5 +18,5 @@ public class ProcessMapPlanSection : ProcessMapPlanBase [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanSection? Previous { get; set; } + public virtual ProcessMapPlanOperationSwitchMode? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 7ca58492..30caa355 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -202,11 +202,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); } @@ -310,8 +310,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient(); @@ -368,7 +368,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -433,7 +433,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -450,7 +450,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs similarity index 54% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs index 7a0237a6..f902678a 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSectionTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanSectionTemplate : ITemplateParameters +public class ProcessMapPlanOperationSwitchModeTemplate : ITemplateParameters { - public string SheetName => "Конструкция скважины"; + public string SheetName => "Выход на режим"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanSectionTemplate.xlsx"; + public string FileName => "ProcessMapPlanOperationSwitchModeTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs similarity index 64% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs index bcd29a08..fbf81245 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSectionExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs @@ -10,21 +10,21 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanSectionExportService : ProcessMapPlanExportService +public class ProcessMapPlanOperationSwitchModeExportService : ProcessMapPlanExportService { - public ProcessMapPlanSectionExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanOperationSwitchModeExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSectionTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchModeTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - return $"{caption}_РТК_План_конструкция_скважины.xlsx"; + return $"{caption}_РТК_План_выход_на_режим.xlsx"; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs index 6164a153..b7ba441c 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSectionParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanSectionParser : ProcessMapPlanParser +public class ProcessMapPlanOperationSwitchModeParser : ProcessMapPlanParser { - public ProcessMapPlanSectionParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanOperationSwitchModeParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSectionTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchModeTemplate(); - protected override ProcessMapPlanSectionDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanOperationSwitchModeDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs similarity index 51% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs index 361f44d9..91b5629f 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSectionController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs @@ -9,20 +9,20 @@ using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; namespace AsbCloudWebApi.Controllers.ProcessMaps; /// -/// РТК план конструкция скважины +/// РТК план выход на режим /// -public class ProcessMapPlanSectionController : - ProcessMapPlanBaseController +public class ProcessMapPlanOperationSwitchModeController : + ProcessMapPlanBaseController { - public ProcessMapPlanSectionController( - IChangeLogRepository repository, + public ProcessMapPlanOperationSwitchModeController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanSectionParser parserService, + ProcessMapPlanOperationSwitchModeParser parserService, ITelemetryService telemetryService, - ProcessMapPlanSectionExportService processMapPlanExportService) + ProcessMapPlanOperationSwitchModeExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_конструкция_скважины.xlsx"; + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_на_режим.xlsx"; } \ No newline at end of file From e1c80c65b6c88160a3cfe575cd24f8ab415d000d Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 09:59:44 +0500 Subject: [PATCH 11/74] =?UTF-8?q?=D0=9F=D1=83=D1=88=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0=20ProcessMapPlanOperationSwitchMode.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationSwitchMode.cs | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs index 78351caf..e47c218b 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs @@ -5,17 +5,26 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_section"), Comment("Конструкция скважины")] +[Table("t_process_map_plan_operation_switch_mode"), Comment("Выход на режим")] public class ProcessMapPlanOperationSwitchMode : ProcessMapPlanBase { - [Column("outer_diameter"), Comment("Диаметр секции, мм., наружный")] - [Range(0.0, 9999.9)] - public double OuterDiameter { get; set; } + [Column("exit_time_consumption"), Comment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек.")] + [Range(0.0, 3600.0)] + [Required] + public double ExitTimeConsumption { get; set; } - [Column("inner_diameter"), Comment("Диаметр секции, мм., внутренний")] - [Range(0.0, 9999.9)] - public double InnerDiameter { get; set; } + [Column("consumption_flow_rate"), Comment("Выход на плановый расход, расход, л/с")] + [Range(0.0, 100.0)] + [Required] + public double ConsumptionFlowRate { get; set; } + [Column("pressure_limit_Max"), Comment("Максимально допустимое давление, атм.")] + [Range(0.0, 400.0)] + [Required] + public double PressureLimitMax { get; set; } + + [Column("сomment"), Comment("Комментарий")] + public double Comment { get; set; } [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanOperationSwitchMode? Previous { get; set; } From 38559d65ae5027c3ccf21d239cd4f293cf3849b6 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 10:58:59 +0500 Subject: [PATCH 12/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B4=D1=80=D0=B8=D0=BB=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationSwitchModeDto.cs | 33 ++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 60 +++++++++++-------- AsbCloudDb/Model/IAsbCloudDbContext.cs | 3 +- .../ProcessMapPlanFunctionsDrillTest.cs | 45 ++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++ ...rocessMapPlanFunctionsDrillTestTemplate.cs | 17 ++++++ ...sMapPlanFunctionsDrillTestExportService.cs | 30 ++++++++++ .../ProcessMapPlanFunctionsDrillTestParser.cs | 42 +++++++++++++ ...cessMapPlanFunctionsDrillTestController.cs | 28 +++++++++ 9 files changed, 247 insertions(+), 25 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs new file mode 100644 index 00000000..de8c571e --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs @@ -0,0 +1,33 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план конструкция скважины +/// +public class ProcessMapPlanOperationSwitchModeDto : ProcessMapPlanBaseDto +{ + /// + /// Выход на плановый расход, время выхода буровых насосов на плановый расход, сек. + /// + [Range(0.0, 3600.0)] + public double ExitTimeConsumption { get; set; } + + /// + /// Выход на плановый расход, расход, л/с + /// + [Range(0.0, 100.0)] + public double ConsumptionFlowRate { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0)] + public double PressureLimitMax { get; set; } + + /// + /// Комментарий + /// + public double Comment { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 37bc58b2..c1e551f7 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -15,7 +15,7 @@ namespace AsbCloudDb.Model public virtual DbSet Clusters => Set(); public virtual DbSet Companies => Set(); public virtual DbSet CompaniesTypes => Set(); - public virtual DbSet DailyReports => Set (); + public virtual DbSet DailyReports => Set(); public virtual DbSet Deposits => Set(); public virtual DbSet DetectedOperations => Set(); public virtual DbSet TrajectoriesPlan => Set(); @@ -30,7 +30,8 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); - public virtual DbSet ProcessMapPlanSection => Set(); + public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); + public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -71,7 +72,7 @@ namespace AsbCloudDb.Model public virtual DbSet TelemetryWirelineRunOut => Set(); public virtual DbSet TrajectoriesFact => Set(); - + public virtual DbSet WellSectionsPlan => Set(); // GTR WITS @@ -118,7 +119,7 @@ namespace AsbCloudDb.Model } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { + { if (!optionsBuilder.IsConfigured) optionsBuilder.UseNpgsql("Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True;" //, builder=>builder.EnableRetryOnFailure(2, System.TimeSpan.FromMinutes(1)) @@ -145,7 +146,7 @@ namespace AsbCloudDb.Model entity.Property(e => e.Timezone) .HasJsonConversion(); - }); + }); modelBuilder.Entity(entity => { @@ -296,7 +297,7 @@ namespace AsbCloudDb.Model entity.HasIndex(d => d.DepthEnd); entity.HasIndex(d => d.DateStart); - entity.HasOne(o => o.OperationPlan) + entity.HasOne(o => o.OperationPlan) .WithMany() .HasForeignKey(o => o.IdPlan) .OnDelete(DeleteBehavior.SetNull); @@ -351,7 +352,7 @@ namespace AsbCloudDb.Model { entity.HasIndex(e => new { e.IdWell, e.Date }) .IsUnique(); - + entity.Property(e => e.SubsystemBlock) .HasJsonConversion(); @@ -363,7 +364,7 @@ namespace AsbCloudDb.Model }); modelBuilder.Entity(entity => entity - .Property(p=>p.ExtraData) + .Property(p => p.ExtraData) .HasJsonConversion()); modelBuilder.Entity(entity => @@ -380,7 +381,8 @@ namespace AsbCloudDb.Model .HasConstraintName("t_schedule_t_driller_id_driller"); }); - modelBuilder.Entity(entity => { + modelBuilder.Entity(entity => + { entity.Property(e => e.Setpoints) .HasJsonConversion(); }); @@ -392,7 +394,7 @@ namespace AsbCloudDb.Model nameof(WitsItemBase.IdRecord), nameof(WitsItemBase.IdItem), nameof(WitsItemBase.DateTime)); - }); + }); modelBuilder.Entity(entity => { entity.HasKey( @@ -432,7 +434,7 @@ namespace AsbCloudDb.Model .WithMany(mf => mf.Children) .HasForeignKey(mf => mf.IdParent) .OnDelete(DeleteBehavior.Cascade); - + modelBuilder.Entity() .HasOne(m => m.Directory) .WithMany(f => f.Manuals) @@ -488,24 +490,29 @@ namespace AsbCloudDb.Model .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasOne(p => p.Editor) @@ -562,6 +569,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } @@ -577,6 +589,6 @@ namespace AsbCloudDb.Model { var sql = $"REFRESH MATERIALIZED VIEW {materializedViewName};"; return Database.ExecuteSqlRawAsync(sql, token); - } + } } } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index e22fd544..ea266d6f 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -91,7 +91,8 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } - DbSet ProcessMapPlanSection { get; } + DbSet ProcessMapPlanOperationSwitchMode { get; } + DbSet ProcessMapPlanFunctionsDrillTest { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs new file mode 100644 index 00000000..be575b50 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs @@ -0,0 +1,45 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_drilltest"), Comment("Дрилтест")] +public class ProcessMapPlanFunctionsDrillTest : ProcessMapPlanBase +{ + [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] + [Range(1.0, 30.0)] + [Required] + public double WeightOnBitMin { get; set; } + + [Column("number_of_steps_bit"), Comment("Количество шагов по нагрузке")] + [Range(1, 5)] + [Required] + public int NumberOfStepsBit { get; set; } + + [Column("revolution_per_minute_min"), Comment("Минимальные обороты на ВСП, об/мин.")] + [Range(5, 200)] + [Required] + public int RevolutionPerMinuteMin { get; set; } + + [Column("number_of_steps_rpm"), Comment("Количество шагов оборотов на ВСП, шт.")] + [Range(1, 5)] + [Required] + public int NumberOfStepsRPM { get; set; } + + [Column("length_step"), Comment("Величина проходки шага, м.")] + [Range(0.1, 2.0)] + [Required] + public double LengthStep { get; set; } + + [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] + [Required] + public int IdAutostartOrWarning { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsDrillTest? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 30caa355..41c25885 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -208,6 +208,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -313,6 +320,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -369,6 +380,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -434,6 +446,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -451,6 +464,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs new file mode 100644 index 00000000..0a73fd9a --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsDrillTestTemplate : ITemplateParameters +{ + public string SheetName => "Дрилтест"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsDrillTestTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs new file mode 100644 index 00000000..40956dad --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsDrillTestExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsDrillTestExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsDrillTestTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_дрилтест.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs new file mode 100644 index 00000000..adbe8dac --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsDrillTestParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsDrillTestParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsDrillTestTemplate(); + + protected override ProcessMapPlanFunctionsDrillTestDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs new file mode 100644 index 00000000..5249495e --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план дрилтест +/// +public class ProcessMapPlanFunctionsDrillTestController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsDrillTestController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsDrillTestParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsDrillTestExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_дрилтест.xlsx"; +} \ No newline at end of file From 7496ac21616375b362244a5b1906919255f18dd1 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 11:42:10 +0500 Subject: [PATCH 13/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20shock=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsDrillTestDto.cs | 52 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 ++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsShockTest.cs | 50 ++++++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++ ...rocessMapPlanFunctionsShockTestTemplate.cs | 17 ++++++ ...sMapPlanFunctionsShockTestExportService.cs | 30 +++++++++++ .../ProcessMapPlanFunctionsShockTestParser.cs | 42 +++++++++++++++ ...cessMapPlanFunctionsShockTestController.cs | 28 ++++++++++ 9 files changed, 245 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs new file mode 100644 index 00000000..f7d359d0 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs @@ -0,0 +1,52 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план дрилтест +/// +public class ProcessMapPlanFunctionsDrillTestDto : ProcessMapPlanBaseDto +{ + /// + /// Нагрузка минимальная, т + /// + [Range(1.0, 30.0)] + public double WeightOnBitMin { get; set; } + + /// + /// Количество шагов по нагрузке + /// + [Range(1, 5)] + public int NumberOfStepsBit { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200)] + public int RevolutionPerMinuteMin { get; set; } + + /// + /// Количество шагов оборотов на ВСП, шт. + /// + [Range(1, 5)] + public int NumberOfStepsRPM { get; set; } + + /// + /// Величина проходки шага, м. + /// + [Range(0.1, 2.0)] + public double LengthStep { get; set; } + + /// + /// Автозапуск или Предупреждение + /// + [Required] + public int IdAutostartOrWarning { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index c1e551f7..1efbb45d 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -32,6 +32,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); + public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -514,6 +515,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -574,6 +580,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index ea266d6f..81610a3b 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -93,6 +93,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } + DbSet ProcessMapPlanFunctionsShockTest { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs new file mode 100644 index 00000000..484c1777 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs @@ -0,0 +1,50 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_functions_shock_test"), Comment("ShockTest")] +public class ProcessMapPlanFunctionsShockTest : ProcessMapPlanBase +{ + [Column("stickslip"), Comment("StickSlip")] + [Range(0.0, 1000.0)] + [Required] + public double StickSlip { get; set; } + + [Column("whirl"), Comment("Whirl")] + [Range(0.0, 1000.0)] + [Required] + public double Whirl { get; set; } + + [Column("axial_vibrations"), Comment("Осевые вибрации")] + [Range(0.0, 1000.0)] + [Required] + public double AxialVibrations { get; set; } + + [Column("combined_vibrations"), Comment("Комбинированные вибрации")] + [Range(0.0, 1000.0)] + [Required] + public double CombinedVibrations { get; set; } + + [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] + [Range(1.0, 30.0)] + [Required] + public double WeightOnBitMin { get; set; } + + [Column("revolution_per_minute_min"), Comment("Минимальные обороты на ВСП, об/мин.")] + [Range(5, 200)] + [Required] + public int RevolutionPerMinuteMin { get; set; } + + [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] + [Required] + public int IdAutostartOrWarning { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsShockTest? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 41c25885..b9ce1119 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -215,6 +215,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -324,6 +331,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -381,6 +392,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -447,6 +459,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -465,6 +478,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs new file mode 100644 index 00000000..e110136a --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsShockTestTemplate : ITemplateParameters +{ + public string SheetName => "Запись shock test"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsShockTestTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs new file mode 100644 index 00000000..fd5865f8 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsShockTestExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsShockTestExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsShockTestTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_shock_test.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs new file mode 100644 index 00000000..5de14184 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsShockTestParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsShockTestParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsShockTestTemplate(); + + protected override ProcessMapPlanFunctionsShockTestDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs new file mode 100644 index 00000000..4ee12c1b --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план shock test +/// +public class ProcessMapPlanFunctionsShockTestController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsShockTestController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsShockTestParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsShockTestExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_shock_test.xlsx"; +} \ No newline at end of file From 515cd6ecdb0df385e7d60c5ee432784c7c81023e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 13:01:06 +0500 Subject: [PATCH 14/74] =?UTF-8?q?=D0=A0=D0=A2=D0=95=D0=9A=20=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=20=D0=B4=D0=B5=D0=BC=D0=BF=D1=84=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsDrillTestDto.cs | 1 - .../ProcessMapPlanFunctionsShockTestDto.cs | 57 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 ++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsDamper.cs | 21 +++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++ .../ProcessMapPlanFunctionsDamperTemplate.cs | 17 ++++++ ...cessMapPlanFunctionsDamperExportService.cs | 30 ++++++++++ .../ProcessMapPlanFunctionsDamperParser.cs | 42 ++++++++++++++ ...ProcessMapPlanFunctionsDamperController.cs | 28 +++++++++ 10 files changed, 221 insertions(+), 1 deletion(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs index f7d359d0..cb9a1836 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs new file mode 100644 index 00000000..d1206259 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs @@ -0,0 +1,57 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план shocktest +/// +public class ProcessMapPlanFunctionsShockTestDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0)] + public double StickSlip { get; set; } + + /// + /// Whirl + /// + [Range(0.0, 1000.0)] + public double Whirl { get; set; } + + /// + /// Осевые вибрации + /// + [Range(0.0, 1000.0)] + public double AxialVibrations { get; set; } + + /// + /// Комбинированные вибрации + /// + [Range(0.0, 1000.0)] + public double CombinedVibrations { get; set; } + + /// + /// Нагрузка минимальная, т + /// + [Range(1.0, 30.0)] + public double WeightOnBitMin { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200)] + public int RevolutionPerMinuteMin { get; set; } + + /// + /// Автозапуск или Предупреждение + /// + [Required] + public int IdAutostartOrWarning { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 1efbb45d..14564500 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -33,6 +33,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); + public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -520,6 +521,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -585,6 +591,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 81610a3b..fa451394 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -94,6 +94,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } + DbSet ProcessMapPlanFunctionsDamper { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs new file mode 100644 index 00000000..5a2f94f3 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_damper"), Comment("Демпфер")] +public class ProcessMapPlanFunctionsDamper : ProcessMapPlanBase +{ + [Column("stickslip"), Comment("StickSlip")] + [Range(0.0, 1000.0)] + [Required] + public double StickSlip { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsDamper? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index b9ce1119..a684afca 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -222,6 +222,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -335,6 +342,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -393,6 +404,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -460,6 +472,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -479,6 +492,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs new file mode 100644 index 00000000..e5bb03e5 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsDamperTemplate : ITemplateParameters +{ + public string SheetName => "Демпфер"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsDamperTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs new file mode 100644 index 00000000..f05c130c --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsDamperExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsDamperExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsDamperTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_демпфер.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs new file mode 100644 index 00000000..d57c3055 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsDamperParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsDamperParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsDamperTemplate(); + + protected override ProcessMapPlanFunctionsDamperDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs new file mode 100644 index 00000000..f9a13a4f --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план демпфер +/// +public class ProcessMapPlanFunctionsDamperController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsDamperController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsDamperParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsDamperExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_демпфер.xlsx"; +} \ No newline at end of file From 936ebd980aafcc6cbe11fe578459bd3e02653743 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 13:21:16 +0500 Subject: [PATCH 15/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B0=D0=B2=D1=82=D0=BE=D1=83=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsDamperDto.cs | 21 ++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsAutoHold.cs | 21 ++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...ProcessMapPlanFunctionsAutoHoldTemplate.cs | 17 ++++++++ ...ssMapPlanFunctionsAutoHoldExportService.cs | 30 +++++++++++++ .../ProcessMapPlanFunctionsAutoHoldParser.cs | 42 +++++++++++++++++++ ...ocessMapPlanFunctionsAutoHoldController.cs | 28 +++++++++++++ 9 files changed, 185 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs new file mode 100644 index 00000000..55006415 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план демпфер +/// +public class ProcessMapPlanFunctionsDamperDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0)] + public double StickSlip { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 14564500..c94dc344 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -34,6 +34,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); + public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -526,6 +527,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -596,6 +602,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index fa451394..2477d756 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -95,6 +95,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } + DbSet ProcessMapPlanFunctionsAutoHold { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs new file mode 100644 index 00000000..ae61fba0 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_autohold"), Comment("Автоудержание")] +public class ProcessMapPlanFunctionsAutoHold : ProcessMapPlanBase +{ + [Column("zenit_angle"), Comment("Зенитный угол, градусы")] + [Range(0.0, 100.0)] + [Required] + public double ZenithAngle { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsAutoHold? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index a684afca..1826fc14 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -229,6 +229,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -346,6 +353,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -405,6 +416,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -473,6 +485,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -493,6 +506,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs new file mode 100644 index 00000000..3ab5b7e1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsAutoHoldTemplate : ITemplateParameters +{ + public string SheetName => "Автоудержание"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsAutoHoldTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs new file mode 100644 index 00000000..c53f0e1c --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsAutoHoldExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsAutoHoldExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsAutoHoldTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_автоудержание.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs new file mode 100644 index 00000000..0eb26ff9 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsAutoHoldParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsAutoHoldParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsAutoHoldTemplate(); + + protected override ProcessMapPlanFunctionsAutoHoldDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs new file mode 100644 index 00000000..e31881ba --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план автоудержание +/// +public class ProcessMapPlanFunctionsAutoHoldController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsAutoHoldController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsAutoHoldParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsAutoHoldExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_автоудержание.xlsx"; +} \ No newline at end of file From d1c58dda73d8b9516faa173154eabc8434f40920 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 15:17:24 +0500 Subject: [PATCH 16/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=81=D1=82=D1=80=D1=8F=D1=85=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B1=D1=83=D1=80=D0=BE=D0=B2=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsAutoHoldDto.cs | 21 ++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsJarrDrillTool.cs | 26 ++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...ssMapPlanFunctionsJarrDrillToolTemplate.cs | 17 ++++++++ ...PlanFunctionsJarrDrillToolExportService.cs | 30 +++++++++++++ ...cessMapPlanFunctionsJarrDrillToolParser.cs | 42 +++++++++++++++++++ ...MapPlanFunctionsJarrDrillToolController.cs | 28 +++++++++++++ 9 files changed, 190 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs new file mode 100644 index 00000000..6e6db853 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план автоудержание +/// +public class ProcessMapPlanFunctionsAutoHoldDto : ProcessMapPlanBaseDto +{ + /// + /// Зенитный угол, градусы + /// + [Range(0.0, 100.0)] + public double ZenithAngle { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index c94dc344..bf990013 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -35,6 +35,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); + public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -532,6 +533,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -607,6 +613,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 2477d756..4fc8d3ef 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -96,6 +96,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } + DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs new file mode 100644 index 00000000..a3b9f512 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs @@ -0,0 +1,26 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_jarr_drill_tool"), Comment("Встряхивание бурового инструмента")] +public class ProcessMapPlanFunctionsJarrDrillTool : ProcessMapPlanBase +{ + [Column("zenit_angle"), Comment("Зенитный угол, градусы")] + [Range(0.0, 100.0)] + [Required] + public double ZenithAngle { get; set; } + + [Column("buckling"), Comment("Складывание, м")] + [Range(0.0, 20.0)] + [Required] + public double Buckling { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsJarrDrillTool? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 1826fc14..730382d4 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -236,6 +236,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -357,6 +364,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -417,6 +428,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -486,6 +498,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -507,6 +520,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs new file mode 100644 index 00000000..e675d8a4 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsJarrDrillToolTemplate : ITemplateParameters +{ + public string SheetName => "Встряхивание бурового инструмента"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsJarrDrillToolTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs new file mode 100644 index 00000000..169f00b1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsJarrDrillToolExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsJarrDrillToolExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsJarrDrillToolTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_встряхивание_бурового_инструмента.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs new file mode 100644 index 00000000..53c7e831 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsJarrDrillToolParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsJarrDrillToolParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsJarrDrillToolTemplate(); + + protected override ProcessMapPlanFunctionsJarrDrillToolDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs new file mode 100644 index 00000000..706c0ae2 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план встряхивание бурового инструмента +/// +public class ProcessMapPlanFunctionsJarrDrillToolController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsJarrDrillToolController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsJarrDrillToolParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsJarrDrillToolExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_встряхивание_бурового_инструмента.xlsx"; +} \ No newline at end of file From 3266f9f2074e4fe679e8d572cac275704eacf950 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 15:43:16 +0500 Subject: [PATCH 17/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=85=D0=BE=D0=BB=D0=BE=D1=81=D1=82=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D1=85=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProcessMapPlanFunctionsJarrDrillToolDto.cs | 28 +++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsUpgradeNoload.cs | 19 +++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...ssMapPlanFunctionsUpgradeNoloadTemplate.cs | 17 ++++++++ ...PlanFunctionsUpgradeNoloadExportService.cs | 30 +++++++++++++ ...cessMapPlanFunctionsUpgradeNoloadParser.cs | 42 +++++++++++++++++++ ...MapPlanFunctionsUpgradeNoloadController.cs | 28 +++++++++++++ 9 files changed, 190 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs new file mode 100644 index 00000000..6d125f79 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план встряхивание бурового инструмента +/// +public class ProcessMapPlanFunctionsJarrDrillToolDto : ProcessMapPlanBaseDto +{ + /// + /// Зенитный угол, градусы + /// + [Range(0.0, 100.0)] + public double ZenithAngle { get; set; } + + /// + /// Складывание, м + /// + [Range(0.0, 20.0)] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index bf990013..ec6a444a 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -36,6 +36,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); + public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -538,6 +539,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -618,6 +624,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 4fc8d3ef..4938f956 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -97,6 +97,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } + DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs new file mode 100644 index 00000000..7cb4f7c0 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs @@ -0,0 +1,19 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_upgrade_no_load"), Comment("Обновление холостого хода")] +public class ProcessMapPlanFunctionsUpgradeNoload : ProcessMapPlanBase +{ + [Column("id_decline_socket_column"), Comment("СПУСК ОК Да/Нет")] + public double IdDeclineSocketColumn { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsUpgradeNoload? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 730382d4..ba779461 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -243,6 +243,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -368,6 +375,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -429,6 +440,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -499,6 +511,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -521,6 +534,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs new file mode 100644 index 00000000..c24bcb58 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsUpgradeNoloadTemplate : ITemplateParameters +{ + public string SheetName => "Обновление холостого хода"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsUpgradeNoloadTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs new file mode 100644 index 00000000..234cc860 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsUpgradeNoloadExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsUpgradeNoloadExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsUpgradeNoloadTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_обновление_холостого_хода.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs new file mode 100644 index 00000000..ceb500a1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsUpgradeNoloadParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsUpgradeNoloadParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsUpgradeNoloadTemplate(); + + protected override ProcessMapPlanFunctionsUpgradeNoloadDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs new file mode 100644 index 00000000..9d4200b2 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план обновление холостого хода +/// +public class ProcessMapPlanFunctionsUpgradeNoloadController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsUpgradeNoloadController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsUpgradeNoloadParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsUpgradeNoloadExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_обновление_холостого_хода.xlsx"; +} \ No newline at end of file From fc3566a60bdbbe0ac8a3d8d1d54620b5452957c9 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 16:17:19 +0500 Subject: [PATCH 18/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProcessMapPlanFunctionsUpgradeNoloadDto.cs | 20 +++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsOscillation.cs | 45 +++++++++++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 ++++++ ...cessMapPlanFunctionsOscillationTemplate.cs | 17 +++++++ ...apPlanFunctionsOscillationExportService.cs | 30 +++++++++++++ ...rocessMapPlanFunctionsOscillationParser.cs | 42 +++++++++++++++++ ...ssMapPlanFunctionsOscillationController.cs | 28 ++++++++++++ 9 files changed, 208 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs new file mode 100644 index 00000000..ca780dfa --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план обновление холостого хода +/// +public class ProcessMapPlanFunctionsUpgradeNoloadDto : ProcessMapPlanBaseDto +{ + /// + /// СПУСК ОК Да/Нет + /// + public double IdDeclineSocketColumn { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index ec6a444a..54e9acba 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -37,6 +37,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); + public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -544,6 +545,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -629,6 +635,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 4938f956..f662f31a 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -98,6 +98,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } + DbSet ProcessMapPlanFunctionsOscillation { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs new file mode 100644 index 00000000..1dc4aaab --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs @@ -0,0 +1,45 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_oscillation"), Comment("Осцилляция")] +public class ProcessMapPlanFunctionsOscillation : ProcessMapPlanBase +{ + [Column("optimal_oscillation_angle"), Comment("Оптимальный угол осцилляции, градусы")] + [Range(0.0, 6000.0)] + [Required] + public double OptimalOscillationAngle { get; set; } + + [Column("RPM​_right"), Comment("Скорость вправо, об/мин")] + [Range(0.0, 270.0)] + [Required] + public double RPM​Right { get; set; } + + [Column("RPM​_left"), Comment("Скорость влево, об/мин")] + [Range(0.0, 270.0)] + [Required] + public double RPM​Left { get; set; } + + [Column("torque_limit_right"), Comment("Ограничение момента вправо, кН*м")] + [Range(0.0, 35.0)] + [Required] + public double TorqueLimitRight { get; set; } + + [Column("torque_limit_left"), Comment("Ограничение момента влево, кН*м")] + [Range(0.0, 35.0)] + [Required] + public double TorqueLimitLeft { get; set; } + + [Column("id_mode"), Comment("Режим Авто/Руч")] + [Required] + public double Mode { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsOscillation? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index ba779461..22e9078a 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -250,6 +250,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -379,6 +386,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -441,6 +452,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -512,6 +524,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -535,6 +548,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs new file mode 100644 index 00000000..65dfdd9f --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsOscillationTemplate : ITemplateParameters +{ + public string SheetName => "Осцилляция"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsOscillationTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs new file mode 100644 index 00000000..da8631c1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsOscillationExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsOscillationExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsOscillationTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_осцилляция.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs new file mode 100644 index 00000000..b7966539 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsOscillationParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsOscillationParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsOscillationTemplate(); + + protected override ProcessMapPlanFunctionsOscillationDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs new file mode 100644 index 00000000..a8d1f155 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план осцилляция +/// +public class ProcessMapPlanFunctionsOscillationController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsOscillationController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsOscillationParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsOscillationExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_осцилляция.xlsx"; +} \ No newline at end of file From bdf8d114bbf56adaf113371299ee9fa27ad0b708 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 17:09:30 +0500 Subject: [PATCH 19/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BF=D1=80=D0=BE=D1=82=D0=B8=D0=B2=D0=BE=D0=B0=D0=B2?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B9=D0=BD=D0=BE=D0=B5=20=D0=BE=D0=B1=D1=81?= =?UTF-8?q?=D1=83=D0=B6=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsOscillationDto.cs | 51 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 12 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + ...rocessMapPlanFunctionsAnticrashRotation.cs | 28 ++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++ ...pPlanFunctionsAnticrashRotationTemplate.cs | 17 +++++++ ...FunctionsAnticrashRotationExportService.cs | 30 +++++++++++ ...MapPlanFunctionsAnticrashRotationParser.cs | 42 +++++++++++++++ ...lanFunctionsAnticrashRotationController.cs | 28 ++++++++++ 9 files changed, 223 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs new file mode 100644 index 00000000..baf0c56a --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs @@ -0,0 +1,51 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план осцилляция +/// +public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto +{ + /// + /// Оптимальный угол осцилляции, градусы + /// + [Range(0.0, 6000.0)] + public double OptimalOscillationAngle { get; set; } + + /// + /// Скорость вправо, об/мин + /// + [Range(0.0, 270.0)] + public double RPM​Right { get; set; } + + /// + /// Скорость влево, об/мин + /// + [Range(0.0, 270.0)] + public double RPM​Left { get; set; } + + /// + /// Ограничение момента вправо, кН*м + /// + [Range(0.0, 35.0)] + public double TorqueLimitRight { get; set; } + + /// + /// Ограничение момента влево, кН*м + /// + [Range(0.0, 35.0)] + public double TorqueLimitLeft { get; set; } + + /// + /// Режим Авто/Руч + /// + [Required] + public double Mode { get; set; } + + /// + /// Примечание + /// + [StringLength(1024)] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 54e9acba..7ffece5e 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -38,6 +38,8 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); + public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); + public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -550,6 +552,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -640,6 +647,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index f662f31a..68b7b7a4 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -99,6 +99,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } + DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs new file mode 100644 index 00000000..427ebab4 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_anticrash_rotation"), Comment("Противоаварийное вращение")] +public class ProcessMapPlanFunctionsAnticrashRotation : ProcessMapPlanBase +{ + [Column("min_RPM"), Comment("Минимальные обороты ВСП, об/мин")] + [Range(0.0, 250.0)] + [Required] + public double MinRPM { get; set; } + + [Column("min_consumption_starting_flow_rate"), Comment("Минимальный расход для запуска оборотов ВСП, л/сек")] + [Range(1.0, 100.0)] + [Required] + public double MinСonsumptionStartingFlowRate { get; set; } + + [Column("top_drive_torque_limit_max"), Comment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м")] + [Range(1.0, 35.0)] + [Required] + public double TopDriveTorqueLimitMax { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsAnticrashRotation? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 22e9078a..94ad1a35 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -257,6 +257,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -390,6 +397,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -453,6 +464,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -525,6 +537,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -549,6 +562,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs new file mode 100644 index 00000000..6bdbde3a --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsAnticrashRotationTemplate : ITemplateParameters +{ + public string SheetName => "Противоаварийное вращение"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsAnticrashRotationTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs new file mode 100644 index 00000000..09b9b89d --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsAnticrashRotationExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsAnticrashRotationExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsAnticrashRotationTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_противоаварийное вращение.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs new file mode 100644 index 00000000..9a159cbd --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsAnticrashRotationParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsAnticrashRotationParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsAnticrashRotationTemplate(); + + protected override ProcessMapPlanFunctionsAnticrashRotationDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs new file mode 100644 index 00000000..2f17555f --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план противоаварийное вращение +/// +public class ProcessMapPlanFunctionsAnticrashRotationController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsAnticrashRotationController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsAnticrashRotationParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsAnticrashRotationExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_противоаварийное_вращение.xlsx"; +} \ No newline at end of file From f9b1884a3919f0b8b9380bf481a3b3ef1d68b725 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 26 Jun 2024 17:48:15 +0500 Subject: [PATCH 20/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=20=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...essMapPlanFunctionsAnticrashRotationDto.cs | 28 +++++++++++++ ...ProcessMapPlanFunctionsStaticMeasureDto.cs | 16 +++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanFunctionsStaticMeasure.cs | 18 ++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++++ ...ssMapPlanFunctionsStaticMeasureTemplate.cs | 17 ++++++++ ...PlanFunctionsStaticMeasureExportService.cs | 30 +++++++++++++ ...cessMapPlanFunctionsStaticMeasureParser.cs | 42 +++++++++++++++++++ ...MapPlanFunctionsStaticMeasureController.cs | 28 +++++++++++++ 10 files changed, 205 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs new file mode 100644 index 00000000..62efab64 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план противоаварийное вращение +/// +public class ProcessMapPlanFunctionsAnticrashRotationDto : ProcessMapPlanBaseDto +{ + /// + /// Минимальные обороты ВСП, об/мин + /// + [Range(0.0, 250.0)] + public double MinRPM { get; set; } + + /// + /// Минимальный расход для запуска оборотов ВСП, л/сек + /// + [Range(1.0, 100.0)] + public double MinСonsumptionStartingFlowRate { get; set; } + + /// + /// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м + /// + [Range(1.0, 35.0)] + public double TopDriveTorqueLimitMax { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs new file mode 100644 index 00000000..40c65a54 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выход статического замера +/// +public class ProcessMapPlanFunctionsStaticMeasureDto : ProcessMapPlanBaseDto +{ + /// + /// Время ожидания выхода сигнала с ТМС, сек. + /// + [Range(0.0, 1800.0)] + public double SignalWaitingTime { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 7ffece5e..1bd345c5 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -39,6 +39,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); + public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); @@ -557,6 +558,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -652,6 +658,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 68b7b7a4..1b7667d0 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -100,6 +100,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } + DbSet ProcessMapPlanFunctionsStaticMeasure { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs new file mode 100644 index 00000000..c4dca7ef --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_functions_static_measure"), Comment("Выход статического замера")] +public class ProcessMapPlanFunctionsStaticMeasure : ProcessMapPlanBase +{ + [Column("signal_waiting_time"), Comment("Время ожидания выхода сигнала с ТМС, сек.")] + [Range(0.0, 1800.0)] + [Required] + public double SignalWaitingTime { get; set; } + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanFunctionsStaticMeasure? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 94ad1a35..d342492c 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -264,6 +264,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -401,6 +408,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -465,6 +476,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -538,6 +550,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -563,6 +576,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs new file mode 100644 index 00000000..4bdd00eb --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanFunctionsStaticMeasureTemplate : ITemplateParameters +{ + public string SheetName => "Выход статического замера"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanFunctionsStaticMeasureTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs new file mode 100644 index 00000000..7dda5fa1 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanFunctionsStaticMeasureExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanFunctionsStaticMeasureExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsStaticMeasureTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_выход_статического_замера.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs new file mode 100644 index 00000000..c286f7cc --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanFunctionsStaticMeasureParser : ProcessMapPlanParser +{ + public ProcessMapPlanFunctionsStaticMeasureParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsStaticMeasureTemplate(); + + protected override ProcessMapPlanFunctionsStaticMeasureDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs new file mode 100644 index 00000000..8d1e29b0 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выход статического замера +/// +public class ProcessMapPlanFunctionsStaticMeasureController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanFunctionsStaticMeasureController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanFunctionsStaticMeasureParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanFunctionsStaticMeasureExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_статического_замера.xlsx"; +} \ No newline at end of file From 8b6efdee84d316fc01601377d87e26f856c6ef3d Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Thu, 27 Jun 2024 09:47:57 +0500 Subject: [PATCH 21/74] =?UTF-8?q?=D0=9D=D0=B5=D0=BA=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D1=8B=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20-=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=20boolean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs | 2 +- .../Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs | 2 +- .../Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs | 2 +- .../ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs index be575b50..810b4ec8 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs @@ -35,7 +35,7 @@ public class ProcessMapPlanFunctionsDrillTest : ProcessMapPlanBase [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] [Required] - public int IdAutostartOrWarning { get; set; } + public bool IdAutostartOrWarning { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs index 1dc4aaab..8836a451 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs @@ -35,7 +35,7 @@ public class ProcessMapPlanFunctionsOscillation : ProcessMapPlanBase [Column("id_mode"), Comment("Режим Авто/Руч")] [Required] - public double Mode { get; set; } + public bool Mode { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs index 484c1777..9683eb4b 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs @@ -40,7 +40,7 @@ public class ProcessMapPlanFunctionsShockTest : ProcessMapPlanBase [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] [Required] - public int IdAutostartOrWarning { get; set; } + public bool IdAutostartOrWarning { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs index 7cb4f7c0..84f5a2b0 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs @@ -9,7 +9,7 @@ namespace AsbCloudDb.Model.ProcessMaps; public class ProcessMapPlanFunctionsUpgradeNoload : ProcessMapPlanBase { [Column("id_decline_socket_column"), Comment("СПУСК ОК Да/Нет")] - public double IdDeclineSocketColumn { get; set; } + public bool IdDeclineSocketColumn { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; From 4559143f6cd134ab24431f88b8f8cfa30f8cb369 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Thu, 27 Jun 2024 09:51:37 +0500 Subject: [PATCH 22/74] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=82=D0=B8=D0=BF=20=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D1=83=20=D1=80=D1=8F=D0=B4=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs | 4 ++-- .../Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs | 2 +- .../Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs | 2 +- .../ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs index cb9a1836..7398ee79 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs @@ -38,10 +38,10 @@ public class ProcessMapPlanFunctionsDrillTestDto : ProcessMapPlanBaseDto public double LengthStep { get; set; } /// - /// Автозапуск или Предупреждение + /// Автозапуск или предупреждение /// [Required] - public int IdAutostartOrWarning { get; set; } + public bool IdAutostartOrWarning { get; set; } /// /// Примечание diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs index baf0c56a..a304263b 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs @@ -41,7 +41,7 @@ public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto /// Режим Авто/Руч /// [Required] - public double Mode { get; set; } + public bool Mode { get; set; } /// /// Примечание diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs index d1206259..6fc9d618 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs @@ -47,7 +47,7 @@ public class ProcessMapPlanFunctionsShockTestDto : ProcessMapPlanBaseDto /// Автозапуск или Предупреждение /// [Required] - public int IdAutostartOrWarning { get; set; } + public bool IdAutostartOrWarning { get; set; } /// /// Примечание diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs index ca780dfa..7de4fb5b 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs @@ -10,7 +10,7 @@ public class ProcessMapPlanFunctionsUpgradeNoloadDto : ProcessMapPlanBaseDto /// /// СПУСК ОК Да/Нет /// - public double IdDeclineSocketColumn { get; set; } + public bool IdDeclineSocketColumn { get; set; } /// /// Примечание From 22a90f238fabbddce60c7b8b59ae3dba83653c23 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Thu, 27 Jun 2024 10:01:11 +0500 Subject: [PATCH 23/74] =?UTF-8?q?=D0=9C=D0=B8=D0=B3=D1=80=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=81=D0=B5=D1=85=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=20=D1=80=D1=82=D0=BA-?= =?UTF-8?q?=D0=BF=D0=BB=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ocessMapOperationsAndFunctions.Designer.cs | 12580 ++++++++++++++++ ...Tables_ProcessMapOperationsAndFunctions.cs | 1621 ++ .../AsbCloudDbContextModelSnapshot.cs | 2815 ++++ 3 files changed, 17016 insertions(+) create mode 100644 AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs create mode 100644 AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs diff --git a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs new file mode 100644 index 00000000..6fc32805 --- /dev/null +++ b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs @@ -0,0 +1,12580 @@ +// +using System; +using System.Text.Json; +using AsbCloudDb.Model; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + [DbContext(typeof(AsbCloudDbContext))] + [Migration("20240627045703_Add_Tables_ProcessMapOperationsAndFunctions")] + partial class Add_Tables_ProcessMapOperationsAndFunctions + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("Russian_Russia.1251") + .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "adminpack"); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdDeposit") + .HasColumnType("integer") + .HasColumnName("id_deposit"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdDeposit"); + + b.ToTable("t_cluster", t => + { + t.HasComment("Кусты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.ToTable("t_company"); + + b.HasData( + new + { + Id = 1, + Caption = "ООО \"АСБ\"", + IdCompanyType = 3 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IsContact") + .HasColumnType("boolean") + .HasColumnName("is_contact"); + + b.Property("Order") + .HasColumnType("integer") + .HasColumnName("order"); + + b.HasKey("Id"); + + b.ToTable("t_company_type"); + + b.HasData( + new + { + Id = 1, + Caption = "Недропользователь", + IsContact = true, + Order = 3 + }, + new + { + Id = 2, + Caption = "Буровой подрядчик", + IsContact = true, + Order = 2 + }, + new + { + Id = 3, + Caption = "Сервис автоматизации бурения", + IsContact = true, + Order = 0 + }, + new + { + Id = 4, + Caption = "Сервис по ГТИ", + IsContact = true, + Order = 6 + }, + new + { + Id = 5, + Caption = "Растворный сервис", + IsContact = true, + Order = 4 + }, + new + { + Id = 6, + Caption = "Сервис по ННБ", + IsContact = true, + Order = 5 + }, + new + { + Id = 7, + Caption = "Служба супервайзинга", + IsContact = false, + Order = 1 + }, + new + { + Id = 9, + Caption = "Сервис по цементированию", + IsContact = true, + Order = 7 + }, + new + { + Id = 11, + Caption = "Дизельный сервис", + IsContact = false, + Order = 9 + }, + new + { + Id = 12, + Caption = "Сервис по обслуживанию верхних силовых приводов", + IsContact = true, + Order = 8 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Company") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("company") + .HasComment("компания"); + + b.Property("Email") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("email"); + + b.Property("FullName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("full_name") + .HasComment("ФИО"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.Property("IdWell") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ключ скважины"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("должность"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.HasIndex("IdWell"); + + b.ToTable("t_contact", t => + { + t.HasComment("Контакты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date") + .HasColumnName("date") + .HasComment("Дата формирования отчёта"); + + b.Property("DateLastUpdate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("SignBlock") + .HasColumnType("jsonb") + .HasColumnName("sign_block") + .HasComment("Подпись"); + + b.Property("SubsystemBlock") + .HasColumnType("jsonb") + .HasColumnName("subsystem_block") + .HasComment("Наработкой подсистем"); + + b.Property("TimeBalanceBlock") + .HasColumnType("jsonb") + .HasColumnName("time_balance_block") + .HasComment("Баланс времени"); + + b.HasKey("Id"); + + b.HasIndex("IdWell", "Date") + .IsUnique(); + + b.ToTable("t_daily_report", t => + { + t.HasComment("Ежедневные отчёты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialLoad") + .HasColumnType("double precision") + .HasColumnName("axial_load") + .HasComment("Фактическая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("double precision") + .HasColumnName("axial_load_limit_max") + .HasComment("Максимально допустимая нагрузка"); + + b.Property("AxialLoadSp") + .HasColumnType("double precision") + .HasColumnName("axial_load_sp") + .HasComment("Ограничение факт. нагрузки"); + + b.Property("BlockSpeedSp") + .HasColumnType("double precision") + .HasColumnName("block_speed_sp") + .HasComment("Ограничение скорости блока"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата и время окончания"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата и время начала"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина забоя по стволу конечная"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина забоя по стволу начальная"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("Флаги подсистем"); + + b.Property("Flow") + .HasColumnType("double precision") + .HasColumnName("flow") + .HasComment("Фактический расход"); + + b.Property("HasOscillation") + .HasColumnType("boolean") + .HasColumnName("has_oscillation") + .HasComment("Наличие или отсутствие осцилляции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Название автоопределённой операции"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Работа при достижении ограничения"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Ключ телеметрии"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureIdle") + .HasColumnType("double precision") + .HasColumnName("pressure_idle") + .HasComment("Давление холостого хода"); + + b.Property("PressureSp") + .HasColumnType("double precision") + .HasColumnName("pressure_sp") + .HasComment("Ограничение фактического давления"); + + b.Property("RotorSpeed") + .HasColumnType("double precision") + .HasColumnName("rotor_speed") + .HasComment("Фактическая скорость оборотов ВСП"); + + b.Property("RotorTorque") + .HasColumnType("double precision") + .HasColumnName("rotor_torque") + .HasComment("Фактический момент"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Максимально допустимый момент"); + + b.Property("RotorTorqueSp") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_sp") + .HasComment("Ограничение факт. момента"); + + b.Property("Speed") + .HasColumnType("double precision") + .HasColumnName("speed") + .HasComment("Скорость бурения"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_data_saub_stat", t => + { + t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.ToTable("t_deposit", t => + { + t.HasComment("Месторождение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата начала операции"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("флаги включенных подсистем"); + + b.Property("ExtraData") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("extra_data") + .HasComment("доп. инфо по операции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUsersAtStart") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя по телеметрии на момент начала операции"); + + b.Property("Value") + .HasColumnType("double precision") + .HasColumnName("value") + .HasComment("Ключевой показатель операции"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_detected_operation", t => + { + t.HasComment("автоматически определенные операции по телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depthStart") + .HasComment("Глубина начала"); + + b.Property("Params") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("t_drill_test_params") + .HasComment("Параметры записи drill test"); + + b.Property("TimeStampStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp_start") + .HasComment("Время начала"); + + b.HasKey("Id", "IdTelemetry"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_drill_test", t => + { + t.HasComment("Drill_test"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Имя"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("Отчество"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("Фамилия"); + + b.HasKey("Id"); + + b.ToTable("t_driller", t => + { + t.HasComment("Бурильщик"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdFileCategory") + .HasColumnType("integer") + .HasColumnName("id_file_category"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("Id"); + + b.HasIndex("IdFileCategory"); + + b.HasIndex("IdWell", "IdFileCategory") + .IsUnique(); + + b.ToTable("t_drilling_program_part", t => + { + t.HasComment("части программ бурения"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Answer") + .HasColumnType("text") + .HasColumnName("answer") + .HasComment("Текст ответа"); + + b.Property("CounterQuestion") + .HasColumnType("integer") + .HasColumnName("counter_question") + .HasComment("Счетчик повторений вопроса"); + + b.Property("DateAnswer") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_answer") + .HasComment("Дата ответа"); + + b.Property("DateCreatedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created_question") + .HasComment("Дата создания вопроса"); + + b.Property("DateLastEditedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_edited_question") + .HasComment("Дата последнего редактирования вопроса"); + + b.Property("IdAuthorAnswer") + .HasColumnType("integer") + .HasColumnName("id_author_answer") + .HasComment("id автора ответа"); + + b.Property("IdAuthorQuestion") + .HasColumnType("integer") + .HasColumnName("id_author_question") + .HasComment("id автора вопроса"); + + b.Property("IdReplacementQuestion") + .HasColumnType("integer") + .HasColumnName("id_replacement_question") + .HasComment("Ключ заменяющего вопроса"); + + b.Property("IsFrequently") + .HasColumnType("boolean") + .HasColumnName("is_frequently") + .HasComment("Частый вопрос"); + + b.Property("Question") + .IsRequired() + .HasColumnType("text") + .HasColumnName("question") + .HasComment("Текст вопроса"); + + b.Property("State") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("Статус вопроса"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthorAnswer"); + + b.HasIndex("IdAuthorQuestion"); + + b.ToTable("t_faq", t => + { + t.HasComment("вопросы пользователей"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_file_category", t => + { + t.HasComment("Категории файлов"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Растворный сервис", + ShortName = "fluidService" + }, + new + { + Id = 2, + Name = "Цементирование", + ShortName = "cement" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "nnb" + }, + new + { + Id = 4, + Name = "ГТИ", + ShortName = "gti" + }, + new + { + Id = 5, + Name = "Документы по скважине", + ShortName = "wellDocuments" + }, + new + { + Id = 6, + Name = "Супервайзер", + ShortName = "supervisor" + }, + new + { + Id = 7, + Name = "Мастер", + ShortName = "master" + }, + new + { + Id = 8, + Name = "Долотный сервис", + ShortName = "toolService" + }, + new + { + Id = 9, + Name = "Буровой подрядчик", + ShortName = "drillService" + }, + new + { + Id = 10, + Name = "Сервис по заканчиванию скважины", + ShortName = "closingService" + }, + new + { + Id = 12, + Name = "Рапорт", + ShortName = "report" + }, + new + { + Id = 1000, + Name = "Программа бурения" + }, + new + { + Id = 1001, + Name = "Задание от геологов" + }, + new + { + Id = 1002, + Name = "Профиль ствола скважины (ННБ)" + }, + new + { + Id = 1003, + Name = "Технологические расчеты (ННБ)" + }, + new + { + Id = 1004, + Name = "Долотная программа" + }, + new + { + Id = 1005, + Name = "Программа по растворам" + }, + new + { + Id = 1006, + Name = "Программа геофизических исследований" + }, + new + { + Id = 1007, + Name = "Планы спусков обсадных колонн" + }, + new + { + Id = 1008, + Name = "Программы цементирования обсадных колонн" + }, + new + { + Id = 10000, + Name = "Проект на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10001, + Name = "Программа на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10002, + Name = "Акт о начале бурения" + }, + new + { + Id = 10003, + Name = "План работ спуска и цементирования направления" + }, + new + { + Id = 10004, + Name = "Программа цементирования направления" + }, + new + { + Id = 10005, + Name = "Мера обсадных труб (направление)" + }, + new + { + Id = 10006, + Name = "Акт на выполненные работы по цементированию направления" + }, + new + { + Id = 10007, + Name = "Отчет по цементированию направления (график)" + }, + new + { + Id = 10008, + Name = "План работ спуска и цементирования кондуктора" + }, + new + { + Id = 10009, + Name = "Программа цементирования (кондуктор)" + }, + new + { + Id = 10010, + Name = "Мера обсадных труб (кондуктор)" + }, + new + { + Id = 10011, + Name = "Карта крепления кондуктора" + }, + new + { + Id = 10012, + Name = "Акт на выполненные работы по цементированию кондуктора" + }, + new + { + Id = 10013, + Name = "Отчет по цементированию кондуктора (график)" + }, + new + { + Id = 10014, + Name = "Акт о замере расстояния от стола ротора до муфты кондуктора" + }, + new + { + Id = 10015, + Name = "Акт опресовки цементного кольца за кондуктором" + }, + new + { + Id = 10016, + Name = "Акт опресовки ППГ с глухими плашками совместно с кондуктором" + }, + new + { + Id = 10017, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с кондуктором" + }, + new + { + Id = 10018, + Name = "План работ на крепление обсадной колонны (эк. колонна)" + }, + new + { + Id = 10019, + Name = "Программа цементирования (эк. колонна)" + }, + new + { + Id = 10020, + Name = "Мера труб эксплуатационной колонны" + }, + new + { + Id = 10021, + Name = "Карта по креплению скважины (эк. колонна)" + }, + new + { + Id = 10022, + Name = "Акт на установку пружинных центраторов" + }, + new + { + Id = 10023, + Name = "Отчет по цементированию эксплуатационной колонны (график)" + }, + new + { + Id = 10024, + Name = "Акт на выполненные работы по цементированию эксплуатационной колонны" + }, + new + { + Id = 10025, + Name = "Акт об испытании эк. колонны на герметичность (СТОП)" + }, + new + { + Id = 10026, + Name = "Акт опресовки ППГ с глухими плашками совместно с э/колонной" + }, + new + { + Id = 10027, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с э/колонной" + }, + new + { + Id = 10028, + Name = "Акт на вскрытие продуктивного пласта" + }, + new + { + Id = 10029, + Name = "Акт замера параметров раствора при бурении горизонтального участка" + }, + new + { + Id = 10030, + Name = "Разрешение на спуск «хвостовика» (телефонограмма)" + }, + new + { + Id = 10031, + Name = "План работ на спуск «хвостовика»" + }, + new + { + Id = 10032, + Name = "Акт готовности бурового и энергетического оборудования к спуску «хвостовика»" + }, + new + { + Id = 10033, + Name = "Акт шаблонировки ствола скважины перед спуском «хвостовика»" + }, + new + { + Id = 10034, + Name = "Мера обсадных труб (хвостовик)" + }, + new + { + Id = 10035, + Name = "Акт выполненных работ по спуску хвостовика с закачкой (нефти, солевого раствора" + }, + new + { + Id = 10036, + Name = "Акт о переводе скважины на тех. воду" + }, + new + { + Id = 10037, + Name = "Акт об окончании бурения" + }, + new + { + Id = 10038, + Name = "Акт на передачу скважины в освоение (КРС)" + }, + new + { + Id = 10039, + Name = "Акт на опресовку межколонного пространства с КРС" + }, + new + { + Id = 10040, + Name = "Акт на сдачу скважины в ЦДНГ" + }, + new + { + Id = 10041, + Name = "Паспорт ОУС (заполняется геологами)" + }, + new + { + Id = 10042, + Name = "Паспорт скважины (заполняется геологами)" + }, + new + { + Id = 10043, + Name = "Фактические данные бурения (вставляются в паспорт скважины)" + }, + new + { + Id = 20000, + Name = "Справки по страницам" + }, + new + { + Id = 30000, + Name = "Инструкции" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории файла"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Удален ли файл"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_file_info", t => + { + t.HasComment("Файлы всех категорий"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created") + .HasComment("Дата совершенного действия"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла"); + + b.Property("IdMarkType") + .HasColumnType("integer") + .HasColumnName("id_mark_type") + .HasComment("0 - отклонен, 1 - согласован"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("id пользователя"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Помечен ли файл как удаленный"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdUser"); + + b.ToTable("t_file_mark", t => + { + t.HasComment("Действия с файлами."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("real") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_float", t => + { + t.HasComment("таблица данных ГТИ с типом значения float"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("integer") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_int", t => + { + t.HasComment("таблица данных ГТИ с типом значения int"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .IsRequired() + .HasColumnType("text") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_string", t => + { + t.HasComment("таблица данных ГТИ с типом значения string"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UrlPage") + .IsRequired() + .HasColumnType("text") + .HasColumnName("url_page") + .HasComment("Url страницы"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.ToTable("t_help_page", t => + { + t.HasComment("Справки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start"); + + b.Property("DepthEnd") + .HasColumnType("real") + .HasColumnName("depth_end"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depth_start"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_limiting_parameter", t => + { + t.HasComment("Ограничения по параметрам телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateDownload") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_download") + .HasComment("Дата загрузки"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id автора"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("IdDirectory") + .HasColumnType("integer") + .HasColumnName("id_directory") + .HasComment("Id директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdDirectory"); + + b.ToTable("t_manual", t => + { + t.HasComment("Инструкции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("Id родительской директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_manual_directory", t => + { + t.HasComment("Директория для инструкций"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("data") + .HasComment("Данные таблицы последних данных"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Пометка удаленным"); + + b.Property("Timestamp") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp") + .HasComment("время добавления"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_measure", t => + { + t.HasComment("Таблица c данными для вкладки 'Последние данные'"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_measure_category", t => + { + t.HasComment("Категория последних данных"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Показатели бурового раствора", + ShortName = "Раствор" + }, + new + { + Id = 2, + Name = "Шламограмма", + ShortName = "Шламограмма" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "ННБ" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdNotificationCategory") + .HasColumnType("integer") + .HasColumnName("id_notification_category") + .HasComment("Id категории уведомления"); + + b.Property("IdTransportType") + .HasColumnType("integer") + .HasColumnName("id_transport_type") + .HasComment("Id типа доставки уведомления"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id получателя"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message") + .HasComment("Сообщение уведомления"); + + b.Property("ReadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("read_date") + .HasComment("Дата прочтения уведомления"); + + b.Property("RegistrationDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("registration_date") + .HasComment("Дата регистрации уведомления"); + + b.Property("SentDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("sent_date") + .HasComment("Дата отправки уведомления"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title") + .HasComment("Заголовок уведомления"); + + b.HasKey("Id"); + + b.HasIndex("IdNotificationCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_notification", t => + { + t.HasComment("Уведомления"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_notification_category", t => + { + t.HasComment("Категории уведомлений"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Системные уведомления" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Старотовая глубина"); + + b.Property("IdOperationCategory") + .HasColumnType("integer") + .HasColumnName("id_operation_category") + .HasComment("Ид категории операции"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Ид скважины"); + + b.Property("StandardValue") + .HasColumnType("double precision") + .HasColumnName("standard_value") + .HasComment("Нормативный показатель"); + + b.Property("TargetValue") + .HasColumnType("double precision") + .HasColumnName("target_value") + .HasComment("Целевой показатель"); + + b.HasKey("Id"); + + b.HasIndex("IdOperationCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_operationvalue", t => + { + t.HasComment("Целевые/нормативные показатели операции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description") + .HasComment("Краткое описание"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_permission", t => + { + t.HasComment("Разрешения на доступ к данным"); + }); + + b.HasData( + new + { + Id = 100, + Description = "Разрешение удалять админ. Кусты", + Name = "AdminCluster.delete" + }, + new + { + Id = 101, + Description = "Разрешение редактировать админ. Кусты", + Name = "AdminCluster.edit" + }, + new + { + Id = 102, + Description = "Разрешение просматривать админ. Кусты", + Name = "AdminCluster.get" + }, + new + { + Id = 103, + Description = "Разрешение удалять админ. Компании", + Name = "AdminCompany.delete" + }, + new + { + Id = 104, + Description = "Разрешение редактировать админ. Компании", + Name = "AdminCompany.edit" + }, + new + { + Id = 105, + Description = "Разрешение просматривать админ. Компании", + Name = "AdminCompany.get" + }, + new + { + Id = 106, + Description = "Разрешение удалять админ. Типы компаний", + Name = "AdminCompanyType.delete" + }, + new + { + Id = 107, + Description = "Разрешение редактировать админ. Типы компаний", + Name = "AdminCompanyType.edit" + }, + new + { + Id = 108, + Description = "Разрешение просматривать админ. Типы компаний", + Name = "AdminCompanyType.get" + }, + new + { + Id = 109, + Description = "Разрешение удалять админ. Месторождения", + Name = "AdminDeposit.delete" + }, + new + { + Id = 110, + Description = "Разрешение редактировать админ. Месторождения", + Name = "AdminDeposit.edit" + }, + new + { + Id = 111, + Description = "Разрешение просматривать админ. Месторождения", + Name = "AdminDeposit.get" + }, + new + { + Id = 112, + Description = "Разрешение удалять админ. Разрешения", + Name = "AdminPermission.delete" + }, + new + { + Id = 113, + Description = "Разрешение редактировать админ. Разрешения", + Name = "AdminPermission.edit" + }, + new + { + Id = 114, + Description = "Разрешение просматривать админ. Разрешения", + Name = "AdminPermission.get" + }, + new + { + Id = 115, + Description = "Разрешение удалять админ. Телеметрию", + Name = "AdminTelemetry.delete" + }, + new + { + Id = 116, + Description = "Разрешение редактировать админ. Телеметрию", + Name = "AdminTelemetry.edit" + }, + new + { + Id = 117, + Description = "Разрешение просматривать админ. Телеметрию", + Name = "AdminTelemetry.get" + }, + new + { + Id = 118, + Description = "Разрешение удалять админ. Пользователей", + Name = "AdminUser.delete" + }, + new + { + Id = 119, + Description = "Разрешение редактировать админ. Пользователей", + Name = "AdminUser.edit" + }, + new + { + Id = 120, + Description = "Разрешение просматривать админ. Пользователей", + Name = "AdminUser.get" + }, + new + { + Id = 121, + Description = "Разрешение удалять админ. Роли пользователей", + Name = "AdminUserRole.delete" + }, + new + { + Id = 122, + Description = "Разрешение редактировать админ. Роли пользователей", + Name = "AdminUserRole.edit" + }, + new + { + Id = 123, + Description = "Разрешение просматривать админ. Роли пользователей", + Name = "AdminUserRole.get" + }, + new + { + Id = 124, + Description = "Разрешение удалять админ. Скважины", + Name = "AdminWell.delete" + }, + new + { + Id = 125, + Description = "Разрешение редактировать админ. Скважины", + Name = "AdminWell.edit" + }, + new + { + Id = 126, + Description = "Разрешение просматривать админ. Скважины", + Name = "AdminWell.get" + }, + new + { + Id = 127, + Description = "Разрешение удалять админ. Подсистемы", + Name = "AdminSubsytem.delete" + }, + new + { + Id = 128, + Description = "Разрешение редактировать админ. Подсистемы", + Name = "AdminSubsytem.edit" + }, + new + { + Id = 129, + Description = "Разрешение просматривать админ. Подсистемы", + Name = "AdminSubsytem.get" + }, + new + { + Id = 200, + Description = "Разрешение редактировать 0", + Name = "Auth.edit" + }, + new + { + Id = 201, + Description = "Разрешение просматривать 0", + Name = "Auth.get" + }, + new + { + Id = 202, + Description = "Разрешение просматривать Кусты", + Name = "Cluster.get" + }, + new + { + Id = 203, + Description = "Разрешение просматривать Месторождения", + Name = "Deposit.get" + }, + new + { + Id = 204, + Description = "Разрешение удалять РТК", + Name = "DrillFlowChart.delete" + }, + new + { + Id = 205, + Description = "Разрешение редактировать РТК", + Name = "DrillFlowChart.edit" + }, + new + { + Id = 206, + Description = "Разрешение просматривать РТК", + Name = "DrillFlowChart.get" + }, + new + { + Id = 207, + Description = "Разрешение удалять Программу бурения", + Name = "DrillingProgram.delete" + }, + new + { + Id = 208, + Description = "Разрешение редактировать Программу бурения", + Name = "DrillingProgram.edit" + }, + new + { + Id = 209, + Description = "Разрешение просматривать Программу бурения", + Name = "DrillingProgram.get" + }, + new + { + Id = 210, + Description = "Разрешение удалять Режимы бурения", + Name = "DrillParams.delete" + }, + new + { + Id = 211, + Description = "Разрешение редактировать Режимы бурения", + Name = "DrillParams.edit" + }, + new + { + Id = 212, + Description = "Разрешение просматривать Режимы бурения", + Name = "DrillParams.get" + }, + new + { + Id = 213, + Description = "Разрешение удалять Файлы", + Name = "File.delete" + }, + new + { + Id = 214, + Description = "Разрешение редактировать Файлы", + Name = "File.edit" + }, + new + { + Id = 215, + Description = "Разрешение просматривать Файлы", + Name = "File.get" + }, + new + { + Id = 216, + Description = "Разрешение удалять Измерения", + Name = "Measure.delete" + }, + new + { + Id = 217, + Description = "Разрешение редактировать Измерения", + Name = "Measure.edit" + }, + new + { + Id = 218, + Description = "Разрешение просматривать Измерения", + Name = "Measure.get" + }, + new + { + Id = 219, + Description = "Разрешение просматривать Сообщения телеметрии", + Name = "Message.get" + }, + new + { + Id = 220, + Description = "Разрешение просматривать Статистику по операциям", + Name = "OperationStat.get" + }, + new + { + Id = 221, + Description = "Разрешение редактировать Рапорта", + Name = "Report.edit" + }, + new + { + Id = 222, + Description = "Разрешение просматривать Рапорта", + Name = "Report.get" + }, + new + { + Id = 223, + Description = "Разрешение просматривать админ. Системная статистика", + Name = "RequestTracker.get" + }, + new + { + Id = 224, + Description = "Разрешение удалять Рекомендации уставок", + Name = "Setpoints.delete" + }, + new + { + Id = 225, + Description = "Разрешение редактировать Рекомендации уставок", + Name = "Setpoints.edit" + }, + new + { + Id = 226, + Description = "Разрешение просматривать Рекомендации уставок", + Name = "Setpoints.get" + }, + new + { + Id = 227, + Description = "Разрешение редактировать Телеметрии", + Name = "Telemetry.edit" + }, + new + { + Id = 228, + Description = "Разрешение просматривать Анализ телеметрии", + Name = "TelemetryAnalytics.get" + }, + new + { + Id = 229, + Description = "Разрешение редактировать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.edit" + }, + new + { + Id = 230, + Description = "Разрешение просматривать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.get" + }, + new + { + Id = 231, + Description = "Разрешение редактировать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.edit" + }, + new + { + Id = 232, + Description = "Разрешение просматривать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.get" + }, + new + { + Id = 233, + Description = "Разрешение редактировать Скважины", + Name = "Well.edit" + }, + new + { + Id = 234, + Description = "Разрешение просматривать Скважины", + Name = "Well.get" + }, + new + { + Id = 235, + Description = "Разрешение редактировать Композитные скважины", + Name = "WellComposite.edit" + }, + new + { + Id = 236, + Description = "Разрешение просматривать Композитные скважины", + Name = "WellComposite.get" + }, + new + { + Id = 237, + Description = "Разрешение удалять Операции по скважинам", + Name = "WellOperation.delete" + }, + new + { + Id = 238, + Description = "Разрешение редактировать Операции по скважинам", + Name = "WellOperation.edit" + }, + new + { + Id = 239, + Description = "Разрешение просматривать Операции по скважинам", + Name = "WellOperation.get" + }, + new + { + Id = 240, + Description = "Разрешение редактировать Файлы категории 1 (Растворный сервис)", + Name = "File.edit1" + }, + new + { + Id = 241, + Description = "Разрешение редактировать Файлы категории 2 (Цементирование)", + Name = "File.edit2" + }, + new + { + Id = 242, + Description = "Разрешение редактировать Файлы категории 3 (ННБ)", + Name = "File.edit3" + }, + new + { + Id = 243, + Description = "Разрешение редактировать Файлы категории 4 (ГТИ)", + Name = "File.edit4" + }, + new + { + Id = 244, + Description = "Разрешение редактировать Файлы категории 5 (Документы по скважине)", + Name = "File.edit5" + }, + new + { + Id = 245, + Description = "Разрешение редактировать Файлы категории 6 (Супервайзер)", + Name = "File.edit6" + }, + new + { + Id = 246, + Description = "Разрешение редактировать Файлы категории 7 (Мастер)", + Name = "File.edit7" + }, + new + { + Id = 247, + Description = "Разрешение редактировать Файлы категории 8 (Долотный сервис)", + Name = "File.edit8" + }, + new + { + Id = 248, + Description = "Разрешение редактировать Файлы категории 9 (Буровой подрядчик)", + Name = "File.edit9" + }, + new + { + Id = 249, + Description = "Разрешение редактировать Файлы категории 10 (Сервис по заканчиванию скважины)", + Name = "File.edit10" + }, + new + { + Id = 250, + Description = "Разрешение редактировать Файлы категории 11 (Рапорт)", + Name = "File.edit11" + }, + new + { + Id = 251, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit12" + }, + new + { + Id = 252, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit13" + }, + new + { + Id = 253, + Description = "Разрешение редактировать Файлы категории 13", + Name = "File.edit14" + }, + new + { + Id = 254, + Description = "Разрешение редактировать Файлы категории 14", + Name = "File.edit15" + }, + new + { + Id = 255, + Description = "Разрешение редактировать Файлы категории 15", + Name = "File.edit16" + }, + new + { + Id = 256, + Description = "Разрешение редактировать Файлы категории 16", + Name = "File.edit17" + }, + new + { + Id = 257, + Description = "Разрешение редактировать Файлы категории 17", + Name = "File.edit18" + }, + new + { + Id = 258, + Description = "Разрешение редактировать Файлы категории 18", + Name = "File.edit19" + }, + new + { + Id = 259, + Description = "Разрешение редактировать Файлы категории 19", + Name = "File.edit20" + }, + new + { + Id = 260, + Description = "Разрешение редактировать Файлы категории 20", + Name = "File.edit21" + }, + new + { + Id = 261, + Description = "Разрешение редактировать Файлы категории 21", + Name = "File.edit22" + }, + new + { + Id = 262, + Description = "Разрешение редактировать Файлы категории 22", + Name = "File.edit23" + }, + new + { + Id = 263, + Description = "Разрешение редактировать Файлы категории 23", + Name = "File.edit24" + }, + new + { + Id = 264, + Description = "Разрешение редактировать Файлы категории 24", + Name = "File.edit25" + }, + new + { + Id = 265, + Description = "Разрешение редактировать Файлы категории 25", + Name = "File.edit26" + }, + new + { + Id = 266, + Description = "Разрешение редактировать Файлы категории 26", + Name = "File.edit27" + }, + new + { + Id = 267, + Description = "Разрешение редактировать Файлы категории 27", + Name = "File.edit28" + }, + new + { + Id = 268, + Description = "Разрешение редактировать Файлы категории 28", + Name = "File.edit29" + }, + new + { + Id = 269, + Description = "Разрешение редактировать Файлы категории 29", + Name = "File.edit30" + }, + new + { + Id = 380, + Description = "Разрешение просматривать список бурильщиков", + Name = "Driller.get" + }, + new + { + Id = 381, + Description = "Разрешение редактировать бурильщика", + Name = "Driller.edit" + }, + new + { + Id = 382, + Description = "Разрешение удалять бурильщик", + Name = "Driller.delete" + }, + new + { + Id = 383, + Description = "Разрешение просматривать графики бурильщиков", + Name = "Schedule.get" + }, + new + { + Id = 384, + Description = "Разрешение редактировать график бурильщика", + Name = "Schedule.edit" + }, + new + { + Id = 385, + Description = "Разрешение удалять график бурильщика", + Name = "Schedule.delete" + }, + new + { + Id = 386, + Description = "Разрешение просматривать суточный рапорт", + Name = "DailyReport.get" + }, + new + { + Id = 387, + Description = "Разрешение редактировать суточный рапорт", + Name = "DailyReport.edit" + }, + new + { + Id = 388, + Description = "Разрешение просматривать авто. определенные операции", + Name = "DetectedOperation.get" + }, + new + { + Id = 389, + Description = "Разрешение просматривать целевые значения", + Name = "OperationValue.get" + }, + new + { + Id = 390, + Description = "Разрешение редактировать целевые значения", + Name = "OperationValue.edit" + }, + new + { + Id = 391, + Description = "Разрешение удалять целевые значения", + Name = "OperationValue.delete" + }, + new + { + Id = 400, + Description = "Разрешение просматривать инфо по wits параметрам", + Name = "WitsInfo.get" + }, + new + { + Id = 401, + Description = "Разрешение просматривать WITS record 1", + Name = "WitsRecord1.get" + }, + new + { + Id = 407, + Description = "Разрешение просматривать WITS record 7", + Name = "WitsRecord7.get" + }, + new + { + Id = 408, + Description = "Разрешение просматривать WITS record 8", + Name = "WitsRecord8.get" + }, + new + { + Id = 450, + Description = "Разрешение просматривать WITS record 50", + Name = "WitsRecord50.get" + }, + new + { + Id = 460, + Description = "Разрешение просматривать WITS record 60", + Name = "WitsRecord60.get" + }, + new + { + Id = 461, + Description = "Разрешение просматривать WITS record 61", + Name = "WitsRecord61.get" + }, + new + { + Id = 500, + Description = "Разрешение удалять Категорий документов файлов", + Name = "FileCategory.delete" + }, + new + { + Id = 501, + Description = "Разрешение редактировать Категорий документов файлов", + Name = "FileCategory.edit" + }, + new + { + Id = 502, + Description = "Разрешение просматривать Категорий документов файлов", + Name = "FileCategory.get" + }, + new + { + Id = 503, + Description = "Разрешение удалять Дело скважины", + Name = "WellFinalDocuments.delete" + }, + new + { + Id = 504, + Description = "Разрешение редактировать Дело скважины", + Name = "WellFinalDocuments.edit" + }, + new + { + Id = 505, + Description = "Разрешение просматривать Дело скважины", + Name = "WellFinalDocuments.get" + }, + new + { + Id = 506, + Description = "Разрешение редактировать ответственных за загрузку файла Дело скважины", + Name = "WellFinalDocuments.editPublisher" + }, + new + { + Id = 507, + Description = "Разрешение просматривать наработка талевого каната", + Name = "TelemetryWirelineRunOut.get" + }, + new + { + Id = 510, + Description = "Разрешение просматривать плановая траектория", + Name = "PlannedTrajectory.get" + }, + new + { + Id = 511, + Description = "Разрешение редактировать плановая траектория", + Name = "PlannedTrajectory.edit" + }, + new + { + Id = 512, + Description = "Разрешение удалять плановая траектория", + Name = "PlannedTrajectory.delete" + }, + new + { + Id = 516, + Description = "Разрешение просматривать статистику вопросов", + Name = "FaqStatistics.get" + }, + new + { + Id = 517, + Description = "Разрешение редактировать вопрос", + Name = "FaqStatistics.edit" + }, + new + { + Id = 518, + Description = "Разрешение удалять вопрос", + Name = "FaqStatistics.delete" + }, + new + { + Id = 519, + Description = "Разрешение просматривать список контактов", + Name = "WellContact.get" + }, + new + { + Id = 520, + Description = "Разрешение редактировать список контактов", + Name = "WellContact.edit" + }, + new + { + Id = 521, + Description = "Разрешить создание справок по страницам", + Name = "HelpPage.edit" + }, + new + { + Id = 522, + Description = "Разрешить удаление всех настроек пользователя", + Name = "UserSettings.delete" + }, + new + { + Id = 523, + Description = "Разрешить редактирование инструкций", + Name = "Manual.edit" + }, + new + { + Id = 524, + Description = "Разрешить получение инструкций", + Name = "Manual.get" + }, + new + { + Id = 525, + Description = "Разрешение на редактирование РТК у завершенной скважины", + Name = "ProcessMap.editCompletedWell" + }, + new + { + Id = 526, + Description = "Разрешение на редактирование операций у завершенной скважины", + Name = "WellOperation.editCompletedWell" + }, + new + { + Id = 527, + Description = "Разрешение на удаление инструкций", + Name = "Manual.delete" + }, + new + { + Id = 528, + Description = "Разрешение на удаление контакта", + Name = "WellContact.delete" + }, + new + { + Id = 530, + Description = "Разрешение на редактирование плановой конструкции скважины", + Name = "WellSectionPlan.edit" + }, + new + { + Id = 531, + Description = "Разрешение на удаление плановой конструкции скважины", + Name = "WellSectionPlan.delete" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MinRPM") + .HasColumnType("double precision") + .HasColumnName("min_RPM") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("MinСonsumptionStartingFlowRate") + .HasColumnType("double precision") + .HasColumnName("min_consumption_starting_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_limit_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_anticrash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_autohold", t => + { + t.HasComment("Автоудержание"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stickslip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdAutostartOrWarning") + .HasColumnType("boolean") + .HasColumnName("id_autostart_or_warning") + .HasComment("Автозапуск или Предупреждение"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("NumberOfStepsBit") + .HasColumnType("integer") + .HasColumnName("number_of_steps_bit") + .HasComment("Количество шагов по нагрузке"); + + b.Property("NumberOfStepsRPM") + .HasColumnType("integer") + .HasColumnName("number_of_steps_rpm") + .HasComment("Количество шагов оборотов на ВСП, шт."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RevolutionPerMinuteMin") + .HasColumnType("integer") + .HasColumnName("revolution_per_minute_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_drilltest", t => + { + t.HasComment("Дрилтест"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание, м"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_jarr_drill_tool", t => + { + t.HasComment("Встряхивание бурового инструмента"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("boolean") + .HasColumnName("id_mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RPMLeft") + .HasColumnType("double precision") + .HasColumnName("RPM​_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RPMRight") + .HasColumnType("double precision") + .HasColumnName("RPM​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueLimitLeft") + .HasColumnType("double precision") + .HasColumnName("torque_limit_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueLimitRight") + .HasColumnType("double precision") + .HasColumnName("torque_limit_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdAutostartOrWarning") + .HasColumnType("boolean") + .HasColumnName("id_autostart_or_warning") + .HasComment("Автозапуск или Предупреждение"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RevolutionPerMinuteMin") + .HasColumnType("integer") + .HasColumnName("revolution_per_minute_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stickslip") + .HasComment("StickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_functions_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_static_measure", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdDeclineSocketColumn") + .HasColumnType("boolean") + .HasColumnName("id_decline_socket_column") + .HasComment("СПУСК ОК Да/Нет"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_upgrade_no_load", t => + { + t.HasComment("Обновление холостого хода"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Скорость, м/ч., Вверх"); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1"); + + b.HasIndex("IdPrevious") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2"); + + b.HasIndex("IdWell") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3"); + + b.HasIndex("IdWellSectionType") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4"); + + b.ToTable("t_process_map_plan_operation_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_ repetitions") + .HasComment("Проработка 1, Количество повторений, шт."); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming2_number_of_repetitions") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming3_number_of_ repetitions") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_repetitions") + .HasComment("Проработка 1, Количество повторений, шт."); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming2_number_of_ repetitions") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming3_number_of_ repetitions") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("double precision") + .HasColumnName("сomment") + .HasComment("Комментарий"); + + b.Property("ConsumptionFlowRate") + .HasColumnType("double precision") + .HasColumnName("consumption_flow_rate") + .HasComment("Выход на плановый расход, расход, л/с"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("ExitTimeConsumption") + .HasColumnType("double precision") + .HasColumnName("exit_time_consumption") + .HasComment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit_Max") + .HasComment("Максимально допустимое давление, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switch_mode", t => + { + t.HasComment("Выход на режим"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switch_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал расхаживания, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_repetitions") + .HasComment("Проработка 1, Количество расхаживаний, шт"); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град "); + + b.Property("planTF") + .HasColumnType("double precision") + .HasColumnName("plan_tf") + .HasComment("План TF, град"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление, атм"); + + b.Property("Repeats") + .HasColumnType("double precision") + .HasColumnName("repeats") + .HasComment("Количество повторений"); + + b.Property("SetpointDrag") + .HasColumnType("double precision") + .HasColumnName("setpoint_drag") + .HasComment("Уставка зятяжки, т"); + + b.Property("SetpointTight") + .HasColumnType("double precision") + .HasColumnName("setpoint_tight") + .HasComment("Уставка посадки, т"); + + b.Property("SpeedDownward") + .HasColumnType("double precision") + .HasColumnName("speed_downward") + .HasComment("Скорость спуска, м/ч"); + + b.Property("SpeedUpward") + .HasColumnType("double precision") + .HasColumnName("speed_upward") + .HasComment("Скорость подъёма, м/ч"); + + b.Property("SpinDownward") + .HasColumnType("double precision") + .HasColumnName("spin_downward") + .HasComment("Вращение при движении вниз, об/мин"); + + b.Property("SpinUpward") + .HasColumnType("double precision") + .HasColumnName("spin_upward") + .HasComment("Вращение при движении вверх, об/мин"); + + b.Property("Torque") + .HasColumnType("double precision") + .HasColumnName("torque") + .HasComment("Момент, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_ream", t => + { + t.HasComment("РТК проработка скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм. Уставка"); + + b.Property("DifferentialPressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_limit_max") + .HasComment("Перепад давления, атм. Ограничение"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход л/с. Уставка"); + + b.Property("FlowRateLimitMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_limit_max") + .HasComment("Расход л/с. Ограничение"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit_max") + .HasComment("Максимально допустимое давление, атм"); + + b.Property("RevolutionsPerMinute") + .HasColumnType("double precision") + .HasColumnName("revolution_per_minute") + .HasComment("Обороты на ВСП, об/мин. Уставка"); + + b.Property("RevolutionsPerMinuteLimitMax") + .HasColumnType("double precision") + .HasColumnName("revolutions_per_minute_limit_max") + .HasComment("Обороты на ВСП, об/мин. Ограничение"); + + b.Property("RopLimitMax") + .HasColumnType("double precision") + .HasColumnName("rop_limit_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м. Уставка"); + + b.Property("TopDriveTorqueLimit") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_limit_max") + .HasComment("Момент на ВСП, кН*м. Ограничение"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка, т. Уставка"); + + b.Property("WeightOnBitLimitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_limit_max") + .HasComment("Нагрузка, т. Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor", t => + { + t.HasComment("РТК план бурение ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм. Уставка"); + + b.Property("DifferentialPressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_limit_max") + .HasComment("Перепад давления, атм. Ограничение"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход л/с. Уставка"); + + b.Property("FlowRateLimitMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_limit_max") + .HasComment("Расход л/с. Ограничение"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit_max") + .HasComment("Максимально допустимое давление, атм"); + + b.Property("RopLimitMax") + .HasColumnType("double precision") + .HasColumnName("rop_limit_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Расчётная пружина, градус"); + + b.Property("ToolBuckling") + .HasColumnType("double precision") + .HasColumnName("tool_buckling") + .HasComment("Складывание инструмента, м"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка, т. Уставка"); + + b.Property("WeightOnBitLimitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_limit_max") + .HasComment("Нагрузка, т. Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide", t => + { + t.HasComment("РТК план бурение слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_survey", t => + { + t.HasComment("Запись статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("IdCompany", "IdWell"); + + b.HasIndex("IdWell"); + + b.ToTable("t_relation_company_well", t => + { + t.HasComment("отношение скважин и компаний"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.HasKey("IdWell", "IdUser"); + + b.HasIndex("IdUser"); + + b.ToTable("t_relation_contact_well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdDrillingProgramPart") + .HasColumnType("integer") + .HasColumnName("id_drilling_program_part"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_role") + .HasComment("1 - publisher, 2 - approver"); + + b.HasKey("IdUser", "IdDrillingProgramPart") + .HasName("t_relation_user_drilling_program_part_pk"); + + b.HasIndex("IdDrillingProgramPart"); + + b.ToTable("t_relation_user_drilling_program_part", t => + { + t.HasComment("Отношение пользователей и частей ПБ"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdPermission") + .HasColumnType("integer") + .HasColumnName("id_permission"); + + b.HasKey("IdUserRole", "IdPermission"); + + b.HasIndex("IdPermission"); + + b.ToTable("t_relation_user_role_permission", t => + { + t.HasComment("Отношение ролей пользователей и разрешений доступа"); + }); + + b.HasData( + new + { + IdUserRole = 1100, + IdPermission = 102 + }, + new + { + IdUserRole = 1100, + IdPermission = 111 + }, + new + { + IdUserRole = 1101, + IdPermission = 101 + }, + new + { + IdUserRole = 1101, + IdPermission = 100 + }, + new + { + IdUserRole = 1102, + IdPermission = 105 + }, + new + { + IdUserRole = 1102, + IdPermission = 108 + }, + new + { + IdUserRole = 1103, + IdPermission = 104 + }, + new + { + IdUserRole = 1103, + IdPermission = 103 + }, + new + { + IdUserRole = 1104, + IdPermission = 108 + }, + new + { + IdUserRole = 1105, + IdPermission = 107 + }, + new + { + IdUserRole = 1105, + IdPermission = 106 + }, + new + { + IdUserRole = 1106, + IdPermission = 111 + }, + new + { + IdUserRole = 1107, + IdPermission = 110 + }, + new + { + IdUserRole = 1107, + IdPermission = 109 + }, + new + { + IdUserRole = 1108, + IdPermission = 114 + }, + new + { + IdUserRole = 1109, + IdPermission = 113 + }, + new + { + IdUserRole = 1109, + IdPermission = 112 + }, + new + { + IdUserRole = 1110, + IdPermission = 123 + }, + new + { + IdUserRole = 1110, + IdPermission = 114 + }, + new + { + IdUserRole = 1111, + IdPermission = 122 + }, + new + { + IdUserRole = 1111, + IdPermission = 121 + }, + new + { + IdUserRole = 1112, + IdPermission = 117 + }, + new + { + IdUserRole = 1113, + IdPermission = 105 + }, + new + { + IdUserRole = 1113, + IdPermission = 123 + }, + new + { + IdUserRole = 1113, + IdPermission = 120 + }, + new + { + IdUserRole = 1114, + IdPermission = 119 + }, + new + { + IdUserRole = 1114, + IdPermission = 118 + }, + new + { + IdUserRole = 1114, + IdPermission = 200 + }, + new + { + IdUserRole = 1115, + IdPermission = 223 + }, + new + { + IdUserRole = 1116, + IdPermission = 105 + }, + new + { + IdUserRole = 1116, + IdPermission = 102 + }, + new + { + IdUserRole = 1116, + IdPermission = 117 + }, + new + { + IdUserRole = 1116, + IdPermission = 126 + }, + new + { + IdUserRole = 1117, + IdPermission = 125 + }, + new + { + IdUserRole = 1117, + IdPermission = 124 + }, + new + { + IdUserRole = 1200, + IdPermission = 203 + }, + new + { + IdUserRole = 1200, + IdPermission = 230 + }, + new + { + IdUserRole = 1201, + IdPermission = 202 + }, + new + { + IdUserRole = 1201, + IdPermission = 203 + }, + new + { + IdUserRole = 1201, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 203 + }, + new + { + IdUserRole = 1202, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 236 + }, + new + { + IdUserRole = 1202, + IdPermission = 212 + }, + new + { + IdUserRole = 1203, + IdPermission = 235 + }, + new + { + IdUserRole = 1204, + IdPermission = 202 + }, + new + { + IdUserRole = 1204, + IdPermission = 203 + }, + new + { + IdUserRole = 1205, + IdPermission = 215 + }, + new + { + IdUserRole = 1206, + IdPermission = 203 + }, + new + { + IdUserRole = 1206, + IdPermission = 206 + }, + new + { + IdUserRole = 1207, + IdPermission = 205 + }, + new + { + IdUserRole = 1208, + IdPermission = 218 + }, + new + { + IdUserRole = 1209, + IdPermission = 217 + }, + new + { + IdUserRole = 1210, + IdPermission = 203 + }, + new + { + IdUserRole = 1210, + IdPermission = 230 + }, + new + { + IdUserRole = 1210, + IdPermission = 219 + }, + new + { + IdUserRole = 1211, + IdPermission = 203 + }, + new + { + IdUserRole = 1211, + IdPermission = 220 + }, + new + { + IdUserRole = 1211, + IdPermission = 239 + }, + new + { + IdUserRole = 1212, + IdPermission = 238 + }, + new + { + IdUserRole = 1212, + IdPermission = 237 + }, + new + { + IdUserRole = 1213, + IdPermission = 203 + }, + new + { + IdUserRole = 1213, + IdPermission = 239 + }, + new + { + IdUserRole = 1213, + IdPermission = 212 + }, + new + { + IdUserRole = 1214, + IdPermission = 211 + }, + new + { + IdUserRole = 1214, + IdPermission = 210 + }, + new + { + IdUserRole = 1215, + IdPermission = 203 + }, + new + { + IdUserRole = 1215, + IdPermission = 222 + }, + new + { + IdUserRole = 1216, + IdPermission = 221 + }, + new + { + IdUserRole = 1217, + IdPermission = 226 + }, + new + { + IdUserRole = 1218, + IdPermission = 225 + }, + new + { + IdUserRole = 1218, + IdPermission = 224 + }, + new + { + IdUserRole = 1219, + IdPermission = 203 + }, + new + { + IdUserRole = 1219, + IdPermission = 206 + }, + new + { + IdUserRole = 1219, + IdPermission = 230 + }, + new + { + IdUserRole = 1219, + IdPermission = 232 + }, + new + { + IdUserRole = 1220, + IdPermission = 203 + }, + new + { + IdUserRole = 1220, + IdPermission = 228 + }, + new + { + IdUserRole = 1221, + IdPermission = 202 + }, + new + { + IdUserRole = 1221, + IdPermission = 203 + }, + new + { + IdUserRole = 1221, + IdPermission = 220 + }, + new + { + IdUserRole = 1221, + IdPermission = 234 + }, + new + { + IdUserRole = 1500, + IdPermission = 507 + }, + new + { + IdUserRole = 1500, + IdPermission = 510 + }, + new + { + IdUserRole = 1501, + IdPermission = 214 + }, + new + { + IdUserRole = 1501, + IdPermission = 213 + }, + new + { + IdUserRole = 1502, + IdPermission = 207 + }, + new + { + IdUserRole = 1502, + IdPermission = 208 + }, + new + { + IdUserRole = 2000, + IdPermission = 205 + }, + new + { + IdUserRole = 2000, + IdPermission = 204 + }, + new + { + IdUserRole = 2000, + IdPermission = 245 + }, + new + { + IdUserRole = 2001, + IdPermission = 244 + }, + new + { + IdUserRole = 2001, + IdPermission = 245 + }, + new + { + IdUserRole = 2002, + IdPermission = 244 + }, + new + { + IdUserRole = 2002, + IdPermission = 246 + }, + new + { + IdUserRole = 2002, + IdPermission = 237 + }, + new + { + IdUserRole = 2002, + IdPermission = 238 + }, + new + { + IdUserRole = 2003, + IdPermission = 240 + }, + new + { + IdUserRole = 2003, + IdPermission = 217 + }, + new + { + IdUserRole = 2003, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 242 + }, + new + { + IdUserRole = 2004, + IdPermission = 217 + }, + new + { + IdUserRole = 2004, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 205 + }, + new + { + IdUserRole = 2004, + IdPermission = 204 + }, + new + { + IdUserRole = 2005, + IdPermission = 247 + }, + new + { + IdUserRole = 2005, + IdPermission = 205 + }, + new + { + IdUserRole = 2005, + IdPermission = 204 + }, + new + { + IdUserRole = 2006, + IdPermission = 243 + }, + new + { + IdUserRole = 2006, + IdPermission = 205 + }, + new + { + IdUserRole = 2006, + IdPermission = 204 + }, + new + { + IdUserRole = 2007, + IdPermission = 241 + }, + new + { + IdUserRole = 2007, + IdPermission = 205 + }, + new + { + IdUserRole = 2007, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 100 + }, + new + { + IdUserRole = 1, + IdPermission = 101 + }, + new + { + IdUserRole = 1, + IdPermission = 102 + }, + new + { + IdUserRole = 1, + IdPermission = 103 + }, + new + { + IdUserRole = 1, + IdPermission = 104 + }, + new + { + IdUserRole = 1, + IdPermission = 105 + }, + new + { + IdUserRole = 1, + IdPermission = 106 + }, + new + { + IdUserRole = 1, + IdPermission = 107 + }, + new + { + IdUserRole = 1, + IdPermission = 108 + }, + new + { + IdUserRole = 1, + IdPermission = 109 + }, + new + { + IdUserRole = 1, + IdPermission = 110 + }, + new + { + IdUserRole = 1, + IdPermission = 111 + }, + new + { + IdUserRole = 1, + IdPermission = 112 + }, + new + { + IdUserRole = 1, + IdPermission = 113 + }, + new + { + IdUserRole = 1, + IdPermission = 114 + }, + new + { + IdUserRole = 1, + IdPermission = 115 + }, + new + { + IdUserRole = 1, + IdPermission = 116 + }, + new + { + IdUserRole = 1, + IdPermission = 117 + }, + new + { + IdUserRole = 1, + IdPermission = 118 + }, + new + { + IdUserRole = 1, + IdPermission = 119 + }, + new + { + IdUserRole = 1, + IdPermission = 120 + }, + new + { + IdUserRole = 1, + IdPermission = 121 + }, + new + { + IdUserRole = 1, + IdPermission = 122 + }, + new + { + IdUserRole = 1, + IdPermission = 123 + }, + new + { + IdUserRole = 1, + IdPermission = 124 + }, + new + { + IdUserRole = 1, + IdPermission = 125 + }, + new + { + IdUserRole = 1, + IdPermission = 126 + }, + new + { + IdUserRole = 1, + IdPermission = 127 + }, + new + { + IdUserRole = 1, + IdPermission = 128 + }, + new + { + IdUserRole = 1, + IdPermission = 129 + }, + new + { + IdUserRole = 1, + IdPermission = 200 + }, + new + { + IdUserRole = 1, + IdPermission = 201 + }, + new + { + IdUserRole = 1, + IdPermission = 202 + }, + new + { + IdUserRole = 1, + IdPermission = 203 + }, + new + { + IdUserRole = 1, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 205 + }, + new + { + IdUserRole = 1, + IdPermission = 206 + }, + new + { + IdUserRole = 1, + IdPermission = 207 + }, + new + { + IdUserRole = 1, + IdPermission = 208 + }, + new + { + IdUserRole = 1, + IdPermission = 209 + }, + new + { + IdUserRole = 1, + IdPermission = 210 + }, + new + { + IdUserRole = 1, + IdPermission = 211 + }, + new + { + IdUserRole = 1, + IdPermission = 212 + }, + new + { + IdUserRole = 1, + IdPermission = 213 + }, + new + { + IdUserRole = 1, + IdPermission = 214 + }, + new + { + IdUserRole = 1, + IdPermission = 215 + }, + new + { + IdUserRole = 1, + IdPermission = 216 + }, + new + { + IdUserRole = 1, + IdPermission = 217 + }, + new + { + IdUserRole = 1, + IdPermission = 218 + }, + new + { + IdUserRole = 1, + IdPermission = 219 + }, + new + { + IdUserRole = 1, + IdPermission = 220 + }, + new + { + IdUserRole = 1, + IdPermission = 221 + }, + new + { + IdUserRole = 1, + IdPermission = 222 + }, + new + { + IdUserRole = 1, + IdPermission = 223 + }, + new + { + IdUserRole = 1, + IdPermission = 224 + }, + new + { + IdUserRole = 1, + IdPermission = 225 + }, + new + { + IdUserRole = 1, + IdPermission = 226 + }, + new + { + IdUserRole = 1, + IdPermission = 227 + }, + new + { + IdUserRole = 1, + IdPermission = 228 + }, + new + { + IdUserRole = 1, + IdPermission = 229 + }, + new + { + IdUserRole = 1, + IdPermission = 230 + }, + new + { + IdUserRole = 1, + IdPermission = 231 + }, + new + { + IdUserRole = 1, + IdPermission = 232 + }, + new + { + IdUserRole = 1, + IdPermission = 233 + }, + new + { + IdUserRole = 1, + IdPermission = 234 + }, + new + { + IdUserRole = 1, + IdPermission = 235 + }, + new + { + IdUserRole = 1, + IdPermission = 236 + }, + new + { + IdUserRole = 1, + IdPermission = 237 + }, + new + { + IdUserRole = 1, + IdPermission = 238 + }, + new + { + IdUserRole = 1, + IdPermission = 239 + }, + new + { + IdUserRole = 1, + IdPermission = 240 + }, + new + { + IdUserRole = 1, + IdPermission = 241 + }, + new + { + IdUserRole = 1, + IdPermission = 242 + }, + new + { + IdUserRole = 1, + IdPermission = 243 + }, + new + { + IdUserRole = 1, + IdPermission = 244 + }, + new + { + IdUserRole = 1, + IdPermission = 245 + }, + new + { + IdUserRole = 1, + IdPermission = 246 + }, + new + { + IdUserRole = 1, + IdPermission = 247 + }, + new + { + IdUserRole = 1, + IdPermission = 248 + }, + new + { + IdUserRole = 1, + IdPermission = 249 + }, + new + { + IdUserRole = 1, + IdPermission = 250 + }, + new + { + IdUserRole = 1, + IdPermission = 251 + }, + new + { + IdUserRole = 1, + IdPermission = 252 + }, + new + { + IdUserRole = 1, + IdPermission = 253 + }, + new + { + IdUserRole = 1, + IdPermission = 254 + }, + new + { + IdUserRole = 1, + IdPermission = 255 + }, + new + { + IdUserRole = 1, + IdPermission = 256 + }, + new + { + IdUserRole = 1, + IdPermission = 257 + }, + new + { + IdUserRole = 1, + IdPermission = 258 + }, + new + { + IdUserRole = 1, + IdPermission = 259 + }, + new + { + IdUserRole = 1, + IdPermission = 260 + }, + new + { + IdUserRole = 1, + IdPermission = 261 + }, + new + { + IdUserRole = 1, + IdPermission = 262 + }, + new + { + IdUserRole = 1, + IdPermission = 263 + }, + new + { + IdUserRole = 1, + IdPermission = 264 + }, + new + { + IdUserRole = 1, + IdPermission = 265 + }, + new + { + IdUserRole = 1, + IdPermission = 266 + }, + new + { + IdUserRole = 1, + IdPermission = 267 + }, + new + { + IdUserRole = 1, + IdPermission = 268 + }, + new + { + IdUserRole = 1, + IdPermission = 269 + }, + new + { + IdUserRole = 1, + IdPermission = 380 + }, + new + { + IdUserRole = 1, + IdPermission = 381 + }, + new + { + IdUserRole = 1, + IdPermission = 382 + }, + new + { + IdUserRole = 1, + IdPermission = 383 + }, + new + { + IdUserRole = 1, + IdPermission = 384 + }, + new + { + IdUserRole = 1, + IdPermission = 385 + }, + new + { + IdUserRole = 1, + IdPermission = 386 + }, + new + { + IdUserRole = 1, + IdPermission = 387 + }, + new + { + IdUserRole = 1, + IdPermission = 388 + }, + new + { + IdUserRole = 1, + IdPermission = 389 + }, + new + { + IdUserRole = 1, + IdPermission = 390 + }, + new + { + IdUserRole = 1, + IdPermission = 391 + }, + new + { + IdUserRole = 1, + IdPermission = 400 + }, + new + { + IdUserRole = 1, + IdPermission = 401 + }, + new + { + IdUserRole = 1, + IdPermission = 407 + }, + new + { + IdUserRole = 1, + IdPermission = 408 + }, + new + { + IdUserRole = 1, + IdPermission = 450 + }, + new + { + IdUserRole = 1, + IdPermission = 460 + }, + new + { + IdUserRole = 1, + IdPermission = 461 + }, + new + { + IdUserRole = 1, + IdPermission = 500 + }, + new + { + IdUserRole = 1, + IdPermission = 501 + }, + new + { + IdUserRole = 1, + IdPermission = 502 + }, + new + { + IdUserRole = 1, + IdPermission = 503 + }, + new + { + IdUserRole = 1, + IdPermission = 504 + }, + new + { + IdUserRole = 1, + IdPermission = 505 + }, + new + { + IdUserRole = 1, + IdPermission = 506 + }, + new + { + IdUserRole = 1, + IdPermission = 507 + }, + new + { + IdUserRole = 1, + IdPermission = 510 + }, + new + { + IdUserRole = 1, + IdPermission = 511 + }, + new + { + IdUserRole = 1, + IdPermission = 512 + }, + new + { + IdUserRole = 1, + IdPermission = 516 + }, + new + { + IdUserRole = 1, + IdPermission = 517 + }, + new + { + IdUserRole = 1, + IdPermission = 518 + }, + new + { + IdUserRole = 1, + IdPermission = 519 + }, + new + { + IdUserRole = 1, + IdPermission = 520 + }, + new + { + IdUserRole = 1, + IdPermission = 521 + }, + new + { + IdUserRole = 1, + IdPermission = 522 + }, + new + { + IdUserRole = 1, + IdPermission = 523 + }, + new + { + IdUserRole = 1, + IdPermission = 524 + }, + new + { + IdUserRole = 1, + IdPermission = 525 + }, + new + { + IdUserRole = 1, + IdPermission = 526 + }, + new + { + IdUserRole = 1, + IdPermission = 527 + }, + new + { + IdUserRole = 1, + IdPermission = 528 + }, + new + { + IdUserRole = 1, + IdPermission = 530 + }, + new + { + IdUserRole = 1, + IdPermission = 531 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdInclude") + .HasColumnType("integer") + .HasColumnName("id_include_user_role"); + + b.HasKey("Id", "IdInclude") + .HasName("t_relation_user_role_user_role_pk"); + + b.HasIndex("IdInclude"); + + b.ToTable("t_relation_user_role_user_role", t => + { + t.HasComment("Отношение ролей к ролям"); + }); + + b.HasData( + new + { + Id = 1101, + IdInclude = 1100 + }, + new + { + Id = 1103, + IdInclude = 1102 + }, + new + { + Id = 1105, + IdInclude = 1104 + }, + new + { + Id = 1107, + IdInclude = 1106 + }, + new + { + Id = 1109, + IdInclude = 1108 + }, + new + { + Id = 1111, + IdInclude = 1110 + }, + new + { + Id = 1114, + IdInclude = 1113 + }, + new + { + Id = 1117, + IdInclude = 1116 + }, + new + { + Id = 1203, + IdInclude = 1202 + }, + new + { + Id = 1207, + IdInclude = 1206 + }, + new + { + Id = 1209, + IdInclude = 1208 + }, + new + { + Id = 1212, + IdInclude = 1211 + }, + new + { + Id = 1214, + IdInclude = 1213 + }, + new + { + Id = 1216, + IdInclude = 1215 + }, + new + { + Id = 1218, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1200 + }, + new + { + Id = 2000, + IdInclude = 1201 + }, + new + { + Id = 2000, + IdInclude = 1202 + }, + new + { + Id = 2000, + IdInclude = 1204 + }, + new + { + Id = 2000, + IdInclude = 1205 + }, + new + { + Id = 2000, + IdInclude = 1206 + }, + new + { + Id = 2000, + IdInclude = 1208 + }, + new + { + Id = 2000, + IdInclude = 1210 + }, + new + { + Id = 2000, + IdInclude = 1211 + }, + new + { + Id = 2000, + IdInclude = 1213 + }, + new + { + Id = 2000, + IdInclude = 1215 + }, + new + { + Id = 2000, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1219 + }, + new + { + Id = 2000, + IdInclude = 1220 + }, + new + { + Id = 2000, + IdInclude = 1221 + }, + new + { + Id = 2000, + IdInclude = 1500 + }, + new + { + Id = 2000, + IdInclude = 1501 + }, + new + { + Id = 2000, + IdInclude = 1502 + }, + new + { + Id = 2001, + IdInclude = 1500 + }, + new + { + Id = 2001, + IdInclude = 1501 + }, + new + { + Id = 2001, + IdInclude = 1502 + }, + new + { + Id = 2002, + IdInclude = 1500 + }, + new + { + Id = 2002, + IdInclude = 1501 + }, + new + { + Id = 2002, + IdInclude = 1502 + }, + new + { + Id = 2003, + IdInclude = 1500 + }, + new + { + Id = 2003, + IdInclude = 1501 + }, + new + { + Id = 2003, + IdInclude = 1502 + }, + new + { + Id = 2004, + IdInclude = 1500 + }, + new + { + Id = 2004, + IdInclude = 1501 + }, + new + { + Id = 2004, + IdInclude = 1502 + }, + new + { + Id = 2005, + IdInclude = 1500 + }, + new + { + Id = 2005, + IdInclude = 1501 + }, + new + { + Id = 2005, + IdInclude = 1502 + }, + new + { + Id = 2006, + IdInclude = 1500 + }, + new + { + Id = 2006, + IdInclude = 1501 + }, + new + { + Id = 2006, + IdInclude = 1502 + }, + new + { + Id = 2007, + IdInclude = 1500 + }, + new + { + Id = 2007, + IdInclude = 1501 + }, + new + { + Id = 2007, + IdInclude = 1502 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.HasKey("IdUser", "IdUserRole"); + + b.HasIndex("IdUserRole"); + + b.ToTable("t_relation_user_user_role", t => + { + t.HasComment("Отношение пользователей и ролей"); + }); + + b.HasData( + new + { + IdUser = 1, + IdUserRole = 1 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Begin") + .HasColumnType("timestamp with time zone") + .HasColumnName("begin"); + + b.Property("End") + .HasColumnType("timestamp with time zone") + .HasColumnName("end") + .HasComment("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer") + .HasColumnName("format") + .HasComment("Формат отчета"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла-родителя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("Step") + .HasColumnType("integer") + .HasColumnName("step") + .HasComment("размер шага в секундах"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdWell"); + + b.ToTable("t_report_property", t => + { + t.HasComment("Отчеты с данными по буровым"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DrillEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_end") + .HasComment("Конец вахты"); + + b.Property("DrillStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_start") + .HasComment("Начало вахты"); + + b.Property("IdDriller") + .HasColumnType("integer") + .HasColumnName("id_driller") + .HasComment("Идентификатор бурильщика"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Идентификатор скважины"); + + b.Property("ShiftEnd") + .HasColumnType("time without time zone") + .HasColumnName("shift_end") + .HasComment("Конец смены"); + + b.Property("ShiftStart") + .HasColumnType("time without time zone") + .HasColumnName("shift_start") + .HasComment("Начало смены"); + + b.HasKey("Id"); + + b.HasIndex("IdDriller"); + + b.HasIndex("IdWell"); + + b.ToTable("t_schedule", t => + { + t.HasComment("График работы бурильщика"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("комментарий для оператора"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("ObsolescenceSec") + .HasColumnType("integer") + .HasColumnName("obsolescence") + .HasComment("сек. до устаревания"); + + b.Property("Setpoints") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("setpoint_set") + .HasComment("Набор уставок"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdWell"); + + b.ToTable("t_setpoints_rquest", t => + { + t.HasComment("Запросы на изменение уставок панели оператора"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Subsystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_subsystem", t => + { + t.HasComment("Описание подсистем"); + }); + + b.HasData( + new + { + Id = 1, + Description = "Совместная работа режимов \"Бурение в роторе\" и \"Бурение в слайде\"", + Name = "АПД" + }, + new + { + Id = 11, + Description = "Режим работы \"Бурение в роторе\"", + Name = "АПД ротор" + }, + new + { + Id = 12, + Description = "Режим работы \"Бурение в слайде\"", + Name = "АПД слайд" + }, + new + { + Id = 65536, + Description = "Осцилляция", + Name = "Осцилляция" + }, + new + { + Id = 65537, + Description = "Демпфер", + Name = "Демпфер" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Info") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("info") + .HasComment("Информация с панели о скважине"); + + b.Property("RemoteUid") + .IsRequired() + .HasColumnType("text") + .HasColumnName("remote_uid") + .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв."); + + b.Property("TimeZone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); + + b.ToTable("t_telemetry", t => + { + t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("AxialLoad") + .HasColumnType("real") + .HasColumnName("axial_load") + .HasComment("Осевая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("real") + .HasColumnName("axial_load_limit_max") + .HasComment("Осевая нагрузка. Аварийная макс."); + + b.Property("AxialLoadSp") + .HasColumnType("real") + .HasColumnName("axial_load_sp") + .HasComment("Осевая нагрузка. Задание"); + + b.Property("BitDepth") + .HasColumnType("real") + .HasColumnName("bit_depth") + .HasComment("Положение инструмента"); + + b.Property("BlockPosition") + .HasColumnType("real") + .HasColumnName("block_position") + .HasComment("Высота талевого блока"); + + b.Property("BlockPositionMax") + .HasColumnType("real") + .HasColumnName("block_position_max") + .HasComment("Талевый блок. Макс положение"); + + b.Property("BlockPositionMin") + .HasColumnType("real") + .HasColumnName("block_position_min") + .HasComment("Талевый блок. Мин положение"); + + b.Property("BlockSpeed") + .HasColumnType("real") + .HasColumnName("block_speed") + .HasComment("Скорость талевого блока"); + + b.Property("BlockSpeedSp") + .HasColumnType("real") + .HasColumnName("block_speed_sp") + .HasComment("Скорости талевого блока. Задание"); + + b.Property("BlockSpeedSpDevelop") + .HasColumnType("real") + .HasColumnName("block_speed_sp_develop") + .HasComment("Талевый блок. Задание скорости для проработки"); + + b.Property("BlockSpeedSpRotor") + .HasColumnType("real") + .HasColumnName("block_speed_sp_rotor") + .HasComment("Талевый блок. Задание скорости для роторного бурения"); + + b.Property("BlockSpeedSpSlide") + .HasColumnType("real") + .HasColumnName("block_speed_sp_slide") + .HasComment("Талевый блок. Задание скорости для режима слайда"); + + b.Property("Flow") + .HasColumnType("real") + .HasColumnName("flow") + .HasComment("Расход"); + + b.Property("FlowDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("flow_delta_limit_max") + .HasComment("Расход. Аварийный макс."); + + b.Property("FlowIdle") + .HasColumnType("real") + .HasColumnName("flow_idle") + .HasComment("Расход. Холостой ход"); + + b.Property("HookWeight") + .HasColumnType("real") + .HasColumnName("hook_weight") + .HasComment("Вес на крюке"); + + b.Property("HookWeightIdle") + .HasColumnType("real") + .HasColumnName("hook_weight_idle") + .HasComment("Вес на крюке. Холостой ход"); + + b.Property("HookWeightLimitMax") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_max") + .HasComment("Вес на крюке. Затяжка"); + + b.Property("HookWeightLimitMin") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_min") + .HasComment("Вес на крюке. Посадка"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Текущий критерий бурения"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Пользователь САУБ"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Режим САУБ"); + + b.Property("Mse") + .HasColumnType("real") + .HasColumnName("mse") + .HasComment("MSE"); + + b.Property("MseState") + .HasColumnType("smallint") + .HasColumnName("mse_state") + .HasComment("Текущее состояние работы MSE"); + + b.Property("Pressure") + .HasColumnType("real") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("pressure_delta_limit_max") + .HasComment("Давление дифф. Аварийное макс."); + + b.Property("PressureIdle") + .HasColumnType("real") + .HasColumnName("pressure_idle") + .HasComment("Давление. Холостой ход"); + + b.Property("PressureSp") + .HasColumnType("real") + .HasColumnName("pressure_sp") + .HasComment("Давление. Задание"); + + b.Property("PressureSpDevelop") + .HasColumnType("real") + .HasColumnName("pressure_sp_develop") + .HasComment("Давление. Задание для проработки"); + + b.Property("PressureSpRotor") + .HasColumnType("real") + .HasColumnName("pressure_sp_rotor") + .HasComment("Давление. Задание для роторного бурения"); + + b.Property("PressureSpSlide") + .HasColumnType("real") + .HasColumnName("pressure_sp_slide") + .HasComment("Давление. Задание для режима слайда"); + + b.Property("Pump0Flow") + .HasColumnType("real") + .HasColumnName("pump0_flow") + .HasComment("Расход. Буровой насос 1"); + + b.Property("Pump1Flow") + .HasColumnType("real") + .HasColumnName("pump1_flow") + .HasComment("Расход. Буровой насос 2"); + + b.Property("Pump2Flow") + .HasColumnType("real") + .HasColumnName("pump2_flow") + .HasComment("Расход. Буровой насос 3"); + + b.Property("RotorSpeed") + .HasColumnType("real") + .HasColumnName("rotor_speed") + .HasComment("Обороты ротора"); + + b.Property("RotorTorque") + .HasColumnType("real") + .HasColumnName("rotor_torque") + .HasComment("Момент на роторе"); + + b.Property("RotorTorqueIdle") + .HasColumnType("real") + .HasColumnName("rotor_torque_idle") + .HasComment("Момент на роторе. Холостой ход"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("real") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Момент на роторе. Аварийный макс."); + + b.Property("RotorTorqueSp") + .HasColumnType("real") + .HasColumnName("rotor_torque_sp") + .HasComment("Момент на роторе. Задание"); + + b.Property("WellDepth") + .HasColumnType("real") + .HasColumnName("well_depth") + .HasComment("Глубина забоя"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_saub", t => + { + t.HasComment("набор основных данных по SAUB"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaubStat", b => + { + b.Property("Count") + .HasColumnType("bigint") + .HasColumnName("count_items"); + + b.Property("DateMax") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_max"); + + b.Property("DateMin") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_min"); + + b.Property("DepthMax") + .HasColumnType("real") + .HasColumnName("depth_max"); + + b.Property("DepthMin") + .HasColumnType("real") + .HasColumnName("depth_min"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.ToTable((string)null); + + b.ToView("mw_telemetry_datas_saub_stat", (string)null); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Выбранный режим управления"); + + b.Property("PositionRight") + .HasColumnType("real") + .HasColumnName("position_right") + .HasComment("Крайний правый угол осцилляции"); + + b.Property("PositionZero") + .HasColumnType("real") + .HasColumnName("position_zero") + .HasComment("Нулевая позиция осцилляции"); + + b.Property("RevolsLeftLimit") + .HasColumnType("real") + .HasColumnName("revols_left_limit") + .HasComment("Ограничение числа оборотов влево"); + + b.Property("RevolsLeftTotal") + .HasColumnType("real") + .HasColumnName("revols_left_total") + .HasComment("Суммарное количество оборотов влево"); + + b.Property("RevolsRightLimit") + .HasColumnType("real") + .HasColumnName("revols_right_limit") + .HasComment("Ограничение числа оборотов вправо"); + + b.Property("RevolsRightTotal") + .HasColumnType("real") + .HasColumnName("revols_right_total") + .HasComment("Суммарное количество оборотов вправо"); + + b.Property("SpeedLeftSp") + .HasColumnType("real") + .HasColumnName("speed_left_sp") + .HasComment("Заданная скорость вращения влево"); + + b.Property("SpeedRightSp") + .HasColumnType("real") + .HasColumnName("speed_right_sp") + .HasComment("Заданная скорость вращения вправо"); + + b.Property("State") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("Переменная этапа"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_spin", t => + { + t.HasComment("набор основных данных по SpinMaster"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.Property("MessageTemplate") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message_template"); + + b.HasKey("IdTelemetry", "IdEvent"); + + b.ToTable("t_telemetry_event", t => + { + t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Arg0") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg0") + .HasComment("Аргумент №0 для вставки в шаблон сообщения"); + + b.Property("Arg1") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg1"); + + b.Property("Arg2") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg2"); + + b.Property("Arg3") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg3"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdTelemetryUser") + .HasColumnType("integer") + .HasColumnName("id_telemetry_user") + .HasComment("Пользователь панели отправляющей телеметрию. не пользователь облака."); + + b.Property("WellDepth") + .HasColumnType("double precision") + .HasColumnName("well_depth"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_telemetry_message", t => + { + t.HasComment("Сообщения на буровых"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname"); + + b.HasKey("IdTelemetry", "IdUser"); + + b.ToTable("t_telemetry_user", t => + { + t.HasComment("Пользователи панели САУБ. Для сообщений."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryWirelineRunOut", b => + { + b.Property("IdTelemetry") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdTelemetry")); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_time") + .HasComment("Отметка времени"); + + b.Property("Hauling") + .HasColumnType("real") + .HasColumnName("hauling") + .HasComment("Наработка талевого каната с момента перетяжки каната, т*км"); + + b.Property("HaulingWarnSp") + .HasColumnType("real") + .HasColumnName("hauling_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости перетяжки, т*км"); + + b.Property("Replace") + .HasColumnType("real") + .HasColumnName("replace") + .HasComment("Наработка талевого каната с момента замены каната, т*км"); + + b.Property("ReplaceWarnSp") + .HasColumnType("real") + .HasColumnName("replace_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости замены, т*км"); + + b.HasKey("IdTelemetry"); + + b.ToTable("t_telemetry_wireline_run_out", t => + { + t.HasComment("Наработка талевого каната"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_fact", t => + { + t.HasComment("Загрузка фактической траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("Radius") + .HasColumnType("double precision") + .HasColumnName("radius") + .HasComment("Радиус цели"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_plan", t => + { + t.HasComment("Загрузка плановой траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("должность"); + + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdState") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("login"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("имя"); + + b.Property("PasswordHash") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("password_hash") + .HasComment("соленый хэш пароля.\nпервые 5 символов - соль"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("отчество"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("email"); + + b.Property("Surname") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("фамилия"); + + b.HasKey("Id"); + + b.HasIndex("IdCompany"); + + b.HasIndex("Login") + .IsUnique(); + + b.ToTable("t_user", t => + { + t.HasComment("Пользователи облака"); + }); + + b.HasData( + new + { + Id = 1, + Email = "", + IdCompany = 1, + IdState = (short)1, + Login = "dev", + Name = "Разработчик", + PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0-роль из стандартной матрицы, \n1-специальная роль для какого-либо пользователя"); + + b.HasKey("Id"); + + b.ToTable("t_user_role", t => + { + t.HasComment("Роли пользователей в системе"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "root", + IdType = 1 + }, + new + { + Id = 1100, + Caption = "admin_cluster.view", + IdType = 1 + }, + new + { + Id = 1101, + Caption = "admin_cluster.edit", + IdType = 1 + }, + new + { + Id = 1102, + Caption = "admin_company.view", + IdType = 1 + }, + new + { + Id = 1103, + Caption = "admin_company.edit", + IdType = 1 + }, + new + { + Id = 1104, + Caption = "admin_company_type.view", + IdType = 1 + }, + new + { + Id = 1105, + Caption = "admin_company_type.edit", + IdType = 1 + }, + new + { + Id = 1106, + Caption = "admin_deposit.view", + IdType = 1 + }, + new + { + Id = 1107, + Caption = "admin_deposit.edit", + IdType = 1 + }, + new + { + Id = 1108, + Caption = "admin_permission.view", + IdType = 1 + }, + new + { + Id = 1109, + Caption = "admin_permission.edit", + IdType = 1 + }, + new + { + Id = 1110, + Caption = "admin_role.view", + IdType = 1 + }, + new + { + Id = 1111, + Caption = "admin_role.edit", + IdType = 1 + }, + new + { + Id = 1112, + Caption = "admin_telemetry.view", + IdType = 1 + }, + new + { + Id = 1113, + Caption = "admin_user.view", + IdType = 1 + }, + new + { + Id = 1114, + Caption = "admin_user.edit", + IdType = 1 + }, + new + { + Id = 1115, + Caption = "admin_visit_log.view", + IdType = 1 + }, + new + { + Id = 1116, + Caption = "admin_well.view", + IdType = 1 + }, + new + { + Id = 1117, + Caption = "admin_well.edit", + IdType = 1 + }, + new + { + Id = 1200, + Caption = "archive.view", + IdType = 1 + }, + new + { + Id = 1201, + Caption = "cluster.view", + IdType = 1 + }, + new + { + Id = 1202, + Caption = "composite.view", + IdType = 1 + }, + new + { + Id = 1203, + Caption = "composite.edit", + IdType = 1 + }, + new + { + Id = 1204, + Caption = "deposit.view", + IdType = 1 + }, + new + { + Id = 1205, + Caption = "document.view", + IdType = 1 + }, + new + { + Id = 1206, + Caption = "drillProcessFlow.view", + IdType = 1 + }, + new + { + Id = 1207, + Caption = "drillProcessFlow.edit", + IdType = 1 + }, + new + { + Id = 1208, + Caption = "measure.view", + IdType = 1 + }, + new + { + Id = 1209, + Caption = "measure.edit", + IdType = 1 + }, + new + { + Id = 1210, + Caption = "message.view", + IdType = 1 + }, + new + { + Id = 1211, + Caption = "operations.view", + IdType = 1 + }, + new + { + Id = 1212, + Caption = "operations.edit", + IdType = 1 + }, + new + { + Id = 1213, + Caption = "params.view", + IdType = 1 + }, + new + { + Id = 1214, + Caption = "params.edit", + IdType = 1 + }, + new + { + Id = 1215, + Caption = "report.view", + IdType = 1 + }, + new + { + Id = 1216, + Caption = "report.edit", + IdType = 1 + }, + new + { + Id = 1217, + Caption = "setpoints.view", + IdType = 1 + }, + new + { + Id = 1218, + Caption = "setpoints.edit", + IdType = 1 + }, + new + { + Id = 1219, + Caption = "telemetry.view", + IdType = 1 + }, + new + { + Id = 1220, + Caption = "telemetryAnalysis.view", + IdType = 1 + }, + new + { + Id = 1221, + Caption = "well.view", + IdType = 1 + }, + new + { + Id = 1500, + Caption = "Просмотр всего", + IdType = 1 + }, + new + { + Id = 1501, + Caption = "file.edit", + IdType = 1 + }, + new + { + Id = 1502, + Caption = "drillingProgram.edit", + IdType = 1 + }, + new + { + Id = 2000, + Caption = "Заказчик", + IdType = 0 + }, + new + { + Id = 2001, + Caption = "Супервайзер", + IdType = 0 + }, + new + { + Id = 2002, + Caption = "Буровой подрядчик", + IdType = 0 + }, + new + { + Id = 2003, + Caption = "Растворщик", + IdType = 0 + }, + new + { + Id = 2004, + Caption = "Телеметрист", + IdType = 0 + }, + new + { + Id = 2005, + Caption = "Долотный сервис", + IdType = 0 + }, + new + { + Id = 2006, + Caption = "ГТИ", + IdType = 0 + }, + new + { + Id = 2007, + Caption = "Цементирование", + IdType = 0 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Key") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("key") + .HasComment("Ключ настроек пользователя"); + + b.Property("Value") + .HasColumnType("jsonb") + .HasColumnName("setting_value") + .HasComment("Значение настроек пользователя"); + + b.HasKey("IdUser", "Key"); + + b.ToTable("t_user_settings", t => + { + t.HasComment("настройки интерфейса пользователя"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.RecordBase", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Actcod") + .HasColumnType("smallint") + .HasColumnName("ACTCOD"); + + b.Property("Date") + .HasColumnType("integer") + .HasColumnName("DATE"); + + b.Property("Recid") + .HasColumnType("smallint") + .HasColumnName("RECID"); + + b.Property("Seqid") + .HasColumnType("integer") + .HasColumnName("SEQID"); + + b.Property("Stknum") + .HasColumnType("smallint") + .HasColumnName("STKNUM"); + + b.Property("Time") + .HasColumnType("integer") + .HasColumnName("TIME"); + + b.Property("Wellid") + .HasColumnType("text") + .HasColumnName("WELLID"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_wits_base"); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCluster") + .HasColumnType("integer") + .HasColumnName("id_cluster"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("0 - неизвестно, 1 - в работе, 2 - завершена"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdWellType") + .HasColumnType("integer") + .HasColumnName("id_well_type"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdCluster"); + + b.HasIndex("IdTelemetry") + .IsUnique(); + + b.HasIndex("IdWellType"); + + b.ToTable("t_well", t => + { + t.HasComment("скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины получателя"); + + b.Property("IdWellSrc") + .HasColumnType("integer") + .HasColumnName("id_well_src") + .HasComment("Id скважины композита"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции композита"); + + b.HasKey("IdWell", "IdWellSrc", "IdWellSectionType"); + + b.HasIndex("IdWellSectionType"); + + b.HasIndex("IdWellSrc"); + + b.ToTable("t_well_composite", t => + { + t.HasComment("Композитная скважина"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.HasKey("IdWell", "IdUser", "IdCategory") + .HasName("t_well_final_documents_pk"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_well_final_documents", t => + { + t.HasComment("Дело скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CategoryInfo") + .HasColumnType("text") + .HasColumnName("category_info") + .HasComment("Доп. информация к выбраной категории"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("DurationHours") + .HasColumnType("double precision") + .HasColumnName("duration_hours") + .HasComment("Продолжительность, часы"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdPlan") + .HasColumnType("integer") + .HasColumnName("id_plan") + .HasComment("Id плановой операции"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0 = План или 1 = Факт"); + + b.Property("IdUser") + .HasColumnType("integer"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции скважины"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("DateStart"); + + b.HasIndex("DepthEnd"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdPlan"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_well_operation", t => + { + t.HasComment("Данные по операциям на скважине"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("id родительской категории"); + + b.Property("IsHidden") + .HasColumnType("boolean"); + + b.Property("KeyValueName") + .HasMaxLength(32) + .HasColumnType("character varying(32)") + .HasColumnName("key_value_name") + .HasComment("Название ключевого показателя операции"); + + b.Property("KeyValueUnits") + .HasMaxLength(16) + .HasColumnType("character varying(16)") + .HasColumnName("key_value_units") + .HasComment("Единицы измерения ключевого показателя операции"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории операции"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_well_operation_category", t => + { + t.HasComment("Справочник операций на скважине"); + }); + + b.HasData( + new + { + Id = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "БУРЕНИЕ" + }, + new + { + Id = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КРЕПЛЕНИЕ" + }, + new + { + Id = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГФР" + }, + new + { + Id = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные операции" + }, + new + { + Id = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Непроизводительное время (НПВ)" + }, + new + { + Id = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные работы" + }, + new + { + Id = 4000, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КНБК" + }, + new + { + Id = 4001, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "Механическое. бурение" + }, + new + { + Id = 4002, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Статический замер" + }, + new + { + Id = 4003, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Нормализация диаметра скважины" + }, + new + { + Id = 4004, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 4005, + IdParent = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4006, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск обсадной колонны" + }, + new + { + Id = 4018, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Крепление" + }, + new + { + Id = 4007, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 4008, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы при креплении" + }, + new + { + Id = 4009, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка/разборка приборов ГИС" + }, + new + { + Id = 4010, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4011, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГИС" + }, + new + { + Id = 4012, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка, ОБР" + }, + new + { + Id = 4013, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы" + }, + new + { + Id = 4014, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт оборудования" + }, + new + { + Id = 4015, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Аварийные работы" + }, + new + { + Id = 4016, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Осложнение" + }, + new + { + Id = 4017, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Незаложенные в ГГД операции" + }, + new + { + Id = 4019, + IdParent = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные операции" + }, + new + { + Id = 5000, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка КНБК" + }, + new + { + Id = 5001, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка КНБК" + }, + new + { + Id = 5002, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение слайдом" + }, + new + { + Id = 5003, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение ротором" + }, + new + { + Id = 5004, + IdParent = 4002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Замер ЗТС (запись MWD)" + }, + new + { + Id = 5005, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка перед наращиванием" + }, + new + { + Id = 5006, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка во время бурения" + }, + new + { + Id = 5007, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка" + }, + new + { + Id = 5008, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка во время бурения" + }, + new + { + Id = 5009, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка перед наращиванием" + }, + new + { + Id = 5010, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 5011, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Удержание в клиньях" + }, + new + { + Id = 5012, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем инструмента" + }, + new + { + Id = 5013, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем КНБК" + }, + new + { + Id = 5014, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента" + }, + new + { + Id = 5015, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КНБК" + }, + new + { + Id = 5016, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка при спуске ОК" + }, + new + { + Id = 5017, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск ОК" + }, + new + { + Id = 5018, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ОЗЦ" + }, + new + { + Id = 5019, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 5020, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка БИ" + }, + new + { + Id = 5021, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ОК" + }, + new + { + Id = 5022, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при спуске ОК" + }, + new + { + Id = 5023, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при цементировании" + }, + new + { + Id = 5024, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка комплекса приборов ГИС" + }, + new + { + Id = 5025, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка комплекса приборов ГИС" + }, + new + { + Id = 5026, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем приборов ГИС (на трубах)" + }, + new + { + Id = 5027, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск приборов ГИС (на трубах)" + }, + new + { + Id = 5028, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на жестком кабеле" + }, + new + { + Id = 5029, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на кабеле" + }, + new + { + Id = 5030, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на трубах" + }, + new + { + Id = 5031, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Закачка/прокачка пачки" + }, + new + { + Id = 5032, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка БР" + }, + new + { + Id = 5033, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование ТС при бурении" + }, + new + { + Id = 5034, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перезапись гаммы-каротажа" + }, + new + { + Id = 5035, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Приготовление БР" + }, + new + { + Id = 5036, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка" + }, + new + { + Id = 5037, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разбуривание тех.оснастки" + }, + new + { + Id = 5038, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента с проработкой" + }, + new + { + Id = 5039, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ВМР" + }, + new + { + Id = 5040, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Демонтаж ПВО" + }, + new + { + Id = 5041, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Долив затруба при подъёме" + }, + new + { + Id = 5042, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж ПВО" + }, + new + { + Id = 5043, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наработка жёлоба" + }, + new + { + Id = 5044, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обвязка устья с циркуляционной системой" + }, + new + { + Id = 5045, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Оборудование устья" + }, + new + { + Id = 5046, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ПВО" + }, + new + { + Id = 5047, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перемонтаж ПВО " + }, + new + { + Id = 5048, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перетяжка талевого каната" + }, + new + { + Id = 5049, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при сборке КНБК" + }, + new + { + Id = 5050, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Полная замена талевого каната" + }, + new + { + Id = 5051, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПР перед забуркой направления" + }, + new + { + Id = 5052, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Продувка манифольда" + }, + new + { + Id = 5053, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Срезка" + }, + new + { + Id = 5054, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тайм-дриллинг" + }, + new + { + Id = 5055, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тех.отстой" + }, + new + { + Id = 5056, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Учебная тревога \"Выброс\"" + }, + new + { + Id = 5057, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Чистка ЦСГО/емкостного блока" + }, + new + { + Id = 5058, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт бурового оборудования" + }, + new + { + Id = 5059, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ловильные работы" + }, + new + { + Id = 5060, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ожидание" + }, + new + { + Id = 5061, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Определение места прихвата и ЛМ" + }, + new + { + Id = 5062, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа яссом" + }, + new + { + Id = 5063, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расхаживание" + }, + new + { + Id = 5064, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - колокол" + }, + new + { + Id = 5065, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - метчик" + }, + new + { + Id = 5066, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - овершот" + }, + new + { + Id = 5067, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - труболовка" + }, + new + { + Id = 5068, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (встряхивание)" + }, + new + { + Id = 5069, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (отстрел)" + }, + new + { + Id = 5070, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Установка ванн" + }, + new + { + Id = 5071, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Фрезеровка" + }, + new + { + Id = 5072, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Контролируемое ГНВП" + }, + new + { + Id = 5073, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Поглощение" + }, + new + { + Id = 5074, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сальникообразование" + }, + new + { + Id = 5075, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Утяжеление БР" + }, + new + { + Id = 5076, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "НПВ / прочее" + }, + new + { + Id = 5077, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка раствора (несоответствие параметров)" + }, + new + { + Id = 5078, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "подъем ОК" + }, + new + { + Id = 5079, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ревизия КНБК/инструмента/ЗТС" + }, + new + { + Id = 5082, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка устройства ориентирования КО" + }, + new + { + Id = 5083, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка принудительная" + }, + new + { + Id = 5084, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка подъем БИ, продувка" + }, + new + { + Id = 5085, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск бурильного инструмента со сборкой с мостков" + }, + new + { + Id = 5086, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем БИ с выбросом на мостки" + }, + new + { + Id = 5087, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск БИ со сборкой с мостков" + }, + new + { + Id = 5088, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка и спуск ТБТ" + }, + new + { + Id = 5089, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КО на транспортной колонне" + }, + new + { + Id = 5090, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Отворот допускной трубы" + }, + new + { + Id = 5091, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески, опрессовка" + }, + new + { + Id = 5092, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж, опрессовка ФА" + }, + new + { + Id = 5093, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка хвостовика 114мм (согласно схеме)" + }, + new + { + Id = 5094, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР к спуску УЭЦН" + }, + new + { + Id = 5095, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески (потайной колонны, хвостовика)" + }, + new + { + Id = 5096, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование перед спуском" + }, + new + { + Id = 5097, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка - перевод скважины на новый раствор" + }, + new + { + Id = 5098, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка БИ с мостков на подсвечник" + }, + new + { + Id = 5099, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО." + }, + new + { + Id = 5100, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Смена рабочего переводника ВСП" + }, + new + { + Id = 5101, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт" + }, + new + { + Id = 5102, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск пакера" + }, + new + { + Id = 5103, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Запись гамма-каратожа" + }, + new + { + Id = 5104, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование спуск БИ" + }, + new + { + Id = 5105, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка клин-отклонителя" + }, + new + { + Id = 5106, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и посадка клина-отклонителя" + }, + new + { + Id = 5107, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Протяжка подъемного патрубка подвески" + }, + new + { + Id = 5108, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем клина-отклонителя" + }, + new + { + Id = 5109, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Стыковка стингера с хвостовиком основного ствола" + }, + new + { + Id = 5110, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и установка стыковочного узла хвостовика" + }, + new + { + Id = 5111, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение с отбором керна" + }, + new + { + Id = 5112, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа пакером в обсадной колонне" + }, + new + { + Id = 5113, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение" + }, + new + { + Id = 5114, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ТО оборудования" + }, + new + { + Id = 5115, + IdParent = 4019, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск НКТ" + }, + new + { + Id = 5116, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вырезка окна" + }, + new + { + Id = 5117, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расширение ствола" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("Order") + .HasColumnType("real") + .HasColumnName("order") + .HasComment("Порядок"); + + b.HasKey("Id"); + + b.ToTable("t_well_section_type", t => + { + t.HasComment("конструкция секции скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Пилотный ствол", + Order = 4f + }, + new + { + Id = 2, + Caption = "Направление", + Order = 0f + }, + new + { + Id = 3, + Caption = "Кондуктор", + Order = 1f + }, + new + { + Id = 4, + Caption = "Эксплуатационная колонна", + Order = 3f + }, + new + { + Id = 5, + Caption = "Транспортный ствол", + Order = 5f + }, + new + { + Id = 6, + Caption = "Хвостовик", + Order = 6f + }, + new + { + Id = 7, + Caption = "Пилотный ствол 2", + Order = 4.1f + }, + new + { + Id = 8, + Caption = "Направление 2", + Order = 0.1f + }, + new + { + Id = 9, + Caption = "Кондуктор 2", + Order = 1.1f + }, + new + { + Id = 10, + Caption = "Эксплуатационная колонна 2", + Order = 3.1f + }, + new + { + Id = 11, + Caption = "Транспортный ствол 2", + Order = 5.1f + }, + new + { + Id = 12, + Caption = "Хвостовик 2", + Order = 6.1f + }, + new + { + Id = 13, + Caption = "Пилотный ствол 3", + Order = 4.2f + }, + new + { + Id = 14, + Caption = "Направление 3", + Order = 0.2f + }, + new + { + Id = 15, + Caption = "Кондуктор 3", + Order = 1.2f + }, + new + { + Id = 16, + Caption = "Эксплуатационная колонна 3", + Order = 3.2f + }, + new + { + Id = 17, + Caption = "Транспортный ствол 3", + Order = 5.2f + }, + new + { + Id = 18, + Caption = "Хвостовик 3", + Order = 6.2f + }, + new + { + Id = 19, + Caption = "Пилотный ствол 4", + Order = 4.3f + }, + new + { + Id = 20, + Caption = "Направление 4", + Order = 0.3f + }, + new + { + Id = 21, + Caption = "Кондуктор 4", + Order = 1.3f + }, + new + { + Id = 22, + Caption = "Эксплуатационная колонна 4", + Order = 3.3f + }, + new + { + Id = 23, + Caption = "Транспортный ствол 4", + Order = 5.3f + }, + new + { + Id = 24, + Caption = "Хвостовик 4", + Order = 6.3f + }, + new + { + Id = 25, + Caption = "Пилотный ствол 5", + Order = 4.4f + }, + new + { + Id = 26, + Caption = "Направление 5", + Order = 0.4f + }, + new + { + Id = 27, + Caption = "Кондуктор 5", + Order = 1.4f + }, + new + { + Id = 28, + Caption = "Эксплуатационная колонна 5", + Order = 3.4f + }, + new + { + Id = 29, + Caption = "Транспортный ствол 5", + Order = 5.4f + }, + new + { + Id = 30, + Caption = "Хвостовик 5", + Order = 6.4f + }, + new + { + Id = 31, + Caption = "Техническая колонна", + Order = 2f + }, + new + { + Id = 32, + Caption = "Техническая колонна 2", + Order = 2.1f + }, + new + { + Id = 33, + Caption = "Техническая колонна 3", + Order = 2.2f + }, + new + { + Id = 34, + Caption = "Хвостовик 6", + Order = 6.5f + }, + new + { + Id = 35, + Caption = "Хвостовик 7", + Order = 6.6f + }, + new + { + Id = 36, + Caption = "Хвостовик 8", + Order = 6.7f + }, + new + { + Id = 37, + Caption = "Хвостовик 9", + Order = 6.8f + }, + new + { + Id = 38, + Caption = "Хвостовик 10", + Order = 6.9f + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина бурения, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Начальная глубина бурения, м"); + + b.Property("IdSectionType") + .HasColumnType("integer") + .HasColumnName("id_section_type") + .HasComment("Тип секции"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("InnerDiameter") + .HasColumnType("double precision") + .HasColumnName("inner_diameter") + .HasComment("Внутренний диаметр"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("OuterDiameter") + .HasColumnType("double precision") + .HasColumnName("outer_diameter") + .HasComment("Внешний диаметр"); + + b.HasKey("Id"); + + b.HasIndex("IdSectionType"); + + b.HasIndex("IdWell", "IdSectionType") + .IsUnique(); + + b.ToTable("t_well_section_plan"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_well_type", t => + { + t.HasComment("конструкция скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Наклонно-направленная" + }, + new + { + Id = 2, + Caption = "Горизонтальная" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Blkpos") + .HasColumnType("real") + .HasColumnName("BLKPOS"); + + b.Property("Chkp") + .HasColumnType("real") + .HasColumnName("CHKP"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptretm") + .HasColumnType("real") + .HasColumnName("DEPTRETM"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Gasa") + .HasColumnType("real") + .HasColumnName("GASA"); + + b.Property("Hkla") + .HasColumnType("real") + .HasColumnName("HKLA"); + + b.Property("Hklx") + .HasColumnType("real") + .HasColumnName("HKLX"); + + b.Property("Lagstks") + .HasColumnType("smallint") + .HasColumnName("LAGSTKS"); + + b.Property("Mcia") + .HasColumnType("real") + .HasColumnName("MCIA"); + + b.Property("Mcoa") + .HasColumnType("real") + .HasColumnName("MCOA"); + + b.Property("Mdia") + .HasColumnType("real") + .HasColumnName("MDIA"); + + b.Property("Mdoa") + .HasColumnType("real") + .HasColumnName("MDOA"); + + b.Property("Mfia") + .HasColumnType("real") + .HasColumnName("MFIA"); + + b.Property("Mfoa") + .HasColumnType("real") + .HasColumnName("MFOA"); + + b.Property("Mfop") + .HasColumnType("smallint") + .HasColumnName("MFOP"); + + b.Property("Mtia") + .HasColumnType("real") + .HasColumnName("MTIA"); + + b.Property("Mtoa") + .HasColumnType("real") + .HasColumnName("MTOA"); + + b.Property("Ropa") + .HasColumnType("real") + .HasColumnName("ROPA"); + + b.Property("Rpma") + .HasColumnType("smallint") + .HasColumnName("RPMA"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spm1") + .HasColumnType("smallint") + .HasColumnName("SPM1"); + + b.Property("Spm2") + .HasColumnType("smallint") + .HasColumnName("SPM2"); + + b.Property("Spm3") + .HasColumnType("smallint") + .HasColumnName("SPM3"); + + b.Property("Sppa") + .HasColumnType("real") + .HasColumnName("SPPA"); + + b.Property("Stkc") + .HasColumnType("integer") + .HasColumnName("STKC"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.Property("Torqa") + .HasColumnType("real") + .HasColumnName("TORQA"); + + b.Property("Torqx") + .HasColumnType("real") + .HasColumnName("TORQX"); + + b.Property("Tvolact") + .HasColumnType("real") + .HasColumnName("TVOLACT"); + + b.Property("Tvolcact") + .HasColumnType("real") + .HasColumnName("TVOLCACT"); + + b.Property("Woba") + .HasColumnType("real") + .HasColumnName("WOBA"); + + b.Property("Wobx") + .HasColumnType("real") + .HasColumnName("WOBX"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_1"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("DeptmeasGdpMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_GDP_mc"); + + b.Property("DeptmeasMcrstat") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_MCRSTAT"); + + b.Property("DeptmeasRa33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33_mc"); + + b.Property("DeptmeasRa33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F2_mc"); + + b.Property("DeptmeasRa33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F4_mc"); + + b.Property("DeptmeasRp33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33_mc"); + + b.Property("DeptmeasRp33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F2_mc"); + + b.Property("DeptmeasRp33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F4_mc"); + + b.Property("DeptmeasSlvlMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_SLVL_mc"); + + b.Property("GdpMc") + .HasColumnType("real") + .HasColumnName("GDP_mc"); + + b.Property("Mcrstat") + .HasColumnType("real") + .HasColumnName("MCRSTAT"); + + b.Property("Ra33Mc") + .HasColumnType("real") + .HasColumnName("RA33_mc"); + + b.Property("Ra33f2Mc") + .HasColumnType("real") + .HasColumnName("RA33F2_mc"); + + b.Property("Ra33f4Mc") + .HasColumnType("real") + .HasColumnName("RA33F4_mc"); + + b.Property("Rp33Mc") + .HasColumnType("real") + .HasColumnName("RP33_mc"); + + b.Property("Rp33f2Mc") + .HasColumnType("real") + .HasColumnName("RP33F2_mc"); + + b.Property("Rp33f4Mc") + .HasColumnType("real") + .HasColumnName("RP33F4_mc"); + + b.Property("SlvlMc") + .HasColumnType("real") + .HasColumnName("SLVL_mc"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_50"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Btot") + .HasColumnType("real") + .HasColumnName("Btot"); + + b.Property("Bx") + .HasColumnType("real") + .HasColumnName("Bx"); + + b.Property("By") + .HasColumnType("real") + .HasColumnName("By"); + + b.Property("Bz") + .HasColumnType("real") + .HasColumnName("Bz"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Gtot") + .HasColumnType("real") + .HasColumnName("Gtot"); + + b.Property("Gx") + .HasColumnType("real") + .HasColumnName("Gx"); + + b.Property("Gy") + .HasColumnType("real") + .HasColumnName("Gy"); + + b.Property("Gz") + .HasColumnType("real") + .HasColumnName("Gz"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_60"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Att06h") + .HasColumnType("real") + .HasColumnName("ATT06H"); + + b.Property("Att06l") + .HasColumnType("real") + .HasColumnName("ATT06L"); + + b.Property("Att10h") + .HasColumnType("real") + .HasColumnName("ATT10H"); + + b.Property("Att10l") + .HasColumnType("real") + .HasColumnName("ATT10L"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Phl1f1") + .HasColumnType("real") + .HasColumnName("PHL1F1"); + + b.Property("Phl1f2") + .HasColumnType("real") + .HasColumnName("PHL1F2"); + + b.Property("Phl2f1") + .HasColumnType("real") + .HasColumnName("PHL2F1"); + + b.Property("Phl2f2") + .HasColumnType("real") + .HasColumnName("PHL2F2"); + + b.Property("Status") + .HasColumnType("real") + .HasColumnName("Status"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_61"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptsvym") + .HasColumnType("real") + .HasColumnName("DEPTSVYM"); + + b.Property("Deptsvyv") + .HasColumnType("real") + .HasColumnName("DEPTSVYV"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Svyazc") + .HasColumnType("real") + .HasColumnName("SVYAZC"); + + b.Property("Svyazu") + .HasColumnType("real") + .HasColumnName("SVYAZU"); + + b.Property("Svydls") + .HasColumnType("real") + .HasColumnName("SVYDLS"); + + b.Property("Svyew") + .HasColumnType("real") + .HasColumnName("SVYEW"); + + b.Property("Svygtf") + .HasColumnType("real") + .HasColumnName("SVYGTF"); + + b.Property("Svyinc") + .HasColumnType("real") + .HasColumnName("SVYINC"); + + b.Property("Svymtf") + .HasColumnType("real") + .HasColumnName("SVYMTF"); + + b.Property("Svyns") + .HasColumnType("real") + .HasColumnName("SVYNS"); + + b.Property("Svytype") + .HasColumnType("text") + .HasColumnName("SVYTYPE"); + + b.Property("Svywalk") + .HasColumnType("real") + .HasColumnName("SVYWALK"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_7"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptcalm") + .HasColumnType("real") + .HasColumnName("DEPTCALM"); + + b.Property("Deptcalv") + .HasColumnType("real") + .HasColumnName("DEPTCALV"); + + b.Property("Deptfdm") + .HasColumnType("real") + .HasColumnName("DEPTFDM"); + + b.Property("Deptfdv") + .HasColumnType("real") + .HasColumnName("DEPTFDV"); + + b.Property("Deptgr1m") + .HasColumnType("real") + .HasColumnName("DEPTGR1M"); + + b.Property("Deptgr1v") + .HasColumnType("real") + .HasColumnName("DEPTGR1V"); + + b.Property("Deptgr2m") + .HasColumnType("real") + .HasColumnName("DEPTGR2M"); + + b.Property("Deptgr2v") + .HasColumnType("real") + .HasColumnName("DEPTGR2V"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptp1m") + .HasColumnType("real") + .HasColumnName("DEPTP1M"); + + b.Property("Deptp1v") + .HasColumnType("real") + .HasColumnName("DEPTP1V"); + + b.Property("Deptp2m") + .HasColumnType("real") + .HasColumnName("DEPTP2M"); + + b.Property("Deptp2v") + .HasColumnType("real") + .HasColumnName("DEPTP2V"); + + b.Property("Deptrs1m") + .HasColumnType("real") + .HasColumnName("DEPTRS1M"); + + b.Property("Deptrs1v") + .HasColumnType("real") + .HasColumnName("DEPTRS1V"); + + b.Property("Deptrs2m") + .HasColumnType("real") + .HasColumnName("DEPTRS2M"); + + b.Property("Deptrs2v") + .HasColumnType("real") + .HasColumnName("DEPTRS2V"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Mclp") + .HasColumnType("real") + .HasColumnName("MCLP"); + + b.Property("Mfd") + .HasColumnType("real") + .HasColumnName("MFD"); + + b.Property("Mffp") + .HasColumnType("real") + .HasColumnName("MFFP"); + + b.Property("Mfpp") + .HasColumnType("real") + .HasColumnName("MFPP"); + + b.Property("Mfrann") + .HasColumnType("real") + .HasColumnName("MFRANN"); + + b.Property("Mfrpipe") + .HasColumnType("real") + .HasColumnName("MFRPIPE"); + + b.Property("Mftann") + .HasColumnType("real") + .HasColumnName("MFTANN"); + + b.Property("Mftpipe") + .HasColumnType("real") + .HasColumnName("MFTPIPE"); + + b.Property("Mg1") + .HasColumnType("real") + .HasColumnName("MG1"); + + b.Property("Mg1c") + .HasColumnType("real") + .HasColumnName("MG1C"); + + b.Property("Mg2") + .HasColumnType("real") + .HasColumnName("MG2"); + + b.Property("Mg2c") + .HasColumnType("real") + .HasColumnName("MG2C"); + + b.Property("Mpo1") + .HasColumnType("real") + .HasColumnName("MPO1"); + + b.Property("Mpo2") + .HasColumnType("real") + .HasColumnName("MPO2"); + + b.Property("Mr1") + .HasColumnType("real") + .HasColumnName("MR1"); + + b.Property("Mr1c") + .HasColumnType("real") + .HasColumnName("MR1C"); + + b.Property("Mr2") + .HasColumnType("real") + .HasColumnName("MR2"); + + b.Property("Mr2c") + .HasColumnType("real") + .HasColumnName("MR2C"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spare6") + .HasColumnType("real") + .HasColumnName("SPARE6"); + + b.Property("Spare7") + .HasColumnType("real") + .HasColumnName("SPARE7"); + + b.Property("Spare8") + .HasColumnType("real") + .HasColumnName("SPARE8"); + + b.Property("Spare9") + .HasColumnType("real") + .HasColumnName("SPARE9"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_8"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.HasOne("AsbCloudDb.Model.Deposit", "Deposit") + .WithMany("Clusters") + .HasForeignKey("IdDeposit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_cluster_t_deposit_id_fk"); + + b.Navigation("Deposit"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Companies") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Contacts") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("Contacts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdFileCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("DrillingProgramParts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.HasOne("AsbCloudDb.Model.User", "AuthorAnswer") + .WithMany() + .HasForeignKey("IdAuthorAnswer"); + + b.HasOne("AsbCloudDb.Model.User", "AuthorQuestion") + .WithMany() + .HasForeignKey("IdAuthorQuestion") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuthorAnswer"); + + b.Navigation("AuthorQuestion"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany("Files") + .HasForeignKey("IdAuthor"); + + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "FileInfo") + .WithMany("FileMarks") + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_file_mark_t_file_info_fk"); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("FileMarks") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_user_t_file_mark_fk"); + + b.Navigation("FileInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Directory") + .WithMany("Manuals") + .HasForeignKey("IdDirectory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Category"); + + b.Navigation("Directory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Parent") + .WithMany("Children") + .HasForeignKey("IdParent") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.HasOne("AsbCloudDb.Model.MeasureCategory", "Category") + .WithMany("Measures") + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.HasOne("AsbCloudDb.Model.NotificationCategory", "NotificationCategory") + .WithMany("Notifications") + .HasForeignKey("IdNotificationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("NotificationCategory"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdOperationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_company_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_well_id_fk"); + + b.Navigation("Company"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationContactsWells") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.DrillingProgramPart", "DrillingProgramPart") + .WithMany("RelatedUsers") + .HasForeignKey("IdDrillingProgramPart") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DrillingProgramPart"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.HasOne("AsbCloudDb.Model.Permission", "Permission") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdPermission") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.HasOne("AsbCloudDb.Model.UserRole", "Role") + .WithMany("RelationUserRoleUserRoles") + .HasForeignKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "IncludeRole") + .WithMany() + .HasForeignKey("IdInclude") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("IncludeRole"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "File") + .WithMany() + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.HasOne("AsbCloudDb.Model.Driller", "Driller") + .WithMany("Schedule") + .HasForeignKey("IdDriller") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_schedule_t_driller_id_driller"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Driller"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSaub") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_saub_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSpin") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_spin_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Events") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_event_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Messages") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_messages_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Users") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_user_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("Users") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("t_user_t_company_id_fk"); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.HasOne("AsbCloudDb.Model.Cluster", "Cluster") + .WithMany("Wells") + .HasForeignKey("IdCluster") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_t_cluster_id_fk"); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithOne("Well") + .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("t_well_t_telemetry_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellType", "WellType") + .WithMany("Wells") + .HasForeignKey("IdWellType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cluster"); + + b.Navigation("Telemetry"); + + b.Navigation("WellType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellComposites") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellComposites") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_section_type_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "WellSrc") + .WithMany("WellCompositeSrcs") + .HasForeignKey("IdWellSrc") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_src_t_well_id_fk"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + + b.Navigation("WellSrc"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellOperation", "OperationPlan") + .WithMany() + .HasForeignKey("IdPlan") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellOperations") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellOperations") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("OperationPlan"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Parent") + .WithMany() + .HasForeignKey("IdParent"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.HasOne("AsbCloudDb.Model.WellSectionType", "SectionType") + .WithMany() + .HasForeignKey("IdSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SectionType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record1", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record50", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record60", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record61", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record7", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record8", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Navigation("Wells"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Navigation("RelationCompaniesWells"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Navigation("Companies"); + + b.Navigation("Contacts"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Navigation("Clusters"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Navigation("Schedule"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Navigation("RelatedUsers"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Navigation("FileMarks"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Navigation("Children"); + + b.Navigation("Manuals"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Navigation("Measures"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Navigation("Notifications"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Navigation("RelationUserRolePermissions"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Navigation("DataSaub"); + + b.Navigation("DataSpin"); + + b.Navigation("Events"); + + b.Navigation("Messages"); + + b.Navigation("Users"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Navigation("FileMarks"); + + b.Navigation("Files"); + + b.Navigation("RelationContactsWells"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Navigation("RelationUserRolePermissions"); + + b.Navigation("RelationUserRoleUserRoles"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Navigation("Contacts"); + + b.Navigation("DrillingProgramParts"); + + b.Navigation("RelationCompaniesWells"); + + b.Navigation("WellCompositeSrcs"); + + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Navigation("Wells"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs new file mode 100644 index 00000000..c898af75 --- /dev/null +++ b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs @@ -0,0 +1,1621 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + /// + public partial class Add_Tables_ProcessMapOperationsAndFunctions : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "t_process_map_functions_shock_test", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stickslip = table.Column(type: "double precision", nullable: false, comment: "StickSlip"), + whirl = table.Column(type: "double precision", nullable: false, comment: "Whirl"), + axial_vibrations = table.Column(type: "double precision", nullable: false, comment: "Осевые вибрации"), + combined_vibrations = table.Column(type: "double precision", nullable: false, comment: "Комбинированные вибрации"), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + revolution_per_minute_min = table.Column(type: "integer", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), + id_autostart_or_warning = table.Column(type: "boolean", nullable: false, comment: "Автозапуск или Предупреждение"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_functions_shock_test", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_functions_shock_test_t_process_map_functions_~", + column: x => x.id_previous, + principalTable: "t_process_map_functions_shock_test", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_functions_shock_test_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_functions_shock_test_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_functions_shock_test_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_functions_shock_test_t_well_section_type_id_w~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "ShockTest"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_anticrash_rotation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + min_RPM = table.Column(type: "double precision", nullable: false, comment: "Минимальные обороты ВСП, об/мин"), + min_consumption_starting_flow_rate = table.Column(type: "double precision", nullable: false, comment: "Минимальный расход для запуска оборотов ВСП, л/сек"), + top_drive_torque_limit_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_anticrash_rotation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_anticrash_rotation_t_process_m~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_anticrash_rotation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_anticrash_rotation_t_user_id_a~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_anticrash_rotation_t_user_id_e~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_anticrash_rotation_t_well_id_w~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_anticrash_rotation_t_well_sect~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Противоаварийное вращение"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_autohold", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_autohold", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_autohold_t_process_map_plan_fu~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_autohold", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_autohold_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_autohold_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_autohold_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_autohold_t_well_section_type_i~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Автоудержание"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_damper", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stickslip = table.Column(type: "double precision", nullable: false, comment: "StickSlip"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_damper", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_process_map_plan_func~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_damper", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_well_section_type_id_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Демпфер"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_drilltest", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + number_of_steps_bit = table.Column(type: "integer", nullable: false, comment: "Количество шагов по нагрузке"), + revolution_per_minute_min = table.Column(type: "integer", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), + number_of_steps_rpm = table.Column(type: "integer", nullable: false, comment: "Количество шагов оборотов на ВСП, шт."), + length_step = table.Column(type: "double precision", nullable: false, comment: "Величина проходки шага, м."), + id_autostart_or_warning = table.Column(type: "boolean", nullable: false, comment: "Автозапуск или Предупреждение"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_drilltest", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_drilltest_t_process_map_plan_f~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_drilltest", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_drilltest_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_drilltest_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_drilltest_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_drilltest_t_well_section_type_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Дрилтест"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_jarr_drill_tool", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), + buckling = table.Column(type: "double precision", nullable: false, comment: "Складывание, м"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_jarr_drill_tool", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_process_map_~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_jarr_drill_tool", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_user_id_auth~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_user_id_edit~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_well_section~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Встряхивание бурового инструмента"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_oscillation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + optimal_oscillation_angle = table.Column(type: "double precision", nullable: false, comment: "Оптимальный угол осцилляции, градусы"), + RPM​_right = table.Column(type: "double precision", nullable: false, comment: "Скорость вправо, об/мин"), + RPM​_left = table.Column(type: "double precision", nullable: false, comment: "Скорость влево, об/мин"), + torque_limit_right = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента вправо, кН*м"), + torque_limit_left = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента влево, кН*м"), + id_mode = table.Column(type: "boolean", nullable: false, comment: "Режим Авто/Руч"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_oscillation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_oscillation_t_process_map_plan~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_oscillation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_oscillation_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_oscillation_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_oscillation_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_oscillation_t_well_section_typ~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Осцилляция"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_static_measure", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + signal_waiting_time = table.Column(type: "double precision", nullable: false, comment: "Время ожидания выхода сигнала с ТМС, сек."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_static_measure", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_static_measure_t_process_map_p~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_static_measure", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_static_measure_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_static_measure_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_static_measure_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_static_measure_t_well_section_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход статического замера"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_upgrade_no_load", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_decline_socket_column = table.Column(type: "boolean", nullable: false, comment: "СПУСК ОК Да/Нет"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_upgrade_no_load", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_upgrade_no_load_t_process_map_~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_upgrade_no_load", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_upgrade_no_load_t_user_id_auth~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_upgrade_no_load_t_user_id_edit~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_upgrade_no_load_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_upgrade_no_load_t_well_section~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Обновление холостого хода"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_load_capacity", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + time_load_capacity_min = table.Column(type: "double precision", nullable: false, comment: "Время выработки минимальное, сек"), + differential_pressure_min = table.Column(type: "double precision", nullable: false, comment: "Перепад давления минимальный, атм"), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_load_capacity", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_load_capacity_t_process_map_pl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_load_capacity", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_load_capacity_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_load_capacity_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_load_capacity_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_load_capacity_t_well_section_t~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК выработка нагрузки"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_oscillation_angels", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), + setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), + setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Скорость, м/ч., Вверх"), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость, м/ч., Вниз"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_oscillation_angels", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_process_m~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_oscillation_angels", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_a~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_e~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_id_w~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_sect~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Определение углов осцилляции"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_positioning_off_the_bottom", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stop_off_the_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_positioning_off_the_bottom", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_p~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_positioning_off_the_bottom", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_u~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_w~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Позиционирование над забоем"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_reaming_rotor", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), + setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), + setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), + max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + reaming1_number_of_repetitions = table.Column(name: "reaming1_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 1, Количество повторений, шт."), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), + reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), + reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), + reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), + reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), + reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), + reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming2_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Количество повторений, шт."), + reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), + reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), + reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), + reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), + reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), + reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), + reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), + reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming3_number_of_repetitions = table.Column(name: "reaming3_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 3, Количество повторений, шт."), + reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), + reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), + reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), + reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), + reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), + reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), + reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), + reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_reaming_rotor", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_process_map_pl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_reaming_rotor", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_section_t~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК проработка ротор"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_reaming_slide", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), + setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), + setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), + max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + reaming1_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Количество повторений, шт."), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), + reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), + reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), + reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), + reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), + reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), + reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming2_number_of_repetitions = table.Column(name: "reaming2_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 2, Количество повторений, шт."), + reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), + reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), + reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), + reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), + reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), + reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), + reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), + reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming3_number_of_repetitions = table.Column(name: "reaming3_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 3, Количество повторений, шт."), + reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), + reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), + reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), + reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), + reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), + reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), + reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), + reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_reaming_slide", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_slide_t_process_map_pl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_reaming_slide", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_slide_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_slide_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_slide_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_slide_t_well_section_t~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК проработка слайд"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_switch_mode", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + exit_time_consumption = table.Column(type: "double precision", nullable: false, comment: "Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."), + consumption_flow_rate = table.Column(type: "double precision", nullable: false, comment: "Выход на плановый расход, расход, л/с"), + pressure_limit_Max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + сomment = table.Column(type: "double precision", nullable: false, comment: "Комментарий"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_switch_mode", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_mode_t_process_map_plan~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_switch_mode", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_mode_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_mode_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_mode_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_mode_t_well_section_typ~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход на режим"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_switch_pump", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + duration = table.Column(type: "double precision", nullable: false, comment: "Продолжительность, сек."), + residual_pressure_limit = table.Column(type: "double precision", nullable: false, comment: "Лимит остаточного давления, атм."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_switch_pump", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_pump_t_process_map_plan~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_switch_pump", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_pump_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_pump_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_pump_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switch_pump_t_well_section_typ~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выключение насоса"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_tf_orientation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + plan_tf = table.Column(type: "double precision", nullable: false, comment: "План TF, град"), + spring = table.Column(type: "double precision", nullable: false, comment: "Пружина, град "), + max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), + setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), + setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), + max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + reaming1_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Количество расхаживаний, шт"), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), + reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), + reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), + reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал расхаживания, м."), + reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_tf_orientation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_tf_orientation_t_process_map_p~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_tf_orientation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_tf_orientation_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_tf_orientation_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_tf_orientation_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_tf_orientation_t_well_section_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выставление"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_survey", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + measurement_recording_time = table.Column(type: "double precision", nullable: false, comment: "Время записи замера, сек"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_survey", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_survey_t_process_map_plan_survey_id_prev~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_survey", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_survey_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_survey_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_survey_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_survey_t_well_section_type_id_wellsectio~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Запись статического замера"); + + migrationBuilder.UpdateData( + table: "t_well_operation_category", + keyColumn: "id", + keyValue: 5002, + column: "IsHidden", + value: true); + + migrationBuilder.UpdateData( + table: "t_well_operation_category", + keyColumn: "id", + keyValue: 5003, + column: "IsHidden", + value: true); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_functions_shock_test_id_author", + table: "t_process_map_functions_shock_test", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_functions_shock_test_id_editor", + table: "t_process_map_functions_shock_test", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_functions_shock_test_id_previous", + table: "t_process_map_functions_shock_test", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_functions_shock_test_id_well", + table: "t_process_map_functions_shock_test", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_functions_shock_test_id_wellsection_type", + table: "t_process_map_functions_shock_test", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_anticrash_rotation_id_author", + table: "t_process_map_plan_functions_anticrash_rotation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_anticrash_rotation_id_editor", + table: "t_process_map_plan_functions_anticrash_rotation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_anticrash_rotation_id_previous", + table: "t_process_map_plan_functions_anticrash_rotation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_anticrash_rotation_id_well", + table: "t_process_map_plan_functions_anticrash_rotation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_anticrash_rotation_id_wellsect~", + table: "t_process_map_plan_functions_anticrash_rotation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_autohold_id_author", + table: "t_process_map_plan_functions_autohold", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_autohold_id_editor", + table: "t_process_map_plan_functions_autohold", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_autohold_id_previous", + table: "t_process_map_plan_functions_autohold", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_autohold_id_well", + table: "t_process_map_plan_functions_autohold", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_autohold_id_wellsection_type", + table: "t_process_map_plan_functions_autohold", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_author", + table: "t_process_map_plan_functions_damper", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_editor", + table: "t_process_map_plan_functions_damper", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_previous", + table: "t_process_map_plan_functions_damper", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_well", + table: "t_process_map_plan_functions_damper", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_wellsection_type", + table: "t_process_map_plan_functions_damper", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_drilltest_id_author", + table: "t_process_map_plan_functions_drilltest", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_drilltest_id_editor", + table: "t_process_map_plan_functions_drilltest", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_drilltest_id_previous", + table: "t_process_map_plan_functions_drilltest", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_drilltest_id_well", + table: "t_process_map_plan_functions_drilltest", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_drilltest_id_wellsection_type", + table: "t_process_map_plan_functions_drilltest", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_author", + table: "t_process_map_plan_functions_jarr_drill_tool", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_editor", + table: "t_process_map_plan_functions_jarr_drill_tool", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_previous", + table: "t_process_map_plan_functions_jarr_drill_tool", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_well", + table: "t_process_map_plan_functions_jarr_drill_tool", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_wellsection~", + table: "t_process_map_plan_functions_jarr_drill_tool", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_oscillation_id_author", + table: "t_process_map_plan_functions_oscillation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_oscillation_id_editor", + table: "t_process_map_plan_functions_oscillation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_oscillation_id_previous", + table: "t_process_map_plan_functions_oscillation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_oscillation_id_well", + table: "t_process_map_plan_functions_oscillation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_oscillation_id_wellsection_type", + table: "t_process_map_plan_functions_oscillation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_static_measure_id_author", + table: "t_process_map_plan_functions_static_measure", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_static_measure_id_editor", + table: "t_process_map_plan_functions_static_measure", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_static_measure_id_previous", + table: "t_process_map_plan_functions_static_measure", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_static_measure_id_well", + table: "t_process_map_plan_functions_static_measure", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_static_measure_id_wellsection_~", + table: "t_process_map_plan_functions_static_measure", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_upgrade_no_load_id_author", + table: "t_process_map_plan_functions_upgrade_no_load", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_upgrade_no_load_id_editor", + table: "t_process_map_plan_functions_upgrade_no_load", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_upgrade_no_load_id_previous", + table: "t_process_map_plan_functions_upgrade_no_load", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_upgrade_no_load_id_well", + table: "t_process_map_plan_functions_upgrade_no_load", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_upgrade_no_load_id_wellsection~", + table: "t_process_map_plan_functions_upgrade_no_load", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_load_capacity_id_author", + table: "t_process_map_plan_operation_load_capacity", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_load_capacity_id_editor", + table: "t_process_map_plan_operation_load_capacity", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_load_capacity_id_previous", + table: "t_process_map_plan_operation_load_capacity", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_load_capacity_id_well", + table: "t_process_map_plan_operation_load_capacity", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_load_capacity_id_wellsection_t~", + table: "t_process_map_plan_operation_load_capacity", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_author", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_editor", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_previous", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_well", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_wellsect~", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id_~", + table: "t_process_map_plan_operation_positioning_off_the_bottom", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1", + table: "t_process_map_plan_operation_positioning_off_the_bottom", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2", + table: "t_process_map_plan_operation_positioning_off_the_bottom", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3", + table: "t_process_map_plan_operation_positioning_off_the_bottom", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4", + table: "t_process_map_plan_operation_positioning_off_the_bottom", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_author", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_editor", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_previous", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_well", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_wellsection_t~", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_slide_id_author", + table: "t_process_map_plan_operation_reaming_slide", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_slide_id_editor", + table: "t_process_map_plan_operation_reaming_slide", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_slide_id_previous", + table: "t_process_map_plan_operation_reaming_slide", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_slide_id_well", + table: "t_process_map_plan_operation_reaming_slide", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_slide_id_wellsection_t~", + table: "t_process_map_plan_operation_reaming_slide", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_mode_id_author", + table: "t_process_map_plan_operation_switch_mode", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_mode_id_editor", + table: "t_process_map_plan_operation_switch_mode", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_mode_id_previous", + table: "t_process_map_plan_operation_switch_mode", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_mode_id_well", + table: "t_process_map_plan_operation_switch_mode", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_mode_id_wellsection_type", + table: "t_process_map_plan_operation_switch_mode", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_pump_id_author", + table: "t_process_map_plan_operation_switch_pump", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_pump_id_editor", + table: "t_process_map_plan_operation_switch_pump", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_pump_id_previous", + table: "t_process_map_plan_operation_switch_pump", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_pump_id_well", + table: "t_process_map_plan_operation_switch_pump", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switch_pump_id_wellsection_type", + table: "t_process_map_plan_operation_switch_pump", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_tf_orientation_id_author", + table: "t_process_map_plan_operation_tf_orientation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_tf_orientation_id_editor", + table: "t_process_map_plan_operation_tf_orientation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_tf_orientation_id_previous", + table: "t_process_map_plan_operation_tf_orientation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_tf_orientation_id_well", + table: "t_process_map_plan_operation_tf_orientation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_tf_orientation_id_wellsection_~", + table: "t_process_map_plan_operation_tf_orientation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_survey_id_author", + table: "t_process_map_plan_survey", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_survey_id_editor", + table: "t_process_map_plan_survey", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_survey_id_previous", + table: "t_process_map_plan_survey", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_survey_id_well", + table: "t_process_map_plan_survey", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_survey_id_wellsection_type", + table: "t_process_map_plan_survey", + column: "id_wellsection_type"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "t_process_map_functions_shock_test"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_anticrash_rotation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_autohold"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_damper"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_drilltest"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_jarr_drill_tool"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_oscillation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_static_measure"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_upgrade_no_load"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_load_capacity"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_oscillation_angels"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_positioning_off_the_bottom"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_reaming_rotor"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_reaming_slide"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_switch_mode"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_switch_pump"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_tf_orientation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_survey"); + + migrationBuilder.UpdateData( + table: "t_well_operation_category", + keyColumn: "id", + keyValue: 5002, + column: "IsHidden", + value: false); + + migrationBuilder.UpdateData( + table: "t_well_operation_category", + keyColumn: "id", + keyValue: 5003, + column: "IsHidden", + value: false); + } + } +} diff --git a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs index e8a2c4fb..f14be949 100644 --- a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs +++ b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs @@ -2629,6 +2629,2016 @@ namespace AsbCloudDb.Migrations }); }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MinRPM") + .HasColumnType("double precision") + .HasColumnName("min_RPM") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("MinСonsumptionStartingFlowRate") + .HasColumnType("double precision") + .HasColumnName("min_consumption_starting_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_limit_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_anticrash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_autohold", t => + { + t.HasComment("Автоудержание"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stickslip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdAutostartOrWarning") + .HasColumnType("boolean") + .HasColumnName("id_autostart_or_warning") + .HasComment("Автозапуск или Предупреждение"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("NumberOfStepsBit") + .HasColumnType("integer") + .HasColumnName("number_of_steps_bit") + .HasComment("Количество шагов по нагрузке"); + + b.Property("NumberOfStepsRPM") + .HasColumnType("integer") + .HasColumnName("number_of_steps_rpm") + .HasComment("Количество шагов оборотов на ВСП, шт."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RevolutionPerMinuteMin") + .HasColumnType("integer") + .HasColumnName("revolution_per_minute_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_drilltest", t => + { + t.HasComment("Дрилтест"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание, м"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_jarr_drill_tool", t => + { + t.HasComment("Встряхивание бурового инструмента"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("boolean") + .HasColumnName("id_mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RPMLeft") + .HasColumnType("double precision") + .HasColumnName("RPM​_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RPMRight") + .HasColumnType("double precision") + .HasColumnName("RPM​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueLimitLeft") + .HasColumnType("double precision") + .HasColumnName("torque_limit_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueLimitRight") + .HasColumnType("double precision") + .HasColumnName("torque_limit_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdAutostartOrWarning") + .HasColumnType("boolean") + .HasColumnName("id_autostart_or_warning") + .HasComment("Автозапуск или Предупреждение"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RevolutionPerMinuteMin") + .HasColumnType("integer") + .HasColumnName("revolution_per_minute_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stickslip") + .HasComment("StickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_functions_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_static_measure", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdDeclineSocketColumn") + .HasColumnType("boolean") + .HasColumnName("id_decline_socket_column") + .HasComment("СПУСК ОК Да/Нет"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_upgrade_no_load", t => + { + t.HasComment("Обновление холостого хода"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Скорость, м/ч., Вверх"); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1"); + + b.HasIndex("IdPrevious") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2"); + + b.HasIndex("IdWell") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3"); + + b.HasIndex("IdWellSectionType") + .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4"); + + b.ToTable("t_process_map_plan_operation_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_ repetitions") + .HasComment("Проработка 1, Количество повторений, шт."); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming2_number_of_repetitions") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming3_number_of_ repetitions") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_repetitions") + .HasComment("Проработка 1, Количество повторений, шт."); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming2_number_of_ repetitions") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming3_number_of_ repetitions") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RPMDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RPMUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("double precision") + .HasColumnName("сomment") + .HasComment("Комментарий"); + + b.Property("ConsumptionFlowRate") + .HasColumnType("double precision") + .HasColumnName("consumption_flow_rate") + .HasComment("Выход на плановый расход, расход, л/с"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("ExitTimeConsumption") + .HasColumnType("double precision") + .HasColumnName("exit_time_consumption") + .HasComment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit_Max") + .HasComment("Максимально допустимое давление, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switch_mode", t => + { + t.HasComment("Выход на режим"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switch_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MaxPressure") + .HasColumnType("double precision") + .HasColumnName("max_pressure") + .HasComment("Максимальное давление, атм"); + + b.Property("MaxTorque") + .HasColumnType("double precision") + .HasColumnName("max_torque") + .HasComment("Максимально допустимый момент, кН*м."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал расхаживания, м."); + + b.Property("Reaming1NumberOfRepetitions") + .HasColumnType("double precision") + .HasColumnName("reaming1_number_of_repetitions") + .HasComment("Проработка 1, Количество расхаживаний, шт"); + + b.Property("Reaming1ROPDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1ROPUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1, Скорость, м/ч., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SetpointsSlackingOff") + .HasColumnType("double precision") + .HasColumnName("setpoints_slacking_off") + .HasComment("Уставки, т., посадка"); + + b.Property("SetpointsTight") + .HasColumnType("double precision") + .HasColumnName("setpoints_tight") + .HasComment("Уставки, т., затяжка"); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град "); + + b.Property("planTF") + .HasColumnType("double precision") + .HasColumnName("plan_tf") + .HasComment("План TF, град"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => { b.Property("Id") @@ -3030,6 +5040,89 @@ namespace AsbCloudDb.Migrations }); }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_survey", t => + { + t.HasComment("Запись статического замера"); + }); + }); + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => { b.Property("IdCompany") @@ -8989,6 +11082,688 @@ namespace AsbCloudDb.Migrations b.Navigation("Well"); }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => { b.HasOne("AsbCloudDb.Model.User", "Author") @@ -9102,6 +11877,46 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => { b.HasOne("AsbCloudDb.Model.Company", "Company") From 9b4b30cdc64d91b05c9fd5e1618004afb9efc9b8 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Thu, 27 Jun 2024 15:39:37 +0500 Subject: [PATCH 24/74] =?UTF-8?q?=D0=A1=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D0=B1=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B0=D1=85=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=B8=20dtos=20=D1=80=D1=82?= =?UTF-8?q?=D0=BA-=D0=BF=D0=BB=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...essMapPlanFunctionsAnticrashRotationDto.cs | 7 +- .../ProcessMapPlanFunctionsAutoHoldDto.cs | 4 +- .../ProcessMapPlanFunctionsDamperDto.cs | 4 +- .../ProcessMapPlanFunctionsDrillTestDto.cs | 12 ++-- ...ProcessMapPlanFunctionsJarrDrillToolDto.cs | 7 +- .../ProcessMapPlanFunctionsOscillationDto.cs | 12 ++-- .../ProcessMapPlanFunctionsShockTestDto.cs | 14 ++-- ...ProcessMapPlanFunctionsStaticMeasureDto.cs | 3 +- ...ProcessMapPlanFunctionsUpgradeNoloadDto.cs | 2 +- ...tionDeterminationOfOscillationAnglesDto.cs | 13 ++-- .../ProcessMapPlanOperationLoadCapacityDto.cs | 9 ++- ...PlanOperationPositioningOffTheBottomDto.cs | 3 +- .../ProcessMapPlanOperationReamingRotorDto.cs | 67 +++++++++---------- .../ProcessMapPlanOperationReamingSlideDto.cs | 67 +++++++++---------- .../ProcessMapPlanOperationSwitchModeDto.cs | 9 ++- .../ProcessMapPlanOperationSwitchPumpDto.cs | 4 +- ...ProcessMapPlanOperationTFOrientationDto.cs | 31 +++++---- .../ProcessMaps/ProcessMapPlanSurveyDto.cs | 3 +- 18 files changed, 130 insertions(+), 141 deletions(-) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs index 62efab64..885c07e1 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,18 +10,18 @@ public class ProcessMapPlanFunctionsAnticrashRotationDto : ProcessMapPlanBaseDto /// /// Минимальные обороты ВСП, об/мин /// - [Range(0.0, 250.0)] + [Range(0.0, 250.0, ErrorMessage = "Минимальные обороты ВСП, об/мин., должно быть в пределах от 0 до 250")] public double MinRPM { get; set; } /// /// Минимальный расход для запуска оборотов ВСП, л/сек /// - [Range(1.0, 100.0)] + [Range(1.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")] public double MinСonsumptionStartingFlowRate { get; set; } /// /// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м /// - [Range(1.0, 35.0)] + [Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")] public double TopDriveTorqueLimitMax { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs index 6e6db853..aaed0489 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs @@ -10,12 +10,12 @@ public class ProcessMapPlanFunctionsAutoHoldDto : ProcessMapPlanBaseDto /// /// Зенитный угол, градусы /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] public double ZenithAngle { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs index 55006415..33649bad 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs @@ -10,12 +10,12 @@ public class ProcessMapPlanFunctionsDamperDto : ProcessMapPlanBaseDto /// /// StickSlip /// - [Range(0.0, 1000.0)] + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] public double StickSlip { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs index 7398ee79..3cd4ad19 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs @@ -10,31 +10,31 @@ public class ProcessMapPlanFunctionsDrillTestDto : ProcessMapPlanBaseDto /// /// Нагрузка минимальная, т /// - [Range(1.0, 30.0)] + [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")] public double WeightOnBitMin { get; set; } /// /// Количество шагов по нагрузке /// - [Range(1, 5)] + [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")] public int NumberOfStepsBit { get; set; } /// /// Минимальные обороты на ВСП, об/мин. /// - [Range(5, 200)] + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] public int RevolutionPerMinuteMin { get; set; } /// /// Количество шагов оборотов на ВСП, шт. /// - [Range(1, 5)] + [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")] public int NumberOfStepsRPM { get; set; } /// /// Величина проходки шага, м. /// - [Range(0.1, 2.0)] + [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")] public double LengthStep { get; set; } /// @@ -46,6 +46,6 @@ public class ProcessMapPlanFunctionsDrillTestDto : ProcessMapPlanBaseDto /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs index 6d125f79..241f9ff3 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,18 +10,18 @@ public class ProcessMapPlanFunctionsJarrDrillToolDto : ProcessMapPlanBaseDto /// /// Зенитный угол, градусы /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] public double ZenithAngle { get; set; } /// /// Складывание, м /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] public double Buckling { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs index a304263b..733c1bee 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs @@ -10,31 +10,31 @@ public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto /// /// Оптимальный угол осцилляции, градусы /// - [Range(0.0, 6000.0)] + [Range(0.0, 6000.0, ErrorMessage = "Оптимальный угол осцилляции, градусы, должно быть в пределах от 0 до 6000")] public double OptimalOscillationAngle { get; set; } /// /// Скорость вправо, об/мин /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")] public double RPM​Right { get; set; } /// /// Скорость влево, об/мин /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")] public double RPM​Left { get; set; } /// /// Ограничение момента вправо, кН*м /// - [Range(0.0, 35.0)] + [Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")] public double TorqueLimitRight { get; set; } /// /// Ограничение момента влево, кН*м /// - [Range(0.0, 35.0)] + [Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")] public double TorqueLimitLeft { get; set; } /// @@ -46,6 +46,6 @@ public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs index 6fc9d618..9b1670ea 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs @@ -10,37 +10,37 @@ public class ProcessMapPlanFunctionsShockTestDto : ProcessMapPlanBaseDto /// /// StickSlip /// - [Range(0.0, 1000.0)] + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] public double StickSlip { get; set; } /// /// Whirl /// - [Range(0.0, 1000.0)] + [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")] public double Whirl { get; set; } /// /// Осевые вибрации /// - [Range(0.0, 1000.0)] + [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")] public double AxialVibrations { get; set; } /// /// Комбинированные вибрации /// - [Range(0.0, 1000.0)] + [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")] public double CombinedVibrations { get; set; } /// /// Нагрузка минимальная, т /// - [Range(1.0, 30.0)] + [Range(1.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")] public double WeightOnBitMin { get; set; } /// /// Минимальные обороты на ВСП, об/мин. /// - [Range(5, 200)] + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] public int RevolutionPerMinuteMin { get; set; } /// @@ -52,6 +52,6 @@ public class ProcessMapPlanFunctionsShockTestDto : ProcessMapPlanBaseDto /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs index 40c65a54..b56bb52c 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,6 +10,6 @@ public class ProcessMapPlanFunctionsStaticMeasureDto : ProcessMapPlanBaseDto /// /// Время ожидания выхода сигнала с ТМС, сек. /// - [Range(0.0, 1800.0)] + [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] public double SignalWaitingTime { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs index 7de4fb5b..f8199e8d 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs @@ -15,6 +15,6 @@ public class ProcessMapPlanFunctionsUpgradeNoloadDto : ProcessMapPlanBaseDto /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs index 351cc144..0fc3b296 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,36 +10,36 @@ public class ProcessMapPlanOperationDeterminationOfOscillationAnglesDto : Proces /// /// Максимальное давление, атм /// - [Range(0.0, 400.0)] + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] public double MaxPressure { get; set; } /// /// Перепад давления, атм. /// - [Range(0.0, 60.0)] + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] public double DifferentialPressure { get; set; } /// /// Уставки, т., затяжка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] public double SetpointsTight { get; set; } /// /// Уставки, т., посадка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] public double SetpointsSlackingOff { get; set; } /// /// Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming1ROPUp { get; set; } /// /// Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming1ROPDown { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs index adf38aae..152fcc7a 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,25 +10,25 @@ public class ProcessMapPlanOperationLoadCapacityDto : ProcessMapPlanBaseDto /// /// Время выработки минимальное, сек /// - [Range(0.0, 800.0)] + [Range(0.0, 800.0, ErrorMessage = "Время выработки минимальное, сек., должно быть в пределах от 0 до 800")] public double TimeLoadCapacityMin { get; set; } /// /// Перепад давления минимальный, атм /// - [Range(0.1, 400.0)] + [Range(0.1, 400.0, ErrorMessage = "Перепад давления минимальный, атм., должно быть в пределах от 0.1 до 400")] public double DifferentialPressureMin { get; set; } /// /// Нагрузка минимальная, т /// - [Range(0.1, 99.0)] + [Range(0.1, 99.0, ErrorMessage = "Нагрузка минимальная, т, должно быть в пределах от 0.1 до 99")] public double WeightOnBitMin { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs index bad705c6..0cd04f5c 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,6 +10,6 @@ public class ProcessMapPlanOperationPositioningOffTheBottomDto : ProcessMapPlanB /// /// Остановка над забоем, м /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] public double StopOffTheBottom { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs index a29892da..1f5cc2c1 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,199 +10,199 @@ public class ProcessMapPlanOperationReamingRotorDto : ProcessMapPlanBaseDto /// /// Максимальное давление, атм /// - [Range(0.0, 400.0)] + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] public double MaxPressure { get; set; } /// /// Перепад давления, атм. /// - [Range(0.0, 60.0)] + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] public double DifferentialPressure { get; set; } /// /// Уставки, т., затяжка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] public double SetpointsTight { get; set; } /// /// Уставки, т., посадка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] public double SetpointsSlackingOff { get; set; } /// /// Максимально допустимый момент, кН*м. /// - [Range(0.0, 35.0)] + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] public double MaxTorque { get; set; } /// /// Проработка 1, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming1NumberOfRepetitions { get; set; } /// /// Проработка 1, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming1ROPUp { get; set; } /// /// Проработка 1, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming1ROPDown { get; set; } /// /// Проработка 1, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming1RPMUp { get; set; } /// /// Проработка 1, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming1RPMDown { get; set; } /// /// Проработка 1, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateUp { get; set; } /// /// Проработка 1, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateDown { get; set; } /// /// Проработка 1, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming1Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming1StopPointOffBottom { get; set; } /// /// Проработка 2, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming2NumberOfRepetitions { get; set; } /// /// Проработка 2, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming2ROPUp { get; set; } /// /// Проработка 2, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming2ROPDown { get; set; } /// /// Проработка 2, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming2RPMUp { get; set; } /// /// Проработка 2, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming2RPMDown { get; set; } /// /// Проработка 2, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming2FlowRateUp { get; set; } /// /// Проработка 2, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming2FlowRateDown { get; set; } /// /// Проработка 2, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming2Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming2StopPointOffBottom { get; set; } /// /// Проработка 3, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming3NumberOfRepetitions { get; set; } /// /// Проработка 3, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming3ROPUp { get; set; } /// /// Проработка 3, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming3ROPDown { get; set; } /// /// Проработка 3, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming3RPMUp { get; set; } /// /// Проработка 3, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming3RPMDown { get; set; } /// /// Проработка 3, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming3FlowRateUp { get; set; } /// /// Проработка 3, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming3FlowRateDown { get; set; } /// /// Проработка 3, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming3Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming3StopPointOffBottom { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs index 5f8289ca..9de75d5b 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,199 +10,199 @@ public class ProcessMapPlanOperationReamingSlideDto : ProcessMapPlanBaseDto /// /// Максимальное давление, атм /// - [Range(0.0, 400.0)] + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] public double MaxPressure { get; set; } /// /// Перепад давления, атм. /// - [Range(0.0, 60.0)] + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] public double DifferentialPressure { get; set; } /// /// Уставки, т., затяжка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] public double SetpointsTight { get; set; } /// /// Уставки, т., посадка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] public double SetpointsSlackingOff { get; set; } /// /// Максимально допустимый момент, кН*м. /// - [Range(0.0, 35.0)] + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] public double MaxTorque { get; set; } /// /// Проработка 1, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming1NumberOfRepetitions { get; set; } /// /// Проработка 1, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming1ROPUp { get; set; } /// /// Проработка 1, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming1ROPDown { get; set; } /// /// Проработка 1, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming1RPMUp { get; set; } /// /// Проработка 1, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming1RPMDown { get; set; } /// /// Проработка 1, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateUp { get; set; } /// /// Проработка 1, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateDown { get; set; } /// /// Проработка 1, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming1Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming1StopPointOffBottom { get; set; } /// /// Проработка 2, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming2NumberOfRepetitions { get; set; } /// /// Проработка 2, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming2ROPUp { get; set; } /// /// Проработка 2, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming2ROPDown { get; set; } /// /// Проработка 2, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming2RPMUp { get; set; } /// /// Проработка 2, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming2RPMDown { get; set; } /// /// Проработка 2, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming2FlowRateUp { get; set; } /// /// Проработка 2, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming2FlowRateDown { get; set; } /// /// Проработка 2, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming2Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming2StopPointOffBottom { get; set; } /// /// Проработка 3, Количество повторений, шт. /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] public double Reaming3NumberOfRepetitions { get; set; } /// /// Проработка 3, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming3ROPUp { get; set; } /// /// Проработка 3, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming3ROPDown { get; set; } /// /// Проработка 3, Обороты, об/мин., Вверх /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] public double Reaming3RPMUp { get; set; } /// /// Проработка 3, Обороты, об/мин., Вниз /// - [Range(0.0, 270.0)] + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] public double Reaming3RPMDown { get; set; } /// /// Проработка 3, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming3FlowRateUp { get; set; } /// /// Проработка 3, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming3FlowRateDown { get; set; } /// /// Проработка 3, Интервал проработки, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] public double Reaming3Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming3StopPointOffBottom { get; set; } /// /// Примечание /// - [StringLength(1024)] + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs index de8c571e..9f6a75e1 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs @@ -1,29 +1,28 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; /// -/// РТК план конструкция скважины +/// РТК план выход на режим /// public class ProcessMapPlanOperationSwitchModeDto : ProcessMapPlanBaseDto { /// /// Выход на плановый расход, время выхода буровых насосов на плановый расход, сек. /// - [Range(0.0, 3600.0)] + [Range(0.0, 3600.0, ErrorMessage = "Выход на плановый расход, время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] public double ExitTimeConsumption { get; set; } /// /// Выход на плановый расход, расход, л/с /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Выход на плановый расход, расход, л/с., должно быть в пределах от 0 до 100")] public double ConsumptionFlowRate { get; set; } /// /// Максимально допустимое давление, атм. /// - [Range(0.0, 400.0)] + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] public double PressureLimitMax { get; set; } /// diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs index 2fb85655..bd4422b5 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs @@ -10,12 +10,12 @@ public class ProcessMapPlanOperationSwitchPumpDto : ProcessMapPlanBaseDto /// /// Продолжительность, сек. /// - [Range(0.0, 1800.0)] + [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] public double Duration { get; set; } /// /// Лимит остаточного давления, атм. /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] public double ResidualPressureLimit { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs index a40f5c2f..60da4cac 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs @@ -1,5 +1,4 @@ -using System.ComponentModel.DataAnnotations.Schema; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,84 +10,84 @@ public class ProcessMapPlanOperationTFOrientationDto : ProcessMapPlanBaseDto /// /// План TF, град /// - [Range(0.0, 360.0)] + [Range(0.0, 360.0, ErrorMessage = "План TF, град., должно быть в пределах от 0 до 360")] public double planTF { get; set; } /// /// Пружина, град /// - [Range(0.0, 10000.0)] + [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] public double Spring { get; set; } /// /// Максимальное давление, атм /// - [Range(0.0, 400.0)] + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] public double MaxPressure { get; set; } /// /// Перепад давления, атм. /// - [Range(0.0, 60.0)] + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] public double DifferentialPressure { get; set; } /// /// Уставки, т., затяжка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] public double SetpointsTight { get; set; } /// /// Уставки, т., посадка /// - [Range(0.0, 20.0)] + [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] public double SetpointsSlackingOff { get; set; } /// /// Максимально допустимый момент, кН*м. /// - [Range(0.0, 35.0)] + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] public double MaxTorque { get; set; } /// /// Проработка 1, Количество расхаживаний, шт /// - [Range(0.0, 99.0)] + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] public double Reaming1NumberOfRepetitions { get; set; } /// /// Проработка 1, Скорость, м/ч., Вверх /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] public double Reaming1ROPUp { get; set; } /// /// Проработка 1, Скорость, м/ч., Вниз /// - [Range(0.0, 999.0)] + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] public double Reaming1ROPDown { get; set; } /// /// Проработка 1, Расход, л/с., Вверх /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateUp { get; set; } /// /// Проработка 1, Расход, л/с., Вниз /// - [Range(0.0, 100.0)] + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] public double Reaming1FlowRateDown { get; set; } /// /// Проработка 1, Интервал расхаживания, м. /// - [Range(0.0, 30.0)] + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал расхаживания, м., должно быть в пределах от 0 до 30")] public double Reaming1Interval { get; set; } /// /// Остановка над забоем, м. /// - [Range(0.0, 10.0)] + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double Reaming1StopPointOffBottom { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs index 4d8e6766..9dc58b91 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; @@ -11,6 +10,6 @@ public class ProcessMapPlanSurveyDto : ProcessMapPlanBaseDto /// /// Время записи замера, сек /// - [Range(0.0, 1800.0)] + [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] public double MeasurementRecordingTime { get; set; } } \ No newline at end of file From daa6371d6f9559c3698daef7164928d2c31b2d82 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Fri, 28 Jun 2024 12:13:51 +0500 Subject: [PATCH 25/74] =?UTF-8?q?=D0=98=D0=BD=D1=82=D0=B5=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=A0=D0=A2=D0=9A-?= =?UTF-8?q?=D0=BF=D0=BB=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...unctionsAnticrashRotationControllerTest.cs | 71 ++++++++++ ...sMapPlanFunctionsAutoHoldControllerTest.cs | 69 +++++++++ ...essMapPlanFunctionsDamperControllerTest.cs | 69 +++++++++ ...MapPlanFunctionsDrillTestControllerTest.cs | 79 +++++++++++ ...lanFunctionsJarrDrillToolControllerTest.cs | 71 ++++++++++ ...pPlanFunctionsOscillationControllerTest.cs | 79 +++++++++++ ...MapPlanFunctionsShockTestControllerTest.cs | 81 +++++++++++ ...lanFunctionsStaticMeasureControllerTest.cs | 67 +++++++++ ...lanFunctionsUpgradeNoloadControllerTest.cs | 69 +++++++++ ...nationOfOscillationAnglesControllerTest.cs | 77 ++++++++++ ...PlanOperationLoadCapacityControllerTest.cs | 73 ++++++++++ ...onPositioningOffTheBottomControllerTest.cs | 67 +++++++++ ...PlanOperationReamingRotorControllerTest.cs | 131 ++++++++++++++++++ ...PlanOperationReamingSlideControllerTest.cs | 131 ++++++++++++++++++ ...apPlanOperationSwitchModeControllerTest.cs | 73 ++++++++++ ...apPlanOperationSwitchPumpControllerTest.cs | 69 +++++++++ ...lanOperationTFOrientationControllerTest.cs | 93 +++++++++++++ .../ProcessMapPlanSurveyControllerTest.cs | 67 +++++++++ 18 files changed, 1436 insertions(+) create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs new file mode 100644 index 00000000..5b42fb6e --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs @@ -0,0 +1,71 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план противоаварийное вращение +/// +public class ProcessMapPlanFunctionsAnticrashRotationControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsAnticrashRotationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAnticrashRotation") + { + } + private readonly ProcessMapPlanFunctionsAnticrashRotationDto dto = new ProcessMapPlanFunctionsAnticrashRotationDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + MinRPM = 1, + MinСonsumptionStartingFlowRate = 1, + TopDriveTorqueLimitMax = 1 + }; + + private readonly ProcessMapPlanFunctionsAnticrashRotation entity = new ProcessMapPlanFunctionsAnticrashRotation() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + MinRPM = 1, + MinСonsumptionStartingFlowRate = 1, + TopDriveTorqueLimitMax = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsAnticrashRotation GetByNote(DbSet dbSet, ProcessMapPlanFunctionsAnticrashRotationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsAnticrashRotationDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsAnticrashRotationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsAnticrashRotation? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs new file mode 100644 index 00000000..6b548b80 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs @@ -0,0 +1,69 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план автоудержание +/// +public class ProcessMapPlanFunctionsAutoHoldControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsAutoHoldControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAutoHold") + { + } + private readonly ProcessMapPlanFunctionsAutoHoldDto dto = new ProcessMapPlanFunctionsAutoHoldDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Note = "1", + ZenithAngle = 2, + }; + + private readonly ProcessMapPlanFunctionsAutoHold entity = new ProcessMapPlanFunctionsAutoHold() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Note = "1", + ZenithAngle = 2, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsAutoHold GetByNote(DbSet dbSet, ProcessMapPlanFunctionsAutoHoldDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsAutoHoldDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsAutoHoldDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsAutoHold? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs new file mode 100644 index 00000000..c7146ed4 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs @@ -0,0 +1,69 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план демпфер +/// +public class ProcessMapPlanFunctionsDamperControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsDamperControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDamper") + { + } + private readonly ProcessMapPlanFunctionsDamperDto dto = new ProcessMapPlanFunctionsDamperDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Note = "1", + StickSlip = 1 + }; + + private readonly ProcessMapPlanFunctionsDamper entity = new ProcessMapPlanFunctionsDamper() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Note = "1", + StickSlip = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsDamper GetByNote(DbSet dbSet, ProcessMapPlanFunctionsDamperDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsDamperDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsDamperDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsDamper? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs new file mode 100644 index 00000000..83611d62 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs @@ -0,0 +1,79 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план дрилтест +/// +public class ProcessMapPlanFunctionsDrillTestControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsDrillTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDrillTest") + { + } + private readonly ProcessMapPlanFunctionsDrillTestDto dto = new ProcessMapPlanFunctionsDrillTestDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + IdAutostartOrWarning = true, + LengthStep = 1, + Note = "1", + NumberOfStepsBit = 1, + NumberOfStepsRPM = 1, + RevolutionPerMinuteMin = 1, + WeightOnBitMin = 1 + }; + + private readonly ProcessMapPlanFunctionsDrillTest entity = new ProcessMapPlanFunctionsDrillTest() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + IdAutostartOrWarning = true, + LengthStep = 1, + Note = "1", + NumberOfStepsBit = 1, + NumberOfStepsRPM = 1, + RevolutionPerMinuteMin = 1, + WeightOnBitMin = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsDrillTest GetByNote(DbSet dbSet, ProcessMapPlanFunctionsDrillTestDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsDrillTestDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsDrillTestDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsDrillTest? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs new file mode 100644 index 00000000..b9745f7d --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs @@ -0,0 +1,71 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план встряхивание бурового инструмента +/// +public class ProcessMapPlanFunctionsJarrDrillToolControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsJarrDrillToolControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsJarrDrillTool") + { + } + private readonly ProcessMapPlanFunctionsJarrDrillToolDto dto = new ProcessMapPlanFunctionsJarrDrillToolDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Buckling = 1, + Note = "1", + ZenithAngle = 1, + }; + + private readonly ProcessMapPlanFunctionsJarrDrillTool entity = new ProcessMapPlanFunctionsJarrDrillTool() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Buckling = 1, + Note = "1", + ZenithAngle = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsJarrDrillTool GetByNote(DbSet dbSet, ProcessMapPlanFunctionsJarrDrillToolDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsJarrDrillToolDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsJarrDrillToolDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsJarrDrillTool? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs new file mode 100644 index 00000000..e195ca41 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs @@ -0,0 +1,79 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план осцилляция +/// +public class ProcessMapPlanFunctionsOscillationControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsOscillationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsOscillation") + { + } + private readonly ProcessMapPlanFunctionsOscillationDto dto = new ProcessMapPlanFunctionsOscillationDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Mode = true, + Note = "1", + OptimalOscillationAngle = 1, + RPMLeft = 2, + RPMRight = 3, + TorqueLimitLeft = 4, + TorqueLimitRight = 5 + }; + + private readonly ProcessMapPlanFunctionsOscillation entity = new ProcessMapPlanFunctionsOscillation() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Mode = true, + Note = "1", + OptimalOscillationAngle = 1, + RPMLeft = 2, + RPMRight = 3, + TorqueLimitLeft = 4, + TorqueLimitRight = 5 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsOscillation GetByNote(DbSet dbSet, ProcessMapPlanFunctionsOscillationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsOscillationDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsOscillationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsOscillation? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs new file mode 100644 index 00000000..53ade4bf --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs @@ -0,0 +1,81 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план shock test +/// +public class ProcessMapPlanFunctionsShockTestControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsShockTest") + { + } + private readonly ProcessMapPlanFunctionsShockTestDto dto = new ProcessMapPlanFunctionsShockTestDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + AxialVibrations = 1, + CombinedVibrations = 2, + IdAutostartOrWarning = true, + Note = "1", + RevolutionPerMinuteMin = 1, + StickSlip = 1, + WeightOnBitMin = 1, + Whirl = 1 + }; + + private readonly ProcessMapPlanFunctionsShockTest entity = new ProcessMapPlanFunctionsShockTest() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + AxialVibrations = 1, + CombinedVibrations = 2, + IdAutostartOrWarning = true, + Note = "1", + RevolutionPerMinuteMin = 1, + StickSlip = 1, + WeightOnBitMin = 1, + Whirl = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsShockTest GetByNote(DbSet dbSet, ProcessMapPlanFunctionsShockTestDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsShockTestDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsShockTestDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsShockTest? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs new file mode 100644 index 00000000..c7013953 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs @@ -0,0 +1,67 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выход статического замера +/// +public class ProcessMapPlanFunctionsStaticMeasureControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsStaticMeasureControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsStaticMeasure") + { + } + private readonly ProcessMapPlanFunctionsStaticMeasureDto dto = new ProcessMapPlanFunctionsStaticMeasureDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + SignalWaitingTime = 1, + }; + + private readonly ProcessMapPlanFunctionsStaticMeasure entity = new ProcessMapPlanFunctionsStaticMeasure() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + SignalWaitingTime = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsStaticMeasure GetByNote(DbSet dbSet, ProcessMapPlanFunctionsStaticMeasureDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsStaticMeasureDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsStaticMeasureDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsStaticMeasure? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs new file mode 100644 index 00000000..12f73ddc --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs @@ -0,0 +1,69 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план обновление холостого хода +/// +public class ProcessMapPlanFunctionsUpgradeNoloadControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanFunctionsUpgradeNoloadControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsUpgradeNoload") + { + } + private readonly ProcessMapPlanFunctionsUpgradeNoloadDto dto = new ProcessMapPlanFunctionsUpgradeNoloadDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + IdDeclineSocketColumn = true, + Note = "1" + }; + + private readonly ProcessMapPlanFunctionsUpgradeNoload entity = new ProcessMapPlanFunctionsUpgradeNoload() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + IdDeclineSocketColumn = true, + Note = "1" + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanFunctionsUpgradeNoload GetByNote(DbSet dbSet, ProcessMapPlanFunctionsUpgradeNoloadDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsUpgradeNoloadDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsUpgradeNoloadDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanFunctionsUpgradeNoload? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs new file mode 100644 index 00000000..1ff24202 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs @@ -0,0 +1,77 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationDeterminationOfOscillationAngles") + { + } + private readonly ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto = new ProcessMapPlanOperationDeterminationOfOscillationAnglesDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + DifferentialPressure = 1, + MaxPressure = 2, + Reaming1ROPDown = 3, + Reaming1ROPUp = 4, + SetpointsSlackingOff = 5, + SetpointsTight = 6 + }; + + private readonly ProcessMapPlanOperationDeterminationOfOscillationAngles entity = new ProcessMapPlanOperationDeterminationOfOscillationAngles() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + DifferentialPressure = 1, + MaxPressure = 2, + Reaming1ROPDown = 3, + Reaming1ROPUp = 4, + SetpointsSlackingOff = 5, + SetpointsTight = 6 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationDeterminationOfOscillationAngles GetByNote(DbSet dbSet, ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationDeterminationOfOscillationAnglesDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationDeterminationOfOscillationAngles? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs new file mode 100644 index 00000000..7cd21518 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs @@ -0,0 +1,73 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выработка нагрузки +/// +public class ProcessMapPlanOperationLoadCapacityControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationLoadCapacityControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationLoadCapacity") + { + } + private readonly ProcessMapPlanOperationLoadCapacityDto dto = new ProcessMapPlanOperationLoadCapacityDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + DifferentialPressureMin = 1, + Note = "2", + TimeLoadCapacityMin = 2, + WeightOnBitMin = 3, + }; + + private readonly ProcessMapPlanOperationLoadCapacity entity = new ProcessMapPlanOperationLoadCapacity() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + DifferentialPressureMin = 1, + Note = "2", + TimeLoadCapacityMin = 2, + WeightOnBitMin = 3, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationLoadCapacity GetByNote(DbSet dbSet, ProcessMapPlanOperationLoadCapacityDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationLoadCapacityDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationLoadCapacityDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationLoadCapacity? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs new file mode 100644 index 00000000..6b35ec47 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs @@ -0,0 +1,67 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план позиционирование над забоем +/// +public class ProcessMapPlanOperationPositioningOffTheBottomControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationPositioningOffTheBottomControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationPositioningOffTheBottom") + { + } + private readonly ProcessMapPlanOperationPositioningOffTheBottomDto dto = new ProcessMapPlanOperationPositioningOffTheBottomDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + StopOffTheBottom = 1 + }; + + private readonly ProcessMapPlanOperationPositioningOffTheBottom entity = new ProcessMapPlanOperationPositioningOffTheBottom() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + StopOffTheBottom = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationPositioningOffTheBottom GetByNote(DbSet dbSet, ProcessMapPlanOperationPositioningOffTheBottomDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationPositioningOffTheBottomDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationPositioningOffTheBottomDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationPositioningOffTheBottom? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs new file mode 100644 index 00000000..1db11787 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs @@ -0,0 +1,131 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanOperationReamingRotorControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor") + { + } + private readonly ProcessMapPlanOperationReamingRotorDto dto = new ProcessMapPlanOperationReamingRotorDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + DifferentialPressure = 2, + MaxPressure = 3, + MaxTorque = 4, + Note = "5", + Reaming3NumberOfRepetitions = 5, + SetpointsTight = 6, + Reaming1FlowRateDown = 7, + Reaming2FlowRateDown = 8, + Reaming3FlowRateDown = 9, + Reaming1FlowRateUp = 10, + Reaming1Interval = 11, + Reaming2Interval = 12, + Reaming1NumberOfRepetitions = 1, + Reaming1ROPDown = 13, + Reaming2ROPDown = 14, + Reaming3ROPDown = 15, + Reaming1ROPUp = 16, + Reaming1RPMDown = 17, + Reaming2RPMDown = 18, + Reaming3RPMDown = 19, + Reaming1RPMUp = 20, + Reaming2RPMUp = 1, + Reaming3RPMUp = 2, + Reaming1StopPointOffBottom = 3, + Reaming2FlowRateUp = 4, + Reaming3FlowRateUp = 5, + Reaming2NumberOfRepetitions = 6, + Reaming2ROPUp = 7, + Reaming2StopPointOffBottom = 1, + Reaming3Interval = 2, + Reaming3ROPUp = 3, + Reaming3StopPointOffBottom = 4, + SetpointsSlackingOff = 5 + }; + + private readonly ProcessMapPlanOperationReamingRotor entity = new ProcessMapPlanOperationReamingRotor() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + DifferentialPressure = 2, + MaxPressure = 3, + MaxTorque = 4, + Note = "5", + Reaming3NumberOfRepetitions = 5, + SetpointsTight = 6, + Reaming1FlowRateDown = 7, + Reaming2FlowRateDown = 8, + Reaming3FlowRateDown = 9, + Reaming1FlowRateUp = 10, + Reaming1Interval = 11, + Reaming2Interval = 12, + Reaming1NumberOfRepetitions = 1, + Reaming1ROPDown = 13, + Reaming2ROPDown = 14, + Reaming3ROPDown = 15, + Reaming1ROPUp = 16, + Reaming1RPMDown = 17, + Reaming2RPMDown = 18, + Reaming3RPMDown = 19, + Reaming1RPMUp = 20, + Reaming2RPMUp = 1, + Reaming3RPMUp = 2, + Reaming1StopPointOffBottom = 3, + Reaming2FlowRateUp = 4, + Reaming3FlowRateUp = 5, + Reaming2NumberOfRepetitions = 6, + Reaming2ROPUp = 7, + Reaming2StopPointOffBottom = 1, + Reaming3Interval = 2, + Reaming3ROPUp = 3, + Reaming3StopPointOffBottom = 4, + SetpointsSlackingOff = 5 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationReamingRotor GetByNote(DbSet dbSet, ProcessMapPlanOperationReamingRotorDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationReamingRotorDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationReamingRotorDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationReamingRotor? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs new file mode 100644 index 00000000..e21f6a5b --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs @@ -0,0 +1,131 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanOperationReamingSlideControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationReamingSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingSlide") + { + } + private readonly ProcessMapPlanOperationReamingSlideDto dto = new ProcessMapPlanOperationReamingSlideDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + SetpointsSlackingOff = 1, + Reaming3StopPointOffBottom = 2, + Reaming3ROPUp = 3, + Reaming3Interval = 4, + Reaming2StopPointOffBottom = 5, + Reaming2ROPUp = 6, + Reaming2NumberOfRepetitions = 7, + Reaming3FlowRateUp = 8, + Reaming2FlowRateUp = 9, + Reaming1StopPointOffBottom = 1, + Reaming1ROPUp = 1, + Reaming1Interval = 2, + DifferentialPressure = 3, + MaxPressure = 4, + MaxTorque = 5, + Note = "1", + Reaming1FlowRateDown = 6, + Reaming1FlowRateUp = 7, + Reaming1NumberOfRepetitions = 8, + Reaming1ROPDown = 9, + Reaming1RPMDown = 1, + Reaming1RPMUp = 1, + Reaming2FlowRateDown = 2, + Reaming2Interval = 3, + Reaming2ROPDown = 3, + Reaming2RPMDown = 4, + Reaming2RPMUp = 5, + Reaming3FlowRateDown = 6, + Reaming3NumberOfRepetitions = 3, + Reaming3ROPDown = 4, + Reaming3RPMDown = 5, + Reaming3RPMUp = 6, + SetpointsTight = 1, + }; + + private readonly ProcessMapPlanOperationReamingSlide entity = new ProcessMapPlanOperationReamingSlide() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + SetpointsSlackingOff = 1, + Reaming3StopPointOffBottom = 2, + Reaming3ROPUp = 3, + Reaming3Interval = 4, + Reaming2StopPointOffBottom = 5, + Reaming2ROPUp = 6, + Reaming2NumberOfRepetitions = 7, + Reaming3FlowRateUp = 8, + Reaming2FlowRateUp = 9, + Reaming1StopPointOffBottom = 1, + Reaming1ROPUp = 1, + Reaming1Interval = 2, + DifferentialPressure = 3, + MaxPressure = 4, + MaxTorque = 5, + Note = "1", + Reaming1FlowRateDown = 6, + Reaming1FlowRateUp = 7, + Reaming1NumberOfRepetitions = 8, + Reaming1ROPDown = 9, + Reaming1RPMDown = 1, + Reaming1RPMUp = 1, + Reaming2FlowRateDown = 2, + Reaming2Interval = 3, + Reaming2ROPDown = 3, + Reaming2RPMDown = 4, + Reaming2RPMUp = 5, + Reaming3FlowRateDown = 6, + Reaming3NumberOfRepetitions = 3, + Reaming3ROPDown = 4, + Reaming3RPMDown = 5, + Reaming3RPMUp = 6, + SetpointsTight = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationReamingSlide GetByNote(DbSet dbSet, ProcessMapPlanOperationReamingSlideDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationReamingSlideDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationReamingSlideDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationReamingSlide? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs new file mode 100644 index 00000000..34f0c43e --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs @@ -0,0 +1,73 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выход на режим +/// +public class ProcessMapPlanOperationSwitchModeControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationSwitchModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchMode") + { + } + private readonly ProcessMapPlanOperationSwitchModeDto dto = new ProcessMapPlanOperationSwitchModeDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Comment = 1, + ExitTimeConsumption = 2, + ConsumptionFlowRate = 3, + PressureLimitMax = 4, + }; + + private readonly ProcessMapPlanOperationSwitchMode entity = new ProcessMapPlanOperationSwitchMode() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Comment = 1, + ExitTimeConsumption = 2, + ConsumptionFlowRate = 3, + PressureLimitMax = 4, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationSwitchMode GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchModeDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchMode? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs new file mode 100644 index 00000000..4b9f34d3 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs @@ -0,0 +1,69 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanOperationSwitchPumpControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationSwitchPumpControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchPump") + { + } + private readonly ProcessMapPlanOperationSwitchPumpDto dto = new ProcessMapPlanOperationSwitchPumpDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Duration = 1, + ResidualPressureLimit = 1, + }; + + private readonly ProcessMapPlanOperationSwitchPump entity = new ProcessMapPlanOperationSwitchPump() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Duration = 1, + ResidualPressureLimit = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationSwitchPump GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchPumpDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchPumpDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchPumpDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchPump? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs new file mode 100644 index 00000000..8d228237 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs @@ -0,0 +1,93 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanOperationTFOrientationControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationTFOrientation") + { + } + private readonly ProcessMapPlanOperationTFOrientationDto dto = new ProcessMapPlanOperationTFOrientationDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + DifferentialPressure = 1, + Reaming1NumberOfRepetitions = 1, + Reaming1StopPointOffBottom = 1, + Reaming1ROPUp = 1, + Reaming1ROPDown = 1, + Reaming1Interval = 1, + Reaming1FlowRateUp = 1, + Reaming1FlowRateDown = 1, + SetpointsSlackingOff = 1, + MaxPressure = 1, + MaxTorque = 1, + planTF = 1, + SetpointsTight = 1, + Spring = 1 + }; + + private readonly ProcessMapPlanOperationTFOrientation entity = new ProcessMapPlanOperationTFOrientation() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + DifferentialPressure = 1, + Reaming1NumberOfRepetitions = 1, + Reaming1StopPointOffBottom = 1, + Reaming1ROPUp = 1, + Reaming1ROPDown = 1, + Reaming1Interval = 1, + Reaming1FlowRateUp = 1, + Reaming1FlowRateDown = 1, + SetpointsSlackingOff = 1, + MaxPressure = 1, + MaxTorque = 1, + planTF = 1, + SetpointsTight = 1, + Spring = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationTFOrientation GetByNote(DbSet dbSet, ProcessMapPlanOperationTFOrientationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationTFOrientationDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationTFOrientationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationTFOrientation? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs new file mode 100644 index 00000000..aeb1585f --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs @@ -0,0 +1,67 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanSurveyControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanSurveyControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSurvey") + { + } + private readonly ProcessMapPlanSurveyDto dto = new ProcessMapPlanSurveyDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + MeasurementRecordingTime = 1, + }; + + private readonly ProcessMapPlanSurvey entity = new ProcessMapPlanSurvey() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + MeasurementRecordingTime = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanSurvey GetByNote(DbSet dbSet, ProcessMapPlanSurveyDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanSurveyDto GetByNote(IEnumerable dtos, ProcessMapPlanSurveyDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanSurvey? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file From a139ed943c621ea8deff6346352ec9351c3722d3 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Fri, 28 Jun 2024 15:08:50 +0500 Subject: [PATCH 26/74] =?UTF-8?q?=D0=92=D1=8B=D1=85=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BB=D0=B0=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=85=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationSwitchModeDto.cs | 32 --- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- .../ProcessMapPlanOperationSwitchMode.cs | 31 --- ...ocessMapPlanOperationSwitchingToTheMode.cs | 32 +++ AsbCloudInfrastructure/DependencyInjection.cs | 232 +++++++++--------- ...lanOperationSwitchingToTheModeTemplate.cs} | 6 +- ...erationSwitchingToTheModeExportService.cs} | 10 +- ...pPlanOperationSwitchingToTheModeParser.cs} | 8 +- ...apPlanOperationSwitchModeControllerTest.cs | 73 ------ ...erationSwitchingToTheModeControllerTest.cs | 65 +++++ ...essMapPlanOperationSwitchModeController.cs | 28 --- ...anOperationSwitchingToTheModeController.cs | 28 +++ 13 files changed, 260 insertions(+), 293 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationSwitchModeTemplate.cs => ProcessMapPlanOperationSwitchingToTheModeTemplate.cs} (50%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationSwitchModeExportService.cs => ProcessMapPlanOperationSwitchingToTheModeExportService.cs} (61%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationSwitchModeParser.cs => ProcessMapPlanOperationSwitchingToTheModeParser.cs} (71%) delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs deleted file mode 100644 index 9f6a75e1..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchModeDto.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход на режим -/// -public class ProcessMapPlanOperationSwitchModeDto : ProcessMapPlanBaseDto -{ - /// - /// Выход на плановый расход, время выхода буровых насосов на плановый расход, сек. - /// - [Range(0.0, 3600.0, ErrorMessage = "Выход на плановый расход, время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] - public double ExitTimeConsumption { get; set; } - - /// - /// Выход на плановый расход, расход, л/с - /// - [Range(0.0, 100.0, ErrorMessage = "Выход на плановый расход, расход, л/с., должно быть в пределах от 0 до 100")] - public double ConsumptionFlowRate { get; set; } - - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureLimitMax { get; set; } - - /// - /// Комментарий - /// - public double Comment { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 1bd345c5..cc6098c9 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -30,7 +30,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); - public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); + public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); @@ -513,7 +513,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -613,7 +613,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 1b7667d0..762fbb48 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -91,7 +91,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } - DbSet ProcessMapPlanOperationSwitchMode { get; } + DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs deleted file mode 100644 index e47c218b..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchMode.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMaps; - -[Table("t_process_map_plan_operation_switch_mode"), Comment("Выход на режим")] -public class ProcessMapPlanOperationSwitchMode : ProcessMapPlanBase -{ - [Column("exit_time_consumption"), Comment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек.")] - [Range(0.0, 3600.0)] - [Required] - public double ExitTimeConsumption { get; set; } - - [Column("consumption_flow_rate"), Comment("Выход на плановый расход, расход, л/с")] - [Range(0.0, 100.0)] - [Required] - public double ConsumptionFlowRate { get; set; } - - [Column("pressure_limit_Max"), Comment("Максимально допустимое давление, атм.")] - [Range(0.0, 400.0)] - [Required] - public double PressureLimitMax { get; set; } - - [Column("сomment"), Comment("Комментарий")] - public double Comment { get; set; } - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationSwitchMode? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs new file mode 100644 index 00000000..00572092 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs @@ -0,0 +1,32 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_switch_mode"), Comment("Выход на плановый расход")] +public class ProcessMapPlanOperationSwitchingToTheMode : ProcessMapPlanBase +{ + [Column("ramp_time"), Comment("Время выхода буровых насосов на плановый расход, сек.")] + [Range(0.0, 3600.0)] + [Required] + public double RampTime { get; set; } + + [Column("flow_rate"), Comment("Расход, л/с")] + [Range(0.0, 100.0)] + [Required] + public double FlowRate { get; set; } + + [Column("pressure_limit"), Comment("Максимально допустимое давление, атм.")] + [Range(0.0, 400.0)] + [Required] + public double PressureMax { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + [Required] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOperationSwitchingToTheMode? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index d342492c..ae3a6ccd 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -202,22 +202,22 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() - .Include>() + .Include>() .Map(dest => dest, src => new ChangeLogDto() { Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() - .Include>() + .Include>() .Map(dest => dest, src => new ChangeLogDto() { Item = src.Adapt() @@ -328,90 +328,6 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - services.AddTransient(); services.AddTransient(); @@ -456,27 +372,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -541,7 +437,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -567,7 +463,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -583,5 +479,115 @@ namespace AsbCloudInfrastructure return services; } + + public static IServiceCollection AddProcessMaps(this IServiceCollection services, IConfiguration configuration) + { + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + + return services; + } } } diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs similarity index 50% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs index f902678a..5eb370ce 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchModeTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationSwitchModeTemplate : ITemplateParameters +public class ProcessMapPlanOperationSwitchingToTheModeTemplate : ITemplateParameters { - public string SheetName => "Выход на режим"; + public string SheetName => "Выход на плановый расход"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationSwitchModeTemplate.xlsx"; + public string FileName => "ProcessMapPlanOperationSwitchingToTheModeTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs similarity index 61% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs index fbf81245..249af1c4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchModeExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs @@ -10,21 +10,21 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationSwitchModeExportService : ProcessMapPlanExportService +public class ProcessMapPlanOperationSwitchingToTheModeExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationSwitchModeExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanOperationSwitchingToTheModeExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchModeTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchingToTheModeTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - return $"{caption}_РТК_План_выход_на_режим.xlsx"; + return $"{caption}_РТК_План_выход_на_плановый_расход.xlsx"; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs similarity index 71% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs index b7ba441c..2a5e7800 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchModeParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationSwitchModeParser : ProcessMapPlanParser +public class ProcessMapPlanOperationSwitchingToTheModeParser : ProcessMapPlanParser { - public ProcessMapPlanOperationSwitchModeParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanOperationSwitchingToTheModeParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchModeTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchingToTheModeTemplate(); - protected override ProcessMapPlanOperationSwitchModeDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanOperationSwitchingToTheModeDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs deleted file mode 100644 index 34f0c43e..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchModeControllerTest.cs +++ /dev/null @@ -1,73 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using AsbCloudWebApi.IntegrationTests; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план выход на режим -/// -public class ProcessMapPlanOperationSwitchModeControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanOperationSwitchModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchMode") - { - } - private readonly ProcessMapPlanOperationSwitchModeDto dto = new ProcessMapPlanOperationSwitchModeDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - Comment = 1, - ExitTimeConsumption = 2, - ConsumptionFlowRate = 3, - PressureLimitMax = 4, - }; - - private readonly ProcessMapPlanOperationSwitchMode entity = new ProcessMapPlanOperationSwitchMode() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - Comment = 1, - ExitTimeConsumption = 2, - ConsumptionFlowRate = 3, - PressureLimitMax = 4, - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanOperationSwitchMode GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchModeDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationSwitchModeDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchModeDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationSwitchMode? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs new file mode 100644 index 00000000..a66ee50e --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs @@ -0,0 +1,65 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudWebApi.IntegrationTests; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanOperationSwitchingToTheModeControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOperationSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchMode") + { + } + private readonly ProcessMapPlanOperationSwitchingToTheModeDto dto = new ProcessMapPlanOperationSwitchingToTheModeDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Comment = 1, + ExitTimeConsumption = 2, + ConsumptionFlowRate = 3, + PressureLimitMax = 4, + }; + + private readonly ProcessMapPlanOperationSwitchingToTheMode entity = new ProcessMapPlanOperationSwitchingToTheMode() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Comment = "1", + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOperationSwitchingToTheMode GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchingToTheModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchingToTheModeDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchingToTheModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOperationSwitchingToTheMode? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs deleted file mode 100644 index 91b5629f..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchModeController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план выход на режим -/// -public class ProcessMapPlanOperationSwitchModeController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanOperationSwitchModeController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanOperationSwitchModeParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanOperationSwitchModeExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_на_режим.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs new file mode 100644 index 00000000..ada87bf5 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanOperationSwitchingToTheModeController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOperationSwitchingToTheModeController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOperationSwitchingToTheModeParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOperationSwitchingToTheModeExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_на_плановый_расход.xlsx"; +} \ No newline at end of file From d1e6f0e14f67a03b1dc6c563c9ae56b4d7e706fc Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Fri, 28 Jun 2024 15:48:44 +0500 Subject: [PATCH 27/74] =?UTF-8?q?=D0=9E=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B3=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tionDeterminationOfOscillationAnglesDto.cs | 45 ----------- ...ssMapPlanOperationSwitchingToTheModeDto.cs | 34 ++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...erationDeterminationOfOscillationAngles.cs | 43 ----------- .../ProcessMapPlanOscillationAngles.cs | 37 +++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 18 ++--- ...rocessMapPlanOscillationAnglesTemplate.cs} | 4 +- ...sMapPlanOscillationAnglesExportService.cs} | 8 +- ... ProcessMapPlanOscillationAnglesParser.cs} | 8 +- ...nationOfOscillationAnglesControllerTest.cs | 77 ------------------- ...erationSwitchingToTheModeControllerTest.cs | 7 +- ...sMapPlanOscillationAnglesControllerTest.cs | 71 +++++++++++++++++ ...erminationOfOscillationAnglesController.cs | 28 ------- ...ocessMapPlanOscillationAnglesController.cs | 28 +++++++ 15 files changed, 194 insertions(+), 222 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs => ProcessMapPlanOscillationAnglesTemplate.cs} (63%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs => ProcessMapPlanOscillationAnglesExportService.cs} (65%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs => ProcessMapPlanOscillationAnglesParser.cs} (68%) delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs deleted file mode 100644 index 0fc3b296..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesDto.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план определения углов осцилляции -/// -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesDto : ProcessMapPlanBaseDto -{ - /// - /// Максимальное давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] - public double MaxPressure { get; set; } - - /// - /// Перепад давления, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Уставки, т., затяжка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] - public double SetpointsTight { get; set; } - - /// - /// Уставки, т., посадка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] - public double SetpointsSlackingOff { get; set; } - - /// - /// Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1ROPUp { get; set; } - - /// - /// Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1ROPDown { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs new file mode 100644 index 00000000..7351afdc --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs @@ -0,0 +1,34 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanOperationSwitchingToTheModeDto : ProcessMapPlanBaseDto +{ + /// + /// Время выхода буровых насосов на плановый расход, сек. + /// + [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] + public double RampTime { get; set; } + + /// + /// Расход, л/с + /// + [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index cc6098c9..d878d481 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -27,7 +27,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); - public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); + public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); @@ -498,7 +498,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -598,7 +598,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 762fbb48..c176e088 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -88,7 +88,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } - DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } + DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs deleted file mode 100644 index 148d3274..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAngles.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMaps; - -[Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")] -public class ProcessMapPlanOperationDeterminationOfOscillationAngles : ProcessMapPlanBase -{ - [Column("max_pressure"), Comment("Максимальное давление, атм")] - [Range(0.0, 400.0)] - [Required] - public double MaxPressure { get; set; } - - [Column("differential_pressure"), Comment("Перепад давления, атм.")] - [Range(0.0, 60.0)] - [Required] - public double DifferentialPressure { get; set; } - - [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] - [Range(0.0, 20.0)] - [Required] - public double SetpointsTight { get; set; } - - [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] - [Range(0.0, 20.0)] - [Required] - public double SetpointsSlackingOff { get; set; } - - [Column("reaming1_rop_up"), Comment("Скорость, м/ч., Вверх")] - [Range(0.0, 999.0)] - [Required] - public double Reaming1ROPUp { get; set; } - - [Column("reaming1_rop_down"), Comment("Скорость, м/ч., Вниз")] - [Range(0.0, 999.0)] - [Required] - public double Reaming1ROPDown { get; set; } - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationDeterminationOfOscillationAngles? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs new file mode 100644 index 00000000..2fd5248f --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs @@ -0,0 +1,37 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")] +public class ProcessMapPlanOscillationAngles : ProcessMapPlanBase +{ + [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м., Уставка")] + [Range(0.0, 35.0)] + [Required] + public double TopDriveTorque { get; set; } + + [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м., Ограничение")] + [Range(0.0, 35.0)] + [Required] + public double TopDriveTorqueMax { get; set; } + + [Column("rpm"), Comment("Обороты на ВСП, об/мин., Уставка")] + [Range(0.0, 270.0)] + [Required] + public double Rpm { get; set; } + + [Column("rpm_max"), Comment("Обороты на ВСП, об/мин., Ограничение")] + [Range(0.0, 270.0)] + [Required] + public double RpmMax { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + [Required] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOscillationAngles? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index ae3a6ccd..08ded898 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -181,11 +181,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -434,7 +434,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -460,7 +460,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -515,8 +515,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -573,7 +573,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs similarity index 63% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs index ca63f61e..cffb099a 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate : ITemplateParameters +public class ProcessMapPlanOscillationAnglesTemplate : ITemplateParameters { public string SheetName => "Определение углов осцилляции"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate.xlsx"; + public string FileName => "ProcessMapPlanOscillationAnglesTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs similarity index 65% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs index 4f43f0f9..221491e6 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService : ProcessMapPlanExportService +public class ProcessMapPlanOscillationAnglesExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanOscillationAnglesExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOscillationAnglesTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs similarity index 68% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs index 685b7c7d..8fd7fead 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationDeterminationOfOscillationAnglesParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesParser : ProcessMapPlanParser +public class ProcessMapPlanOscillationAnglesParser : ProcessMapPlanParser { - public ProcessMapPlanOperationDeterminationOfOscillationAnglesParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanOscillationAnglesParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationDeterminationOfOscillationAnglesTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOscillationAnglesTemplate(); - protected override ProcessMapPlanOperationDeterminationOfOscillationAnglesDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanOscillationAnglesDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs deleted file mode 100644 index 1ff24202..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest.cs +++ /dev/null @@ -1,77 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using AsbCloudWebApi.IntegrationTests; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план определения углов осцилляции -/// -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanOperationDeterminationOfOscillationAnglesControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationDeterminationOfOscillationAngles") - { - } - private readonly ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto = new ProcessMapPlanOperationDeterminationOfOscillationAnglesDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - DifferentialPressure = 1, - MaxPressure = 2, - Reaming1ROPDown = 3, - Reaming1ROPUp = 4, - SetpointsSlackingOff = 5, - SetpointsTight = 6 - }; - - private readonly ProcessMapPlanOperationDeterminationOfOscillationAngles entity = new ProcessMapPlanOperationDeterminationOfOscillationAngles() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - DifferentialPressure = 1, - MaxPressure = 2, - Reaming1ROPDown = 3, - Reaming1ROPUp = 4, - SetpointsSlackingOff = 5, - SetpointsTight = 6 - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanOperationDeterminationOfOscillationAngles GetByNote(DbSet dbSet, ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationDeterminationOfOscillationAnglesDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationDeterminationOfOscillationAnglesDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationDeterminationOfOscillationAngles? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs index a66ee50e..278f4e3c 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs @@ -13,7 +13,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanOperationSwitchingToTheModeControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchMode") + public ProcessMapPlanOperationSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchingToTheMode") { } private readonly ProcessMapPlanOperationSwitchingToTheModeDto dto = new ProcessMapPlanOperationSwitchingToTheModeDto() @@ -23,10 +23,6 @@ public class ProcessMapPlanOperationSwitchingToTheModeControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, - Comment = 1, - ExitTimeConsumption = 2, - ConsumptionFlowRate = 3, - PressureLimitMax = 4, }; private readonly ProcessMapPlanOperationSwitchingToTheMode entity = new ProcessMapPlanOperationSwitchingToTheMode() @@ -39,7 +35,6 @@ public class ProcessMapPlanOperationSwitchingToTheModeControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, - Comment = "1", }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs new file mode 100644 index 00000000..116dc6b4 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs @@ -0,0 +1,71 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOscillationAnglesControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOscillationAnglesControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOscillationAngles") + { + } + private readonly ProcessMapPlanOscillationAnglesDto dto = new ProcessMapPlanOscillationAnglesDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + DifferentialPressure = 1, + MaxPressure = 2, + Reaming1ROPDown = 3, + Reaming1ROPUp = 4, + SetpointsSlackingOff = 5, + SetpointsTight = 6 + }; + + private readonly ProcessMapPlanOscillationAngles entity = new ProcessMapPlanOscillationAngles() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOscillationAngles GetByNote(DbSet dbSet, ProcessMapPlanOscillationAnglesDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOscillationAnglesDto GetByNote(IEnumerable dtos, ProcessMapPlanOscillationAnglesDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOscillationAngles? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs deleted file mode 100644 index 7e5311f1..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationDeterminationOfOscillationAnglesController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план определения углов осцилляции -/// -public class ProcessMapPlanOperationDeterminationOfOscillationAnglesController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanOperationDeterminationOfOscillationAnglesController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanOperationDeterminationOfOscillationAnglesParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanOperationDeterminationOfOscillationAnglesExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_позиционирование_над_забоем.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs new file mode 100644 index 00000000..ca30f6da --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOscillationAnglesController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanOscillationAnglesController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanOscillationAnglesParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanOscillationAnglesExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_определение_углов_осцилляции.xlsx"; +} \ No newline at end of file From 6b71d3e688a8cbec447dc931b8e17a0333c6e781 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Fri, 28 Jun 2024 16:29:26 +0500 Subject: [PATCH 28/74] =?UTF-8?q?=D0=9E=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B3=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOscillationAnglesDto.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs new file mode 100644 index 00000000..99f11a5c --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs @@ -0,0 +1,40 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план определения углов осцилляции +/// +public class ProcessMapPlanOscillationAnglesDto : ProcessMapPlanBaseDto +{ + /// + /// Момент на ВСП, кН*м., Уставка + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., Уставка, должно быть в пределах от 0 до 35")] + public double TopDriveTorque { get; set; } + + /// + /// Момент на ВСП, кН*м., Ограничение + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., Ограничение, должно быть в пределах от 0 до 35")] + public double TopDriveTorqueMax { get; set; } + + /// + /// Обороты на ВСП, об/мин., Уставка + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., Уставка, должно быть в пределах от 0 до 270")] + public double Rpm { get; set; } + + /// + /// Обороты на ВСП, об/мин., Ограничение + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., Ограничение, должно быть в пределах от 0 до 270")] + public double RpmMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file From 9bbe4175048910e13b60db0f73bac6f46eb8a5e6 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Fri, 28 Jun 2024 16:31:05 +0500 Subject: [PATCH 29/74] =?UTF-8?q?=D0=9E=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B3=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= =?UTF-8?q?-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs index 99f11a5c..cf930c5c 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; namespace AsbCloudApp.Data.ProcessMaps; From 093495ab4c40dc44692d14499a3a74a1573206de Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 20:46:11 +0500 Subject: [PATCH 30/74] =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=80=D0=BE=D1=82=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMaps/ProcessMapPlanRotorDto.cs | 16 ++--- .../ProcessMapPlan/ProcessMapPlanRotor.cs | 31 +++++----- .../ProcessMapPlanRotorTemplate.cs | 16 ++--- .../Report/ProcessMapReportDrillingService.cs | 14 ++--- .../Services/WellInfoService.cs | 4 +- ...sMapPlanOscillationAnglesControllerTest.cs | 6 -- .../ProcessMapPlanRotorControllerTest.cs | 60 +++++++++---------- 7 files changed, 71 insertions(+), 76 deletions(-) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs index eb3640dd..8adf60d8 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs @@ -11,13 +11,13 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// Максимально допустимая скорость, м/ч /// [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] - public double RopLimitMax { get; set; } + public double RopMax { get; set; } /// /// Максимально допустимое давление, атм /// [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] - public double PressureLimitMax { get; set; } + public double PressureMax { get; set; } /// /// Перепад давления, атм. Уставка @@ -29,7 +29,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// Перепад давления, атм. Ограничение /// [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] - public double DifferentialPressureLimitMax { get; set; } + public double DifferentialPressureMax { get; set; } /// /// Нагрузка, т. Уставка @@ -41,7 +41,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// Нагрузка, т. Ограничение /// [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] - public double WeightOnBitLimitMax { get; set; } + public double WeightOnBitMax { get; set; } /// /// Момент на ВСП, кН*м. Уставка @@ -53,19 +53,19 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// Момент на ВСП, кН*м. Ограничение /// [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] - public double TopDriveTorqueLimit { get; set; } + public double TopDriveTorqueMax { get; set; } /// /// Обороты на ВСП, об/мин. Уставка /// [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] - public double RevolutionsPerMinute { get; set; } + public double Rpm { get; set; } /// /// Обороты на ВСП, об/мин. Ограничение /// [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] - public double RevolutionsPerMinuteLimitMax { get; set; } + public double RpmMax { get; set; } /// /// Расход л/с. Уставка @@ -77,7 +77,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto /// Расход л/с. Ограничение /// [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] - public double FlowRateLimitMax { get; set; } + public double FlowRateMax { get; set; } /// /// Примечание diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs index c4bec8f4..e2e09f4a 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs @@ -8,12 +8,12 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")] public class ProcessMapPlanRotor : ProcessMapPlanBase { - [Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")] + [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч")] [Range(0, 800.0)] [Required] - public double RopLimitMax { get; set; } + public double RopMax { get; set; } - [Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")] + [Column("pressure_max"), Comment("Максимально допустимое давление, атм")] [Range(0.0, 400.0)] [Required] public double PressureLimitMax { get; set; } @@ -23,52 +23,53 @@ public class ProcessMapPlanRotor : ProcessMapPlanBase [Required] public double DifferentialPressure { get; set; } - [Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")] + [Column("differential_pressure_max"), Comment("Перепад давления, атм. Ограничение")] [Range(0.0, 60.0)] [Required] - public double DifferentialPressureLimitMax { get; set; } + public double DifferentialPressureMax { get; set; } [Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")] [Range(0.0, 99.0)] [Required] public double WeightOnBit { get; set; } - [Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")] + [Column("weight_on_bit_max"), Comment("Нагрузка, т. Ограничение")] [Range(0.0, 99.0)] [Required] - public double WeightOnBitLimitMax { get; set; } + public double WeightOnBitMax { get; set; } [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")] [Range(0.0, 35.0)] [Required] public double TopDriveTorque { get; set; } - [Column("top_drive_torque_limit_max"), Comment("Момент на ВСП, кН*м. Ограничение")] + [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м. Ограничение")] [Range(0.0, 35.0)] [Required] - public double TopDriveTorqueLimit { get; set; } + public double TopDriveTorqueMax { get; set; } - [Column("revolution_per_minute"), Comment("Обороты на ВСП, об/мин. Уставка")] + [Column("rpm"), Comment("Обороты на ВСП, об/мин. Уставка")] [Range(0.0, 270.0)] [Required] - public double RevolutionsPerMinute { get; set; } + public double Rpm { get; set; } - [Column("revolutions_per_minute_limit_max"), Comment("Обороты на ВСП, об/мин. Ограничение")] + [Column("rpm_max"), Comment("Обороты на ВСП, об/мин. Ограничение")] [Range(0.0, 270.0)] [Required] - public double RevolutionsPerMinuteLimitMax { get; set; } + public double RpmMax { get; set; } [Column("flow_rate"), Comment("Расход л/с. Уставка")] [Range(0.0, 100.0)] [Required] public double FlowRate { get; set; } - [Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")] + [Column("flow_rate_max"), Comment("Расход л/с. Ограничение")] [Range(0.0, 100.0)] [Required] - public double FlowRateLimitMax { get; set; } + public double FlowRateMax { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] + [Required] public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs index f7a63207..aa011afd 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs @@ -16,18 +16,18 @@ public class ProcessMapPlanRotorTemplate : ITemplateParameters { nameof(ProcessMapPlanRotorDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanRotorDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DepthEnd), new Cell(3, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.RopLimitMax), new Cell(4, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.PressureLimitMax), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.RopMax), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.PressureMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DifferentialPressure), new Cell(6, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.DifferentialPressureMax), new Cell(7, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.WeightOnBit), new Cell(8, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.WeightOnBitMax), new Cell(9, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.TopDriveTorque), new Cell(10, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.TopDriveTorqueLimit), new Cell(11, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.RevolutionsPerMinute), new Cell(12, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.RevolutionsPerMinuteLimitMax), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.TopDriveTorqueMax), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.Rpm), new Cell(12, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.RpmMax), new Cell(13, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.FlowRate), new Cell(14, typeof(double)) }, - { nameof(ProcessMapPlanRotorDto.FlowRateLimitMax), new Cell(15, typeof(double)) }, + { nameof(ProcessMapPlanRotorDto.FlowRateMax), new Cell(15, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.Note), new Cell(16, typeof(double)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs index 4a0e6c89..4c5132c5 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs @@ -273,16 +273,16 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService if(processMapPlanFilteredByDepth is ProcessMapPlanRotorDto processMapPlanRotorFilteredByDepth) { result.PressureDiff.SetpointPlan = processMapPlanRotorFilteredByDepth.DifferentialPressure; - result.PressureDiff.Limit = processMapPlanRotorFilteredByDepth.DifferentialPressureLimitMax; + result.PressureDiff.Limit = processMapPlanRotorFilteredByDepth.DifferentialPressureMax; result.AxialLoad.SetpointPlan = processMapPlanRotorFilteredByDepth.WeightOnBit; - result.AxialLoad.Limit = processMapPlanRotorFilteredByDepth.WeightOnBitLimitMax; + result.AxialLoad.Limit = processMapPlanRotorFilteredByDepth.WeightOnBitMax; result.TopDriveTorque.SetpointPlan = processMapPlanRotorFilteredByDepth.TopDriveTorque; - result.TopDriveTorque.Limit = processMapPlanRotorFilteredByDepth.TopDriveTorqueLimit; - result.SpeedLimit.SetpointPlan = processMapPlanRotorFilteredByDepth.RopLimitMax; - result.TopDriveSpeed.SetpointPlan = processMapPlanRotorFilteredByDepth.RevolutionsPerMinute; + result.TopDriveTorque.Limit = processMapPlanRotorFilteredByDepth.TopDriveTorqueMax; + result.SpeedLimit.SetpointPlan = processMapPlanRotorFilteredByDepth.RopMax; + result.TopDriveSpeed.SetpointPlan = processMapPlanRotorFilteredByDepth.Rpm; result.Flow.SetpointPlan = processMapPlanRotorFilteredByDepth.FlowRate; - result.Flow.Limit = processMapPlanRotorFilteredByDepth.FlowRateLimitMax; - result.Rop.Plan = processMapPlanRotorFilteredByDepth.RopLimitMax; + result.Flow.Limit = processMapPlanRotorFilteredByDepth.FlowRateMax; + result.Rop.Plan = processMapPlanRotorFilteredByDepth.RopMax; } if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth) { diff --git a/AsbCloudInfrastructure/Services/WellInfoService.cs b/AsbCloudInfrastructure/Services/WellInfoService.cs index b1a635a3..74bea1ef 100644 --- a/AsbCloudInfrastructure/Services/WellInfoService.cs +++ b/AsbCloudInfrastructure/Services/WellInfoService.cs @@ -171,13 +171,13 @@ public class WellInfoService { wellMapInfo.AxialLoad.Plan = processMapPlanRotor?.WeightOnBit; - wellMapInfo.TopDriveSpeed.Plan = processMapPlanRotor?.RevolutionsPerMinute; + wellMapInfo.TopDriveSpeed.Plan = processMapPlanRotor?.Rpm; wellMapInfo.TopDriveTorque.Plan = processMapPlanRotor?.TopDriveTorque; wellMapInfo.Pressure.Plan = processMapPlanRotor?.DifferentialPressure; - wellMapInfo.ROP.Plan = processMapPlanRotor?.RopLimitMax; + wellMapInfo.ROP.Plan = processMapPlanRotor?.RopMax; } if (processMapPlanWellDrilling is ProcessMapPlanSlideDto processMapPlanSlide) diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs index 116dc6b4..7e136671 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs @@ -28,12 +28,6 @@ public class ProcessMapPlanOscillationAnglesControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, - DifferentialPressure = 1, - MaxPressure = 2, - Reaming1ROPDown = 3, - Reaming1ROPUp = 4, - SetpointsSlackingOff = 5, - SetpointsTight = 6 }; private readonly ProcessMapPlanOscillationAngles entity = new ProcessMapPlanOscillationAngles() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs index 7c2ed101..788d43aa 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs @@ -13,18 +13,18 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes IdWell = 1, DepthStart = 1, DepthEnd = 2, - RopLimitMax = 3, - PressureLimitMax = 4, + RopMax = 3, + PressureMax = 4, DifferentialPressure = 5, - DifferentialPressureLimitMax = 6, + DifferentialPressureMax = 6, WeightOnBit = 7, - WeightOnBitLimitMax = 8, + WeightOnBitMax = 8, TopDriveTorque = 9, - TopDriveTorqueLimit = 10, - RevolutionsPerMinute = 11, - RevolutionsPerMinuteLimitMax = 12, + TopDriveTorqueMax = 10, + Rpm = 11, + RpmMax = 12, FlowRate = 13, - FlowRateLimitMax = 14, + FlowRateMax = 14, Note = "15", Id = 0, IdWellSectionType = 1, @@ -36,20 +36,20 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes DepthEnd = 10, DepthStart = 2, DifferentialPressure = 3, - DifferentialPressureLimitMax = 4, + DifferentialPressureMax = 4, FlowRate = 5, - FlowRateLimitMax = 6, + FlowRateMax = 6, Id = 0, IdWellSectionType = 1, Note = "1", PressureLimitMax = 2, - RevolutionsPerMinute = 3, - RevolutionsPerMinuteLimitMax = 4, - RopLimitMax = 5, + Rpm = 3, + RpmMax = 4, + RopMax = 5, TopDriveTorque = 6, - TopDriveTorqueLimit = 7, + TopDriveTorqueMax = 7, WeightOnBit = 8, - WeightOnBitLimitMax = 9, + WeightOnBitMax = 9, IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow @@ -65,7 +65,7 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes var entity = dbContext .Set() .Where(p => p.WeightOnBit == dto.WeightOnBit) - .Where(p => p.WeightOnBitLimitMax == dto.WeightOnBitLimitMax) + .Where(p => p.WeightOnBitMax == dto.WeightOnBitMax) .Where(p => p.Note == dto.Note) .FirstOrDefault(p => p.IdWell == dto.IdWell); @@ -120,36 +120,36 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes var dtoUpdate = dto.Adapt(); dtoUpdate.IdWell = 0; dtoUpdate.Note = "nebuchadnezzar"; - dtoUpdate.DifferentialPressureLimitMax++; + dtoUpdate.DifferentialPressureMax++; dtoUpdate.DifferentialPressure++; dtoUpdate.FlowRate++; - dtoUpdate.FlowRateLimitMax++; - dtoUpdate.RopLimitMax++; + dtoUpdate.FlowRateMax++; + dtoUpdate.RopMax++; dtoUpdate.WeightOnBit++; - dtoUpdate.WeightOnBitLimitMax++; + dtoUpdate.WeightOnBitMax++; dtoUpdate.DepthStart++; dtoUpdate.DepthEnd++; - dtoUpdate.RevolutionsPerMinute++; - dtoUpdate.RevolutionsPerMinuteLimitMax++; + dtoUpdate.Rpm++; + dtoUpdate.RpmMax++; dtoUpdate.TopDriveTorque++; - dtoUpdate.TopDriveTorqueLimit++; + dtoUpdate.TopDriveTorqueMax++; var dtoInsert = dtoUpdate.Adapt(); dtoInsert.Id = 0; dtoInsert.Note = "nebuchad"; - dtoInsert.DifferentialPressureLimitMax++; + dtoInsert.DifferentialPressureMax++; dtoInsert.DifferentialPressure++; dtoInsert.FlowRate++; - dtoInsert.FlowRateLimitMax++; - dtoInsert.RopLimitMax++; + dtoInsert.FlowRateMax++; + dtoInsert.RopMax++; dtoInsert.WeightOnBit++; - dtoInsert.WeightOnBitLimitMax++; + dtoInsert.WeightOnBitMax++; dtoInsert.DepthStart++; dtoInsert.DepthEnd++; - dtoInsert.RevolutionsPerMinute++; - dtoInsert.RevolutionsPerMinuteLimitMax++; + dtoInsert.Rpm++; + dtoInsert.RpmMax++; dtoInsert.TopDriveTorque++; - dtoInsert.TopDriveTorqueLimit++; + dtoInsert.TopDriveTorqueMax++; await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert); } From 65f2f774599e91707f80c102ef65c57362da60bb Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 20:58:35 +0500 Subject: [PATCH 31/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=82=D0=B8=D0=B2?= =?UTF-8?q?=D0=BE=D0=B0=D0=B2=D0=B0=D1=80=D0=B8=D0=B9=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsAnticrashRotationDto.cs | 8 ++++---- .../ProcessMapPlanFunctionsAnticrashRotation.cs | 14 +++++++------- ...PlanFunctionsAnticrashRotationControllerTest.cs | 8 +------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs index 885c07e1..60bee040 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs @@ -11,17 +11,17 @@ public class ProcessMapPlanFunctionsAnticrashRotationDto : ProcessMapPlanBaseDto /// Минимальные обороты ВСП, об/мин /// [Range(0.0, 250.0, ErrorMessage = "Минимальные обороты ВСП, об/мин., должно быть в пределах от 0 до 250")] - public double MinRPM { get; set; } + public double TopDriveRpmMin { get; set; } /// /// Минимальный расход для запуска оборотов ВСП, л/сек /// - [Range(1.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")] - public double MinСonsumptionStartingFlowRate { get; set; } + [Range(0.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")] + public double TopDriveStartMinFlowRate { get; set; } /// /// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м /// [Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")] - public double TopDriveTorqueLimitMax { get; set; } + public double TopDriveTorqueMax { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs index 427ebab4..b560cf31 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs @@ -8,20 +8,20 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_functions_anticrash_rotation"), Comment("Противоаварийное вращение")] public class ProcessMapPlanFunctionsAnticrashRotation : ProcessMapPlanBase { - [Column("min_RPM"), Comment("Минимальные обороты ВСП, об/мин")] + [Column("top_drive_rpm_min"), Comment("Минимальные обороты ВСП, об/мин")] [Range(0.0, 250.0)] [Required] - public double MinRPM { get; set; } + public double TopDriveRpmMin { get; set; } - [Column("min_consumption_starting_flow_rate"), Comment("Минимальный расход для запуска оборотов ВСП, л/сек")] - [Range(1.0, 100.0)] + [Column("top_drive_start_min_flow_rate"), Comment("Минимальный расход для запуска оборотов ВСП, л/сек")] + [Range(0.0, 100.0)] [Required] - public double MinСonsumptionStartingFlowRate { get; set; } + public double TopDriveStartMinFlowRate { get; set; } - [Column("top_drive_torque_limit_max"), Comment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м")] + [Column("top_drive_torque_max"), Comment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м")] [Range(1.0, 35.0)] [Required] - public double TopDriveTorqueLimitMax { get; set; } + public double TopDriveTorqueMax { get; set; } [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanFunctionsAnticrashRotation? Previous { get; set; } diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs index 5b42fb6e..23c282a1 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs @@ -28,9 +28,6 @@ public class ProcessMapPlanFunctionsAnticrashRotationControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, - MinRPM = 1, - MinСonsumptionStartingFlowRate = 1, - TopDriveTorqueLimitMax = 1 }; private readonly ProcessMapPlanFunctionsAnticrashRotation entity = new ProcessMapPlanFunctionsAnticrashRotation() @@ -42,10 +39,7 @@ public class ProcessMapPlanFunctionsAnticrashRotationControllerTest : IdWellSectionType = 1, IdAuthor = 1, IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - MinRPM = 1, - MinСonsumptionStartingFlowRate = 1, - TopDriveTorqueLimitMax = 1 + Creation = DateTimeOffset.UtcNow }; [Fact] From cf1f8f305bd0dcc95eca93cd565e85838ff1e64f Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:10:12 +0500 Subject: [PATCH 32/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=82=D0=B8=D0=B2?= =?UTF-8?q?=D0=BE=D0=B0=D0=B2=D0=B0=D1=80=D0=B8=D0=B9=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...essMapPlanFunctionsAnticrashRotationDto.cs | 27 -------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ....cs => ProcessMapPlanAntiCrashRotation.cs} | 6 +- AsbCloudInfrastructure/DependencyInjection.cs | 18 ++--- ...rocessMapPlanAntiCrashRotationTemplate.cs} | 4 +- ...sMapPlanAntiCrashRotationExportService.cs} | 8 +-- ... ProcessMapPlanAntiCrashRotationParser.cs} | 8 +-- ...sMapPlanAntiCrashRotationControllerTest.cs | 60 +++++++++++++++++ ...unctionsAnticrashRotationControllerTest.cs | 65 ------------------- ...cessMapPlanAntiCrashRotationController.cs} | 12 ++-- 11 files changed, 92 insertions(+), 124 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsAnticrashRotation.cs => ProcessMapPlanAntiCrashRotation.cs} (77%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsAnticrashRotationTemplate.cs => ProcessMapPlanAntiCrashRotationTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsAnticrashRotationExportService.cs => ProcessMapPlanAntiCrashRotationExportService.cs} (69%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsAnticrashRotationParser.cs => ProcessMapPlanAntiCrashRotationParser.cs} (71%) create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsAnticrashRotationController.cs => ProcessMapPlanAntiCrashRotationController.cs} (59%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs deleted file mode 100644 index 60bee040..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationDto.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план противоаварийное вращение -/// -public class ProcessMapPlanFunctionsAnticrashRotationDto : ProcessMapPlanBaseDto -{ - /// - /// Минимальные обороты ВСП, об/мин - /// - [Range(0.0, 250.0, ErrorMessage = "Минимальные обороты ВСП, об/мин., должно быть в пределах от 0 до 250")] - public double TopDriveRpmMin { get; set; } - - /// - /// Минимальный расход для запуска оборотов ВСП, л/сек - /// - [Range(0.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")] - public double TopDriveStartMinFlowRate { get; set; } - - /// - /// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м - /// - [Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")] - public double TopDriveTorqueMax { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index d878d481..81510bbd 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -38,7 +38,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); - public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); + public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); public virtual DbSet DrillingProgramParts => Set(); @@ -553,7 +553,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -653,7 +653,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index c176e088..7afd557a 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -99,7 +99,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } - DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } + DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } DbSet ProcessMapPlanFunctionsStaticMeasure { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs similarity index 77% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs index b560cf31..c27903ef 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_functions_anticrash_rotation"), Comment("Противоаварийное вращение")] -public class ProcessMapPlanFunctionsAnticrashRotation : ProcessMapPlanBase +[Table("t_process_map_plan_anti_crash_rotation"), Comment("Противоаварийное вращение")] +public class ProcessMapPlanAntiCrashRotation : ProcessMapPlanBase { [Column("top_drive_rpm_min"), Comment("Минимальные обороты ВСП, об/мин")] [Range(0.0, 250.0)] @@ -24,5 +24,5 @@ public class ProcessMapPlanFunctionsAnticrashRotation : ProcessMapPlanBase public double TopDriveTorqueMax { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsAnticrashRotation? Previous { get; set; } + public virtual ProcessMapPlanAntiCrashRotation? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 08ded898..62172873 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -258,11 +258,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -445,7 +445,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -471,7 +471,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -559,8 +559,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -584,7 +584,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); return services; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs index 6bdbde3a..c1d33c3f 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAnticrashRotationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsAnticrashRotationTemplate : ITemplateParameters +public class ProcessMapPlanAntiCrashRotationTemplate : ITemplateParameters { public string SheetName => "Противоаварийное вращение"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsAnticrashRotationTemplate.xlsx"; + public string FileName => "ProcessMapPlanAntiCrashRotationTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs similarity index 69% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs index 09b9b89d..fa784e16 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAnticrashRotationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsAnticrashRotationExportService : ProcessMapPlanExportService +public class ProcessMapPlanAntiCrashRotationExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsAnticrashRotationExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanAntiCrashRotationExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsAnticrashRotationTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanAntiCrashRotationTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs similarity index 71% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs index 9a159cbd..15cf7486 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAnticrashRotationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsAnticrashRotationParser : ProcessMapPlanParser +public class ProcessMapPlanAntiCrashRotationParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsAnticrashRotationParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanAntiCrashRotationParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsAnticrashRotationTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanAntiCrashRotationTemplate(); - protected override ProcessMapPlanFunctionsAnticrashRotationDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanAntiCrashRotationDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs new file mode 100644 index 00000000..4b7b79d1 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs @@ -0,0 +1,60 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudWebApi.IntegrationTests; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план противоаварийное вращение +/// +public class ProcessMapPlanAntiCrashRotationControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanAntiCrashRotationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAnticrashRotation") + { + } + private readonly ProcessMapPlanAntiCrashRotationDto dto = new ProcessMapPlanAntiCrashRotationDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + }; + + private readonly ProcessMapPlanAntiCrashRotation entity = new ProcessMapPlanAntiCrashRotation() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanAntiCrashRotation GetByNote(DbSet dbSet, ProcessMapPlanAntiCrashRotationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanAntiCrashRotationDto GetByNote(IEnumerable dtos, ProcessMapPlanAntiCrashRotationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanAntiCrashRotation? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs deleted file mode 100644 index 23c282a1..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAnticrashRotationControllerTest.cs +++ /dev/null @@ -1,65 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план противоаварийное вращение -/// -public class ProcessMapPlanFunctionsAnticrashRotationControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanFunctionsAnticrashRotationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAnticrashRotation") - { - } - private readonly ProcessMapPlanFunctionsAnticrashRotationDto dto = new ProcessMapPlanFunctionsAnticrashRotationDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - }; - - private readonly ProcessMapPlanFunctionsAnticrashRotation entity = new ProcessMapPlanFunctionsAnticrashRotation() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanFunctionsAnticrashRotation GetByNote(DbSet dbSet, ProcessMapPlanFunctionsAnticrashRotationDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanFunctionsAnticrashRotationDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsAnticrashRotationDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanFunctionsAnticrashRotation? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs similarity index 59% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs index 2f17555f..259e7a06 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAnticrashRotationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план противоаварийное вращение /// -public class ProcessMapPlanFunctionsAnticrashRotationController : - ProcessMapPlanBaseController +public class ProcessMapPlanAntiCrashRotationController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsAnticrashRotationController( - IChangeLogRepository repository, + public ProcessMapPlanAntiCrashRotationController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsAnticrashRotationParser parserService, + ProcessMapPlanAntiCrashRotationParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsAnticrashRotationExportService processMapPlanExportService) + ProcessMapPlanAntiCrashRotationExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 9fac4edaf6db409cd0d318c9cf5da689befa2577 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:16:32 +0500 Subject: [PATCH 33/74] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=85=D0=BE=D0=BB=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=85=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanAntiCrashRotationDto.cs | 27 +++++++++++++++++++ ...ProcessMapPlanFunctionsUpgradeNoloadDto.cs | 20 -------------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 ++--- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...ProcessMapPlanUpdatingNoloadParameters.cs} | 6 ++--- AsbCloudInfrastructure/DependencyInjection.cs | 18 ++++++------- ...apPlanUpdatingNoloadParametersTemplate.cs} | 4 +-- ...nUpdatingNoloadParametersExportService.cs} | 8 +++--- ...sMapPlanUpdatingNoloadParametersParser.cs} | 8 +++--- ...UpdatingNoloadParametersControllerTest.cs} | 16 +++++------ ...PlanUpdatingNoloadParametersController.cs} | 12 ++++----- 11 files changed, 67 insertions(+), 60 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsUpgradeNoload.cs => ProcessMapPlanUpdatingNoloadParameters.cs} (65%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs => ProcessMapPlanUpdatingNoloadParametersTemplate.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsUpgradeNoloadExportService.cs => ProcessMapPlanUpdatingNoloadParametersExportService.cs} (69%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsUpgradeNoloadParser.cs => ProcessMapPlanUpdatingNoloadParametersParser.cs} (72%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs => ProcessMapPlanUpdatingNoloadParametersControllerTest.cs} (57%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsUpgradeNoloadController.cs => ProcessMapPlanUpdatingNoloadParametersController.cs} (60%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs new file mode 100644 index 00000000..e108dbb8 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план противоаварийное вращение +/// +public class ProcessMapPlanAntiCrashRotationDto : ProcessMapPlanBaseDto +{ + /// + /// Минимальные обороты ВСП, об/мин + /// + [Range(0.0, 250.0, ErrorMessage = "Минимальные обороты ВСП, об/мин., должно быть в пределах от 0 до 250")] + public double TopDriveRpmMin { get; set; } + + /// + /// Минимальный расход для запуска оборотов ВСП, л/сек + /// + [Range(0.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")] + public double TopDriveStartMinFlowRate { get; set; } + + /// + /// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м + /// + [Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")] + public double TopDriveTorqueMax { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs deleted file mode 100644 index f8199e8d..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadDto.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план обновление холостого хода -/// -public class ProcessMapPlanFunctionsUpgradeNoloadDto : ProcessMapPlanBaseDto -{ - /// - /// СПУСК ОК Да/Нет - /// - public bool IdDeclineSocketColumn { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 81510bbd..95d51216 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -36,7 +36,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); - public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); + public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); @@ -543,7 +543,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -643,7 +643,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 7afd557a..5a764be3 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -97,7 +97,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } - DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } + DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } DbSet ProcessMapPlanFunctionsStaticMeasure { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs similarity index 65% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs index 84f5a2b0..3be496df 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoload.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_functions_upgrade_no_load"), Comment("Обновление холостого хода")] -public class ProcessMapPlanFunctionsUpgradeNoload : ProcessMapPlanBase +[Table("t_process_map_plan_updating_noload_parameters"), Comment("Обновление холостого хода")] +public class ProcessMapPlanUpdatingNoloadParameters : ProcessMapPlanBase { [Column("id_decline_socket_column"), Comment("СПУСК ОК Да/Нет")] public bool IdDeclineSocketColumn { get; set; } @@ -15,5 +15,5 @@ public class ProcessMapPlanFunctionsUpgradeNoload : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsUpgradeNoload? Previous { get; set; } + public virtual ProcessMapPlanUpdatingNoloadParameters? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 62172873..216354c3 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -244,11 +244,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -443,7 +443,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -469,7 +469,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -551,8 +551,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -582,7 +582,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs index c24bcb58..5082629c 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsUpgradeNoloadTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsUpgradeNoloadTemplate : ITemplateParameters +public class ProcessMapPlanUpdatingNoloadParametersTemplate : ITemplateParameters { public string SheetName => "Обновление холостого хода"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsUpgradeNoloadTemplate.xlsx"; + public string FileName => "ProcessMapPlanUpdatingNoloadParametersTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs similarity index 69% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs index 234cc860..1d30dfb3 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsUpgradeNoloadExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsUpgradeNoloadExportService : ProcessMapPlanExportService +public class ProcessMapPlanUpdatingNoloadParametersExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsUpgradeNoloadExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanUpdatingNoloadParametersExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsUpgradeNoloadTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanUpdatingNoloadParametersTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs similarity index 72% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs index ceb500a1..1ba6f743 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsUpgradeNoloadParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsUpgradeNoloadParser : ProcessMapPlanParser +public class ProcessMapPlanUpdatingNoloadParametersParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsUpgradeNoloadParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanUpdatingNoloadParametersParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsUpgradeNoloadTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanUpdatingNoloadParametersTemplate(); - protected override ProcessMapPlanFunctionsUpgradeNoloadDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanUpdatingNoloadParametersDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs similarity index 57% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs index 12f73ddc..9850539d 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsUpgradeNoloadControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план обновление холостого хода /// -public class ProcessMapPlanFunctionsUpgradeNoloadControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanUpdatingNoloadParametersControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsUpgradeNoloadControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsUpgradeNoload") + public ProcessMapPlanUpdatingNoloadParametersControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsUpgradeNoload") { } - private readonly ProcessMapPlanFunctionsUpgradeNoloadDto dto = new ProcessMapPlanFunctionsUpgradeNoloadDto() + private readonly ProcessMapPlanUpdatingNoloadParametersDto dto = new ProcessMapPlanUpdatingNoloadParametersDto() { IdWell = 1, DepthStart = 1, @@ -32,7 +32,7 @@ public class ProcessMapPlanFunctionsUpgradeNoloadControllerTest : Note = "1" }; - private readonly ProcessMapPlanFunctionsUpgradeNoload entity = new ProcessMapPlanFunctionsUpgradeNoload() + private readonly ProcessMapPlanUpdatingNoloadParameters entity = new ProcessMapPlanUpdatingNoloadParameters() { IdWell = 1, DepthEnd = 10, @@ -52,17 +52,17 @@ public class ProcessMapPlanFunctionsUpgradeNoloadControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsUpgradeNoload GetByNote(DbSet dbSet, ProcessMapPlanFunctionsUpgradeNoloadDto dto) + protected override ProcessMapPlanUpdatingNoloadParameters GetByNote(DbSet dbSet, ProcessMapPlanUpdatingNoloadParametersDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsUpgradeNoloadDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsUpgradeNoloadDto dto) + protected override ProcessMapPlanUpdatingNoloadParametersDto GetByNote(IEnumerable dtos, ProcessMapPlanUpdatingNoloadParametersDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsUpgradeNoload? GetByWellId() + protected override ProcessMapPlanUpdatingNoloadParameters? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs similarity index 60% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs index 9d4200b2..3604f57a 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsUpgradeNoloadController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план обновление холостого хода /// -public class ProcessMapPlanFunctionsUpgradeNoloadController : - ProcessMapPlanBaseController +public class ProcessMapPlanUpdatingNoloadParametersController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsUpgradeNoloadController( - IChangeLogRepository repository, + public ProcessMapPlanUpdatingNoloadParametersController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsUpgradeNoloadParser parserService, + ProcessMapPlanUpdatingNoloadParametersParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsUpgradeNoloadExportService processMapPlanExportService) + ProcessMapPlanUpdatingNoloadParametersExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 04fd517ab13b3f499605b109fe903fd67c79ccac Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:26:43 +0500 Subject: [PATCH 34/74] =?UTF-8?q?=D0=9E=D1=81=D1=86=D0=B8=D0=BB=D0=BB?= =?UTF-8?q?=D1=8F=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Dto.cs => ProcessMapPlanOscillationDto.cs} | 14 ++-- ...ocessMapPlanUpdatingNoloadParametersDto.cs | 20 +++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- .../ProcessMapPlanFunctionsOscillation.cs | 45 ----------- .../ProcessMapPlanOscillation.cs | 46 +++++++++++ AsbCloudInfrastructure/DependencyInjection.cs | 18 ++--- ...s => ProcessMapPlanOscillationTemplate.cs} | 4 +- ...ProcessMapPlanOscillationExportService.cs} | 8 +- ....cs => ProcessMapPlanOscillationParser.cs} | 8 +- ...pPlanFunctionsOscillationControllerTest.cs | 79 ------------------- ...ProcessMapPlanOscillationControllerTest.cs | 71 +++++++++++++++++ ...=> ProcessMapPlanOscillationController.cs} | 12 +-- 13 files changed, 173 insertions(+), 160 deletions(-) rename AsbCloudApp/Data/ProcessMaps/{ProcessMapPlanFunctionsOscillationDto.cs => ProcessMapPlanOscillationDto.cs} (82%) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsOscillationTemplate.cs => ProcessMapPlanOscillationTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsOscillationExportService.cs => ProcessMapPlanOscillationExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsOscillationParser.cs => ProcessMapPlanOscillationParser.cs} (73%) delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsOscillationController.cs => ProcessMapPlanOscillationController.cs} (59%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs similarity index 82% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs rename to AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs index 733c1bee..51ca2027 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsOscillationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs @@ -5,7 +5,7 @@ namespace AsbCloudApp.Data.ProcessMaps; /// /// РТК план осцилляция /// -public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto +public class ProcessMapPlanOscillationDto : ProcessMapPlanBaseDto { /// /// Оптимальный угол осцилляции, градусы @@ -17,31 +17,31 @@ public class ProcessMapPlanFunctionsOscillationDto : ProcessMapPlanBaseDto /// Скорость вправо, об/мин /// [Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")] - public double RPM​Right { get; set; } + public double RpmRight { get; set; } /// /// Скорость влево, об/мин /// [Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")] - public double RPM​Left { get; set; } + public double RpmLeft { get; set; } /// /// Ограничение момента вправо, кН*м /// [Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueLimitRight { get; set; } + public double TorqueMaxRight { get; set; } /// /// Ограничение момента влево, кН*м /// [Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueLimitLeft { get; set; } + public double TorqueMaxLeft { get; set; } /// /// Режим Авто/Руч /// - [Required] - public bool Mode { get; set; } + [Range(0, 1, ErrorMessage = "Режим Авто/Руч, должен быть либо 0, либо 1")] + public int Mode { get; set; } /// /// Примечание diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs new file mode 100644 index 00000000..5d05f594 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план обновление холостого хода +/// +public class ProcessMapPlanUpdatingNoloadParametersDto : ProcessMapPlanBaseDto +{ + /// + /// СПУСК ОК Да/Нет + /// + public bool IdDeclineSocketColumn { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 95d51216..94395a4d 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -37,7 +37,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); - public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); + public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); @@ -548,7 +548,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -648,7 +648,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 5a764be3..4ebae966 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -98,7 +98,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } - DbSet ProcessMapPlanFunctionsOscillation { get; } + DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } DbSet ProcessMapPlanFunctionsStaticMeasure { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs deleted file mode 100644 index 8836a451..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsOscillation.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMaps; - -[Table("t_process_map_plan_functions_oscillation"), Comment("Осцилляция")] -public class ProcessMapPlanFunctionsOscillation : ProcessMapPlanBase -{ - [Column("optimal_oscillation_angle"), Comment("Оптимальный угол осцилляции, градусы")] - [Range(0.0, 6000.0)] - [Required] - public double OptimalOscillationAngle { get; set; } - - [Column("RPM​_right"), Comment("Скорость вправо, об/мин")] - [Range(0.0, 270.0)] - [Required] - public double RPM​Right { get; set; } - - [Column("RPM​_left"), Comment("Скорость влево, об/мин")] - [Range(0.0, 270.0)] - [Required] - public double RPM​Left { get; set; } - - [Column("torque_limit_right"), Comment("Ограничение момента вправо, кН*м")] - [Range(0.0, 35.0)] - [Required] - public double TorqueLimitRight { get; set; } - - [Column("torque_limit_left"), Comment("Ограничение момента влево, кН*м")] - [Range(0.0, 35.0)] - [Required] - public double TorqueLimitLeft { get; set; } - - [Column("id_mode"), Comment("Режим Авто/Руч")] - [Required] - public bool Mode { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsOscillation? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs new file mode 100644 index 00000000..f11a11f3 --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_oscillation"), Comment("Осцилляция")] +public class ProcessMapPlanOscillation : ProcessMapPlanBase +{ + [Column("optimal_oscillation_angle"), Comment("Оптимальный угол осцилляции, градусы")] + [Range(0.0, 6000.0)] + [Required] + public double OptimalOscillationAngle { get; set; } + + [Column("Rpm​_right"), Comment("Скорость вправо, об/мин")] + [Range(0.0, 270.0)] + [Required] + public double RpmRight { get; set; } + + [Column("Rpm_left"), Comment("Скорость влево, об/мин")] + [Range(0.0, 270.0)] + [Required] + public double RpmLeft { get; set; } + + [Column("torque_max_right"), Comment("Ограничение момента вправо, кН*м")] + [Range(0.0, 35.0)] + [Required] + public double TorqueMaxRight { get; set; } + + [Column("torque_max_left"), Comment("Ограничение момента влево, кН*м")] + [Range(0.0, 35.0)] + [Required] + public double TorqueMaxLeft { get; set; } + + [Column("mode"), Comment("Режим Авто/Руч")] + [Range(0, 1)] + [Required] + public int Mode { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanOscillation? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 216354c3..950fb2a8 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -251,11 +251,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -444,7 +444,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -470,7 +470,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -555,8 +555,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -583,7 +583,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs index 65dfdd9f..6990aa1a 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsOscillationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsOscillationTemplate : ITemplateParameters +public class ProcessMapPlanOscillationTemplate : ITemplateParameters { public string SheetName => "Осцилляция"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsOscillationTemplate.xlsx"; + public string FileName => "ProcessMapPlanOscillationTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs index da8631c1..5e6f4ce4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsOscillationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsOscillationExportService : ProcessMapPlanExportService +public class ProcessMapPlanOscillationExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsOscillationExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanOscillationExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsOscillationTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOscillationTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs index b7966539..f243053f 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsOscillationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsOscillationParser : ProcessMapPlanParser +public class ProcessMapPlanOscillationParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsOscillationParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanOscillationParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsOscillationTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOscillationTemplate(); - protected override ProcessMapPlanFunctionsOscillationDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanOscillationDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs deleted file mode 100644 index e195ca41..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsOscillationControllerTest.cs +++ /dev/null @@ -1,79 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using AsbCloudWebApi.IntegrationTests; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план осцилляция -/// -public class ProcessMapPlanFunctionsOscillationControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanFunctionsOscillationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsOscillation") - { - } - private readonly ProcessMapPlanFunctionsOscillationDto dto = new ProcessMapPlanFunctionsOscillationDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - Mode = true, - Note = "1", - OptimalOscillationAngle = 1, - RPMLeft = 2, - RPMRight = 3, - TorqueLimitLeft = 4, - TorqueLimitRight = 5 - }; - - private readonly ProcessMapPlanFunctionsOscillation entity = new ProcessMapPlanFunctionsOscillation() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - Mode = true, - Note = "1", - OptimalOscillationAngle = 1, - RPMLeft = 2, - RPMRight = 3, - TorqueLimitLeft = 4, - TorqueLimitRight = 5 - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanFunctionsOscillation GetByNote(DbSet dbSet, ProcessMapPlanFunctionsOscillationDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanFunctionsOscillationDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsOscillationDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanFunctionsOscillation? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs new file mode 100644 index 00000000..d9413b12 --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs @@ -0,0 +1,71 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.Controllers.ProcessMaps; + +/// +/// РТК план осцилляция +/// +public class ProcessMapPlanOscillationControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanOscillationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsOscillation") + { + } + private readonly ProcessMapPlanOscillationDto dto = new ProcessMapPlanOscillationDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + Mode = 1, + Note = "1", + OptimalOscillationAngle = 1 + }; + + private readonly ProcessMapPlanOscillation entity = new ProcessMapPlanOscillation() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + Mode = 1, + Note = "1", + OptimalOscillationAngle = 1 + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanOscillation GetByNote(DbSet dbSet, ProcessMapPlanOscillationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOscillationDto GetByNote(IEnumerable dtos, ProcessMapPlanOscillationDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanOscillation? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs similarity index 59% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs index a8d1f155..6c585d33 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsOscillationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план осцилляция /// -public class ProcessMapPlanFunctionsOscillationController : - ProcessMapPlanBaseController +public class ProcessMapPlanOscillationController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsOscillationController( - IChangeLogRepository repository, + public ProcessMapPlanOscillationController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsOscillationParser parserService, + ProcessMapPlanOscillationParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsOscillationExportService processMapPlanExportService) + ProcessMapPlanOscillationExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From da475cc320e364f2bf03f9475825e48ab11508c1 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:32:53 +0500 Subject: [PATCH 35/74] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D1=83=D0=B4?= =?UTF-8?q?=D0=B5=D1=80=D0=B6=D0=B0=D0=BD=D0=B8=D0=B5=20TF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ldDto.cs => ProcessMapPlanAutoHoldTFDto.cs} | 4 ++-- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +++--- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...AutoHold.cs => ProcessMapPlanAutoHoldTF.cs} | 6 +++--- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++++++++--------- ....cs => ProcessMapPlanAutoHoldTFTemplate.cs} | 6 +++--- ...> ProcessMapPlanAutoHoldTFExportService.cs} | 10 +++++----- ...er.cs => ProcessMapPlanAutoHoldTFParser.cs} | 8 ++++---- ... ProcessMapPlanAutoHoldTFControllerTest.cs} | 16 ++++++++-------- ...s => ProcessMapPlanAutoHoldTFController.cs} | 16 ++++++++-------- 10 files changed, 46 insertions(+), 46 deletions(-) rename AsbCloudApp/Data/ProcessMaps/{ProcessMapPlanFunctionsAutoHoldDto.cs => ProcessMapPlanAutoHoldTFDto.cs} (84%) rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsAutoHold.cs => ProcessMapPlanAutoHoldTF.cs} (70%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsAutoHoldTemplate.cs => ProcessMapPlanAutoHoldTFTemplate.cs} (54%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsAutoHoldExportService.cs => ProcessMapPlanAutoHoldTFExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsAutoHoldParser.cs => ProcessMapPlanAutoHoldTFParser.cs} (74%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsAutoHoldControllerTest.cs => ProcessMapPlanAutoHoldTFControllerTest.cs} (59%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsAutoHoldController.cs => ProcessMapPlanAutoHoldTFController.cs} (51%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs similarity index 84% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs rename to AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs index aaed0489..83733093 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsAutoHoldDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs @@ -3,9 +3,9 @@ namespace AsbCloudApp.Data.ProcessMaps; /// -/// РТК план автоудержание +/// РТК план автоудержание TF /// -public class ProcessMapPlanFunctionsAutoHoldDto : ProcessMapPlanBaseDto +public class ProcessMapPlanAutoHoldTFDto : ProcessMapPlanBaseDto { /// /// Зенитный угол, градусы diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 94395a4d..038301da 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -34,7 +34,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); - public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); + public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); @@ -533,7 +533,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -633,7 +633,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 4ebae966..24a46649 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -95,7 +95,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } - DbSet ProcessMapPlanFunctionsAutoHold { get; } + DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs similarity index 70% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs index ae61fba0..2144743e 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsAutoHold.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_functions_autohold"), Comment("Автоудержание")] -public class ProcessMapPlanFunctionsAutoHold : ProcessMapPlanBase +[Table("t_process_map_plan_auto_hold_tf"), Comment("Автоудержание TF")] +public class ProcessMapPlanAutoHoldTF : ProcessMapPlanBase { [Column("zenit_angle"), Comment("Зенитный угол, градусы")] [Range(0.0, 100.0)] @@ -17,5 +17,5 @@ public class ProcessMapPlanFunctionsAutoHold : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsAutoHold? Previous { get; set; } + public virtual ProcessMapPlanAutoHoldTF? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 950fb2a8..bc48b3d5 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -230,11 +230,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -441,7 +441,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -467,7 +467,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -543,8 +543,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -580,7 +580,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs similarity index 54% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs index 3ab5b7e1..3ddfe81c 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsAutoHoldTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsAutoHoldTemplate : ITemplateParameters +public class ProcessMapPlanAutoHoldTFTemplate : ITemplateParameters { - public string SheetName => "Автоудержание"; + public string SheetName => "Автоудержание TF"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsAutoHoldTemplate.xlsx"; + public string FileName => "ProcessMapPlanAutoHoldTFTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs index c53f0e1c..deb14626 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsAutoHoldExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs @@ -10,21 +10,21 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsAutoHoldExportService : ProcessMapPlanExportService +public class ProcessMapPlanAutoHoldTFExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsAutoHoldExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanAutoHoldTFExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsAutoHoldTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanAutoHoldTFTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - return $"{caption}_РТК_План_автоудержание.xlsx"; + return $"{caption}_РТК_План_автоудержание_tf.xlsx"; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs similarity index 74% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs index 0eb26ff9..bae893a6 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsAutoHoldParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsAutoHoldParser : ProcessMapPlanParser +public class ProcessMapPlanAutoHoldTFParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsAutoHoldParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanAutoHoldTFParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsAutoHoldTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanAutoHoldTFTemplate(); - protected override ProcessMapPlanFunctionsAutoHoldDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanAutoHoldTFDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs similarity index 59% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs index 6b548b80..392c99e3 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsAutoHoldControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план автоудержание /// -public class ProcessMapPlanFunctionsAutoHoldControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanAutoHoldTFControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsAutoHoldControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAutoHold") + public ProcessMapPlanAutoHoldTFControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAutoHold") { } - private readonly ProcessMapPlanFunctionsAutoHoldDto dto = new ProcessMapPlanFunctionsAutoHoldDto() + private readonly ProcessMapPlanAutoHoldTFDto dto = new ProcessMapPlanAutoHoldTFDto() { IdWell = 1, DepthStart = 1, @@ -32,7 +32,7 @@ public class ProcessMapPlanFunctionsAutoHoldControllerTest : ZenithAngle = 2, }; - private readonly ProcessMapPlanFunctionsAutoHold entity = new ProcessMapPlanFunctionsAutoHold() + private readonly ProcessMapPlanAutoHoldTF entity = new ProcessMapPlanAutoHoldTF() { IdWell = 1, DepthEnd = 10, @@ -52,17 +52,17 @@ public class ProcessMapPlanFunctionsAutoHoldControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsAutoHold GetByNote(DbSet dbSet, ProcessMapPlanFunctionsAutoHoldDto dto) + protected override ProcessMapPlanAutoHoldTF GetByNote(DbSet dbSet, ProcessMapPlanAutoHoldTFDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsAutoHoldDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsAutoHoldDto dto) + protected override ProcessMapPlanAutoHoldTFDto GetByNote(IEnumerable dtos, ProcessMapPlanAutoHoldTFDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsAutoHold? GetByWellId() + protected override ProcessMapPlanAutoHoldTF? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs similarity index 51% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs index e31881ba..dbf138d5 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsAutoHoldController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs @@ -9,20 +9,20 @@ using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; namespace AsbCloudWebApi.Controllers.ProcessMaps; /// -/// РТК план автоудержание +/// РТК план автоудержание TF /// -public class ProcessMapPlanFunctionsAutoHoldController : - ProcessMapPlanBaseController +public class ProcessMapPlanAutoHoldTFController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsAutoHoldController( - IChangeLogRepository repository, + public ProcessMapPlanAutoHoldTFController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsAutoHoldParser parserService, + ProcessMapPlanAutoHoldTFParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsAutoHoldExportService processMapPlanExportService) + ProcessMapPlanAutoHoldTFExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_автоудержание.xlsx"; + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_автоудержание_tf.xlsx"; } \ No newline at end of file From 35698ca9098220616f39543e21029c36e012d60d Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:39:18 +0500 Subject: [PATCH 36/74] =?UTF-8?q?=D0=92=D1=8B=D1=85=D0=BE=D0=B4=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsStaticMeasureDto.cs | 15 --------------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +++--- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...> ProcessMapPlanStaticMeasurementOutput.cs} | 6 +++--- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++++++++--------- ...sMapPlanStaticMeasurementOutputTemplate.cs} | 4 ++-- ...lanStaticMeasurementOutputExportService.cs} | 8 ++++---- ...essMapPlanStaticMeasurementOutputParser.cs} | 8 ++++---- ...anStaticMeasurementOutputControllerTest.cs} | 16 ++++++++-------- ...apPlanStaticMeasurementOutputController.cs} | 12 ++++++------ 10 files changed, 40 insertions(+), 55 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsStaticMeasure.cs => ProcessMapPlanStaticMeasurementOutput.cs} (63%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsStaticMeasureTemplate.cs => ProcessMapPlanStaticMeasurementOutputTemplate.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsStaticMeasureExportService.cs => ProcessMapPlanStaticMeasurementOutputExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsStaticMeasureParser.cs => ProcessMapPlanStaticMeasurementOutputParser.cs} (72%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsStaticMeasureControllerTest.cs => ProcessMapPlanStaticMeasurementOutputControllerTest.cs} (56%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsStaticMeasureController.cs => ProcessMapPlanStaticMeasurementOutputController.cs} (60%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs deleted file mode 100644 index b56bb52c..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход статического замера -/// -public class ProcessMapPlanFunctionsStaticMeasureDto : ProcessMapPlanBaseDto -{ - /// - /// Время ожидания выхода сигнала с ТМС, сек. - /// - [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] - public double SignalWaitingTime { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 038301da..0b5f0870 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -39,7 +39,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); - public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); + public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); @@ -558,7 +558,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -658,7 +658,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 24a46649..d58f878a 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -100,7 +100,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } - DbSet ProcessMapPlanFunctionsStaticMeasure { get; } + DbSet ProcessMapPlanFunctionsStaticMeasure { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs similarity index 63% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs index c4dca7ef..aebd1171 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasure.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_functions_static_measure"), Comment("Выход статического замера")] -public class ProcessMapPlanFunctionsStaticMeasure : ProcessMapPlanBase +[Table("t_process_map_plan_static_measurement_output"), Comment("Выход статического замера")] +public class ProcessMapPlanStaticMeasurementOutput : ProcessMapPlanBase { [Column("signal_waiting_time"), Comment("Время ожидания выхода сигнала с ТМС, сек.")] [Range(0.0, 1800.0)] @@ -14,5 +14,5 @@ public class ProcessMapPlanFunctionsStaticMeasure : ProcessMapPlanBase public double SignalWaitingTime { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsStaticMeasure? Previous { get; set; } + public virtual ProcessMapPlanStaticMeasurementOutput? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index bc48b3d5..9ed9a456 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -265,11 +265,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); } @@ -446,7 +446,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -472,7 +472,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -563,8 +563,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient>(); services.AddTransient>(); @@ -585,7 +585,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); return services; } diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs index 4bdd00eb..3866a839 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsStaticMeasureTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsStaticMeasureTemplate : ITemplateParameters +public class ProcessMapPlanStaticMeasurementOutputTemplate : ITemplateParameters { public string SheetName => "Выход статического замера"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsStaticMeasureTemplate.xlsx"; + public string FileName => "ProcessMapPlanStaticMeasurementOutputTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs index 7dda5fa1..62c021ca 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsStaticMeasureExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsStaticMeasureExportService : ProcessMapPlanExportService +public class ProcessMapPlanStaticMeasurementOutputExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsStaticMeasureExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanStaticMeasurementOutputExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsStaticMeasureTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanStaticMeasurementOutputTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs similarity index 72% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs index c286f7cc..cd7b7d00 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsStaticMeasureParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsStaticMeasureParser : ProcessMapPlanParser +public class ProcessMapPlanStaticMeasurementOutputParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsStaticMeasureParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanStaticMeasurementOutputParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsStaticMeasureTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanStaticMeasurementOutputTemplate(); - protected override ProcessMapPlanFunctionsStaticMeasureDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanStaticMeasurementOutputDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs similarity index 56% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs index c7013953..01323043 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsStaticMeasureControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план выход статического замера /// -public class ProcessMapPlanFunctionsStaticMeasureControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanStaticMeasurementOutputControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsStaticMeasureControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsStaticMeasure") + public ProcessMapPlanStaticMeasurementOutputControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsStaticMeasure") { } - private readonly ProcessMapPlanFunctionsStaticMeasureDto dto = new ProcessMapPlanFunctionsStaticMeasureDto() + private readonly ProcessMapPlanStaticMeasurementOutputDto dto = new ProcessMapPlanStaticMeasurementOutputDto() { IdWell = 1, DepthStart = 1, @@ -31,7 +31,7 @@ public class ProcessMapPlanFunctionsStaticMeasureControllerTest : SignalWaitingTime = 1, }; - private readonly ProcessMapPlanFunctionsStaticMeasure entity = new ProcessMapPlanFunctionsStaticMeasure() + private readonly ProcessMapPlanStaticMeasurementOutput entity = new ProcessMapPlanStaticMeasurementOutput() { IdWell = 1, DepthEnd = 10, @@ -50,17 +50,17 @@ public class ProcessMapPlanFunctionsStaticMeasureControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsStaticMeasure GetByNote(DbSet dbSet, ProcessMapPlanFunctionsStaticMeasureDto dto) + protected override ProcessMapPlanStaticMeasurementOutput GetByNote(DbSet dbSet, ProcessMapPlanStaticMeasurementOutputDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsStaticMeasureDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsStaticMeasureDto dto) + protected override ProcessMapPlanStaticMeasurementOutputDto GetByNote(IEnumerable dtos, ProcessMapPlanStaticMeasurementOutputDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsStaticMeasure? GetByWellId() + protected override ProcessMapPlanStaticMeasurementOutput? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs similarity index 60% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs index 8d1e29b0..431b8cb9 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsStaticMeasureController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план выход статического замера /// -public class ProcessMapPlanFunctionsStaticMeasureController : - ProcessMapPlanBaseController +public class ProcessMapPlanStaticMeasurementOutputController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsStaticMeasureController( - IChangeLogRepository repository, + public ProcessMapPlanStaticMeasurementOutputController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsStaticMeasureParser parserService, + ProcessMapPlanStaticMeasurementOutputParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsStaticMeasureExportService processMapPlanExportService) + ProcessMapPlanStaticMeasurementOutputExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From e501a24875ad386b09c189a6dd88f2341ab2149e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 21:50:28 +0500 Subject: [PATCH 37/74] DrillTest --- .../ProcessMapPlanFunctionsDrillTestDto.cs | 51 ------------------- ...rocessMapPlanStaticMeasurementOutputDto.cs | 15 ++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +-- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- .../ProcessMapPlan/ProcessMapPlanDrillTest.cs | 41 +++++++++++++++ .../ProcessMapPlanFunctionsDrillTest.cs | 45 ---------------- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++---- ....cs => ProcessMapPlanDrillTestTemplate.cs} | 4 +- ...> ProcessMapPlanDrillTestExportService.cs} | 8 +-- ...er.cs => ProcessMapPlanDrillTestParser.cs} | 8 +-- ... ProcessMapPlanDrillTestControllerTest.cs} | 24 +++------ ...s => ProcessMapPlanDrillTestController.cs} | 12 ++--- 12 files changed, 93 insertions(+), 141 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsDrillTestTemplate.cs => ProcessMapPlanDrillTestTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsDrillTestExportService.cs => ProcessMapPlanDrillTestExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsDrillTestParser.cs => ProcessMapPlanDrillTestParser.cs} (73%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsDrillTestControllerTest.cs => ProcessMapPlanDrillTestControllerTest.cs} (53%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsDrillTestController.cs => ProcessMapPlanDrillTestController.cs} (60%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs deleted file mode 100644 index 3cd4ad19..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDrillTestDto.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план дрилтест -/// -public class ProcessMapPlanFunctionsDrillTestDto : ProcessMapPlanBaseDto -{ - /// - /// Нагрузка минимальная, т - /// - [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")] - public double WeightOnBitMin { get; set; } - - /// - /// Количество шагов по нагрузке - /// - [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")] - public int NumberOfStepsBit { get; set; } - - /// - /// Минимальные обороты на ВСП, об/мин. - /// - [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] - public int RevolutionPerMinuteMin { get; set; } - - /// - /// Количество шагов оборотов на ВСП, шт. - /// - [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")] - public int NumberOfStepsRPM { get; set; } - - /// - /// Величина проходки шага, м. - /// - [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")] - public double LengthStep { get; set; } - - /// - /// Автозапуск или предупреждение - /// - [Required] - public bool IdAutostartOrWarning { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs new file mode 100644 index 00000000..d64366c0 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выход статического замера +/// +public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto +{ + /// + /// Время ожидания выхода сигнала с ТМС, сек. + /// + [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] + public double SignalWaitingTime { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 0b5f0870..b9ef96eb 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -31,7 +31,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); - public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); + public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); @@ -518,7 +518,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -618,7 +618,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index d58f878a..297f1204 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -92,7 +92,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } - DbSet ProcessMapPlanFunctionsDrillTest { get; } + DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs new file mode 100644 index 00000000..487c8a9c --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs @@ -0,0 +1,41 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_drilltest"), Comment("DrillTest")] +public class ProcessMapPlanDrillTest : ProcessMapPlanBase +{ + [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] + [Range(1.0, 30.0)] + [Required] + public double WeightOnBitMin { get; set; } + + [Column("weight_on_bit_steps_count"), Comment("Количество шагов по нагрузке")] + [Range(1, 5)] + [Required] + public int WeightOnBitStepsCount { get; set; } + + [Column("rpm_min"), Comment("Минимальные обороты на ВСП, об/мин.")] + [Range(5, 200)] + [Required] + public double RpmMin { get; set; } + + [Column("rpm_steps_count"), Comment("Количество шагов оборотов на ВСП, об/мин.")] + [Range(1, 5)] + [Required] + public int RpmStepsCount { get; set; } + + [Column("length_step"), Comment("Величина проходки шага, м.")] + [Range(0.1, 2.0)] + [Required] + public double LengthStep { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanDrillTest? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs deleted file mode 100644 index 810b4ec8..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDrillTest.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMaps; - -[Table("t_process_map_plan_functions_drilltest"), Comment("Дрилтест")] -public class ProcessMapPlanFunctionsDrillTest : ProcessMapPlanBase -{ - [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] - [Range(1.0, 30.0)] - [Required] - public double WeightOnBitMin { get; set; } - - [Column("number_of_steps_bit"), Comment("Количество шагов по нагрузке")] - [Range(1, 5)] - [Required] - public int NumberOfStepsBit { get; set; } - - [Column("revolution_per_minute_min"), Comment("Минимальные обороты на ВСП, об/мин.")] - [Range(5, 200)] - [Required] - public int RevolutionPerMinuteMin { get; set; } - - [Column("number_of_steps_rpm"), Comment("Количество шагов оборотов на ВСП, шт.")] - [Range(1, 5)] - [Required] - public int NumberOfStepsRPM { get; set; } - - [Column("length_step"), Comment("Величина проходки шага, м.")] - [Range(0.1, 2.0)] - [Required] - public double LengthStep { get; set; } - - [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] - [Required] - public bool IdAutostartOrWarning { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsDrillTest? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 9ed9a456..f4226d3a 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -209,11 +209,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -438,7 +438,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -464,7 +464,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -531,8 +531,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -577,7 +577,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs index 0a73fd9a..ffaa5413 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDrillTestTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsDrillTestTemplate : ITemplateParameters +public class ProcessMapPlanDrillTestTemplate : ITemplateParameters { public string SheetName => "Дрилтест"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsDrillTestTemplate.xlsx"; + public string FileName => "ProcessMapPlanDrillTestTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs index 40956dad..27d70979 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDrillTestExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsDrillTestExportService : ProcessMapPlanExportService +public class ProcessMapPlanDrillTestExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsDrillTestExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanDrillTestExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsDrillTestTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanDrillTestTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs index adbe8dac..dff5e67f 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDrillTestParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsDrillTestParser : ProcessMapPlanParser +public class ProcessMapPlanDrillTestParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsDrillTestParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanDrillTestParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsDrillTestTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanDrillTestTemplate(); - protected override ProcessMapPlanFunctionsDrillTestDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanDrillTestDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs similarity index 53% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs index 83611d62..e6817953 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDrillTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs @@ -15,29 +15,25 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план дрилтест /// -public class ProcessMapPlanFunctionsDrillTestControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanDrillTestControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsDrillTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDrillTest") + public ProcessMapPlanDrillTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDrillTest") { } - private readonly ProcessMapPlanFunctionsDrillTestDto dto = new ProcessMapPlanFunctionsDrillTestDto() + private readonly ProcessMapPlanDrillTestDto dto = new ProcessMapPlanDrillTestDto() { IdWell = 1, DepthStart = 1, DepthEnd = 2, Id = 0, IdWellSectionType = 1, - IdAutostartOrWarning = true, LengthStep = 1, Note = "1", - NumberOfStepsBit = 1, - NumberOfStepsRPM = 1, - RevolutionPerMinuteMin = 1, WeightOnBitMin = 1 }; - private readonly ProcessMapPlanFunctionsDrillTest entity = new ProcessMapPlanFunctionsDrillTest() + private readonly ProcessMapPlanDrillTest entity = new ProcessMapPlanDrillTest() { IdWell = 1, DepthEnd = 10, @@ -47,12 +43,8 @@ public class ProcessMapPlanFunctionsDrillTestControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, - IdAutostartOrWarning = true, LengthStep = 1, Note = "1", - NumberOfStepsBit = 1, - NumberOfStepsRPM = 1, - RevolutionPerMinuteMin = 1, WeightOnBitMin = 1 }; @@ -62,17 +54,17 @@ public class ProcessMapPlanFunctionsDrillTestControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsDrillTest GetByNote(DbSet dbSet, ProcessMapPlanFunctionsDrillTestDto dto) + protected override ProcessMapPlanDrillTest GetByNote(DbSet dbSet, ProcessMapPlanDrillTestDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsDrillTestDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsDrillTestDto dto) + protected override ProcessMapPlanDrillTestDto GetByNote(IEnumerable dtos, ProcessMapPlanDrillTestDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsDrillTest? GetByWellId() + protected override ProcessMapPlanDrillTest? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs similarity index 60% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs index 5249495e..db67d0b5 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDrillTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план дрилтест /// -public class ProcessMapPlanFunctionsDrillTestController : - ProcessMapPlanBaseController +public class ProcessMapPlanDrillTestController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsDrillTestController( - IChangeLogRepository repository, + public ProcessMapPlanDrillTestController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsDrillTestParser parserService, + ProcessMapPlanDrillTestParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsDrillTestExportService processMapPlanExportService) + ProcessMapPlanDrillTestExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From e71b59a1edec22db70224232b865b3d8c1ea8cca Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 23:24:53 +0500 Subject: [PATCH 38/74] ShockTest --- .../ProcessMaps/ProcessMapPlanDrillTestDto.cs | 45 +++++++++++++++ .../ProcessMapPlanFunctionsShockTestDto.cs | 57 ------------------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...hockTest.cs => ProcessMapPlanShockTest.cs} | 18 +++--- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++--- ....cs => ProcessMapPlanShockTestTemplate.cs} | 4 +- ...> ProcessMapPlanShockTestExportService.cs} | 8 +-- ...er.cs => ProcessMapPlanShockTestParser.cs} | 8 +-- ... ProcessMapPlanShockTestControllerTest.cs} | 20 +++---- ...s => ProcessMapPlanShockTestController.cs} | 12 ++-- 11 files changed, 89 insertions(+), 109 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsShockTest.cs => ProcessMapPlanShockTest.cs} (64%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsShockTestTemplate.cs => ProcessMapPlanShockTestTemplate.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsShockTestExportService.cs => ProcessMapPlanShockTestExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsShockTestParser.cs => ProcessMapPlanShockTestParser.cs} (73%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsShockTestControllerTest.cs => ProcessMapPlanShockTestControllerTest.cs} (58%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsShockTestController.cs => ProcessMapPlanShockTestController.cs} (59%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs new file mode 100644 index 00000000..1a471c5c --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs @@ -0,0 +1,45 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план дрилтест +/// +public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto +{ + /// + /// Нагрузка минимальная, т + /// + [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")] + public double WeightOnBitMin { get; set; } + + /// + /// Количество шагов по нагрузке + /// + [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")] + public int WeightOnBitStepsCount { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] + public int RpmMin { get; set; } + + /// + /// Количество шагов оборотов на ВСП, шт. + /// + [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")] + public int RpmStepsCount { get; set; } + + /// + /// Величина проходки шага, м. + /// + [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")] + public double LengthStep { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs deleted file mode 100644 index 9b1670ea..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsShockTestDto.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план shocktest -/// -public class ProcessMapPlanFunctionsShockTestDto : ProcessMapPlanBaseDto -{ - /// - /// StickSlip - /// - [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] - public double StickSlip { get; set; } - - /// - /// Whirl - /// - [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")] - public double Whirl { get; set; } - - /// - /// Осевые вибрации - /// - [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")] - public double AxialVibrations { get; set; } - - /// - /// Комбинированные вибрации - /// - [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")] - public double CombinedVibrations { get; set; } - - /// - /// Нагрузка минимальная, т - /// - [Range(1.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")] - public double WeightOnBitMin { get; set; } - - /// - /// Минимальные обороты на ВСП, об/мин. - /// - [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] - public int RevolutionPerMinuteMin { get; set; } - - /// - /// Автозапуск или Предупреждение - /// - [Required] - public bool IdAutostartOrWarning { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index b9ef96eb..631e9ffc 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -32,7 +32,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); - public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); + public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); @@ -523,7 +523,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -623,7 +623,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 297f1204..19f5e2d9 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -93,7 +93,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } - DbSet ProcessMapPlanFunctionsShockTest { get; } + DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs similarity index 64% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs index 9683eb4b..3897b468 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsShockTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs @@ -5,10 +5,10 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_functions_shock_test"), Comment("ShockTest")] -public class ProcessMapPlanFunctionsShockTest : ProcessMapPlanBase +[Table("t_process_map_shock_test"), Comment("ShockTest")] +public class ProcessMapPlanShockTest : ProcessMapPlanBase { - [Column("stickslip"), Comment("StickSlip")] + [Column("stickSlip"), Comment("stickSlip")] [Range(0.0, 1000.0)] [Required] public double StickSlip { get; set; } @@ -29,22 +29,18 @@ public class ProcessMapPlanFunctionsShockTest : ProcessMapPlanBase public double CombinedVibrations { get; set; } [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] - [Range(1.0, 30.0)] + [Range(0.0, 30.0)] [Required] public double WeightOnBitMin { get; set; } - [Column("revolution_per_minute_min"), Comment("Минимальные обороты на ВСП, об/мин.")] + [Column("rpm_min"), Comment("Минимальные обороты на ВСП, об/мин.")] [Range(5, 200)] [Required] - public int RevolutionPerMinuteMin { get; set; } - - [Column("id_autostart_or_warning"), Comment("Автозапуск или Предупреждение")] - [Required] - public bool IdAutostartOrWarning { get; set; } + public double RpmMin { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsShockTest? Previous { get; set; } + public virtual ProcessMapPlanShockTest? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index f4226d3a..cd9694b9 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -216,11 +216,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -439,7 +439,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -465,7 +465,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -535,8 +535,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -578,7 +578,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs index e110136a..013a6105 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsShockTestTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsShockTestTemplate : ITemplateParameters +public class ProcessMapPlanShockTestTemplate : ITemplateParameters { public string SheetName => "Запись shock test"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsShockTestTemplate.xlsx"; + public string FileName => "ProcessMapPlanShockTestTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs index fd5865f8..9a4157f1 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsShockTestExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsShockTestExportService : ProcessMapPlanExportService +public class ProcessMapPlanShockTestExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsShockTestExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanShockTestExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsShockTestTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanShockTestTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs index 5de14184..f3890ff5 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsShockTestParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsShockTestParser : ProcessMapPlanParser +public class ProcessMapPlanShockTestParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsShockTestParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanShockTestParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsShockTestTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanShockTestTemplate(); - protected override ProcessMapPlanFunctionsShockTestDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanShockTestDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs similarity index 58% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs index 53ade4bf..32969202 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsShockTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план shock test /// -public class ProcessMapPlanFunctionsShockTestControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanShockTestControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsShockTest") + public ProcessMapPlanShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsShockTest") { } - private readonly ProcessMapPlanFunctionsShockTestDto dto = new ProcessMapPlanFunctionsShockTestDto() + private readonly ProcessMapPlanShockTestDto dto = new ProcessMapPlanShockTestDto() { IdWell = 1, DepthStart = 1, @@ -30,15 +30,13 @@ public class ProcessMapPlanFunctionsShockTestControllerTest : IdWellSectionType = 1, AxialVibrations = 1, CombinedVibrations = 2, - IdAutostartOrWarning = true, Note = "1", - RevolutionPerMinuteMin = 1, StickSlip = 1, WeightOnBitMin = 1, Whirl = 1 }; - private readonly ProcessMapPlanFunctionsShockTest entity = new ProcessMapPlanFunctionsShockTest() + private readonly ProcessMapPlanShockTest entity = new ProcessMapPlanShockTest() { IdWell = 1, DepthEnd = 10, @@ -50,9 +48,7 @@ public class ProcessMapPlanFunctionsShockTestControllerTest : Creation = DateTimeOffset.UtcNow, AxialVibrations = 1, CombinedVibrations = 2, - IdAutostartOrWarning = true, Note = "1", - RevolutionPerMinuteMin = 1, StickSlip = 1, WeightOnBitMin = 1, Whirl = 1 @@ -64,17 +60,17 @@ public class ProcessMapPlanFunctionsShockTestControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsShockTest GetByNote(DbSet dbSet, ProcessMapPlanFunctionsShockTestDto dto) + protected override ProcessMapPlanShockTest GetByNote(DbSet dbSet, ProcessMapPlanShockTestDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsShockTestDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsShockTestDto dto) + protected override ProcessMapPlanShockTestDto GetByNote(IEnumerable dtos, ProcessMapPlanShockTestDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsShockTest? GetByWellId() + protected override ProcessMapPlanShockTest? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs similarity index 59% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs index 4ee12c1b..aa939c57 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsShockTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план shock test /// -public class ProcessMapPlanFunctionsShockTestController : - ProcessMapPlanBaseController +public class ProcessMapPlanShockTestController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsShockTestController( - IChangeLogRepository repository, + public ProcessMapPlanShockTestController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsShockTestParser parserService, + ProcessMapPlanShockTestParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsShockTestExportService processMapPlanExportService) + ProcessMapPlanShockTestExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 92c28438971f958e3b12c411218d57116dc4736d Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 23:32:34 +0500 Subject: [PATCH 39/74] =?UTF-8?q?=D0=94=D0=B5=D0=BC=D0=BF=D1=84=D0=B5?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanFunctionsDamperDto.cs | 21 ------------------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +++--- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...tionsDamper.cs => ProcessMapPlanDamper.cs} | 6 +++--- .../ProcessMapPlan/ProcessMapPlanShockTest.cs | 2 +- AsbCloudInfrastructure/DependencyInjection.cs | 18 ++++++++-------- ...ate.cs => ProcessMapPlanDamperTemplate.cs} | 4 ++-- ...s => ProcessMapPlanDamperExportService.cs} | 8 +++---- ...arser.cs => ProcessMapPlanDamperParser.cs} | 8 +++---- ... => ProcessMapPlanDamperControllerTest.cs} | 16 +++++++------- ...r.cs => ProcessMapPlanDamperController.cs} | 12 +++++------ 11 files changed, 41 insertions(+), 62 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsDamper.cs => ProcessMapPlanDamper.cs} (74%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanFunctionsDamperTemplate.cs => ProcessMapPlanDamperTemplate.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsDamperExportService.cs => ProcessMapPlanDamperExportService.cs} (71%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsDamperParser.cs => ProcessMapPlanDamperParser.cs} (74%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsDamperControllerTest.cs => ProcessMapPlanDamperControllerTest.cs} (59%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanFunctionsDamperController.cs => ProcessMapPlanDamperController.cs} (61%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs deleted file mode 100644 index 33649bad..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsDamperDto.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план демпфер -/// -public class ProcessMapPlanFunctionsDamperDto : ProcessMapPlanBaseDto -{ - /// - /// StickSlip - /// - [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] - public double StickSlip { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 631e9ffc..3673bff1 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -33,7 +33,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); - public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); + public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); @@ -528,7 +528,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -628,7 +628,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 19f5e2d9..43f309d9 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -94,7 +94,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } - DbSet ProcessMapPlanFunctionsDamper { get; } + DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs similarity index 74% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs index 5a2f94f3..11f9547f 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsDamper.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs @@ -6,9 +6,9 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_functions_damper"), Comment("Демпфер")] -public class ProcessMapPlanFunctionsDamper : ProcessMapPlanBase +public class ProcessMapPlanDamper : ProcessMapPlanBase { - [Column("stickslip"), Comment("StickSlip")] + [Column("stick_slip"), Comment("StickSlip")] [Range(0.0, 1000.0)] [Required] public double StickSlip { get; set; } @@ -17,5 +17,5 @@ public class ProcessMapPlanFunctionsDamper : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsDamper? Previous { get; set; } + public virtual ProcessMapPlanDamper? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs index 3897b468..14a107ad 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs @@ -8,7 +8,7 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_shock_test"), Comment("ShockTest")] public class ProcessMapPlanShockTest : ProcessMapPlanBase { - [Column("stickSlip"), Comment("stickSlip")] + [Column("stick_slip"), Comment("stickSlip")] [Range(0.0, 1000.0)] [Required] public double StickSlip { get; set; } diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index cd9694b9..07664bd8 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -223,11 +223,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -440,7 +440,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -466,7 +466,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -539,8 +539,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -579,7 +579,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs index e5bb03e5..6f74c38f 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsDamperTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanFunctionsDamperTemplate : ITemplateParameters +public class ProcessMapPlanDamperTemplate : ITemplateParameters { public string SheetName => "Демпфер"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanFunctionsDamperTemplate.xlsx"; + public string FileName => "ProcessMapPlanDamperTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs similarity index 71% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs index f05c130c..cf9f9b35 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsDamperExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsDamperExportService : ProcessMapPlanExportService +public class ProcessMapPlanDamperExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsDamperExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanDamperExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsDamperTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanDamperTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs similarity index 74% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs index d57c3055..c3add6de 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsDamperParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsDamperParser : ProcessMapPlanParser +public class ProcessMapPlanDamperParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsDamperParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanDamperParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsDamperTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanDamperTemplate(); - protected override ProcessMapPlanFunctionsDamperDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanDamperDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs similarity index 59% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs index c7146ed4..16b3755f 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsDamperControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план демпфер /// -public class ProcessMapPlanFunctionsDamperControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanDamperControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsDamperControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDamper") + public ProcessMapPlanDamperControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDamper") { } - private readonly ProcessMapPlanFunctionsDamperDto dto = new ProcessMapPlanFunctionsDamperDto() + private readonly ProcessMapPlanDamperDto dto = new ProcessMapPlanDamperDto() { IdWell = 1, DepthStart = 1, @@ -32,7 +32,7 @@ public class ProcessMapPlanFunctionsDamperControllerTest : StickSlip = 1 }; - private readonly ProcessMapPlanFunctionsDamper entity = new ProcessMapPlanFunctionsDamper() + private readonly ProcessMapPlanDamper entity = new ProcessMapPlanDamper() { IdWell = 1, DepthEnd = 10, @@ -52,17 +52,17 @@ public class ProcessMapPlanFunctionsDamperControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsDamper GetByNote(DbSet dbSet, ProcessMapPlanFunctionsDamperDto dto) + protected override ProcessMapPlanDamper GetByNote(DbSet dbSet, ProcessMapPlanDamperDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsDamperDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsDamperDto dto) + protected override ProcessMapPlanDamperDto GetByNote(IEnumerable dtos, ProcessMapPlanDamperDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsDamper? GetByWellId() + protected override ProcessMapPlanDamper? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs similarity index 61% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs index f9a13a4f..2a12cd88 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsDamperController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план демпфер /// -public class ProcessMapPlanFunctionsDamperController : - ProcessMapPlanBaseController +public class ProcessMapPlanDamperController : + ProcessMapPlanBaseController { - public ProcessMapPlanFunctionsDamperController( - IChangeLogRepository repository, + public ProcessMapPlanDamperController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanFunctionsDamperParser parserService, + ProcessMapPlanDamperParser parserService, ITelemetryService telemetryService, - ProcessMapPlanFunctionsDamperExportService processMapPlanExportService) + ProcessMapPlanDamperExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 2699bdfdd1a7d1c64ce9d397ddd75ced26a52295 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 23:34:37 +0500 Subject: [PATCH 40/74] =?UTF-8?q?=D0=9F=D0=B0=D0=BF=D0=BA=D0=B0=20Function?= =?UTF-8?q?s=20=D0=B4=D0=BB=D1=8F=20=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D0=BB?= =?UTF-8?q?=D0=B5=D1=80=D0=BE=D0=B2=20=D0=A0=D0=A2=D0=9A-=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD-=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanAntiCrashRotationController.cs | 4 ++-- .../{ => Functions}/ProcessMapPlanAutoHoldTFController.cs | 4 ++-- .../{ => Functions}/ProcessMapPlanDamperController.cs | 4 ++-- .../{ => Functions}/ProcessMapPlanDrillTestController.cs | 4 ++-- .../{ => Functions}/ProcessMapPlanOscillationController.cs | 4 ++-- .../{ => Functions}/ProcessMapPlanShockTestController.cs | 4 ++-- .../ProcessMapPlanStaticMeasurementOutputController.cs | 4 ++-- .../ProcessMapPlanUpdatingNoloadParametersController.cs | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanAntiCrashRotationController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanAutoHoldTFController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanDamperController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanDrillTestController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanOscillationController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanShockTestController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanStaticMeasurementOutputController.cs (90%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Functions}/ProcessMapPlanUpdatingNoloadParametersController.cs (90%) diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs index 259e7a06..28a79b9d 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAntiCrashRotationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план противоаварийное вращение /// -public class ProcessMapPlanAntiCrashRotationController : +public class ProcessMapPlanAntiCrashRotationController : ProcessMapPlanBaseController { public ProcessMapPlanAntiCrashRotationController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs index dbf138d5..eba1f7f1 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanAutoHoldTFController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план автоудержание TF /// -public class ProcessMapPlanAutoHoldTFController : +public class ProcessMapPlanAutoHoldTFController : ProcessMapPlanBaseController { public ProcessMapPlanAutoHoldTFController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs index 2a12cd88..146007c4 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDamperController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план демпфер /// -public class ProcessMapPlanDamperController : +public class ProcessMapPlanDamperController : ProcessMapPlanBaseController { public ProcessMapPlanDamperController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs index db67d0b5..a858a858 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanDrillTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план дрилтест /// -public class ProcessMapPlanDrillTestController : +public class ProcessMapPlanDrillTestController : ProcessMapPlanBaseController { public ProcessMapPlanDrillTestController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs index 6c585d33..bd443fdd 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план осцилляция /// -public class ProcessMapPlanOscillationController : +public class ProcessMapPlanOscillationController : ProcessMapPlanBaseController { public ProcessMapPlanOscillationController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs index aa939c57..04665ffb 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanShockTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план shock test /// -public class ProcessMapPlanShockTestController : +public class ProcessMapPlanShockTestController : ProcessMapPlanBaseController { public ProcessMapPlanShockTestController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs index 431b8cb9..1051a45d 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanStaticMeasurementOutputController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план выход статического замера /// -public class ProcessMapPlanStaticMeasurementOutputController : +public class ProcessMapPlanStaticMeasurementOutputController : ProcessMapPlanBaseController { public ProcessMapPlanStaticMeasurementOutputController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs index 3604f57a..8e57b51e 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; /// /// РТК план обновление холостого хода /// -public class ProcessMapPlanUpdatingNoloadParametersController : +public class ProcessMapPlanUpdatingNoloadParametersController : ProcessMapPlanBaseController { public ProcessMapPlanUpdatingNoloadParametersController( From fa16335b68d4c0fea40bc4dc4105f8c849814535 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sat, 29 Jun 2024 23:40:02 +0500 Subject: [PATCH 41/74] =?UTF-8?q?=D0=92=D1=8B=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=D1=81=D0=BE=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMaps/ProcessMapPlanDamperDto.cs | 21 ++++++++ .../ProcessMapPlanOperationSwitchPumpDto.cs | 21 -------- .../ProcessMaps/ProcessMapPlanShockTestDto.cs | 51 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +-- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...s => ProcessMapPlanSwitchingOffThePump.cs} | 6 +-- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++---- ...cessMapPlanSwitchingOffThePumpTemplate.cs} | 4 +- ...apPlanSwitchingOffThePumpExportService.cs} | 8 +-- ...rocessMapPlanSwitchingOffThePumpParser.cs} | 8 +-- ...pPlanSwitchingOffThePumpControllerTest.cs} | 16 +++--- ...ssMapPlanSwitchingOffThePumpController.cs} | 12 ++--- 12 files changed, 112 insertions(+), 61 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationSwitchPump.cs => ProcessMapPlanSwitchingOffThePump.cs} (72%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationSwitchPumpTemplate.cs => ProcessMapPlanSwitchingOffThePumpTemplate.cs} (73%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationSwitchPumpExportService.cs => ProcessMapPlanSwitchingOffThePumpExportService.cs} (75%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationSwitchPumpParser.cs => ProcessMapPlanSwitchingOffThePumpParser.cs} (79%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanOperationSwitchPumpControllerTest.cs => ProcessMapPlanSwitchingOffThePumpControllerTest.cs} (62%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationSwitchPumpController.cs => ProcessMapPlanSwitchingOffThePumpController.cs} (66%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs new file mode 100644 index 00000000..c9022f43 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план демпфер +/// +public class ProcessMapPlanDamperDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] + public double StickSlip { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs deleted file mode 100644 index bd4422b5..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchPumpDto.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выключение насоса -/// -public class ProcessMapPlanOperationSwitchPumpDto : ProcessMapPlanBaseDto -{ - /// - /// Продолжительность, сек. - /// - [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] - public double Duration { get; set; } - - /// - /// Лимит остаточного давления, атм. - /// - [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] - public double ResidualPressureLimit { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs new file mode 100644 index 00000000..ada3f844 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs @@ -0,0 +1,51 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план shocktest +/// +public class ProcessMapPlanShockTestDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] + public double StickSlip { get; set; } + + /// + /// Whirl + /// + [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")] + public double Whirl { get; set; } + + /// + /// Осевые вибрации + /// + [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")] + public double AxialVibrations { get; set; } + + /// + /// Комбинированные вибрации + /// + [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")] + public double CombinedVibrations { get; set; } + + /// + /// Нагрузка минимальная, т + /// + [Range(0.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")] + public double WeightOnBitMin { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] + public double RpmMin { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 3673bff1..3d7b4451 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -29,7 +29,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); - public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); + public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); @@ -508,7 +508,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -608,7 +608,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 43f309d9..0e9df4d9 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -90,7 +90,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } - DbSet ProcessMapPlanOperationSwitchPump { get; } + DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs similarity index 72% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs index d547eb61..724603dd 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchPump.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_switch_pump"), Comment("Выключение насоса")] -public class ProcessMapPlanOperationSwitchPump : ProcessMapPlanBase +[Table("t_process_map_plan_operation_switching_off_the_pump"), Comment("Выключение насоса")] +public class ProcessMapPlanSwitchingOffThePump : ProcessMapPlanBase { [Column("duration"), Comment("Продолжительность, сек.")] [Range(0.0, 1800.0)] @@ -18,5 +18,5 @@ public class ProcessMapPlanOperationSwitchPump : ProcessMapPlanBase public double ResidualPressureLimit { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationSwitchPump? Previous { get; set; } + public virtual ProcessMapPlanSwitchingOffThePump? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 07664bd8..4cdc6805 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -195,11 +195,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -436,7 +436,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -462,7 +462,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -523,8 +523,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -575,7 +575,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs index 396c4234..5ab5c14f 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchPumpTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationSwitchPumpTemplate : ITemplateParameters +public class ProcessMapPlanSwitchingOffThePumpTemplate : ITemplateParameters { public string SheetName => "Выключение насоса"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationSwitchPumpTemplate.xlsx"; + public string FileName => "ProcessMapPlanSwitchingOffThePumpTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs similarity index 75% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs index bb848e3f..252a9587 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchPumpExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationSwitchPumpExportService : ProcessMapPlanExportService +public class ProcessMapPlanSwitchingOffThePumpExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationSwitchPumpExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanSwitchingOffThePumpExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchPumpTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSwitchingOffThePumpTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs similarity index 79% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs index ac54d139..7272810c 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchPumpParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationSwitchPumpParser : ProcessMapPlanParser +public class ProcessMapPlanSwitchingOffThePumpParser : ProcessMapPlanParser { - public ProcessMapPlanOperationSwitchPumpParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanSwitchingOffThePumpParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchPumpTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSwitchingOffThePumpTemplate(); - protected override ProcessMapPlanOperationSwitchPumpDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanSwitchingOffThePumpDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs similarity index 62% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs index 4b9f34d3..71ec142a 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchPumpControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs @@ -15,13 +15,13 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план выключение насоса /// -public class ProcessMapPlanOperationSwitchPumpControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanSwitchingOffThePumpControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationSwitchPumpControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchPump") + public ProcessMapPlanSwitchingOffThePumpControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchPump") { } - private readonly ProcessMapPlanOperationSwitchPumpDto dto = new ProcessMapPlanOperationSwitchPumpDto() + private readonly ProcessMapPlanSwitchingOffThePumpDto dto = new ProcessMapPlanSwitchingOffThePumpDto() { IdWell = 1, DepthStart = 1, @@ -32,7 +32,7 @@ public class ProcessMapPlanOperationSwitchPumpControllerTest : ResidualPressureLimit = 1, }; - private readonly ProcessMapPlanOperationSwitchPump entity = new ProcessMapPlanOperationSwitchPump() + private readonly ProcessMapPlanSwitchingOffThePump entity = new ProcessMapPlanSwitchingOffThePump() { IdWell = 1, DepthEnd = 10, @@ -52,17 +52,17 @@ public class ProcessMapPlanOperationSwitchPumpControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanOperationSwitchPump GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchPumpDto dto) + protected override ProcessMapPlanSwitchingOffThePump GetByNote(DbSet dbSet, ProcessMapPlanSwitchingOffThePumpDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationSwitchPumpDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchPumpDto dto) + protected override ProcessMapPlanSwitchingOffThePumpDto GetByNote(IEnumerable dtos, ProcessMapPlanSwitchingOffThePumpDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationSwitchPump? GetByWellId() + protected override ProcessMapPlanSwitchingOffThePump? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs similarity index 66% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs index bb55b039..71f226f3 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchPumpController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план выключение насоса /// -public class ProcessMapPlanOperationSwitchPumpController : - ProcessMapPlanBaseController +public class ProcessMapPlanSwitchingOffThePumpController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationSwitchPumpController( - IChangeLogRepository repository, + public ProcessMapPlanSwitchingOffThePumpController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationSwitchPumpParser parserService, + ProcessMapPlanSwitchingOffThePumpParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationSwitchPumpExportService processMapPlanExportService) + ProcessMapPlanSwitchingOffThePumpExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From bb155aa87d7f06d991316fea3acfbbae4033414e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 00:10:40 +0500 Subject: [PATCH 42/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BB?= =?UTF-8?q?=D0=B0=D0=B9=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationReamingSlideDto.cs | 209 ------------------ .../ProcessMapPlanSwitchingOffThePumpDto.cs | 21 ++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...Slide.cs => ProcessMapPlanReamingSlide.cs} | 64 +++--- AsbCloudInfrastructure/DependencyInjection.cs | 18 +- ... => ProcessMapPlanReamingSlideTemplate.cs} | 4 +- ...rocessMapPlanReamingSlideExportService.cs} | 8 +- ...cs => ProcessMapPlanReamingSlideParser.cs} | 8 +- ...rocessMapPlanReamingSlideControllerTest.cs | 131 +++++++++++ ...PlanOperationReamingSlideControllerTest.cs | 131 ----------- ...> ProcessMapPlanReamingSlideController.cs} | 12 +- 12 files changed, 213 insertions(+), 401 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationReamingSlide.cs => ProcessMapPlanReamingSlide.cs} (68%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationReamingSlideTemplate.cs => ProcessMapPlanReamingSlideTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationReamingSlideExportService.cs => ProcessMapPlanReamingSlideExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationReamingSlideParser.cs => ProcessMapPlanReamingSlideParser.cs} (73%) create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationReamingSlideController.cs => ProcessMapPlanReamingSlideController.cs} (60%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs deleted file mode 100644 index 9de75d5b..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingSlideDto.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план проработка для слайда -/// -public class ProcessMapPlanOperationReamingSlideDto : ProcessMapPlanBaseDto -{ - /// - /// Максимальное давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] - public double MaxPressure { get; set; } - - /// - /// Перепад давления, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Уставки, т., затяжка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] - public double SetpointsTight { get; set; } - - /// - /// Уставки, т., посадка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] - public double SetpointsSlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double MaxTorque { get; set; } - - /// - /// Проработка 1, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming1NumberOfRepetitions { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1ROPUp { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1ROPDown { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming1RPMUp { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming1RPMDown { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateUp { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateDown { get; set; } - - /// - /// Проработка 1, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming1Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming1StopPointOffBottom { get; set; } - - /// - /// Проработка 2, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming2NumberOfRepetitions { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming2ROPUp { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming2ROPDown { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming2RPMUp { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming2RPMDown { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateUp { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateDown { get; set; } - - /// - /// Проработка 2, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming2Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming2StopPointOffBottom { get; set; } - - /// - /// Проработка 3, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming3NumberOfRepetitions { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming3ROPUp { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming3ROPDown { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming3RPMUp { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming3RPMDown { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateUp { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateDown { get; set; } - - /// - /// Проработка 3, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming3Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming3StopPointOffBottom { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs new file mode 100644 index 00000000..81000490 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto +{ + /// + /// Продолжительность, сек. + /// + [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] + public double Duration { get; set; } + + /// + /// Лимит остаточного давления, атм. + /// + [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] + public double ResidualPressureLimit { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 3d7b4451..df7fbb19 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -23,7 +23,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanSlide => Set(); public virtual DbSet ProcessMapPlanReams => Set(); public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); - public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); + public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); @@ -478,7 +478,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -578,7 +578,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 0e9df4d9..a9597aa1 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -84,7 +84,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanRotor { get; } DbSet ProcessMapPlanSlide { get; } DbSet ProcessMapPlanOperationReamingRotor { get; } - DbSet ProcessMapPlanOperationReamingSlide { get; } + DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs similarity index 68% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs index a2b38354..5ca53949 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingSlide.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs @@ -5,58 +5,58 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_reaming_slide"), Comment("РТК проработка слайд")] -public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase +[Table("t_process_map_plan_reaming_slide"), Comment("РТК проработка слайд")] +public class ProcessMapPlanReamingSlide : ProcessMapPlanBase { - [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] [Range(0.0, 400.0)] [Required] - public double MaxPressure { get; set; } + public double PressureMax { get; set; } - [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] [Range(0.0, 60.0)] [Required] public double DifferentialPressure { get; set; } - [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Column("tight"), Comment("Затяжка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsTight { get; set; } + public double Tight { get; set; } - [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Column("slacking_off"), Comment("Посадка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsSlackingOff { get; set; } + public double SlackingOff { get; set; } - [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] [Range(0.0, 35.0)] [Required] - public double MaxTorque { get; set; } + public double TorqueMax { get; set; } - [Column("reaming1_number_of_repetitions"), Comment("Проработка 1, Количество повторений, шт.")] + [Column("reaming1_repetitions_count"), Comment("Проработка 1. Количество повторений, шт.")] [Range(0.0, 99.0)] [Required] - public double Reaming1NumberOfRepetitions { get; set; } + public double Reaming1RepetitionsCount { get; set; } - [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Column("reaming1_rop_up"), Comment("Проработка 1. Скорость вверх, м/ч.")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPUp { get; set; } + public double Reaming1RopUp { get; set; } - [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] + [Column("reaming1_rop_down"), Comment("Проработка 1. Скорость вниз, м/ч.")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPDown { get; set; } + public double Reaming1RopDown { get; set; } [Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] [Required] - public double Reaming1RPMUp { get; set; } + public double Reaming1RpmUp { get; set; } [Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] [Required] - public double Reaming1RPMDown { get; set; } + public double Reaming1RpmDown { get; set; } [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] [Range(0.0, 100.0)] @@ -78,25 +78,25 @@ public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase [Required] public double Reaming1StopPointOffBottom { get; set; } - [Column("reaming2_number_of_ repetitions"), Comment("Проработка 2, Количество повторений, шт.")] + [Column("reaming2_repetitions_count"), Comment("Проработка 2, Количество повторений, шт.")] [Range(0.0, 99.0)] - public double Reaming2NumberOfRepetitions { get; set; } + public double Reaming2RepetitionsCount { get; set; } [Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")] [Range(0.0, 999.0)] - public double Reaming2ROPUp { get; set; } + public double Reaming2RopUp { get; set; } [Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")] [Range(0.0, 999.0)] - public double Reaming2ROPDown { get; set; } + public double Reaming2RopDown { get; set; } [Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] - public double Reaming2RPMUp { get; set; } + public double Reaming2RpmUp { get; set; } [Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] - public double Reaming2RPMDown { get; set; } + public double Reaming2RpmDown { get; set; } [Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")] [Range(0.0, 100.0)] @@ -114,25 +114,25 @@ public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase [Range(0.0, 10.0)] public double Reaming2StopPointOffBottom { get; set; } - [Column("reaming3_number_of_ repetitions"), Comment("Проработка 3, Количество повторений, шт.")] + [Column("reaming3_repetitions_count"), Comment("Проработка 3, Количество повторений, шт.")] [Range(0.0, 99.0)] - public double Reaming3NumberOfRepetitions { get; set; } + public double Reaming3RepetitionsCount { get; set; } [Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")] [Range(0.0, 999.0)] - public double Reaming3ROPUp { get; set; } + public double Reaming3RopUp { get; set; } [Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")] [Range(0.0, 999.0)] - public double Reaming3ROPDown { get; set; } + public double Reaming3RopDown { get; set; } [Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] - public double Reaming3RPMUp { get; set; } + public double Reaming3RpmUp { get; set; } [Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] - public double Reaming3RPMDown { get; set; } + public double Reaming3RpmDown { get; set; } [Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")] [Range(0.0, 100.0)] @@ -154,5 +154,5 @@ public class ProcessMapPlanOperationReamingSlide : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationReamingSlide? Previous { get; set; } + public virtual ProcessMapPlanReamingSlide? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 4cdc6805..b80498fe 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -153,11 +153,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -430,7 +430,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -456,7 +456,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -499,8 +499,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -569,7 +569,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs index b670bc4e..627ce9aa 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingSlideTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationReamingSlideTemplate : ITemplateParameters +public class ProcessMapPlanReamingSlideTemplate : ITemplateParameters { public string SheetName => "Проработка слайд"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationReamingSlideTemplate.xlsx"; + public string FileName => "ProcessMapPlanReamingSlideTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs index d6e4ba73..a30d8f47 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingSlideExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationReamingSlideExportService : ProcessMapPlanExportService +public class ProcessMapPlanReamingSlideExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationReamingSlideExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanReamingSlideExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationReamingSlideTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanReamingSlideTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs index 5db156c1..8a420d45 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingSlideParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationReamingSlideParser : ProcessMapPlanParser +public class ProcessMapPlanReamingSlideParser : ProcessMapPlanParser { - public ProcessMapPlanOperationReamingSlideParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanReamingSlideParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationReamingSlideTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamingSlideTemplate(); - protected override ProcessMapPlanOperationReamingSlideDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanReamingSlideDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs new file mode 100644 index 00000000..fa18b50d --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs @@ -0,0 +1,131 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using AsbCloudWebApi.IntegrationTests; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanReamingSlideControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanReamingSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingSlide") + { + } + private readonly ProcessMapPlanReamingSlideDto dto = new ProcessMapPlanReamingSlideDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + SlackingOff = 1, + Reaming3StopPointOffBottom = 2, + Reaming3RopUp = 3, + Reaming3Interval = 4, + Reaming2StopPointOffBottom = 5, + Reaming2RopUp = 6, + Reaming2RepetitionsCount = 7, + Reaming3FlowRateUp = 8, + Reaming2FlowRateUp = 9, + Reaming1StopPointOffBottom = 1, + Reaming1RopUp = 1, + Reaming1Interval = 2, + DifferentialPressure = 3, + PressureMax = 4, + TorqueMax = 5, + Note = "1", + Reaming1FlowRateDown = 6, + Reaming1FlowRateUp = 7, + Reaming1RepetitionsCount = 8, + Reaming1RopDown = 9, + Reaming1RpmDown = 1, + Reaming1RpmUp = 1, + Reaming2FlowRateDown = 2, + Reaming2Interval = 3, + Reaming2RopDown = 3, + Reaming2RpmDown = 4, + Reaming2RpmUp = 5, + Reaming3FlowRateDown = 6, + Reaming3RepetitionsCount = 3, + Reaming3RopDown = 4, + Reaming3RpmDown = 5, + Reaming3RpmUp = 6, + Tight = 1, + }; + + private readonly ProcessMapPlanReamingSlide entity = new ProcessMapPlanReamingSlide() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + SlackingOff = 1, + Reaming3StopPointOffBottom = 2, + Reaming3RopUp = 3, + Reaming3Interval = 4, + Reaming2StopPointOffBottom = 5, + Reaming2RopUp = 6, + Reaming2RepetitionsCount = 7, + Reaming3FlowRateUp = 8, + Reaming2FlowRateUp = 9, + Reaming1StopPointOffBottom = 1, + Reaming1RopUp = 1, + Reaming1Interval = 2, + DifferentialPressure = 3, + PressureMax = 4, + TorqueMax = 5, + Note = "1", + Reaming1FlowRateDown = 6, + Reaming1FlowRateUp = 7, + Reaming1RepetitionsCount = 8, + Reaming1RopDown = 9, + Reaming1RpmDown = 1, + Reaming1RpmUp = 1, + Reaming2FlowRateDown = 2, + Reaming2Interval = 3, + Reaming2RopDown = 3, + Reaming2RpmDown = 4, + Reaming2RpmUp = 5, + Reaming3FlowRateDown = 6, + Reaming3RepetitionsCount = 3, + Reaming3RopDown = 4, + Reaming3RpmDown = 5, + Reaming3RpmUp = 6, + Tight = 1, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanReamingSlide GetByNote(DbSet dbSet, ProcessMapPlanReamingSlideDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanReamingSlideDto GetByNote(IEnumerable dtos, ProcessMapPlanReamingSlideDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanReamingSlide? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs deleted file mode 100644 index e21f6a5b..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingSlideControllerTest.cs +++ /dev/null @@ -1,131 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using AsbCloudWebApi.IntegrationTests; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план проработка для слайда -/// -public class ProcessMapPlanOperationReamingSlideControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanOperationReamingSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingSlide") - { - } - private readonly ProcessMapPlanOperationReamingSlideDto dto = new ProcessMapPlanOperationReamingSlideDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - SetpointsSlackingOff = 1, - Reaming3StopPointOffBottom = 2, - Reaming3ROPUp = 3, - Reaming3Interval = 4, - Reaming2StopPointOffBottom = 5, - Reaming2ROPUp = 6, - Reaming2NumberOfRepetitions = 7, - Reaming3FlowRateUp = 8, - Reaming2FlowRateUp = 9, - Reaming1StopPointOffBottom = 1, - Reaming1ROPUp = 1, - Reaming1Interval = 2, - DifferentialPressure = 3, - MaxPressure = 4, - MaxTorque = 5, - Note = "1", - Reaming1FlowRateDown = 6, - Reaming1FlowRateUp = 7, - Reaming1NumberOfRepetitions = 8, - Reaming1ROPDown = 9, - Reaming1RPMDown = 1, - Reaming1RPMUp = 1, - Reaming2FlowRateDown = 2, - Reaming2Interval = 3, - Reaming2ROPDown = 3, - Reaming2RPMDown = 4, - Reaming2RPMUp = 5, - Reaming3FlowRateDown = 6, - Reaming3NumberOfRepetitions = 3, - Reaming3ROPDown = 4, - Reaming3RPMDown = 5, - Reaming3RPMUp = 6, - SetpointsTight = 1, - }; - - private readonly ProcessMapPlanOperationReamingSlide entity = new ProcessMapPlanOperationReamingSlide() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - SetpointsSlackingOff = 1, - Reaming3StopPointOffBottom = 2, - Reaming3ROPUp = 3, - Reaming3Interval = 4, - Reaming2StopPointOffBottom = 5, - Reaming2ROPUp = 6, - Reaming2NumberOfRepetitions = 7, - Reaming3FlowRateUp = 8, - Reaming2FlowRateUp = 9, - Reaming1StopPointOffBottom = 1, - Reaming1ROPUp = 1, - Reaming1Interval = 2, - DifferentialPressure = 3, - MaxPressure = 4, - MaxTorque = 5, - Note = "1", - Reaming1FlowRateDown = 6, - Reaming1FlowRateUp = 7, - Reaming1NumberOfRepetitions = 8, - Reaming1ROPDown = 9, - Reaming1RPMDown = 1, - Reaming1RPMUp = 1, - Reaming2FlowRateDown = 2, - Reaming2Interval = 3, - Reaming2ROPDown = 3, - Reaming2RPMDown = 4, - Reaming2RPMUp = 5, - Reaming3FlowRateDown = 6, - Reaming3NumberOfRepetitions = 3, - Reaming3ROPDown = 4, - Reaming3RPMDown = 5, - Reaming3RPMUp = 6, - SetpointsTight = 1, - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanOperationReamingSlide GetByNote(DbSet dbSet, ProcessMapPlanOperationReamingSlideDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationReamingSlideDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationReamingSlideDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationReamingSlide? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs similarity index 60% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs index 007d0844..2883b939 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingSlideController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план проработка для слайда /// -public class ProcessMapPlanOperationReamingSlideController : - ProcessMapPlanBaseController +public class ProcessMapPlanReamingSlideController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationReamingSlideController( - IChangeLogRepository repository, + public ProcessMapPlanReamingSlideController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationReamingSlideParser parserService, + ProcessMapPlanReamingSlideParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationReamingSlideExportService processMapPlanExportService) + ProcessMapPlanReamingSlideExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 543db8ecca1e9b0a8afaa8f3e3a2656fd01cfb5b Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 11:11:09 +0500 Subject: [PATCH 43/74] =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BB=D0=B0=D0=B9=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMaps/ProcessMapPlanSlideDto.cs | 44 ++++++++-------- .../ProcessMapPlan/ProcessMapPlanSlide.cs | 50 +++++++++---------- .../ProcessMapPlanSlideTemplate.cs | 12 ++--- .../Report/ProcessMapReportDrillingService.cs | 10 ++-- .../Services/WellInfoService.cs | 2 +- .../ProcessMapPlanSlideControllerTest.cs | 46 ++++++++--------- .../ProcessMapPlanSlideController.cs | 2 +- 7 files changed, 83 insertions(+), 83 deletions(-) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanSlideController.cs (94%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs index 617b5f46..4a0c4098 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs @@ -10,62 +10,62 @@ public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto /// /// Максимально допустимая скорость, м/ч /// - [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] - public double RopLimitMax { get; set; } + [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")] + public double RopMax { get; set; } /// /// Максимально допустимое давление, атм /// - [Range(0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] - public double PressureLimitMax { get; set; } + [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } /// - /// Перепад давления, атм. Уставка + /// Перепад давления уставка, атм /// - [Range(0, 60.0, ErrorMessage = "Перепад давления, атм. уставка, должно быть в пределах от 0 до 60.0")] + [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] public double DifferentialPressure { get; set; } /// - /// Перепад давления, атм. Ограничение + /// Перепад давления ограничение, атм /// - [Range(0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] - public double DifferentialPressureLimitMax { get; set; } + [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressureMax { get; set; } /// - /// Нагрузка, т. Уставка + /// Нагрузка уставка, т /// - [Range(0, 50.0, ErrorMessage = " Нагрузка, т., уставка, должно быть в пределах от 0 до 50.0")] + [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")] public double WeightOnBit { get; set; } /// - /// Нагрузка, т. Ограничение + /// Нагрузка ограничение, т /// - [Range(0, 50.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 50.0")] - public double WeightOnBitLimitMax { get; set; } + [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")] + public double WeightOnBitMax { get; set; } /// - /// Расход л/с. Уставка + /// Расход уставка л/с /// - [Range(0, 100.0, ErrorMessage = "Расход, л/с., уставка, должно быть в пределах от 0 до 50.0")] + [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")] public double FlowRate { get; set; } /// - /// Расход л/с. Ограничение + /// Расход ограничение л/с /// - [Range(0, 100.0, ErrorMessage = "Расход, л/с., ограничение, должно быть в пределах от 0 до 100.0")] - public double FlowRateLimitMax { get; set; } + [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")] + public double FlowRateMax { get; set; } /// /// Расчётная пружина, градус /// - [Range(0, 9999.9, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999.9")] + [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")] public double Spring { get; set; } /// /// Складывание инструмента, м /// - [Range(0, 9999.9, ErrorMessage = "Складывание инструмента, м, должно быть в пределах от 0 до 9999.9")] - public double ToolBuckling { get; set; } + [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")] + public double Buckling { get; set; } /// /// Примечание diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs index 58e2dc92..8c4d39c5 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs @@ -8,55 +8,55 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")] public class ProcessMapPlanSlide : ProcessMapPlanBase { - [Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")] - [Range(0, 800.0)] + [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч.")] + [Range(0, 800)] [Required] - public double RopLimitMax { get; set; } + public double RopMax { get; set; } - [Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")] - [Range(0, 400.0)] + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] + [Range(0, 400)] [Required] - public double PressureLimitMax { get; set; } + public double PressureMax { get; set; } - [Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")] - [Range(0, 60.0)] + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] + [Range(0, 60)] [Required] public double DifferentialPressure { get; set; } - [Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")] - [Range(0, 60.0)] + [Column("differential_pressure_max"), Comment("Перепад давления ограничение, атм.")] + [Range(0, 60)] [Required] - public double DifferentialPressureLimitMax { get; set; } + public double DifferentialPressureMax { get; set; } - [Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")] - [Range(0, 50.0)] + [Column("weight_on_bit"), Comment("Нагрузка уставка, т.")] + [Range(0, 99)] [Required] public double WeightOnBit { get; set; } - [Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")] - [Range(0, 50.0)] + [Column("weight_on_bit_max"), Comment("Нагрузка ограничение, т.")] + [Range(0, 99)] [Required] - public double WeightOnBitLimitMax { get; set; } + public double WeightOnBitMax { get; set; } - [Column("flow_rate"), Comment("Расход л/с. Уставка")] - [Range(0, 100.0)] + [Column("flow_rate"), Comment("Расход уставка, л/с.")] + [Range(0, 100)] [Required] public double FlowRate { get; set; } - [Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")] - [Range(0, 100.0)] + [Column("flow_rate_max"), Comment("Расход ограничение, л/с.")] + [Range(0, 100)] [Required] - public double FlowRateLimitMax { get; set; } + public double FlowRateMax { get; set; } [Column("spring"), Comment("Расчётная пружина, градус")] - [Range(0, 9999.9)] + [Range(0, 9999)] [Required] public double Spring { get; set; } - [Column("tool_buckling"), Comment("Складывание инструмента, м")] - [Range(0, 9999.9)] + [Column("buckling"), Comment("Складывание инструмента, м.")] + [Range(0, 9999)] [Required] - public double ToolBuckling { get; set; } + public double Buckling { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs index 9d570c54..da50e04c 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs @@ -16,16 +16,16 @@ public class ProcessMapPlanSlideTemplate : ITemplateParameters { nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.RopLimitMax), new Cell(4, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.PressureLimitMax), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.RopMax), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.PressureMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DifferentialPressure), new Cell(6, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.DifferentialPressureMax), new Cell(7, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.WeightOnBit), new Cell(8, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.WeightOnBitMax), new Cell(9, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.FlowRate), new Cell(10, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.FlowRateLimitMax), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.FlowRateMax), new Cell(11, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.Spring), new Cell(12, typeof(double)) }, - { nameof(ProcessMapPlanSlideDto.ToolBuckling), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanSlideDto.Buckling), new Cell(13, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.Note), new Cell(14, typeof(double)) } }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs index 4c5132c5..4e1ef71d 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs @@ -287,13 +287,13 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService if (processMapPlanFilteredByDepth is ProcessMapPlanSlideDto processMapPlanSlideFilteredByDepth) { result.PressureDiff.SetpointPlan = processMapPlanSlideFilteredByDepth.DifferentialPressure; - result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureLimitMax; + result.PressureDiff.Limit = processMapPlanSlideFilteredByDepth.DifferentialPressureMax; result.AxialLoad.SetpointPlan = processMapPlanSlideFilteredByDepth.WeightOnBit; - result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitLimitMax; - result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopLimitMax; + result.AxialLoad.Limit = processMapPlanSlideFilteredByDepth.WeightOnBitMax; + result.SpeedLimit.SetpointPlan = processMapPlanSlideFilteredByDepth.RopMax; result.Flow.SetpointPlan = processMapPlanSlideFilteredByDepth.FlowRate; - result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateLimitMax; - result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopLimitMax; + result.Flow.Limit = processMapPlanSlideFilteredByDepth.FlowRateMax; + result.Rop.Plan = processMapPlanSlideFilteredByDepth.RopMax; } return result; diff --git a/AsbCloudInfrastructure/Services/WellInfoService.cs b/AsbCloudInfrastructure/Services/WellInfoService.cs index 74bea1ef..899e3ab5 100644 --- a/AsbCloudInfrastructure/Services/WellInfoService.cs +++ b/AsbCloudInfrastructure/Services/WellInfoService.cs @@ -186,7 +186,7 @@ public class WellInfoService wellMapInfo.Pressure.Plan = processMapPlanSlide?.DifferentialPressure; - wellMapInfo.ROP.Plan = processMapPlanSlide?.RopLimitMax; + wellMapInfo.ROP.Plan = processMapPlanSlide?.RopMax; } var wellSubsystemStat = subsystemStat.FirstOrDefault(s => s.Well.Id == well.Id); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs index 48f08a50..e91ea5fc 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs @@ -12,16 +12,16 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes IdWell = 1, DepthStart = 1, DepthEnd = 2, - RopLimitMax = 3, - PressureLimitMax = 4, + RopMax = 3, + PressureMax = 4, DifferentialPressure = 5, - DifferentialPressureLimitMax = 6, + DifferentialPressureMax = 6, WeightOnBit = 7, - WeightOnBitLimitMax = 8, + WeightOnBitMax = 8, FlowRate = 9, - FlowRateLimitMax = 10, + FlowRateMax = 10, Spring = 11, - ToolBuckling = 12, + Buckling = 12, Id = 0, IdWellSectionType = 1, Note = "13" @@ -33,21 +33,21 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes DepthEnd = 10, DepthStart = 2, DifferentialPressure = 3, - DifferentialPressureLimitMax = 4, + DifferentialPressureMax = 4, FlowRate = 5, - FlowRateLimitMax = 6, + FlowRateMax = 6, Id = 0, IdWellSectionType = 1, Note = "1", - PressureLimitMax = 2, - RopLimitMax = 5, + PressureMax = 2, + RopMax = 5, WeightOnBit = 8, - WeightOnBitLimitMax = 9, + WeightOnBitMax = 9, IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, Spring = 10, - ToolBuckling = 11, + Buckling = 11, }; public ProcessMapPlanSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSlide") @@ -60,7 +60,7 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes var entity = dbContext .Set() .Where(p => p.WeightOnBit == dto.WeightOnBit) - .Where(p => p.WeightOnBitLimitMax == dto.WeightOnBitLimitMax) + .Where(p => p.WeightOnBitMax == dto.WeightOnBitMax) .Where(p => p.Note == dto.Note) .FirstOrDefault(p => p.IdWell == dto.IdWell); @@ -115,32 +115,32 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes var dtoUpdate = dto.Adapt(); dtoUpdate.IdWell = 0; dtoUpdate.Note = "nebuchadnezzar"; - dtoUpdate.DifferentialPressureLimitMax++; + dtoUpdate.DifferentialPressureMax++; dtoUpdate.DifferentialPressure++; dtoUpdate.FlowRate++; - dtoUpdate.FlowRateLimitMax++; - dtoUpdate.RopLimitMax++; + dtoUpdate.FlowRateMax++; + dtoUpdate.RopMax++; dtoUpdate.WeightOnBit++; - dtoUpdate.WeightOnBitLimitMax++; + dtoUpdate.WeightOnBitMax++; dtoUpdate.DepthStart++; dtoUpdate.DepthEnd++; dtoUpdate.Spring++; - dtoUpdate.ToolBuckling++; + dtoUpdate.Buckling++; var dtoInsert = dtoUpdate.Adapt(); dtoInsert.Id = 0; dtoInsert.Note = "nebuchad"; - dtoInsert.DifferentialPressureLimitMax++; + dtoInsert.DifferentialPressureMax++; dtoInsert.DifferentialPressure++; dtoInsert.FlowRate++; - dtoInsert.FlowRateLimitMax++; - dtoInsert.RopLimitMax++; + dtoInsert.FlowRateMax++; + dtoInsert.RopMax++; dtoInsert.WeightOnBit++; - dtoInsert.WeightOnBitLimitMax++; + dtoInsert.WeightOnBitMax++; dtoInsert.DepthStart++; dtoInsert.DepthEnd++; dtoUpdate.Spring++; - dtoUpdate.ToolBuckling++; + dtoUpdate.Buckling++; await UpdateOrInsertRange(entity, dtoUpdate, dtoInsert); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs similarity index 94% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSlideController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs index b66d6c6a..312181ef 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSlideController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs @@ -6,7 +6,7 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план бурения (ротор) From 872ccaa805458d17b7b1bb1e2755716b32322b05 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 11:17:10 +0500 Subject: [PATCH 44/74] =?UTF-8?q?=D0=92=D1=8B=D1=81=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProcessMapPlanOperationTFOrientationDto.cs | 93 -------- .../ProcessMapPlanReamingSlideDto.cs | 209 ++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...tion.cs => ProcessMapPlanTFOrientation.cs} | 6 +- AsbCloudInfrastructure/DependencyInjection.cs | 18 +- ...=> ProcessMapPlanTFOrientationTemplate.cs} | 6 +- ...ocessMapPlanTFOrientationExportService.cs} | 8 +- ...s => ProcessMapPlanTFOrientationParser.cs} | 8 +- ...cessMapPlanTFOrientationControllerTest.cs} | 18 +- .../ProcessMapPlanTFOrientationController.cs} | 14 +- 11 files changed, 252 insertions(+), 136 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationTFOrientation.cs => ProcessMapPlanTFOrientation.cs} (92%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationTFOrientationTemplate.cs => ProcessMapPlanTFOrientationTemplate.cs} (51%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationTFOrientationExportService.cs => ProcessMapPlanTFOrientationExportService.cs} (69%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationTFOrientationParser.cs => ProcessMapPlanTFOrientationParser.cs} (72%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanOperationTFOrientationControllerTest.cs => Operations/ProcessMapPlanTFOrientationControllerTest.cs} (65%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationTFOrientationController.cs => Operations/ProcessMapPlanTFOrientationController.cs} (55%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs deleted file mode 100644 index 60da4cac..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationTFOrientationDto.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выставление -/// -public class ProcessMapPlanOperationTFOrientationDto : ProcessMapPlanBaseDto -{ - /// - /// План TF, град - /// - [Range(0.0, 360.0, ErrorMessage = "План TF, град., должно быть в пределах от 0 до 360")] - public double planTF { get; set; } - - /// - /// Пружина, град - /// - [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] - public double Spring { get; set; } - - /// - /// Максимальное давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] - public double MaxPressure { get; set; } - - /// - /// Перепад давления, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Уставки, т., затяжка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] - public double SetpointsTight { get; set; } - - /// - /// Уставки, т., посадка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] - public double SetpointsSlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double MaxTorque { get; set; } - - /// - /// Проработка 1, Количество расхаживаний, шт - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] - public double Reaming1NumberOfRepetitions { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1ROPUp { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1ROPDown { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateUp { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateDown { get; set; } - - /// - /// Проработка 1, Интервал расхаживания, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал расхаживания, м., должно быть в пределах от 0 до 30")] - public double Reaming1Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming1StopPointOffBottom { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs new file mode 100644 index 00000000..c35fddb8 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanReamingSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index df7fbb19..a52f8a02 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -28,7 +28,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); - public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); + public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); @@ -503,7 +503,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -603,7 +603,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index a9597aa1..4b4e6bb8 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -89,7 +89,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } - DbSet ProcessMapPlanOperationTFOrientation { get; } + DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs similarity index 92% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs index 0aa4adbf..c35d727f 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationTFOrientation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_tf_orientation"), Comment("Выставление")] -public class ProcessMapPlanOperationTFOrientation : ProcessMapPlanBase +[Table("t_process_map_plan_tf_orientation"), Comment("Выставление")] +public class ProcessMapPlanTFOrientation : ProcessMapPlanBase { [Column("plan_tf"), Comment("План TF, град")] [Range(0.0, 360.0)] @@ -79,5 +79,5 @@ public class ProcessMapPlanOperationTFOrientation : ProcessMapPlanBase public double Reaming1StopPointOffBottom { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationTFOrientation? Previous { get; set; } + public virtual ProcessMapPlanTFOrientation? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index b80498fe..2a036053 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -188,11 +188,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -435,7 +435,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -461,7 +461,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -519,8 +519,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -574,7 +574,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs similarity index 51% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs index b44fc5df..776d0c0e 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationTFOrientationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationTFOrientationTemplate : ITemplateParameters +public class ProcessMapPlanTFOrientationTemplate : ITemplateParameters { - public string SheetName => "Определение выставление"; + public string SheetName => "Выставление"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationTFOrientationTemplate.xlsx"; + public string FileName => "ProcessMapPlanTFOrientationTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs similarity index 69% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs index e1c6ffa4..0c210d02 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationTFOrientationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationTFOrientationExportService : ProcessMapPlanExportService +public class ProcessMapPlanTFOrientationExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationTFOrientationExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanTFOrientationExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationTFOrientationTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanTFOrientationTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs similarity index 72% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs index 620d4e99..54025674 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationTFOrientationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationTFOrientationParser : ProcessMapPlanParser +public class ProcessMapPlanTFOrientationParser : ProcessMapPlanParser { - public ProcessMapPlanOperationTFOrientationParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanTFOrientationParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationTFOrientationTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanTFOrientationTemplate(); - protected override ProcessMapPlanOperationTFOrientationDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanTFOrientationDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs similarity index 65% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs index 8d228237..edc6fb70 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationTFOrientationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план выставление /// -public class ProcessMapPlanOperationTFOrientationControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanTFOrientationControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationTFOrientation") + public ProcessMapPlanTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationTFOrientation") { } - private readonly ProcessMapPlanOperationTFOrientationDto dto = new ProcessMapPlanOperationTFOrientationDto() + private readonly ProcessMapPlanTFOrientationDto dto = new ProcessMapPlanTFOrientationDto() { IdWell = 1, DepthStart = 1, @@ -44,7 +44,7 @@ public class ProcessMapPlanOperationTFOrientationControllerTest : Spring = 1 }; - private readonly ProcessMapPlanOperationTFOrientation entity = new ProcessMapPlanOperationTFOrientation() + private readonly ProcessMapPlanTFOrientation entity = new ProcessMapPlanTFOrientation() { IdWell = 1, DepthEnd = 10, @@ -76,17 +76,17 @@ public class ProcessMapPlanOperationTFOrientationControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanOperationTFOrientation GetByNote(DbSet dbSet, ProcessMapPlanOperationTFOrientationDto dto) + protected override ProcessMapPlanTFOrientation GetByNote(DbSet dbSet, ProcessMapPlanTFOrientationDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationTFOrientationDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationTFOrientationDto dto) + protected override ProcessMapPlanTFOrientationDto GetByNote(IEnumerable dtos, ProcessMapPlanTFOrientationDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationTFOrientation? GetByWellId() + protected override ProcessMapPlanTFOrientation? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs similarity index 55% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs index 2df9de7e..1359a663 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationTFOrientationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs @@ -6,20 +6,20 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план выставление /// -public class ProcessMapPlanOperationTFOrientationController : - ProcessMapPlanBaseController +public class ProcessMapPlanTFOrientationController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationTFOrientationController( - IChangeLogRepository repository, + public ProcessMapPlanTFOrientationController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationTFOrientationParser parserService, + ProcessMapPlanTFOrientationParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationTFOrientationExportService processMapPlanExportService) + ProcessMapPlanTFOrientationExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 7daa8f280cce0958adef45ad6ba4d88f0da035a6 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 11:36:50 +0500 Subject: [PATCH 45/74] =?UTF-8?q?=D0=92=D1=8B=D1=81=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanTFOrientation.cs | 50 +++++++++---------- ...ocessMapPlanTFOrientationControllerTest.cs | 24 --------- 2 files changed, 25 insertions(+), 49 deletions(-) diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs index c35d727f..0af96346 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs @@ -8,75 +8,75 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_tf_orientation"), Comment("Выставление")] public class ProcessMapPlanTFOrientation : ProcessMapPlanBase { - [Column("plan_tf"), Comment("План TF, град")] + [Column("tf_setpoint"), Comment("Задание TF, град.")] [Range(0.0, 360.0)] [Required] - public double planTF { get; set; } + public double TFSetpoint { get; set; } - [Column("spring"), Comment("Пружина, град ")] + [Column("spring"), Comment("Пружина, град.")] [Range(0.0, 10000.0)] [Required] public double Spring { get; set; } - [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Column("pressure_max"), Comment("Максимальное давление, атм.")] [Range(0.0, 400.0)] [Required] - public double MaxPressure { get; set; } + public double PressureMax { get; set; } [Column("differential_pressure"), Comment("Перепад давления, атм.")] [Range(0.0, 60.0)] [Required] public double DifferentialPressure { get; set; } - [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Column("tight"), Comment("Затяжка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsTight { get; set; } + public double Tight { get; set; } - [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Column("slacking_off"), Comment("Посадка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsSlackingOff { get; set; } + public double SlackingOff { get; set; } - [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] [Range(0.0, 35.0)] [Required] - public double MaxTorque { get; set; } + public double TorqueMax { get; set; } - [Column("reaming1_number_of_repetitions"), Comment("Проработка 1, Количество расхаживаний, шт")] + [Column("repetitions_count"), Comment("Количество расхаживаний, шт.")] [Range(0.0, 99.0)] [Required] - public double Reaming1NumberOfRepetitions { get; set; } + public int RepetitionsCount { get; set; } - [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Column("rop_up"), Comment("Скорость вверх, м/ч.")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPUp { get; set; } + public double RopUp { get; set; } - [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] + [Column("rop_down"), Comment("Скорость вниз, м/ч.")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPDown { get; set; } + public double RopDown { get; set; } - [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] + [Column("flow_rate_up"), Comment("Расход вверх, л/с.")] [Range(0.0, 100.0)] [Required] - public double Reaming1FlowRateUp { get; set; } + public double FlowRateUp { get; set; } - [Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")] + [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] [Range(0.0, 100.0)] [Required] - public double Reaming1FlowRateDown { get; set; } + public double FlowRateDown { get; set; } - [Column("reaming1_interval"), Comment("Проработка 1, Интервал расхаживания, м.")] + [Column("interval"), Comment("Интервал расхаживания, м.")] [Range(0.0, 30.0)] [Required] - public double Reaming1Interval { get; set; } + public double Interval { get; set; } - [Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")] + [Column("stop_point_off_bottom"), Comment("Остановка над забоем, м.")] [Range(0.0, 10.0)] [Required] - public double Reaming1StopPointOffBottom { get; set; } + public double StopPointOffBottom { get; set; } [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanTFOrientation? Previous { get; set; } diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs index edc6fb70..c5514d71 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs @@ -29,18 +29,6 @@ public class ProcessMapPlanTFOrientationControllerTest : Id = 0, IdWellSectionType = 1, DifferentialPressure = 1, - Reaming1NumberOfRepetitions = 1, - Reaming1StopPointOffBottom = 1, - Reaming1ROPUp = 1, - Reaming1ROPDown = 1, - Reaming1Interval = 1, - Reaming1FlowRateUp = 1, - Reaming1FlowRateDown = 1, - SetpointsSlackingOff = 1, - MaxPressure = 1, - MaxTorque = 1, - planTF = 1, - SetpointsTight = 1, Spring = 1 }; @@ -55,18 +43,6 @@ public class ProcessMapPlanTFOrientationControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, DifferentialPressure = 1, - Reaming1NumberOfRepetitions = 1, - Reaming1StopPointOffBottom = 1, - Reaming1ROPUp = 1, - Reaming1ROPDown = 1, - Reaming1Interval = 1, - Reaming1FlowRateUp = 1, - Reaming1FlowRateDown = 1, - SetpointsSlackingOff = 1, - MaxPressure = 1, - MaxTorque = 1, - planTF = 1, - SetpointsTight = 1, Spring = 1 }; From 4c4c0a50417b047560b42dcff8a50ce5273a0236 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 11:46:16 +0500 Subject: [PATCH 46/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B7=D0=B8=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B4=20=D0=B7=D0=B0=D0=B1=D0=BE=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...PlanOperationPositioningOffTheBottomDto.cs | 15 --- .../ProcessMapPlanTFOrientationDto.cs | 93 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ... ProcessMapPlanPositioningOffTheBottom.cs} | 6 +- AsbCloudInfrastructure/DependencyInjection.cs | 18 ++-- ...MapPlanPositioningOffTheBottomTemplate.cs} | 4 +- ...anPositioningOffTheBottomExportService.cs} | 8 +- ...ssMapPlanPositioningOffTheBottomParser.cs} | 8 +- ...nPositioningOffTheBottomControllerTest.cs} | 18 ++-- ...pPlanPositioningOffTheBottomController.cs} | 14 +-- 11 files changed, 135 insertions(+), 57 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationPositioningOffTheBottom.cs => ProcessMapPlanPositioningOffTheBottom.cs} (59%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs => ProcessMapPlanPositioningOffTheBottomTemplate.cs} (65%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationPositioningOffTheBottomExportService.cs => ProcessMapPlanPositioningOffTheBottomExportService.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationPositioningOffTheBottomParser.cs => ProcessMapPlanPositioningOffTheBottomParser.cs} (70%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs => Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs} (51%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationPositioningOffTheBottomController.cs => Operations/ProcessMapPlanPositioningOffTheBottomController.cs} (54%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs deleted file mode 100644 index 0cd04f5c..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план позиционирования над забоем -/// -public class ProcessMapPlanOperationPositioningOffTheBottomDto : ProcessMapPlanBaseDto -{ - /// - /// Остановка над забоем, м - /// - [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] - public double StopOffTheBottom { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs new file mode 100644 index 00000000..24ab00da --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs @@ -0,0 +1,93 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto +{ + /// + /// Задание TF, град. + /// + [Range(0.0, 360.0, ErrorMessage = "Задание TF, град., должно быть в пределах от 0 до 360")] + public double TFSetpoint { get; set; } + + /// + /// Пружина, град. + /// + [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] + public double Spring { get; set; } + + /// + /// Максимальное давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Количество расхаживаний, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] + public int RepetitionsCount { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Интервал расхаживания, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Интервал расхаживания, м., должно быть в пределах от 0 до 30")] + public double Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double StopPointOffBottom { get; set; } +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index a52f8a02..cac346ad 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -26,7 +26,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); - public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); + public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); @@ -493,7 +493,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -593,7 +593,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 4b4e6bb8..8e612025 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -87,7 +87,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } - DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } + DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs similarity index 59% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs index 424cac69..2adcaef7 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottom.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_positioning_off_the_bottom"), Comment("Позиционирование над забоем")] -public class ProcessMapPlanOperationPositioningOffTheBottom : ProcessMapPlanBase +[Table("t_process_map_plan_positioning_off_the_bottom"), Comment("Позиционирование над забоем")] +public class ProcessMapPlanPositioningOffTheBottom : ProcessMapPlanBase { [Column("stop_off_the_bottom"), Comment("Остановка над забоем, м")] [Range(0.0, 30.0)] @@ -14,5 +14,5 @@ public class ProcessMapPlanOperationPositioningOffTheBottom : ProcessMapPlanBase public double StopOffTheBottom { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationPositioningOffTheBottom? Previous { get; set; } + public virtual ProcessMapPlanPositioningOffTheBottom? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 2a036053..a2b39a9b 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -174,11 +174,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -433,7 +433,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -459,7 +459,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -511,8 +511,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -572,7 +572,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs similarity index 65% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs index 3cb9aadf..1766a5e0 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationPositioningOffTheBottomTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationPositioningOffTheBottomTemplate : ITemplateParameters +public class ProcessMapPlanPositioningOffTheBottomTemplate : ITemplateParameters { public string SheetName => "Позиционирование над забоем"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationPositioningOffTheBottomTemplate.xlsx"; + public string FileName => "ProcessMapPlanPositioningOffTheBottomTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs index d1049e01..20f7fd92 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationPositioningOffTheBottomExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationPositioningOffTheBottomExportService : ProcessMapPlanExportService +public class ProcessMapPlanPositioningOffTheBottomExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationPositioningOffTheBottomExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanPositioningOffTheBottomExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationPositioningOffTheBottomTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanPositioningOffTheBottomTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs index a921e0eb..919cd035 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationPositioningOffTheBottomParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationPositioningOffTheBottomParser : ProcessMapPlanParser +public class ProcessMapPlanPositioningOffTheBottomParser : ProcessMapPlanParser { - public ProcessMapPlanOperationPositioningOffTheBottomParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanPositioningOffTheBottomParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationPositioningOffTheBottomTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanPositioningOffTheBottomTemplate(); - protected override ProcessMapPlanOperationPositioningOffTheBottomDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanPositioningOffTheBottomDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs similarity index 51% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs index 6b35ec47..84d4b6b1 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationPositioningOffTheBottomControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план позиционирование над забоем /// -public class ProcessMapPlanOperationPositioningOffTheBottomControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanPositioningOffTheBottomControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationPositioningOffTheBottomControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationPositioningOffTheBottom") + public ProcessMapPlanPositioningOffTheBottomControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationPositioningOffTheBottom") { } - private readonly ProcessMapPlanOperationPositioningOffTheBottomDto dto = new ProcessMapPlanOperationPositioningOffTheBottomDto() + private readonly ProcessMapPlanPositioningOffTheBottomDto dto = new ProcessMapPlanPositioningOffTheBottomDto() { IdWell = 1, DepthStart = 1, @@ -31,7 +31,7 @@ public class ProcessMapPlanOperationPositioningOffTheBottomControllerTest : StopOffTheBottom = 1 }; - private readonly ProcessMapPlanOperationPositioningOffTheBottom entity = new ProcessMapPlanOperationPositioningOffTheBottom() + private readonly ProcessMapPlanPositioningOffTheBottom entity = new ProcessMapPlanPositioningOffTheBottom() { IdWell = 1, DepthEnd = 10, @@ -50,17 +50,17 @@ public class ProcessMapPlanOperationPositioningOffTheBottomControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanOperationPositioningOffTheBottom GetByNote(DbSet dbSet, ProcessMapPlanOperationPositioningOffTheBottomDto dto) + protected override ProcessMapPlanPositioningOffTheBottom GetByNote(DbSet dbSet, ProcessMapPlanPositioningOffTheBottomDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationPositioningOffTheBottomDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationPositioningOffTheBottomDto dto) + protected override ProcessMapPlanPositioningOffTheBottomDto GetByNote(IEnumerable dtos, ProcessMapPlanPositioningOffTheBottomDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationPositioningOffTheBottom? GetByWellId() + protected override ProcessMapPlanPositioningOffTheBottom? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs similarity index 54% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs index ba4c9e91..30264156 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationPositioningOffTheBottomController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs @@ -6,20 +6,20 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план позиционирование над забоем /// -public class ProcessMapPlanOperationPositioningOffTheBottomController : - ProcessMapPlanBaseController +public class ProcessMapPlanPositioningOffTheBottomController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationPositioningOffTheBottomController( - IChangeLogRepository repository, + public ProcessMapPlanPositioningOffTheBottomController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationPositioningOffTheBottomParser parserService, + ProcessMapPlanPositioningOffTheBottomParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationPositioningOffTheBottomExportService processMapPlanExportService) + ProcessMapPlanPositioningOffTheBottomExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 57db8df9da541cb356444abdd4938232fb7b5b80 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 12:07:38 +0500 Subject: [PATCH 47/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B7=D0=B8=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B4=20=D0=B7=D0=B0=D0=B1=D0=BE=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rocessMapPlanPositioningOffTheBottomDto.cs | 88 +++++++++++++++++++ .../ProcessMapPlanPositioningOffTheBottom.cs | 61 ++++++++++++- 2 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs new file mode 100644 index 00000000..85b821f6 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs @@ -0,0 +1,88 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план позиционирования над забоем +/// +public class ProcessMapPlanPositioningOffTheBottomDto : ProcessMapPlanBaseDto +{ + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] + public double StopOffTheBottom { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вверх, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вверх, об/мин., должно быть в пределах от 0 до 270")] + public double RpmUp { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs index 2adcaef7..0d1cecf3 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs @@ -8,11 +8,70 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_positioning_off_the_bottom"), Comment("Позиционирование над забоем")] public class ProcessMapPlanPositioningOffTheBottom : ProcessMapPlanBase { - [Column("stop_off_the_bottom"), Comment("Остановка над забоем, м")] + [Column("stop_off_the_bottom"), Comment("Остановка над забоем, м.")] [Range(0.0, 30.0)] [Required] public double StopOffTheBottom { get; set; } + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] + [Range(0.0, 400.0)] + [Required] + public double PressureMax { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("tight"), Comment("Затяжка, т.")] + [Range(0.0, 20.0)] + [Required] + public double Tight { get; set; } + + [Column("slacking_off"), Comment("Посадка, т.")] + [Range(0.0, 20.0)] + [Required] + public double SlackingOff { get; set; } + + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double TorqueMax { get; set; } + + [Column("rop_up"), Comment("Скорость вверх, м/ч.")] + [Range(0.0, 999.0)] + [Required] + public double RopUp { get; set; } + + [Column("rop_down"), Comment("Скорость вниз, м/ч.")] + [Range(0.0, 999.0)] + [Required] + public double RopDown { get; set; } + + [Column("rpm_up"), Comment("Обороты вверх, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double RpmUp { get; set; } + + [Column("rpm_down"), Comment("Обороты вниз, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double RpmDown { get; set; } + + [Column("flow_rate_up"), Comment("Расход вверх, л/с.")] + [Range(0.0, 100.0)] + [Required] + public double FlowRateUp { get; set; } + + [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] + [Range(0.0, 100.0)] + [Required] + public double FlowRateDown { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + [Required] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanPositioningOffTheBottom? Previous { get; set; } } \ No newline at end of file From a1567d49f9964c54396f876bd8079bdbf59d5be6 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 12:19:37 +0500 Subject: [PATCH 48/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D1=80=D0=BE=D1=82=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationReamingRotorDto.cs | 209 ------------------ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...Rotor.cs => ProcessMapPlanReamingRotor.cs} | 4 +- AsbCloudInfrastructure/DependencyInjection.cs | 18 +- ... => ProcessMapPlanReamingRotorTemplate.cs} | 4 +- ...rocessMapPlanReamingRotorExportService.cs} | 8 +- ...cs => ProcessMapPlanReamingRotorParser.cs} | 8 +- ...ocessMapPlanReamingRotorControllerTest.cs} | 18 +- .../ProcessMapPlanReamingRotorController.cs} | 12 +- 10 files changed, 40 insertions(+), 249 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationReamingRotor.cs => ProcessMapPlanReamingRotor.cs} (97%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationReamingRotorTemplate.cs => ProcessMapPlanReamingRotorTemplate.cs} (68%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationReamingRotorExportService.cs => ProcessMapPlanReamingRotorExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationReamingRotorParser.cs => ProcessMapPlanReamingRotorParser.cs} (73%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanOperationReamingRotorControllerTest.cs => Operations/ProcessMapPlanReamingRotorControllerTest.cs} (76%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationReamingRotorController.cs => Operations/ProcessMapPlanReamingRotorController.cs} (60%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs deleted file mode 100644 index 1f5cc2c1..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationReamingRotorDto.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план проработка для ротора -/// -public class ProcessMapPlanOperationReamingRotorDto : ProcessMapPlanBaseDto -{ - /// - /// Максимальное давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] - public double MaxPressure { get; set; } - - /// - /// Перепад давления, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Уставки, т., затяжка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., затяжка, должно быть в пределах от 0 до 20")] - public double SetpointsTight { get; set; } - - /// - /// Уставки, т., посадка - /// - [Range(0.0, 20.0, ErrorMessage = "Уставки, т., посадка, должно быть в пределах от 0 до 20")] - public double SetpointsSlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] - public double MaxTorque { get; set; } - - /// - /// Проработка 1, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming1NumberOfRepetitions { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1ROPUp { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1ROPDown { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming1RPMUp { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming1RPMDown { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateUp { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateDown { get; set; } - - /// - /// Проработка 1, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming1Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming1StopPointOffBottom { get; set; } - - /// - /// Проработка 2, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming2NumberOfRepetitions { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming2ROPUp { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming2ROPDown { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming2RPMUp { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming2RPMDown { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateUp { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateDown { get; set; } - - /// - /// Проработка 2, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming2Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming2StopPointOffBottom { get; set; } - - /// - /// Проработка 3, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming3NumberOfRepetitions { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming3ROPUp { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming3ROPDown { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming3RPMUp { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming3RPMDown { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateUp { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateDown { get; set; } - - /// - /// Проработка 3, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming3Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming3StopPointOffBottom { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index cac346ad..87890e0c 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -22,7 +22,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanRotor => Set(); public virtual DbSet ProcessMapPlanSlide => Set(); public virtual DbSet ProcessMapPlanReams => Set(); - public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); + public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); @@ -473,7 +473,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -573,7 +573,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 8e612025..ed6b92e9 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -83,7 +83,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanReams { get; } DbSet ProcessMapPlanRotor { get; } DbSet ProcessMapPlanSlide { get; } - DbSet ProcessMapPlanOperationReamingRotor { get; } + DbSet ProcessMapPlanOperationReamingRotor { get; } DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs similarity index 97% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs index 44f8c1e8..88d204e0 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationReamingRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")] -public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase +public class ProcessMapPlanReamingRotor : ProcessMapPlanBase { [Column("max_pressure"), Comment("Максимальное давление, атм")] [Range(0.0, 400.0)] @@ -154,5 +154,5 @@ public class ProcessMapPlanOperationReamingRotor : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationReamingRotor? Previous { get; set; } + public virtual ProcessMapPlanReamingRotor? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index a2b39a9b..e4239ef3 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -146,11 +146,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -429,7 +429,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -455,7 +455,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -495,8 +495,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -568,7 +568,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs similarity index 68% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs index 319e9fa8..2681ec8e 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationReamingRotorTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs @@ -3,13 +3,13 @@ using AsbCloudApp.Data.ProcessMaps; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationReamingRotorTemplate : ITemplateParameters +public class ProcessMapPlanReamingRotorTemplate : ITemplateParameters { public string SheetName => "Проработка ротор"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationReamingRotorTemplate.xlsx"; + public string FileName => "ProcessMapPlanReamingRotorTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs index 1131e015..c72404c4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationReamingRotorExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationReamingRotorExportService : ProcessMapPlanExportService +public class ProcessMapPlanReamingRotorExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationReamingRotorExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanReamingRotorExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationReamingRotorTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanReamingRotorTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs index 2f028b3b..b68b2e0e 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationReamingRotorParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationReamingRotorParser : ProcessMapPlanParser +public class ProcessMapPlanReamingRotorParser : ProcessMapPlanParser { - public ProcessMapPlanOperationReamingRotorParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanReamingRotorParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationReamingRotorTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamingRotorTemplate(); - protected override ProcessMapPlanOperationReamingRotorDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanReamingRotorDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs similarity index 76% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs index 1db11787..6a32d3c9 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationReamingRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план проработка для ротора /// -public class ProcessMapPlanOperationReamingRotorControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanReamingRotorControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor") + public ProcessMapPlanReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor") { } - private readonly ProcessMapPlanOperationReamingRotorDto dto = new ProcessMapPlanOperationReamingRotorDto() + private readonly ProcessMapPlanReamingRotorDto dto = new ProcessMapPlanReamingRotorDto() { IdWell = 1, DepthStart = 1, @@ -63,7 +63,7 @@ public class ProcessMapPlanOperationReamingRotorControllerTest : SetpointsSlackingOff = 5 }; - private readonly ProcessMapPlanOperationReamingRotor entity = new ProcessMapPlanOperationReamingRotor() + private readonly ProcessMapPlanReamingRotor entity = new ProcessMapPlanReamingRotor() { IdWell = 1, DepthEnd = 10, @@ -114,17 +114,17 @@ public class ProcessMapPlanOperationReamingRotorControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanOperationReamingRotor GetByNote(DbSet dbSet, ProcessMapPlanOperationReamingRotorDto dto) + protected override ProcessMapPlanReamingRotor GetByNote(DbSet dbSet, ProcessMapPlanReamingRotorDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationReamingRotorDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationReamingRotorDto dto) + protected override ProcessMapPlanReamingRotorDto GetByNote(IEnumerable dtos, ProcessMapPlanReamingRotorDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationReamingRotor? GetByWellId() + protected override ProcessMapPlanReamingRotor? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs similarity index 60% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs index 5b48d92b..c445c7aa 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationReamingRotorController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs @@ -11,15 +11,15 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; /// /// РТК план проработка для ротора /// -public class ProcessMapPlanOperationReamingRotorController : - ProcessMapPlanBaseController +public class ProcessMapPlanReamingRotorController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationReamingRotorController( - IChangeLogRepository repository, + public ProcessMapPlanReamingRotorController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationReamingRotorParser parserService, + ProcessMapPlanReamingRotorParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationReamingRotorExportService processMapPlanExportService) + ProcessMapPlanReamingRotorExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 40f6fdb7bff9664a97f9410cb26d8f4e523368e0 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:09:57 +0500 Subject: [PATCH 49/74] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D1=80=D0=BE=D1=82=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanReamingRotorDto.cs | 209 ++++++++++++++++++ .../ProcessMapPlanReamingRotor.cs | 62 +++--- ...rocessMapPlanReamingRotorControllerTest.cs | 38 ---- 3 files changed, 240 insertions(+), 69 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs new file mode 100644 index 00000000..be9113e7 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1. Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 1. Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs index 88d204e0..f1d69ff0 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs @@ -8,55 +8,55 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")] public class ProcessMapPlanReamingRotor : ProcessMapPlanBase { - [Column("max_pressure"), Comment("Максимальное давление, атм")] + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] [Range(0.0, 400.0)] [Required] - public double MaxPressure { get; set; } + public double PressureMax { get; set; } - [Column("differential_pressure"), Comment("Перепад давления, атм.")] + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] [Range(0.0, 60.0)] [Required] public double DifferentialPressure { get; set; } - [Column("setpoints_tight"), Comment("Уставки, т., затяжка")] + [Column("tight"), Comment("Затяжка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsTight { get; set; } + public double Tight { get; set; } - [Column("setpoints_slacking_off"), Comment("Уставки, т., посадка")] + [Column("slacking_off"), Comment("Посадка, т.")] [Range(0.0, 20.0)] [Required] - public double SetpointsSlackingOff { get; set; } + public double SlackingOff { get; set; } - [Column("max_torque"), Comment("Максимально допустимый момент, кН*м.")] + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] [Range(0.0, 35.0)] [Required] - public double MaxTorque { get; set; } + public double TorqueMax { get; set; } - [Column("reaming1_number_of_ repetitions"), Comment("Проработка 1, Количество повторений, шт.")] - [Range(0.0, 99.0)] + [Column("reaming1_repetitions_count"), Comment("Проработка 1. Количество повторений, шт.")] + [Range(0, 99)] [Required] - public double Reaming1NumberOfRepetitions { get; set; } + public int Reaming1RepetitionsCount { get; set; } - [Column("reaming1_rop_up"), Comment("Проработка 1, Скорость, м/ч., Вверх")] + [Column("reaming1_rop_up"), Comment("Проработка 1. Скорость вверх, м/ч.")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPUp { get; set; } + public double Reaming1RopUp { get; set; } [Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")] [Range(0.0, 999.0)] [Required] - public double Reaming1ROPDown { get; set; } + public double Reaming1RopDown { get; set; } [Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] [Required] - public double Reaming1RPMUp { get; set; } + public double Reaming1RpmUp { get; set; } [Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] [Required] - public double Reaming1RPMDown { get; set; } + public double Reaming1RpmDown { get; set; } [Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")] [Range(0.0, 100.0)] @@ -78,25 +78,25 @@ public class ProcessMapPlanReamingRotor : ProcessMapPlanBase [Required] public double Reaming1StopPointOffBottom { get; set; } - [Column("reaming2_number_of_repetitions"), Comment("Проработка 2, Количество повторений, шт.")] - [Range(0.0, 99.0)] - public double Reaming2NumberOfRepetitions { get; set; } + [Column("reaming2_repetitions_count"), Comment("Проработка 2, Количество повторений, шт.")] + [Range(0, 99)] + public int Reaming2RepetitionsCount { get; set; } [Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")] [Range(0.0, 999.0)] - public double Reaming2ROPUp { get; set; } + public double Reaming2RopUp { get; set; } [Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")] [Range(0.0, 999.0)] - public double Reaming2ROPDown { get; set; } + public double Reaming2RopDown { get; set; } [Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] - public double Reaming2RPMUp { get; set; } + public double Reaming2RpmUp { get; set; } [Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] - public double Reaming2RPMDown { get; set; } + public double Reaming2RpmDown { get; set; } [Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")] [Range(0.0, 100.0)] @@ -114,25 +114,25 @@ public class ProcessMapPlanReamingRotor : ProcessMapPlanBase [Range(0.0, 10.0)] public double Reaming2StopPointOffBottom { get; set; } - [Column("reaming3_number_of_ repetitions"), Comment("Проработка 3, Количество повторений, шт.")] - [Range(0.0, 99.0)] - public double Reaming3NumberOfRepetitions { get; set; } + [Column("reaming3_repetitions_count"), Comment("Проработка 3, Количество повторений, шт.")] + [Range(0, 99)] + public int Reaming3RepetitionsCount { get; set; } [Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")] [Range(0.0, 999.0)] - public double Reaming3ROPUp { get; set; } + public double Reaming3RopUp { get; set; } [Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")] [Range(0.0, 999.0)] - public double Reaming3ROPDown { get; set; } + public double Reaming3RopDown { get; set; } [Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")] [Range(0.0, 270.0)] - public double Reaming3RPMUp { get; set; } + public double Reaming3RpmUp { get; set; } [Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")] [Range(0.0, 270.0)] - public double Reaming3RPMDown { get; set; } + public double Reaming3RpmDown { get; set; } [Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")] [Range(0.0, 100.0)] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs index 6a32d3c9..1e2f1c66 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs @@ -29,38 +29,19 @@ public class ProcessMapPlanReamingRotorControllerTest : Id = 0, IdWellSectionType = 1, DifferentialPressure = 2, - MaxPressure = 3, - MaxTorque = 4, Note = "5", - Reaming3NumberOfRepetitions = 5, - SetpointsTight = 6, Reaming1FlowRateDown = 7, Reaming2FlowRateDown = 8, Reaming3FlowRateDown = 9, Reaming1FlowRateUp = 10, Reaming1Interval = 11, Reaming2Interval = 12, - Reaming1NumberOfRepetitions = 1, - Reaming1ROPDown = 13, - Reaming2ROPDown = 14, - Reaming3ROPDown = 15, - Reaming1ROPUp = 16, - Reaming1RPMDown = 17, - Reaming2RPMDown = 18, - Reaming3RPMDown = 19, - Reaming1RPMUp = 20, - Reaming2RPMUp = 1, - Reaming3RPMUp = 2, Reaming1StopPointOffBottom = 3, Reaming2FlowRateUp = 4, Reaming3FlowRateUp = 5, - Reaming2NumberOfRepetitions = 6, - Reaming2ROPUp = 7, Reaming2StopPointOffBottom = 1, Reaming3Interval = 2, - Reaming3ROPUp = 3, Reaming3StopPointOffBottom = 4, - SetpointsSlackingOff = 5 }; private readonly ProcessMapPlanReamingRotor entity = new ProcessMapPlanReamingRotor() @@ -74,38 +55,19 @@ public class ProcessMapPlanReamingRotorControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, DifferentialPressure = 2, - MaxPressure = 3, - MaxTorque = 4, Note = "5", - Reaming3NumberOfRepetitions = 5, - SetpointsTight = 6, Reaming1FlowRateDown = 7, Reaming2FlowRateDown = 8, Reaming3FlowRateDown = 9, Reaming1FlowRateUp = 10, Reaming1Interval = 11, Reaming2Interval = 12, - Reaming1NumberOfRepetitions = 1, - Reaming1ROPDown = 13, - Reaming2ROPDown = 14, - Reaming3ROPDown = 15, - Reaming1ROPUp = 16, - Reaming1RPMDown = 17, - Reaming2RPMDown = 18, - Reaming3RPMDown = 19, - Reaming1RPMUp = 20, - Reaming2RPMUp = 1, - Reaming3RPMUp = 2, Reaming1StopPointOffBottom = 3, Reaming2FlowRateUp = 4, Reaming3FlowRateUp = 5, - Reaming2NumberOfRepetitions = 6, - Reaming2ROPUp = 7, Reaming2StopPointOffBottom = 1, Reaming3Interval = 2, - Reaming3ROPUp = 3, Reaming3StopPointOffBottom = 4, - SetpointsSlackingOff = 5 }; [Fact] From 1eeb2fa92d44defa348f2e85ff2916a0fb110015 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:13:33 +0500 Subject: [PATCH 50/74] =?UTF-8?q?=D0=92=D1=8B=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=BD=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOperationLoadCapacityDto.cs | 35 ------------------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 ++-- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...acity.cs => ProcessMapPlanLoadCapacity.cs} | 6 ++-- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++++----- ... => ProcessMapPlanLoadCapacityTemplate.cs} | 4 +-- ...rocessMapPlanLoadCapacityExportService.cs} | 8 ++--- ...cs => ProcessMapPlanLoadCapacityParser.cs} | 8 ++--- ...ocessMapPlanLoadCapacityControllerTest.cs} | 18 +++++----- .../ProcessMapPlanLoadCapacityController.cs} | 14 ++++---- 10 files changed, 42 insertions(+), 77 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationLoadCapacity.cs => ProcessMapPlanLoadCapacity.cs} (79%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationLoadCapacityTemplate.cs => ProcessMapPlanLoadCapacityTemplate.cs} (67%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationLoadCapacityExportService.cs => ProcessMapPlanLoadCapacityExportService.cs} (70%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationLoadCapacityParser.cs => ProcessMapPlanLoadCapacityParser.cs} (73%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanOperationLoadCapacityControllerTest.cs => Operations/ProcessMapPlanLoadCapacityControllerTest.cs} (58%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationLoadCapacityController.cs => Operations/ProcessMapPlanLoadCapacityController.cs} (56%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs deleted file mode 100644 index 152fcc7a..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationLoadCapacityDto.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выработка нагрузки -/// -public class ProcessMapPlanOperationLoadCapacityDto : ProcessMapPlanBaseDto -{ - /// - /// Время выработки минимальное, сек - /// - [Range(0.0, 800.0, ErrorMessage = "Время выработки минимальное, сек., должно быть в пределах от 0 до 800")] - public double TimeLoadCapacityMin { get; set; } - - /// - /// Перепад давления минимальный, атм - /// - [Range(0.1, 400.0, ErrorMessage = "Перепад давления минимальный, атм., должно быть в пределах от 0.1 до 400")] - public double DifferentialPressureMin { get; set; } - - /// - /// Нагрузка минимальная, т - /// - [Range(0.1, 99.0, ErrorMessage = "Нагрузка минимальная, т, должно быть в пределах от 0.1 до 99")] - public double WeightOnBitMin { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 87890e0c..8e0fae1b 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -24,7 +24,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanReams => Set(); public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); - public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); + public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); @@ -483,7 +483,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -583,7 +583,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index ed6b92e9..54ee4c6d 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -85,7 +85,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanSlide { get; } DbSet ProcessMapPlanOperationReamingRotor { get; } DbSet ProcessMapPlanOperationReamingSlide { get; } - DbSet ProcessMapPlanOperationLoadCapacity { get; } + DbSet ProcessMapPlanOperationLoadCapacity { get; } DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs similarity index 79% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs index b3aee563..c7f8712e 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationLoadCapacity.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_load_capacity"), Comment("РТК выработка нагрузки")] -public class ProcessMapPlanOperationLoadCapacity : ProcessMapPlanBase +[Table("t_process_map_plan_load_capacity"), Comment("РТК выработка нагрузки")] +public class ProcessMapPlanLoadCapacity : ProcessMapPlanBase { [Column("time_load_capacity_min"), Comment("Время выработки минимальное, сек")] [Range(0.0, 800.0)] @@ -27,5 +27,5 @@ public class ProcessMapPlanOperationLoadCapacity : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationLoadCapacity? Previous { get; set; } + public virtual ProcessMapPlanLoadCapacity? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index e4239ef3..652c5d3c 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -160,11 +160,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -431,7 +431,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -457,7 +457,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -503,8 +503,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -570,7 +570,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs similarity index 67% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs index 766b9fa9..386aded1 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationLoadCapacityTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationLoadCapacityTemplate : ITemplateParameters +public class ProcessMapPlanLoadCapacityTemplate : ITemplateParameters { public string SheetName => "Выработка нагрузки"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationLoadCapacityTemplate.xlsx"; + public string FileName => "ProcessMapPlanLoadCapacityTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs similarity index 70% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs index 640f2b8f..53534abb 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationLoadCapacityExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationLoadCapacityExportService : ProcessMapPlanExportService +public class ProcessMapPlanLoadCapacityExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationLoadCapacityExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanLoadCapacityExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationLoadCapacityTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanLoadCapacityTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs similarity index 73% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs index 6bb3a263..da88b090 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationLoadCapacityParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationLoadCapacityParser : ProcessMapPlanParser +public class ProcessMapPlanLoadCapacityParser : ProcessMapPlanParser { - public ProcessMapPlanOperationLoadCapacityParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanLoadCapacityParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationLoadCapacityTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanLoadCapacityTemplate(); - protected override ProcessMapPlanOperationLoadCapacityDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanLoadCapacityDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs similarity index 58% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs index 7cd21518..bbd353f2 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationLoadCapacityControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план выработка нагрузки /// -public class ProcessMapPlanOperationLoadCapacityControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanLoadCapacityControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOperationLoadCapacityControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationLoadCapacity") + public ProcessMapPlanLoadCapacityControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationLoadCapacity") { } - private readonly ProcessMapPlanOperationLoadCapacityDto dto = new ProcessMapPlanOperationLoadCapacityDto() + private readonly ProcessMapPlanLoadCapacityDto dto = new ProcessMapPlanLoadCapacityDto() { IdWell = 1, DepthStart = 1, @@ -34,7 +34,7 @@ public class ProcessMapPlanOperationLoadCapacityControllerTest : WeightOnBitMin = 3, }; - private readonly ProcessMapPlanOperationLoadCapacity entity = new ProcessMapPlanOperationLoadCapacity() + private readonly ProcessMapPlanLoadCapacity entity = new ProcessMapPlanLoadCapacity() { IdWell = 1, DepthEnd = 10, @@ -56,17 +56,17 @@ public class ProcessMapPlanOperationLoadCapacityControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanOperationLoadCapacity GetByNote(DbSet dbSet, ProcessMapPlanOperationLoadCapacityDto dto) + protected override ProcessMapPlanLoadCapacity GetByNote(DbSet dbSet, ProcessMapPlanLoadCapacityDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationLoadCapacityDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationLoadCapacityDto dto) + protected override ProcessMapPlanLoadCapacityDto GetByNote(IEnumerable dtos, ProcessMapPlanLoadCapacityDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanOperationLoadCapacity? GetByWellId() + protected override ProcessMapPlanLoadCapacity? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs similarity index 56% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs index 9a3b6929..7e813ef4 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationLoadCapacityController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs @@ -6,20 +6,20 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план выработка нагрузки /// -public class ProcessMapPlanOperationLoadCapacityController : - ProcessMapPlanBaseController +public class ProcessMapPlanLoadCapacityController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationLoadCapacityController( - IChangeLogRepository repository, + public ProcessMapPlanLoadCapacityController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationLoadCapacityParser parserService, + ProcessMapPlanLoadCapacityParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationLoadCapacityExportService processMapPlanExportService) + ProcessMapPlanLoadCapacityExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 6ab361351fcb1bb6b489fc9f8c0664344da3fd9c Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:17:38 +0500 Subject: [PATCH 51/74] =?UTF-8?q?=D0=9E=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B3=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=81=D1=86=D0=B8=D0=BB=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanOscillationAnglesController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanOscillationAnglesController.cs (90%) diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs index ca30f6da..517234c9 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOscillationAnglesController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план определения углов осцилляции /// -public class ProcessMapPlanOscillationAnglesController : +public class ProcessMapPlanOscillationAnglesController : ProcessMapPlanBaseController { public ProcessMapPlanOscillationAnglesController( From 1093320f9c54af980060bf87bb15a9e11b90b636 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:33:32 +0500 Subject: [PATCH 52/74] =?UTF-8?q?=D0=92=D1=8B=D1=85=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BB=D0=B0=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=85=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanLoadCapacityDto.cs | 35 +++++++++++ ...ssMapPlanOperationSwitchingToTheModeDto.cs | 34 ----------- AsbCloudDb/Model/AsbCloudDbContext.cs | 6 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...cs => ProcessMapPlanSwitchingToTheMode.cs} | 6 +- AsbCloudInfrastructure/DependencyInjection.cs | 22 +++---- ...ocessMapPlanSwitchingToTheModeTemplate.cs} | 4 +- ...MapPlanSwitchingToTheModeExportService.cs} | 8 +-- ...ProcessMapPlanSwitchingToTheModeParser.cs} | 8 +-- ...MapPlanSwitchingToTheModeControllerTest.cs | 60 +++++++++++++++++++ ...erationSwitchingToTheModeControllerTest.cs | 60 ------------------- ...essMapPlanSwitchingToTheModeController.cs} | 14 ++--- 12 files changed, 130 insertions(+), 129 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanOperationSwitchingToTheMode.cs => ProcessMapPlanSwitchingToTheMode.cs} (81%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanOperationSwitchingToTheModeTemplate.cs => ProcessMapPlanSwitchingToTheModeTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanOperationSwitchingToTheModeExportService.cs => ProcessMapPlanSwitchingToTheModeExportService.cs} (69%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanOperationSwitchingToTheModeParser.cs => ProcessMapPlanSwitchingToTheModeParser.cs} (71%) create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs delete mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanOperationSwitchingToTheModeController.cs => Operations/ProcessMapPlanSwitchingToTheModeController.cs} (55%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs new file mode 100644 index 00000000..55be2bb1 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs @@ -0,0 +1,35 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выработка нагрузки +/// +public class ProcessMapPlanLoadCapacityDto : ProcessMapPlanBaseDto +{ + /// + /// Время выработки минимальное, сек + /// + [Range(0.0, 800.0, ErrorMessage = "Время выработки минимальное, сек., должно быть в пределах от 0 до 800")] + public double TimeLoadCapacityMin { get; set; } + + /// + /// Перепад давления минимальный, атм + /// + [Range(0.1, 400.0, ErrorMessage = "Перепад давления минимальный, атм., должно быть в пределах от 0.1 до 400")] + public double DifferentialPressureMin { get; set; } + + /// + /// Нагрузка минимальная, т + /// + [Range(0.1, 99.0, ErrorMessage = "Нагрузка минимальная, т, должно быть в пределах от 0.1 до 99")] + public double WeightOnBitMin { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs deleted file mode 100644 index 7351afdc..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeDto.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход на плановый расход -/// -public class ProcessMapPlanOperationSwitchingToTheModeDto : ProcessMapPlanBaseDto -{ - /// - /// Время выхода буровых насосов на плановый расход, сек. - /// - [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] - public double RampTime { get; set; } - - /// - /// Расход, л/с - /// - [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] - public double FlowRate { get; set; } - - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 8e0fae1b..d762f7cc 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -30,7 +30,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); - public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); + public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); @@ -513,7 +513,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -613,7 +613,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 54ee4c6d..e5ba56de 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -91,7 +91,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } DbSet ProcessMapPlanOperationSwitchPump { get; } - DbSet ProcessMapPlanOperationSwitchMode { get; } + DbSet ProcessMapPlanOperationSwitchMode { get; } DbSet ProcessMapPlanFunctionsDrillTest { get; } DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs similarity index 81% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs index 00572092..94baf32a 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheMode.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_operation_switch_mode"), Comment("Выход на плановый расход")] -public class ProcessMapPlanOperationSwitchingToTheMode : ProcessMapPlanBase +[Table("t_process_map_plan_switching_to_the_mode"), Comment("Выход на плановый расход")] +public class ProcessMapPlanSwitchingToTheMode : ProcessMapPlanBase { [Column("ramp_time"), Comment("Время выхода буровых насосов на плановый расход, сек.")] [Range(0.0, 3600.0)] @@ -28,5 +28,5 @@ public class ProcessMapPlanOperationSwitchingToTheMode : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanOperationSwitchingToTheMode? Previous { get; set; } + public virtual ProcessMapPlanSwitchingToTheMode? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 652c5d3c..f1b7dc6a 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -202,22 +202,22 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() - .Include>() + .Include>() .Map(dest => dest, src => new ChangeLogDto() { Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() - .Include>() + .Include>() .Map(dest => dest, src => new ChangeLogDto() { Item = src.Adapt() @@ -437,7 +437,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -463,7 +463,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -527,8 +527,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -576,7 +576,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs index 5eb370ce..ca53ad59 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOperationSwitchingToTheModeTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanOperationSwitchingToTheModeTemplate : ITemplateParameters +public class ProcessMapPlanSwitchingToTheModeTemplate : ITemplateParameters { public string SheetName => "Выход на плановый расход"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanOperationSwitchingToTheModeTemplate.xlsx"; + public string FileName => "ProcessMapPlanSwitchingToTheModeTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs similarity index 69% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs index 249af1c4..a44c1dfe 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOperationSwitchingToTheModeExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanOperationSwitchingToTheModeExportService : ProcessMapPlanExportService +public class ProcessMapPlanSwitchingToTheModeExportService : ProcessMapPlanExportService { - public ProcessMapPlanOperationSwitchingToTheModeExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanSwitchingToTheModeExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOperationSwitchingToTheModeTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSwitchingToTheModeTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs similarity index 71% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs index 2a5e7800..f301a892 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOperationSwitchingToTheModeParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanOperationSwitchingToTheModeParser : ProcessMapPlanParser +public class ProcessMapPlanSwitchingToTheModeParser : ProcessMapPlanParser { - public ProcessMapPlanOperationSwitchingToTheModeParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanSwitchingToTheModeParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOperationSwitchingToTheModeTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSwitchingToTheModeTemplate(); - protected override ProcessMapPlanOperationSwitchingToTheModeDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanSwitchingToTheModeDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs new file mode 100644 index 00000000..fc9108ce --- /dev/null +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs @@ -0,0 +1,60 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudWebApi.IntegrationTests; +using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; +using Xunit; + +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanSwitchingToTheModeControllerTest : + ProcessMapPlanBaseControllerTest +{ + public ProcessMapPlanSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchingToTheMode") + { + } + private readonly ProcessMapPlanSwitchingToTheModeDto dto = new ProcessMapPlanSwitchingToTheModeDto() + { + IdWell = 1, + DepthStart = 1, + DepthEnd = 2, + Id = 0, + IdWellSectionType = 1, + }; + + private readonly ProcessMapPlanSwitchingToTheMode entity = new ProcessMapPlanSwitchingToTheMode() + { + IdWell = 1, + DepthEnd = 10, + DepthStart = 2, + Id = 0, + IdWellSectionType = 1, + IdAuthor = 1, + IdEditor = 1, + Creation = DateTimeOffset.UtcNow, + }; + + [Fact] + public async Task Get_actual_returns_success() + { + await Get(entity, dto); + } + + protected override ProcessMapPlanSwitchingToTheMode GetByNote(DbSet dbSet, ProcessMapPlanSwitchingToTheModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanSwitchingToTheModeDto GetByNote(IEnumerable dtos, ProcessMapPlanSwitchingToTheModeDto dto) + { + throw new NotImplementedException(); + } + + protected override ProcessMapPlanSwitchingToTheMode? GetByWellId() + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs deleted file mode 100644 index 278f4e3c..00000000 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOperationSwitchingToTheModeControllerTest.cs +++ /dev/null @@ -1,60 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudWebApi.IntegrationTests; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; -using Xunit; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план выход на плановый расход -/// -public class ProcessMapPlanOperationSwitchingToTheModeControllerTest : - ProcessMapPlanBaseControllerTest -{ - public ProcessMapPlanOperationSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchingToTheMode") - { - } - private readonly ProcessMapPlanOperationSwitchingToTheModeDto dto = new ProcessMapPlanOperationSwitchingToTheModeDto() - { - IdWell = 1, - DepthStart = 1, - DepthEnd = 2, - Id = 0, - IdWellSectionType = 1, - }; - - private readonly ProcessMapPlanOperationSwitchingToTheMode entity = new ProcessMapPlanOperationSwitchingToTheMode() - { - IdWell = 1, - DepthEnd = 10, - DepthStart = 2, - Id = 0, - IdWellSectionType = 1, - IdAuthor = 1, - IdEditor = 1, - Creation = DateTimeOffset.UtcNow, - }; - - [Fact] - public async Task Get_actual_returns_success() - { - await Get(entity, dto); - } - - protected override ProcessMapPlanOperationSwitchingToTheMode GetByNote(DbSet dbSet, ProcessMapPlanOperationSwitchingToTheModeDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationSwitchingToTheModeDto GetByNote(IEnumerable dtos, ProcessMapPlanOperationSwitchingToTheModeDto dto) - { - throw new NotImplementedException(); - } - - protected override ProcessMapPlanOperationSwitchingToTheMode? GetByWellId() - { - throw new NotImplementedException(); - } -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs similarity index 55% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs index ada87bf5..8bc88b53 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanOperationSwitchingToTheModeController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs @@ -6,20 +6,20 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план выход на плановый расход /// -public class ProcessMapPlanOperationSwitchingToTheModeController : - ProcessMapPlanBaseController +public class ProcessMapPlanSwitchingToTheModeController : + ProcessMapPlanBaseController { - public ProcessMapPlanOperationSwitchingToTheModeController( - IChangeLogRepository repository, + public ProcessMapPlanSwitchingToTheModeController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanOperationSwitchingToTheModeParser parserService, + ProcessMapPlanSwitchingToTheModeParser parserService, ITelemetryService telemetryService, - ProcessMapPlanOperationSwitchingToTheModeExportService processMapPlanExportService) + ProcessMapPlanSwitchingToTheModeExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } From 3ae3017b8d6167b1eb64954dc70174f3533fc264 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:42:37 +0500 Subject: [PATCH 53/74] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMaps/ProcessMapPlanSurveyDto.cs | 15 -------- .../ProcessMapPlanSwitchingToTheModeDto.cs | 34 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 ++-- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ...ocessMapPlanRecordingStaticMeasurement.cs} | 6 ++-- AsbCloudInfrastructure/DependencyInjection.cs | 18 +++++----- ...PlanRecordingStaticMeasurementTemplate.cs} | 4 +-- ...ecordingStaticMeasurementExportService.cs} | 8 ++--- ...apPlanRecordingStaticMeasurementParser.cs} | 8 ++--- ...cordingStaticMeasurementControllerTest.cs} | 18 +++++----- ...anRecordingStaticMeasurementController.cs} | 14 ++++---- ...essMapPlanSwitchingOffThePumpController.cs | 4 +-- 12 files changed, 78 insertions(+), 59 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanSurvey.cs => ProcessMapPlanRecordingStaticMeasurement.cs} (61%) rename AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/{ProcessMapPlanSurveyTemplate.cs => ProcessMapPlanRecordingStaticMeasurementTemplate.cs} (66%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanSurveyExportService.cs => ProcessMapPlanRecordingStaticMeasurementExportService.cs} (69%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanSurveyParser.cs => ProcessMapPlanRecordingStaticMeasurementParser.cs} (71%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanSurveyControllerTest.cs => Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs} (53%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ProcessMapPlanSurveyController.cs => Operations/ProcessMapPlanRecordingStaticMeasurementController.cs} (55%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanSwitchingOffThePumpController.cs (90%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs deleted file mode 100644 index 9dc58b91..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSurveyDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план записи статического замера -/// -public class ProcessMapPlanSurveyDto : ProcessMapPlanBaseDto -{ - /// - /// Время записи замера, сек - /// - [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] - public double MeasurementRecordingTime { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs new file mode 100644 index 00000000..930c8475 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs @@ -0,0 +1,34 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanSwitchingToTheModeDto : ProcessMapPlanBaseDto +{ + /// + /// Время выхода буровых насосов на плановый расход, сек. + /// + [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] + public double RampTime { get; set; } + + /// + /// Расход, л/с + /// + [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index d762f7cc..e15bb310 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -25,7 +25,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); - public virtual DbSet ProcessMapPlanSurvey => Set(); + public virtual DbSet ProcessMapPlanSurvey => Set(); public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); @@ -488,7 +488,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -588,7 +588,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index e5ba56de..e3cd4e21 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -86,7 +86,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanOperationReamingRotor { get; } DbSet ProcessMapPlanOperationReamingSlide { get; } DbSet ProcessMapPlanOperationLoadCapacity { get; } - DbSet ProcessMapPlanSurvey { get; } + DbSet ProcessMapPlanSurvey { get; } DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } DbSet ProcessMapPlanOperationTFOrientation { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs similarity index 61% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs index 3667bcf9..0cfd503f 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSurvey.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_survey"), Comment("Запись статического замера")] -public class ProcessMapPlanSurvey : ProcessMapPlanBase +[Table("t_process_map_plan_recording_static_measurement"), Comment("Запись статического замера")] +public class ProcessMapPlanRecordingStaticMeasurement : ProcessMapPlanBase { [Column("measurement_recording_time"), Comment("Время записи замера, сек")] [Range(0.0, 1800.0)] @@ -14,5 +14,5 @@ public class ProcessMapPlanSurvey : ProcessMapPlanBase public double MeasurementRecordingTime { get; set; } [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanSurvey? Previous { get; set; } + public virtual ProcessMapPlanRecordingStaticMeasurement? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index f1b7dc6a..7500d2d3 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -167,11 +167,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -432,7 +432,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -458,7 +458,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -507,8 +507,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -571,7 +571,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs similarity index 66% rename from AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs rename to AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs index 8b8d9ad2..ca9e1d10 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSurveyTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -public class ProcessMapPlanSurveyTemplate : ITemplateParameters +public class ProcessMapPlanRecordingStaticMeasurementTemplate : ITemplateParameters { public string SheetName => "Запись статического замера"; public int HeaderRowsCount => 2; - public string FileName => "ProcessMapPlanSurveyTemplate.xlsx"; + public string FileName => "ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx"; public IDictionary Cells => new Dictionary { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs similarity index 69% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs index d74ba725..baa26db4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSurveyExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs @@ -10,16 +10,16 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanSurveyExportService : ProcessMapPlanExportService +public class ProcessMapPlanRecordingStaticMeasurementExportService : ProcessMapPlanExportService { - public ProcessMapPlanSurveyExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanRecordingStaticMeasurementExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSurveyTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRecordingStaticMeasurementTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs similarity index 71% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs index c17eff10..3e88edd1 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSurveyParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanSurveyParser : ProcessMapPlanParser +public class ProcessMapPlanRecordingStaticMeasurementParser : ProcessMapPlanParser { - public ProcessMapPlanSurveyParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanRecordingStaticMeasurementParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSurveyTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRecordingStaticMeasurementTemplate(); - protected override ProcessMapPlanSurveyDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanRecordingStaticMeasurementDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs similarity index 53% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs index aeb1585f..a40ce381 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSurveyControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план записи статического замера /// -public class ProcessMapPlanSurveyControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanRecordingStaticMeasurementControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanSurveyControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSurvey") + public ProcessMapPlanRecordingStaticMeasurementControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSurvey") { } - private readonly ProcessMapPlanSurveyDto dto = new ProcessMapPlanSurveyDto() + private readonly ProcessMapPlanRecordingStaticMeasurementDto dto = new ProcessMapPlanRecordingStaticMeasurementDto() { IdWell = 1, DepthStart = 1, @@ -31,7 +31,7 @@ public class ProcessMapPlanSurveyControllerTest : MeasurementRecordingTime = 1, }; - private readonly ProcessMapPlanSurvey entity = new ProcessMapPlanSurvey() + private readonly ProcessMapPlanRecordingStaticMeasurement entity = new ProcessMapPlanRecordingStaticMeasurement() { IdWell = 1, DepthEnd = 10, @@ -50,17 +50,17 @@ public class ProcessMapPlanSurveyControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanSurvey GetByNote(DbSet dbSet, ProcessMapPlanSurveyDto dto) + protected override ProcessMapPlanRecordingStaticMeasurement GetByNote(DbSet dbSet, ProcessMapPlanRecordingStaticMeasurementDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanSurveyDto GetByNote(IEnumerable dtos, ProcessMapPlanSurveyDto dto) + protected override ProcessMapPlanRecordingStaticMeasurementDto GetByNote(IEnumerable dtos, ProcessMapPlanRecordingStaticMeasurementDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanSurvey? GetByWellId() + protected override ProcessMapPlanRecordingStaticMeasurement? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs similarity index 55% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs index 8e896694..98c8b0ee 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSurveyController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs @@ -6,20 +6,20 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план записи статического замера /// -public class ProcessMapPlanSurveyController : - ProcessMapPlanBaseController +public class ProcessMapPlanRecordingStaticMeasurementController : + ProcessMapPlanBaseController { - public ProcessMapPlanSurveyController( - IChangeLogRepository repository, + public ProcessMapPlanRecordingStaticMeasurementController( + IChangeLogRepository repository, IWellService wellService, - ProcessMapPlanSurveyParser parserService, + ProcessMapPlanRecordingStaticMeasurementParser parserService, ITelemetryService telemetryService, - ProcessMapPlanSurveyExportService processMapPlanExportService) + ProcessMapPlanRecordingStaticMeasurementExportService processMapPlanExportService) : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) { } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs index 71f226f3..c6407531 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanSwitchingOffThePumpController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план выключение насоса /// -public class ProcessMapPlanSwitchingOffThePumpController : +public class ProcessMapPlanSwitchingOffThePumpController : ProcessMapPlanBaseController { public ProcessMapPlanSwitchingOffThePumpController( From 350d12e8a058532677e257d53f4f553dcb19d85f Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:44:40 +0500 Subject: [PATCH 54/74] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...essMapPlanRecordingStaticMeasurementDto.cs | 21 +++++++++++++++++++ ...rocessMapPlanRecordingStaticMeasurement.cs | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs new file mode 100644 index 00000000..f3f4b692 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanRecordingStaticMeasurementDto : ProcessMapPlanBaseDto +{ + /// + /// Время записи замера, сек + /// + [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] + public double MeasurementRecordingTime { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs index 0cfd503f..c865ee36 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs @@ -13,6 +13,9 @@ public class ProcessMapPlanRecordingStaticMeasurement : ProcessMapPlanBase [Required] public double MeasurementRecordingTime { get; set; } + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanRecordingStaticMeasurement? Previous { get; set; } } \ No newline at end of file From 474495cd566c690a48af02f3e7861edb63f7443f Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 13:53:31 +0500 Subject: [PATCH 55/74] =?UTF-8?q?=D0=92=D1=8B=D1=85=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D0=BE=D1=80=D0=BE=D1=82=D1=8B=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=20=D1=80=D0=BE=D1=82=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ProcessMapPlanFunctionsJarrDrillToolDto.cs | 27 ------------------ AsbCloudDb/Model/AsbCloudDbContext.cs | 6 ++-- AsbCloudDb/Model/IAsbCloudDbContext.cs | 2 +- ... => ProcessMapPlanRotorRpmAcceleration.cs} | 6 ++-- AsbCloudInfrastructure/DependencyInjection.cs | 18 ++++++------ ...ssMapPlanFunctionsJarrDrillToolTemplate.cs | 17 ----------- ...cessMapPlanRotorRpmAccelerationTemplate.cs | 17 +++++++++++ ...pPlanRotorRpmAccelerationExportService.cs} | 10 +++---- ...ocessMapPlanRotorRpmAccelerationParser.cs} | 8 +++--- ...PlanRotorRpmAccelerationControllerTest.cs} | 18 ++++++------ .../ProcessMapPlanReamingSlideController.cs | 4 +-- ...ssMapPlanRotorRpmAccelerationController.cs | 28 +++++++++++++++++++ ...MapPlanFunctionsJarrDrillToolController.cs | 28 ------------------- 13 files changed, 81 insertions(+), 108 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ProcessMapPlanFunctionsJarrDrillTool.cs => ProcessMapPlanRotorRpmAcceleration.cs} (71%) delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs rename AsbCloudInfrastructure/Services/ProcessMapPlan/Export/{ProcessMapPlanFunctionsJarrDrillToolExportService.cs => ProcessMapPlanRotorRpmAccelerationExportService.cs} (62%) rename AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/{ProcessMapPlanFunctionsJarrDrillToolParser.cs => ProcessMapPlanRotorRpmAccelerationParser.cs} (72%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs => Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs} (56%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanReamingSlideController.cs (90%) create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs deleted file mode 100644 index 241f9ff3..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolDto.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план встряхивание бурового инструмента -/// -public class ProcessMapPlanFunctionsJarrDrillToolDto : ProcessMapPlanBaseDto -{ - /// - /// Зенитный угол, градусы - /// - [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] - public double ZenithAngle { get; set; } - - /// - /// Складывание, м - /// - [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] - public double Buckling { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index e15bb310..ed28d6b5 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -35,7 +35,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); - public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); + public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); @@ -538,7 +538,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() .OnDelete(DeleteBehavior.Restrict); @@ -638,7 +638,7 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() .OnDelete(DeleteBehavior.Restrict); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index e3cd4e21..b33c0f4f 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -96,7 +96,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsShockTest { get; } DbSet ProcessMapPlanFunctionsDamper { get; } DbSet ProcessMapPlanFunctionsAutoHold { get; } - DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } + DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs similarity index 71% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs rename to AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs index a3b9f512..856fc3b8 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillTool.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs @@ -5,8 +5,8 @@ using Microsoft.EntityFrameworkCore; namespace AsbCloudDb.Model.ProcessMaps; -[Table("t_process_map_plan_functions_jarr_drill_tool"), Comment("Встряхивание бурового инструмента")] -public class ProcessMapPlanFunctionsJarrDrillTool : ProcessMapPlanBase +[Table("t_process_map_plan_rotor_rpm_acceleration"), Comment("Выход на обороты перед ротором")] +public class ProcessMapPlanRotorRpmAcceleration : ProcessMapPlanBase { [Column("zenit_angle"), Comment("Зенитный угол, градусы")] [Range(0.0, 100.0)] @@ -22,5 +22,5 @@ public class ProcessMapPlanFunctionsJarrDrillTool : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanFunctionsJarrDrillTool? Previous { get; set; } + public virtual ProcessMapPlanRotorRpmAcceleration? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 7500d2d3..5201ae94 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -237,11 +237,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -442,7 +442,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -468,7 +468,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -547,8 +547,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -581,7 +581,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs deleted file mode 100644 index e675d8a4..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanFunctionsJarrDrillToolTemplate.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanFunctionsJarrDrillToolTemplate : ITemplateParameters -{ - public string SheetName => "Встряхивание бурового инструмента"; - - public int HeaderRowsCount => 2; - - public string FileName => "ProcessMapPlanFunctionsJarrDrillToolTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs new file mode 100644 index 00000000..d36bd7a6 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanRotorRpmAccelerationTemplate : ITemplateParameters +{ + public string SheetName => "Выход на обороты перед ротором"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanRotorRpmAccelerationTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs similarity index 62% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs index 169f00b1..2f9e8644 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanFunctionsJarrDrillToolExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs @@ -10,21 +10,21 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanFunctionsJarrDrillToolExportService : ProcessMapPlanExportService +public class ProcessMapPlanRotorRpmAccelerationExportService : ProcessMapPlanExportService { - public ProcessMapPlanFunctionsJarrDrillToolExportService( - IChangeLogRepository processMapPlanRepository, + public ProcessMapPlanRotorRpmAccelerationExportService( + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { } - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanFunctionsJarrDrillToolTemplate(); + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRotorRpmAccelerationTemplate(); protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) { var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - return $"{caption}_РТК_План_встряхивание_бурового_инструмента.xlsx"; + return $"{caption}_РТК_План_выход_на_обороты_перед_ротором.xlsx"; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs similarity index 72% rename from AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs rename to AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs index 53c7e831..3a7bbbc9 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanFunctionsJarrDrillToolParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs @@ -9,16 +9,16 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanFunctionsJarrDrillToolParser : ProcessMapPlanParser +public class ProcessMapPlanRotorRpmAccelerationParser : ProcessMapPlanParser { - public ProcessMapPlanFunctionsJarrDrillToolParser(IWellOperationRepository wellOperationRepository) + public ProcessMapPlanRotorRpmAccelerationParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) { } - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanFunctionsJarrDrillToolTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRotorRpmAccelerationTemplate(); - protected override ProcessMapPlanFunctionsJarrDrillToolDto BuildDto(IDictionary row, int rowNumber) + protected override RotorRpmAccelerationDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs similarity index 56% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs index b9745f7d..cc43a2f0 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanFunctionsJarrDrillToolControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs @@ -10,18 +10,18 @@ using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план встряхивание бурового инструмента /// -public class ProcessMapPlanFunctionsJarrDrillToolControllerTest : - ProcessMapPlanBaseControllerTest +public class ProcessMapPlanRotorRpmAccelerationControllerTest : + ProcessMapPlanBaseControllerTest { - public ProcessMapPlanFunctionsJarrDrillToolControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsJarrDrillTool") + public ProcessMapPlanRotorRpmAccelerationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsJarrDrillTool") { } - private readonly ProcessMapPlanFunctionsJarrDrillToolDto dto = new ProcessMapPlanFunctionsJarrDrillToolDto() + private readonly RotorRpmAccelerationDto dto = new RotorRpmAccelerationDto() { IdWell = 1, DepthStart = 1, @@ -33,7 +33,7 @@ public class ProcessMapPlanFunctionsJarrDrillToolControllerTest : ZenithAngle = 1, }; - private readonly ProcessMapPlanFunctionsJarrDrillTool entity = new ProcessMapPlanFunctionsJarrDrillTool() + private readonly ProcessMapPlanRotorRpmAcceleration entity = new ProcessMapPlanRotorRpmAcceleration() { IdWell = 1, DepthEnd = 10, @@ -54,17 +54,17 @@ public class ProcessMapPlanFunctionsJarrDrillToolControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanFunctionsJarrDrillTool GetByNote(DbSet dbSet, ProcessMapPlanFunctionsJarrDrillToolDto dto) + protected override ProcessMapPlanRotorRpmAcceleration GetByNote(DbSet dbSet, RotorRpmAccelerationDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsJarrDrillToolDto GetByNote(IEnumerable dtos, ProcessMapPlanFunctionsJarrDrillToolDto dto) + protected override RotorRpmAccelerationDto GetByNote(IEnumerable dtos, RotorRpmAccelerationDto dto) { throw new NotImplementedException(); } - protected override ProcessMapPlanFunctionsJarrDrillTool? GetByWellId() + protected override ProcessMapPlanRotorRpmAcceleration? GetByWellId() { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs similarity index 90% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs index 2883b939..d440b854 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamingSlideController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs @@ -6,12 +6,12 @@ using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план проработка для слайда /// -public class ProcessMapPlanReamingSlideController : +public class ProcessMapPlanReamingSlideController : ProcessMapPlanBaseController { public ProcessMapPlanReamingSlideController( diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs new file mode 100644 index 00000000..23bb6c09 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; + +/// +/// РТК план выход на обороты перед ротором +/// +public class ProcessMapPlanRotorRpmAccelerationController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanRotorRpmAccelerationController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanRotorRpmAccelerationParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanRotorRpmAccelerationExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_на_обороты_перед_ротором.xlsx"; +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs deleted file mode 100644 index 706c0ae2..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanFunctionsJarrDrillToolController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps; - -/// -/// РТК план встряхивание бурового инструмента -/// -public class ProcessMapPlanFunctionsJarrDrillToolController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanFunctionsJarrDrillToolController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanFunctionsJarrDrillToolParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanFunctionsJarrDrillToolExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_встряхивание_бурового_инструмента.xlsx"; -} \ No newline at end of file From 85123cace81960441d5101a63e6e6923c2f82047 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 14:24:38 +0500 Subject: [PATCH 56/74] =?UTF-8?q?=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D0=BE=D1=80=D0=BE=D1=82=D1=8B=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=20=D1=80=D0=BE=D1=82=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMaps/RotorRpmAccelerationDto.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs new file mode 100644 index 00000000..893bdccf --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план выход на обороты перед ротором +/// +public class RotorRpmAccelerationDto : ProcessMapPlanBaseDto +{ + /// + /// Зенитный угол, градусы + /// + [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] + public double ZenithAngle { get; set; } + + /// + /// Складывание, м + /// + [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file From 1ffe0d6df88b5d9f300b1b762fbb081634b60b31 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 19:43:25 +0500 Subject: [PATCH 57/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BA=20=D0=B7=D0=B0=D0=B1=D0=BE=D1=8E=20=D0=B2=20=D1=80=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanRotorLoweringBit.cs | 31 ++++++++++++++ .../ProcessMapPlanRotorLoweringBitTemplate.cs | 17 ++++++++ ...essMapPlanRotorLoweringBitExportService.cs | 30 +++++++++++++ .../ProcessMapPlanRotorLoweringBitParser.cs | 42 +++++++++++++++++++ ...rocessMapPlanRotorLoweringBitController.cs | 28 +++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs new file mode 100644 index 00000000..8e6460eb --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs @@ -0,0 +1,31 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_rotor_lowering_bit"), Comment("РТК подход к забою в роторе")] +public class ProcessMapPlanRotorLoweringBit : ProcessMapPlanBase +{ + [Column("time_load_capacity_min"), Comment("Время выработки минимальное, сек")] + [Range(0.0, 800.0)] + [Required] + public double TimeLoadCapacityMin { get; set; } + + [Column("differential_pressure_min"), Comment("Перепад давления минимальный, атм")] + [Range(0.1, 400.0)] + [Required] + public double DifferentialPressureMin { get; set; } + + [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] + [Range(0.1, 99.0)] + [Required] + public double WeightOnBitMin { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanLoadCapacity? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs new file mode 100644 index 00000000..043e76f8 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanRotorLoweringBitTemplate : ITemplateParameters +{ + public string SheetName => "Подход к забою в роторе"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanRotorLoweringBitTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs new file mode 100644 index 00000000..28e09717 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanRotorLoweringBitExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanRotorLoweringBitExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRotorLoweringBitTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_подход_к_забою_в_роторе.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs new file mode 100644 index 00000000..a83f89ba --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanRotorLoweringBitParser : ProcessMapPlanParser +{ + public ProcessMapPlanRotorLoweringBitParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanLoadCapacityTemplate(); + + protected override ProcessMapPlanRotorLoweringBitDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs new file mode 100644 index 00000000..d7a4ed32 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в роторе +/// +public class ProcessMapPlanRotorLoweringBitController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanRotorLoweringBitController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanRotorLoweringBitParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanRotorLoweringBitExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_подход_к_забою_в_роторе.xlsx"; +} \ No newline at end of file From b84bb9f45b32b23685db5cad7d1bb1c65bddb62e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 20:01:40 +0500 Subject: [PATCH 58/74] =?UTF-8?q?=D0=A0=D0=A2=D0=9A=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20=D0=BA=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=8E=20=D0=B2=20=D1=80=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanRotorLoweringBitDto.cs | 60 +++++++++++++++++++ AsbCloudDb/Model/AsbCloudDbContext.cs | 11 ++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanRotorLoweringBit.cs | 40 +++++++++---- AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++ 5 files changed, 116 insertions(+), 10 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs new file mode 100644 index 00000000..9d8da53d --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs @@ -0,0 +1,60 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps; + +/// +/// РТК план подход к забою в роторе +/// +public class ProcessMapPlanRotorLoweringBitDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index ed28d6b5..fb333ded 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -40,6 +40,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); + public virtual DbSet ProcessMapPlanRotorLoweringBit => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); @@ -563,6 +564,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -663,6 +669,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index b33c0f4f..a595affe 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -101,6 +101,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsOscillation { get; } DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } DbSet ProcessMapPlanFunctionsStaticMeasure { get; } + DbSet ProcessMapPlanRotorLoweringBit { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs index 8e6460eb..a87a1ac3 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs @@ -8,24 +8,44 @@ namespace AsbCloudDb.Model.ProcessMaps; [Table("t_process_map_plan_rotor_lowering_bit"), Comment("РТК подход к забою в роторе")] public class ProcessMapPlanRotorLoweringBit : ProcessMapPlanBase { - [Column("time_load_capacity_min"), Comment("Время выработки минимальное, сек")] - [Range(0.0, 800.0)] + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] + [Range(0.0, 400.0)] [Required] - public double TimeLoadCapacityMin { get; set; } + public double PressureMax { get; set; } - [Column("differential_pressure_min"), Comment("Перепад давления минимальный, атм")] - [Range(0.1, 400.0)] + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] + [Range(0.0, 60.0)] [Required] - public double DifferentialPressureMin { get; set; } + public double DifferentialPressure { get; set; } - [Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")] - [Range(0.1, 99.0)] + [Column("slacking_off"), Comment("Посадка, т.")] + [Range(0.0, 20.0)] [Required] - public double WeightOnBitMin { get; set; } + public double SlackingOff { get; set; } + + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double TorqueMax { get; set; } + + [Column("rop_down"), Comment("Скорость вниз, м/ч.")] + [Range(0.0, 999.0)] + [Required] + public double RopDown { get; set; } + + [Column("rpm_down"), Comment("Обороты вниз, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double RpmDown { get; set; } + + [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] + [Range(0.0, 100.0)] + [Required] + public double FlowRateDown { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanLoadCapacity? Previous { get; set; } + public virtual ProcessMapPlanRotorLoweringBit? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 5201ae94..fc9c867c 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -271,6 +271,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -447,6 +454,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -473,6 +481,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -566,6 +575,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); @@ -586,6 +599,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); return services; } From 350052bd16d1faf2df3ec385d8e48fbd774769ab Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 20:31:19 +0500 Subject: [PATCH 59/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BA=20=D0=B7=D0=B0=D0=B1=D0=BE=D1=8E=20=D0=B2=20=D1=81=D0=BB?= =?UTF-8?q?=D0=B0=D0=B9=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanSlideLoweringBit.cs | 51 +++++++++++++++++++ .../ProcessMapPlanSlideLoweringBitTemplate.cs | 17 +++++++ ...essMapPlanSlideLoweringBitExportService.cs | 30 +++++++++++ .../ProcessMapPlanRotorLoweringBitParser.cs | 2 +- .../ProcessMapPlanSlideLoweringBitParser.cs | 42 +++++++++++++++ ...rocessMapPlanSlideLoweringBitController.cs | 28 ++++++++++ 6 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs create mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs create mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs new file mode 100644 index 00000000..232ea90d --- /dev/null +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs @@ -0,0 +1,51 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AsbCloudDb.Model.ProcessMapPlan; +using Microsoft.EntityFrameworkCore; + +namespace AsbCloudDb.Model.ProcessMaps; + +[Table("t_process_map_plan_slide_lowering_bit"), Comment("РТК подход к забою в слайде")] +public class ProcessMapPlanSlideLoweringBit : ProcessMapPlanBase +{ + [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] + [Range(0.0, 400.0)] + [Required] + public double PressureMax { get; set; } + + [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] + [Range(0.0, 60.0)] + [Required] + public double DifferentialPressure { get; set; } + + [Column("slacking_off"), Comment("Посадка, т.")] + [Range(0.0, 20.0)] + [Required] + public double SlackingOff { get; set; } + + [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] + [Range(0.0, 35.0)] + [Required] + public double TorqueMax { get; set; } + + [Column("rop_down"), Comment("Скорость вниз, м/ч.")] + [Range(0.0, 999.0)] + [Required] + public double RopDown { get; set; } + + [Column("rpm_down"), Comment("Обороты вниз, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double RpmDown { get; set; } + + [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] + [Range(0.0, 100.0)] + [Required] + public double FlowRateDown { get; set; } + + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + + [ForeignKey(nameof(IdPrevious))] + public virtual ProcessMapPlanRotorLoweringBit? Previous { get; set; } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs new file mode 100644 index 00000000..3ee25be6 --- /dev/null +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +public class ProcessMapPlanSlideLoweringBitTemplate : ITemplateParameters +{ + public string SheetName => "Подход к забою в слайде"; + + public int HeaderRowsCount => 2; + + public string FileName => "ProcessMapPlanSlideLoweringBitTemplate.xlsx"; + + public IDictionary Cells => new Dictionary + { + + }; +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs new file mode 100644 index 00000000..b7a75c3e --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs @@ -0,0 +1,30 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Requests.ExportOptions; +using AsbCloudApp.Services; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; +using System.Threading; +using System.Threading.Tasks; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; + +public class ProcessMapPlanSlideLoweringBitExportService : ProcessMapPlanExportService +{ + public ProcessMapPlanSlideLoweringBitExportService( + IChangeLogRepository processMapPlanRepository, + IWellService wellService) + : base(processMapPlanRepository, wellService) + { + } + + protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSlideLoweringBitTemplate(); + + protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) + { + var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); + + return $"{caption}_РТК_План_подход_к_забою_в_слайде.xlsx"; + } +} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs index a83f89ba..32443cb4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs @@ -16,7 +16,7 @@ public class ProcessMapPlanRotorLoweringBitParser : ProcessMapPlanParser new ProcessMapPlanLoadCapacityTemplate(); + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRotorLoweringBitTemplate(); protected override ProcessMapPlanRotorLoweringBitDto BuildDto(IDictionary row, int rowNumber) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs new file mode 100644 index 00000000..2eefebbf --- /dev/null +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudInfrastructure.Services.ExcelServices.Templates; +using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; + +namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +public class ProcessMapPlanSlideLoweringBitParser : ProcessMapPlanParser +{ + public ProcessMapPlanSlideLoweringBitParser(IWellOperationRepository wellOperationRepository) + : base(wellOperationRepository) + { + } + + protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSlideLoweringBitTemplate(); + + protected override ProcessMapPlanSlideLoweringBitDto BuildDto(IDictionary row, int rowNumber) + { + var dto = base.BuildDto(row, rowNumber); + + var section = sections.FirstOrDefault(s => + string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); + + if (section is null) + { + var message = string.Format(XLExtentions.ProblemDetailsTemplate, + TemplateParameters.SheetName, + rowNumber, + TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], + "Указана некорректная секция"); + throw new FileFormatException(message); + } + + dto.IdWellSectionType = section.Id; + + return dto; + } +} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs new file mode 100644 index 00000000..88674f71 --- /dev/null +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs @@ -0,0 +1,28 @@ +using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Repositories; +using AsbCloudApp.Requests; +using AsbCloudApp.Services; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; +using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; + +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в слайде +/// +public class ProcessMapPlanSlideLoweringBitController : + ProcessMapPlanBaseController +{ + public ProcessMapPlanSlideLoweringBitController( + IChangeLogRepository repository, + IWellService wellService, + ProcessMapPlanSlideLoweringBitParser parserService, + ITelemetryService telemetryService, + ProcessMapPlanSlideLoweringBitExportService processMapPlanExportService) + : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) + { + } + + protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_подход_к_забою_в_слайде.xlsx"; +} \ No newline at end of file From 62b373693aaf0af7055c21e62d8bad2db77fc5da Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 20:42:19 +0500 Subject: [PATCH 60/74] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BA=20=D0=B7=D0=B0=D0=B1=D0=BE=D1=8E=20=D0=B2=20=D1=81=D0=BB?= =?UTF-8?q?=D0=B0=D0=B9=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 11 +++++++++++ AsbCloudDb/Model/IAsbCloudDbContext.cs | 1 + .../ProcessMapPlanSlideLoweringBit.cs | 17 +---------------- AsbCloudInfrastructure/DependencyInjection.cs | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index fb333ded..5c2bc261 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -41,6 +41,7 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); public virtual DbSet ProcessMapPlanRotorLoweringBit => Set(); + public virtual DbSet ProcessMapPlanSlideLoweringBit => Set(); public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); @@ -569,6 +570,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Author) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -674,6 +680,11 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); + modelBuilder.Entity() + .HasOne(p => p.Editor) + .WithMany() + .OnDelete(DeleteBehavior.Restrict); + DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index a595affe..6444ba00 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -102,6 +102,7 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } DbSet ProcessMapPlanFunctionsStaticMeasure { get; } DbSet ProcessMapPlanRotorLoweringBit { get; } + DbSet ProcessMapPlanSlideLoweringBit { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs index 232ea90d..60a4ef73 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs @@ -18,26 +18,11 @@ public class ProcessMapPlanSlideLoweringBit : ProcessMapPlanBase [Required] public double DifferentialPressure { get; set; } - [Column("slacking_off"), Comment("Посадка, т.")] - [Range(0.0, 20.0)] - [Required] - public double SlackingOff { get; set; } - - [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] - [Range(0.0, 35.0)] - [Required] - public double TorqueMax { get; set; } - [Column("rop_down"), Comment("Скорость вниз, м/ч.")] [Range(0.0, 999.0)] [Required] public double RopDown { get; set; } - [Column("rpm_down"), Comment("Обороты вниз, об/мин.")] - [Range(0.0, 270.0)] - [Required] - public double RpmDown { get; set; } - [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] [Range(0.0, 100.0)] [Required] @@ -47,5 +32,5 @@ public class ProcessMapPlanSlideLoweringBit : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanRotorLoweringBit? Previous { get; set; } + public virtual ProcessMapPlanSlideLoweringBit? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index fc9c867c..0aeb85a3 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -278,6 +278,13 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); + + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() + { + Item = src.Adapt() + }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -455,6 +462,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -482,6 +490,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -579,6 +588,10 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); @@ -600,6 +613,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); + services.AddTransient>(); return services; } From 84393733771f0b173f4f258e4074b9e98e807304 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:02:55 +0500 Subject: [PATCH 61/74] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=BB=D0=B5=D1=80=D1=8B,=20=D0=BC=D0=BE=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=B8=20DTO,=20=D0=BA=D0=B0=D1=81=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D0=B5=20=D0=A0=D0=A2=D0=9A,=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8:=20Op?= =?UTF-8?q?erations=20=D0=B8=20Functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanAntiCrashRotationDto.cs | 2 +- .../ProcessMapPlanAutoHoldTFDto.cs | 2 +- .../ProcessMapPlanLoadCapacityDto.cs | 2 +- .../ProcessMapPlanOscillationAnglesDto.cs | 2 +- .../ProcessMaps/ProcessMapPlanDamperDto.cs | 21 -- .../ProcessMaps/ProcessMapPlanDrillTestDto.cs | 45 ---- .../ProcessMapPlanOscillationDto.cs | 51 ----- ...rocessMapPlanPositioningOffTheBottomDto.cs | 88 -------- .../Data/ProcessMaps/ProcessMapPlanReamDto.cs | 82 ------- .../ProcessMapPlanReamingRotorDto.cs | 209 ------------------ .../ProcessMapPlanReamingSlideDto.cs | 209 ------------------ ...essMapPlanRecordingStaticMeasurementDto.cs | 21 -- .../ProcessMaps/ProcessMapPlanRotorDto.cs | 88 -------- .../ProcessMapPlanRotorLoweringBitDto.cs | 60 ----- .../ProcessMaps/ProcessMapPlanShockTestDto.cs | 51 ----- .../ProcessMaps/ProcessMapPlanSlideDto.cs | 75 ------- ...rocessMapPlanStaticMeasurementOutputDto.cs | 15 -- .../ProcessMapPlanSwitchingOffThePumpDto.cs | 21 -- .../ProcessMapPlanSwitchingToTheModeDto.cs | 34 --- .../ProcessMapPlanTFOrientationDto.cs | 93 -------- ...ocessMapPlanUpdatingNoloadParametersDto.cs | 20 -- .../ProcessMaps/RotorRpmAccelerationDto.cs | 27 --- AsbCloudDb/Model/AsbCloudDbContext.cs | 3 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 3 +- .../ProcessMapPlanAntiCrashRotation.cs | 2 +- .../ProcessMapPlanAutoHoldTF.cs | 2 +- .../{ => Functions}/ProcessMapPlanDamper.cs | 2 +- .../ProcessMapPlanDrillTest.cs | 2 +- .../ProcessMapPlanOscillation.cs | 2 +- .../ProcessMapPlanShockTest.cs | 2 +- .../ProcessMapPlanStaticMeasurementOutput.cs | 2 +- .../ProcessMapPlanUpdatingNoloadParameters.cs | 2 +- .../ProcessMapPlanLoadCapacity.cs | 2 +- .../ProcessMapPlanOscillationAngles.cs | 2 +- .../ProcessMapPlanPositioningOffTheBottom.cs | 2 +- .../{ => Operations}/ProcessMapPlanReam.cs | 2 +- .../ProcessMapPlanReamingRotor.cs | 2 +- .../ProcessMapPlanReamingSlide.cs | 2 +- ...rocessMapPlanRecordingStaticMeasurement.cs | 2 +- .../{ => Operations}/ProcessMapPlanRotor.cs | 8 +- .../ProcessMapPlanRotorLoweringBit.cs | 2 +- .../ProcessMapPlanRotorRpmAcceleration.cs | 2 +- .../{ => Operations}/ProcessMapPlanSlide.cs | 4 +- .../ProcessMapPlanSlideLoweringBit.cs | 2 +- .../ProcessMapPlanSwitchingOffThePump.cs | 2 +- .../ProcessMapPlanSwitchingToTheMode.cs | 2 +- .../ProcessMapPlanTFOrientation.cs | 2 +- AsbCloudInfrastructure/DependencyInjection.cs | 5 +- .../ProcessMapPlanReamTemplate.cs | 2 +- .../ProcessMapPlanRotorTemplate.cs | 2 +- .../ProcessMapPlanSlideTemplate.cs | 2 +- ...ssMapPlanAntiCrashRotationExportService.cs | 2 +- .../ProcessMapPlanAutoHoldTFExportService.cs | 2 +- .../ProcessMapPlanDamperExportService.cs | 2 +- .../ProcessMapPlanDrillTestExportService.cs | 2 +- ...ProcessMapPlanLoadCapacityExportService.cs | 2 +- ...ssMapPlanOscillationAnglesExportService.cs | 2 +- .../ProcessMapPlanOscillationExportService.cs | 2 +- ...lanPositioningOffTheBottomExportService.cs | 2 +- .../Export/ProcessMapPlanReamExportService.cs | 2 +- ...ProcessMapPlanReamingRotorExportService.cs | 2 +- ...ProcessMapPlanReamingSlideExportService.cs | 2 +- ...RecordingStaticMeasurementExportService.cs | 2 +- .../ProcessMapPlanRotorExportService.cs | 2 +- ...essMapPlanRotorLoweringBitExportService.cs | 2 +- ...apPlanRotorRpmAccelerationExportService.cs | 2 +- .../ProcessMapPlanShockTestExportService.cs | 2 +- .../ProcessMapPlanSlideExportService.cs | 2 +- ...essMapPlanSlideLoweringBitExportService.cs | 2 +- ...lanStaticMeasurementOutputExportService.cs | 2 +- ...MapPlanSwitchingOffThePumpExportService.cs | 2 +- ...sMapPlanSwitchingToTheModeExportService.cs | 2 +- ...rocessMapPlanTFOrientationExportService.cs | 2 +- ...anUpdatingNoloadParametersExportService.cs | 2 +- .../ProcessMapPlanAntiCrashRotationParser.cs | 1 + .../Parser/ProcessMapPlanAutoHoldTFParser.cs | 1 + .../Parser/ProcessMapPlanDamperParser.cs | 1 + .../Parser/ProcessMapPlanDrillTestParser.cs | 1 + .../ProcessMapPlanLoadCapacityParser.cs | 1 + .../ProcessMapPlanOscillationAnglesParser.cs | 1 + .../Parser/ProcessMapPlanOscillationParser.cs | 1 + ...essMapPlanPositioningOffTheBottomParser.cs | 1 + .../Parser/ProcessMapPlanReamParser.cs | 2 +- .../ProcessMapPlanReamingRotorParser.cs | 1 + .../ProcessMapPlanReamingSlideParser.cs | 1 + ...MapPlanRecordingStaticMeasurementParser.cs | 1 + .../ProcessMapPlanRotorLoweringBitParser.cs | 1 + .../Parser/ProcessMapPlanRotorParser.cs | 1 + ...rocessMapPlanRotorRpmAccelerationParser.cs | 1 + .../Parser/ProcessMapPlanShockTestParser.cs | 1 + .../ProcessMapPlanSlideLoweringBitParser.cs | 1 + .../Parser/ProcessMapPlanSlideParser.cs | 1 + ...essMapPlanStaticMeasurementOutputParser.cs | 1 + ...ProcessMapPlanSwitchingOffThePumpParser.cs | 1 + .../ProcessMapPlanSwitchingToTheModeParser.cs | 1 + .../ProcessMapPlanTFOrientationParser.cs | 1 + ...ssMapPlanUpdatingNoloadParametersParser.cs | 1 + .../Report/ProcessMapReportDrillingService.cs | 1 + .../Services/WellInfoService.cs | 1 + ...rocessMapPlanLoadCapacityControllerTest.cs | 6 +- ...anPositioningOffTheBottomControllerTest.cs | 6 +- ...rocessMapPlanReamingRotorControllerTest.cs | 6 +- ...rocessMapPlanReamingSlideControllerTest.cs | 6 +- ...ecordingStaticMeasurementControllerTest.cs | 6 +- ...pPlanRotorRpmAccelerationControllerTest.cs | 6 +- ...MapPlanSwitchingToTheModeControllerTest.cs | 4 +- ...ocessMapPlanTFOrientationControllerTest.cs | 6 +- ...sMapPlanAntiCrashRotationControllerTest.cs | 4 +- .../ProcessMapPlanAutoHoldTFControllerTest.cs | 4 +- .../ProcessMapPlanDamperControllerTest.cs | 6 +- .../ProcessMapPlanDrillTestControllerTest.cs | 6 +- ...sMapPlanOscillationAnglesControllerTest.cs | 6 +- ...ProcessMapPlanOscillationControllerTest.cs | 6 +- .../ProcessMapPlanRotorControllerTest.cs | 6 +- .../ProcessMapPlanShockTestControllerTest.cs | 6 +- .../ProcessMapPlanSlideControllerTest.cs | 4 +- ...anStaticMeasurementOutputControllerTest.cs | 6 +- ...apPlanSwitchingOffThePumpControllerTest.cs | 6 +- ...nUpdatingNoloadParametersControllerTest.cs | 6 +- ...ocessMapPlanAntiCrashRotationController.cs | 4 +- .../ProcessMapPlanAutoHoldTFController.cs | 4 +- .../ProcessMapPlanDamperController.cs | 4 +- .../ProcessMapPlanDrillTestController.cs | 4 +- .../ProcessMapPlanOscillationController.cs | 4 +- .../ProcessMapPlanShockTestController.cs | 4 +- ...apPlanStaticMeasurementOutputController.cs | 4 +- ...pPlanUpdatingNoloadParametersController.cs | 4 +- .../ProcessMapPlanLoadCapacityController.cs | 4 +- ...ocessMapPlanOscillationAnglesController.cs | 4 +- ...apPlanPositioningOffTheBottomController.cs | 4 +- .../ProcessMapPlanReamController.cs | 6 +- .../ProcessMapPlanReamingRotorController.cs | 4 +- .../ProcessMapPlanReamingSlideController.cs | 4 +- ...lanRecordingStaticMeasurementController.cs | 4 +- .../ProcessMapPlanRotorController.cs | 6 +- ...rocessMapPlanRotorLoweringBitController.cs | 4 +- ...ssMapPlanRotorRpmAccelerationController.cs | 4 +- .../ProcessMapPlanSlideController.cs | 4 +- ...rocessMapPlanSlideLoweringBitController.cs | 4 +- ...essMapPlanSwitchingOffThePumpController.cs | 4 +- ...cessMapPlanSwitchingToTheModeController.cs | 4 +- .../ProcessMapPlanTFOrientationController.cs | 4 +- 142 files changed, 194 insertions(+), 1375 deletions(-) rename AsbCloudApp/Data/ProcessMaps/{ => Functions}/ProcessMapPlanAntiCrashRotationDto.cs (96%) rename AsbCloudApp/Data/ProcessMaps/{ => Functions}/ProcessMapPlanAutoHoldTFDto.cs (93%) rename AsbCloudApp/Data/ProcessMaps/{ => Operations}/ProcessMapPlanLoadCapacityDto.cs (96%) rename AsbCloudApp/Data/ProcessMaps/{ => Operations}/ProcessMapPlanOscillationAnglesDto.cs (97%) delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanAntiCrashRotation.cs (95%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanAutoHoldTF.cs (93%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanDamper.cs (92%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanDrillTest.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanOscillation.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanShockTest.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanStaticMeasurementOutput.cs (92%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Functions}/ProcessMapPlanUpdatingNoloadParameters.cs (93%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanLoadCapacity.cs (95%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanOscillationAngles.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanPositioningOffTheBottom.cs (97%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanReam.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanReamingRotor.cs (99%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanReamingSlide.cs (99%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanRecordingStaticMeasurement.cs (93%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanRotor.cs (94%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanRotorLoweringBit.cs (97%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanRotorRpmAcceleration.cs (94%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanSlide.cs (95%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanSlideLoweringBit.cs (96%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanSwitchingOffThePump.cs (93%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanSwitchingToTheMode.cs (95%) rename AsbCloudDb/Model/ProcessMapPlan/{ => Operations}/ProcessMapPlanTFOrientation.cs (98%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanReamController.cs (85%) rename AsbCloudWebApi/Controllers/ProcessMaps/{ => Operations}/ProcessMapPlanRotorController.cs (85%) diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs similarity index 96% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs rename to AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs index e108dbb8..1f38e6e3 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAntiCrashRotationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace AsbCloudApp.Data.ProcessMaps; +namespace AsbCloudApp.Data.ProcessMaps.Functions; /// /// РТК план противоаварийное вращение diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs similarity index 93% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs rename to AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs index 83733093..836573c8 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanAutoHoldTFDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace AsbCloudApp.Data.ProcessMaps; +namespace AsbCloudApp.Data.ProcessMaps.Functions; /// /// РТК план автоудержание TF diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanLoadCapacityDto.cs similarity index 96% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs rename to AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanLoadCapacityDto.cs index 55be2bb1..52972803 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanLoadCapacityDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanLoadCapacityDto.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace AsbCloudApp.Data.ProcessMaps; +namespace AsbCloudApp.Data.ProcessMaps.Operations; /// /// РТК план выработка нагрузки diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesDto.cs similarity index 97% rename from AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs rename to AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesDto.cs index cf930c5c..3da9631e 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationAnglesDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesDto.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace AsbCloudApp.Data.ProcessMaps; +namespace AsbCloudApp.Data.ProcessMaps.Operations; /// /// РТК план определения углов осцилляции diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs deleted file mode 100644 index c9022f43..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDamperDto.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план демпфер -/// -public class ProcessMapPlanDamperDto : ProcessMapPlanBaseDto -{ - /// - /// StickSlip - /// - [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] - public double StickSlip { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs deleted file mode 100644 index 1a471c5c..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanDrillTestDto.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план дрилтест -/// -public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto -{ - /// - /// Нагрузка минимальная, т - /// - [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")] - public double WeightOnBitMin { get; set; } - - /// - /// Количество шагов по нагрузке - /// - [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")] - public int WeightOnBitStepsCount { get; set; } - - /// - /// Минимальные обороты на ВСП, об/мин. - /// - [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] - public int RpmMin { get; set; } - - /// - /// Количество шагов оборотов на ВСП, шт. - /// - [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")] - public int RpmStepsCount { get; set; } - - /// - /// Величина проходки шага, м. - /// - [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")] - public double LengthStep { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs deleted file mode 100644 index 51ca2027..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanOscillationDto.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план осцилляция -/// -public class ProcessMapPlanOscillationDto : ProcessMapPlanBaseDto -{ - /// - /// Оптимальный угол осцилляции, градусы - /// - [Range(0.0, 6000.0, ErrorMessage = "Оптимальный угол осцилляции, градусы, должно быть в пределах от 0 до 6000")] - public double OptimalOscillationAngle { get; set; } - - /// - /// Скорость вправо, об/мин - /// - [Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")] - public double RpmRight { get; set; } - - /// - /// Скорость влево, об/мин - /// - [Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")] - public double RpmLeft { get; set; } - - /// - /// Ограничение момента вправо, кН*м - /// - [Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMaxRight { get; set; } - - /// - /// Ограничение момента влево, кН*м - /// - [Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMaxLeft { get; set; } - - /// - /// Режим Авто/Руч - /// - [Range(0, 1, ErrorMessage = "Режим Авто/Руч, должен быть либо 0, либо 1")] - public int Mode { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs deleted file mode 100644 index 85b821f6..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanPositioningOffTheBottomDto.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план позиционирования над забоем -/// -public class ProcessMapPlanPositioningOffTheBottomDto : ProcessMapPlanBaseDto -{ - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] - public double StopOffTheBottom { get; set; } - - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Затяжка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] - public double Tight { get; set; } - - /// - /// Посадка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Скорость вверх, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] - public double RopUp { get; set; } - - /// - /// Скорость вниз, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] - public double RopDown { get; set; } - - /// - /// Обороты вверх, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты вверх, об/мин., должно быть в пределах от 0 до 270")] - public double RpmUp { get; set; } - - /// - /// Обороты вниз, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] - public double RpmDown { get; set; } - - /// - /// Расход вверх, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateUp { get; set; } - - /// - /// Расход вниз, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateDown { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs deleted file mode 100644 index 853a7fcd..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs +++ /dev/null @@ -1,82 +0,0 @@ -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 override 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 diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs deleted file mode 100644 index be9113e7..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingRotorDto.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план проработка для ротора -/// -public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Затяжка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] - public double Tight { get; set; } - - /// - /// Посадка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Проработка 1. Количество повторений, шт. - /// - [Range(0, 99, ErrorMessage = "Проработка 1. Количество повторений, шт., должно быть в пределах от 0 до 99")] - public int Reaming1RepetitionsCount { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1RopUp { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1RopDown { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming1RpmUp { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming1RpmDown { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateUp { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateDown { get; set; } - - /// - /// Проработка 1, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming1Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming1StopPointOffBottom { get; set; } - - /// - /// Проработка 2, Количество повторений, шт. - /// - [Range(0, 99, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public int Reaming2RepetitionsCount { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming2RopUp { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming2RopDown { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming2RpmUp { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming2RpmDown { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateUp { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateDown { get; set; } - - /// - /// Проработка 2, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming2Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming2StopPointOffBottom { get; set; } - - /// - /// Проработка 3, Количество повторений, шт. - /// - [Range(0, 99, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming3RepetitionsCount { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming3RopUp { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming3RopDown { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming3RpmUp { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming3RpmDown { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateUp { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateDown { get; set; } - - /// - /// Проработка 3, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming3Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming3StopPointOffBottom { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs deleted file mode 100644 index c35fddb8..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamingSlideDto.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план проработка для слайда -/// -public class ProcessMapPlanReamingSlideDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимое давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Затяжка - /// - [Range(0.0, 20.0, ErrorMessage = "Затяжка, должно быть в пределах от 0 до 20")] - public double Tight { get; set; } - - /// - /// Посадка - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Проработка 1, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming1RepetitionsCount { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming1RopUp { get; set; } - - /// - /// Проработка 1, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming1RopDown { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming1RpmUp { get; set; } - - /// - /// Проработка 1, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming1RpmDown { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateUp { get; set; } - - /// - /// Проработка 1, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming1FlowRateDown { get; set; } - - /// - /// Проработка 1, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming1Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming1StopPointOffBottom { get; set; } - - /// - /// Проработка 2, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming2RepetitionsCount { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming2RopUp { get; set; } - - /// - /// Проработка 2, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming2RopDown { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming2RpmUp { get; set; } - - /// - /// Проработка 2, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming2RpmDown { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateUp { get; set; } - - /// - /// Проработка 2, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming2FlowRateDown { get; set; } - - /// - /// Проработка 2, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming2Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming2StopPointOffBottom { get; set; } - - /// - /// Проработка 3, Количество повторений, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] - public double Reaming3RepetitionsCount { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вверх - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] - public double Reaming3RopUp { get; set; } - - /// - /// Проработка 3, Скорость, м/ч., Вниз - /// - [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] - public double Reaming3RopDown { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вверх - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] - public double Reaming3RpmUp { get; set; } - - /// - /// Проработка 3, Обороты, об/мин., Вниз - /// - [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] - public double Reaming3RpmDown { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вверх - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateUp { get; set; } - - /// - /// Проработка 3, Расход, л/с., Вниз - /// - [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] - public double Reaming3FlowRateDown { get; set; } - - /// - /// Проработка 3, Интервал проработки, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] - public double Reaming3Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double Reaming3StopPointOffBottom { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs deleted file mode 100644 index f3f4b692..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRecordingStaticMeasurementDto.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план записи статического замера -/// -public class ProcessMapPlanRecordingStaticMeasurementDto : ProcessMapPlanBaseDto -{ - /// - /// Время записи замера, сек - /// - [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] - public double MeasurementRecordingTime { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs deleted file mode 100644 index 8adf60d8..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorDto.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план бурение скважины в роторе -/// -public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимая скорость, м/ч - /// - [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] - public double RopMax { get; set; } - - /// - /// Максимально допустимое давление, атм - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] - public double PressureMax { get; set; } - - /// - /// Перепад давления, атм. Уставка - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., уставка, должно быть в пределах от 0 до 60.0")] - public double DifferentialPressure { get; set; } - - /// - /// Перепад давления, атм. Ограничение - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] - public double DifferentialPressureMax { get; set; } - - /// - /// Нагрузка, т. Уставка - /// - [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., уставка, должно быть в пределах от 0 до 99.0")] - public double WeightOnBit { get; set; } - - /// - /// Нагрузка, т. Ограничение - /// - [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] - public double WeightOnBitMax { get; set; } - - /// - /// Момент на ВСП, кН*м. Уставка - /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")] - public double TopDriveTorque { get; set; } - - /// - /// Момент на ВСП, кН*м. Ограничение - /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] - public double TopDriveTorqueMax { get; set; } - - /// - /// Обороты на ВСП, об/мин. Уставка - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] - public double Rpm { get; set; } - - /// - /// Обороты на ВСП, об/мин. Ограничение - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] - public double RpmMax { get; set; } - - /// - /// Расход л/с. Уставка - /// - [Range(0.0, 100.0, ErrorMessage = "Расход л/с., уставка, должно быть в пределах от 0 до 100.0")] - public double FlowRate { get; set; } - - /// - /// Расход л/с. Ограничение - /// - [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] - public double FlowRateMax { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] - public string Note { get; set; } = string.Empty; - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs deleted file mode 100644 index 9d8da53d..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanRotorLoweringBitDto.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план подход к забою в роторе -/// -public class ProcessMapPlanRotorLoweringBitDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Посадка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Скорость вниз, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] - public double RopDown { get; set; } - - /// - /// Обороты вниз, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] - public double RpmDown { get; set; } - - /// - /// Расход вниз, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateDown { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs deleted file mode 100644 index ada3f844..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanShockTestDto.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план shocktest -/// -public class ProcessMapPlanShockTestDto : ProcessMapPlanBaseDto -{ - /// - /// StickSlip - /// - [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] - public double StickSlip { get; set; } - - /// - /// Whirl - /// - [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")] - public double Whirl { get; set; } - - /// - /// Осевые вибрации - /// - [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")] - public double AxialVibrations { get; set; } - - /// - /// Комбинированные вибрации - /// - [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")] - public double CombinedVibrations { get; set; } - - /// - /// Нагрузка минимальная, т - /// - [Range(0.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")] - public double WeightOnBitMin { get; set; } - - /// - /// Минимальные обороты на ВСП, об/мин. - /// - [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] - public double RpmMin { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs deleted file mode 100644 index 4a0c4098..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSlideDto.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план бурение скважины в слайде -/// -public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимая скорость, м/ч - /// - [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")] - public double RopMax { get; set; } - - /// - /// Максимально допустимое давление, атм - /// - [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм - /// - [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Перепад давления ограничение, атм - /// - [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressureMax { get; set; } - - /// - /// Нагрузка уставка, т - /// - [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")] - public double WeightOnBit { get; set; } - - /// - /// Нагрузка ограничение, т - /// - [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")] - public double WeightOnBitMax { get; set; } - - /// - /// Расход уставка л/с - /// - [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")] - public double FlowRate { get; set; } - - /// - /// Расход ограничение л/с - /// - [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")] - public double FlowRateMax { get; set; } - - /// - /// Расчётная пружина, градус - /// - [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")] - public double Spring { get; set; } - - /// - /// Складывание инструмента, м - /// - [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")] - public double Buckling { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs deleted file mode 100644 index d64366c0..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanStaticMeasurementOutputDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход статического замера -/// -public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto -{ - /// - /// Время ожидания выхода сигнала с ТМС, сек. - /// - [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] - public double SignalWaitingTime { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs deleted file mode 100644 index 81000490..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingOffThePumpDto.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выключение насоса -/// -public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto -{ - /// - /// Продолжительность, сек. - /// - [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] - public double Duration { get; set; } - - /// - /// Лимит остаточного давления, атм. - /// - [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] - public double ResidualPressureLimit { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs deleted file mode 100644 index 930c8475..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanSwitchingToTheModeDto.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход на плановый расход -/// -public class ProcessMapPlanSwitchingToTheModeDto : ProcessMapPlanBaseDto -{ - /// - /// Время выхода буровых насосов на плановый расход, сек. - /// - [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] - public double RampTime { get; set; } - - /// - /// Расход, л/с - /// - [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] - public double FlowRate { get; set; } - - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs deleted file mode 100644 index 24ab00da..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanTFOrientationDto.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выставление -/// -public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto -{ - /// - /// Задание TF, град. - /// - [Range(0.0, 360.0, ErrorMessage = "Задание TF, град., должно быть в пределах от 0 до 360")] - public double TFSetpoint { get; set; } - - /// - /// Пружина, град. - /// - [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] - public double Spring { get; set; } - - /// - /// Максимальное давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Затяжка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] - public double Tight { get; set; } - - /// - /// Посадка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Количество расхаживаний, шт. - /// - [Range(0.0, 99.0, ErrorMessage = "Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] - public int RepetitionsCount { get; set; } - - /// - /// Скорость вверх, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] - public double RopUp { get; set; } - - /// - /// Скорость вниз, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] - public double RopDown { get; set; } - - /// - /// Расход вверх, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateUp { get; set; } - - /// - /// Расход вниз, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateDown { get; set; } - - /// - /// Интервал расхаживания, м. - /// - [Range(0.0, 30.0, ErrorMessage = "Интервал расхаживания, м., должно быть в пределах от 0 до 30")] - public double Interval { get; set; } - - /// - /// Остановка над забоем, м. - /// - [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] - public double StopPointOffBottom { get; set; } -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs deleted file mode 100644 index 5d05f594..00000000 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanUpdatingNoloadParametersDto.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план обновление холостого хода -/// -public class ProcessMapPlanUpdatingNoloadParametersDto : ProcessMapPlanBaseDto -{ - /// - /// СПУСК ОК Да/Нет - /// - public bool IdDeclineSocketColumn { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs deleted file mode 100644 index 893bdccf..00000000 --- a/AsbCloudApp/Data/ProcessMaps/RotorRpmAccelerationDto.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps; - -/// -/// РТК план выход на обороты перед ротором -/// -public class RotorRpmAccelerationDto : ProcessMapPlanBaseDto -{ - /// - /// Зенитный угол, градусы - /// - [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] - public double ZenithAngle { get; set; } - - /// - /// Складывание, м - /// - [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] - public double Buckling { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 5c2bc261..92dc12de 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -4,9 +4,10 @@ using System.Threading; using System.Threading.Tasks; using AsbCloudDb.Model.DailyReports; using AsbCloudDb.Model.Manuals; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudDb.Model.WellSections; using AsbCloudDb.Model.Trajectory; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudDb.Model.ProcessMapPlan.Operations; namespace AsbCloudDb.Model { diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 6444ba00..a6a12765 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -8,9 +8,10 @@ using System.Threading; using System.Threading.Tasks; using AsbCloudDb.Model.DailyReports; using AsbCloudDb.Model.Manuals; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudDb.Model.WellSections; using AsbCloudDb.Model.Trajectory; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudDb.Model.ProcessMapPlan.Operations; namespace AsbCloudDb.Model { diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs similarity index 95% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs index c27903ef..2edc1178 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAntiCrashRotation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_anti_crash_rotation"), Comment("Противоаварийное вращение")] public class ProcessMapPlanAntiCrashRotation : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTF.cs similarity index 93% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTF.cs index 2144743e..0f0c5f59 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanAutoHoldTF.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTF.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_auto_hold_tf"), Comment("Автоудержание TF")] public class ProcessMapPlanAutoHoldTF : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDamper.cs similarity index 92% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDamper.cs index 11f9547f..3aac9f5b 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDamper.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDamper.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_functions_damper"), Comment("Демпфер")] public class ProcessMapPlanDamper : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDrillTest.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDrillTest.cs index 487c8a9c..2cd80bb9 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanDrillTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanDrillTest.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_drilltest"), Comment("DrillTest")] public class ProcessMapPlanDrillTest : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanOscillation.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanOscillation.cs index f11a11f3..81d583a6 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanOscillation.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_oscillation"), Comment("Осцилляция")] public class ProcessMapPlanOscillation : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanShockTest.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanShockTest.cs index 14a107ad..6c3e96bd 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanShockTest.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanShockTest.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_shock_test"), Comment("ShockTest")] public class ProcessMapPlanShockTest : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs similarity index 92% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs index aebd1171..3ab6fabc 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutput.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_static_measurement_output"), Comment("Выход статического замера")] public class ProcessMapPlanStaticMeasurementOutput : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs similarity index 93% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs rename to AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs index 3be496df..4ab45fee 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParameters.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Functions; [Table("t_process_map_plan_updating_noload_parameters"), Comment("Обновление холостого хода")] public class ProcessMapPlanUpdatingNoloadParameters : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacity.cs similarity index 95% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacity.cs index c7f8712e..b26ae7cb 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanLoadCapacity.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacity.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_load_capacity"), Comment("РТК выработка нагрузки")] public class ProcessMapPlanLoadCapacity : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanOscillationAngles.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanOscillationAngles.cs index 2fd5248f..fc919ff2 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanOscillationAngles.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanOscillationAngles.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")] public class ProcessMapPlanOscillationAngles : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottom.cs similarity index 97% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottom.cs index 0d1cecf3..f7b98337 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanPositioningOffTheBottom.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottom.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_positioning_off_the_bottom"), Comment("Позиционирование над забоем")] public class ProcessMapPlanPositioningOffTheBottom : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReam.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReam.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs index 05659bfa..930775b1 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReam.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs @@ -2,7 +2,7 @@ using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_ream"), Comment("РТК проработка скважины")] public class ProcessMapPlanReam : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingRotor.cs similarity index 99% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingRotor.cs index f1d69ff0..0183a09c 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingRotor.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")] public class ProcessMapPlanReamingRotor : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingSlide.cs similarity index 99% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingSlide.cs index 5ca53949..32ddb3b3 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanReamingSlide.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReamingSlide.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_reaming_slide"), Comment("РТК проработка слайд")] public class ProcessMapPlanReamingSlide : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurement.cs similarity index 93% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurement.cs index c865ee36..5360457b 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRecordingStaticMeasurement.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurement.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_recording_static_measurement"), Comment("Запись статического замера")] public class ProcessMapPlanRecordingStaticMeasurement : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs similarity index 94% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs index e2e09f4a..5d6203e0 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs @@ -3,18 +3,18 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")] public class ProcessMapPlanRotor : ProcessMapPlanBase { [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч")] [Range(0, 800.0)] - [Required] + [Required] public double RopMax { get; set; } [Column("pressure_max"), Comment("Максимально допустимое давление, атм")] - [Range(0.0, 400.0)] + [Range(0.0, 400.0)] [Required] public double PressureLimitMax { get; set; } @@ -73,5 +73,5 @@ public class ProcessMapPlanRotor : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanRotor? Previous { get; set; } + public virtual ProcessMapPlanRotor? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs similarity index 97% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs index a87a1ac3..ff24fb5e 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorLoweringBit.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_rotor_lowering_bit"), Comment("РТК подход к забою в роторе")] public class ProcessMapPlanRotorLoweringBit : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs similarity index 94% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs index 856fc3b8..fde0d0c4 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanRotorRpmAcceleration.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_rotor_rpm_acceleration"), Comment("Выход на обороты перед ротором")] public class ProcessMapPlanRotorRpmAcceleration : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlide.cs similarity index 95% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlide.cs index 8c4d39c5..883ff97c 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlide.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlide.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")] public class ProcessMapPlanSlide : ProcessMapPlanBase @@ -62,5 +62,5 @@ public class ProcessMapPlanSlide : ProcessMapPlanBase public string Note { get; set; } = string.Empty; [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanSlide? Previous { get; set; } + public virtual ProcessMapPlanSlide? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs similarity index 96% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs index 60a4ef73..9e4a6324 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSlideLoweringBit.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_slide_lowering_bit"), Comment("РТК подход к забою в слайде")] public class ProcessMapPlanSlideLoweringBit : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs similarity index 93% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs index 724603dd..4a142c49 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingOffThePump.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_operation_switching_off_the_pump"), Comment("Выключение насоса")] public class ProcessMapPlanSwitchingOffThePump : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheMode.cs similarity index 95% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheMode.cs index 94baf32a..6ea265ea 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanSwitchingToTheMode.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheMode.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_switching_to_the_mode"), Comment("Выход на плановый расход")] public class ProcessMapPlanSwitchingToTheMode : ProcessMapPlanBase diff --git a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs similarity index 98% rename from AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs rename to AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs index 0af96346..12c8b523 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/ProcessMapPlanTFOrientation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs @@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; using AsbCloudDb.Model.ProcessMapPlan; using Microsoft.EntityFrameworkCore; -namespace AsbCloudDb.Model.ProcessMaps; +namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_tf_orientation"), Comment("Выставление")] public class ProcessMapPlanTFOrientation : ProcessMapPlanBase diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 0aeb85a3..61374520 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -4,6 +4,8 @@ using AsbCloudApp.Data.DetectedOperation; using AsbCloudApp.Data.DrillTestReport; using AsbCloudApp.Data.Manuals; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Data.SAUB; using AsbCloudApp.Data.Subsystems; using AsbCloudApp.Data.Trajectory; @@ -17,7 +19,8 @@ using AsbCloudDb.Model; using AsbCloudDb.Model.DailyReports.Blocks.TimeBalance; using AsbCloudDb.Model.Manuals; using AsbCloudDb.Model.ProcessMapPlan; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudDb.Model.Trajectory; using AsbCloudDb.Model.WellSections; using AsbCloudInfrastructure.Background; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs index 5c454d7b..b9e118a5 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs index aa011afd..85b3cba7 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorTemplate.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs index da50e04c..9a6a8107 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideTemplate.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs index fa784e16..d87c40e0 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAntiCrashRotationExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs index deb14626..84567d4f 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanAutoHoldTFExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs index cf9f9b35..9feaf815 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDamperExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs index 27d70979..6a8a9555 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanDrillTestExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs index 53534abb..ae4fa8ac 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanLoadCapacityExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs index 221491e6..c70779ff 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationAnglesExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs index 5e6f4ce4..a9488a7e 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanOscillationExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs index 20f7fd92..1da78da4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanPositioningOffTheBottomExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs index c6b8495e..a08a3dc4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs index c72404c4..352e6df0 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingRotorExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs index a30d8f47..f556cb65 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamingSlideExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs index baa26db4..5f9471eb 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRecordingStaticMeasurementExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorExportService.cs index ce6560d6..e16620ef 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs index 28e09717..b0ae30f2 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs index 2f9e8644..11927880 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs index 9a4157f1..6035a610 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanShockTestExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideExportService.cs index c6c2fdfe..0d263beb 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs index b7a75c3e..d2b763b7 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs index 62c021ca..f41d2a81 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanStaticMeasurementOutputExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs index 252a9587..e1ae6e19 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingOffThePumpExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs index a44c1dfe..ba0461fb 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSwitchingToTheModeExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs index 0c210d02..495437c1 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanTFOrientationExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs index 1d30dfb3..566ffae9 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs @@ -1,4 +1,4 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Requests.ExportOptions; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs index 15cf7486..007ae2c5 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAntiCrashRotationParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs index bae893a6..2c502f33 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanAutoHoldTFParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs index c3add6de..38ac7bad 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDamperParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs index dff5e67f..cf42b3ac 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanDrillTestParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs index da88b090..ccd2e8f1 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanLoadCapacityParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs index 8fd7fead..213f4105 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationAnglesParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs index f243053f..3233c825 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanOscillationParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs index 919cd035..1d006985 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanPositioningOffTheBottomParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs index 7bfaa880..13882b53 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs index b68b2e0e..452daf3a 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingRotorParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs index 8a420d45..c3c61415 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamingSlideParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs index 3e88edd1..a1a0f027 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRecordingStaticMeasurementParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs index 32443cb4..a2eb33cc 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorParser.cs index 1ce44dc9..cca67fc9 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs index 3a7bbbc9..82667797 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs index f3890ff5..b1494be4 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanShockTestParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs index 2eefebbf..373e98cc 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideParser.cs index 296070f3..a10c1652 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs index cd7b7d00..61de9970 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanStaticMeasurementOutputParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs index 7272810c..1ae5abf0 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingOffThePumpParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs index f301a892..76990a07 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSwitchingToTheModeParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs index 54025674..8358ce19 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanTFOrientationParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs index 1ba6f743..e5453b6a 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; diff --git a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs index 4e1ef71d..f6e2e8ab 100644 --- a/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMaps/Report/ProcessMapReportDrillingService.cs @@ -1,5 +1,6 @@ using AsbCloudApp.Data; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Data.ProcessMaps.Report; using AsbCloudApp.Data.WellOperation; using AsbCloudApp.Exceptions; diff --git a/AsbCloudInfrastructure/Services/WellInfoService.cs b/AsbCloudInfrastructure/Services/WellInfoService.cs index 899e3ab5..1db7a2a1 100644 --- a/AsbCloudInfrastructure/Services/WellInfoService.cs +++ b/AsbCloudInfrastructure/Services/WellInfoService.cs @@ -1,5 +1,6 @@ using AsbCloudApp.Data; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Data.SAUB; using AsbCloudApp.Data.WITS; using AsbCloudApp.IntegrationEvents; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs index bbd353f2..bf1c6766 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs index 84d4b6b1..2bbff2f5 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs index 1e2f1c66..6acd2a1c 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs index fa18b50d..40216e41 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs index a40ce381..dc5fb7d4 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs index cc43a2f0..20ae09c9 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs index fc9108ce..7c665a54 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs @@ -1,5 +1,5 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudWebApi.IntegrationTests; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using Microsoft.EntityFrameworkCore; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs index c5514d71..6b379f3d 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs index 4b7b79d1..cb01881b 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs @@ -1,5 +1,5 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudWebApi.IntegrationTests; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using Microsoft.EntityFrameworkCore; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs index 392c99e3..ec1eb6d7 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs index 16b3755f..64a6193a 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs index e6817953..df61b16f 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs index 7e136671..7c47f57c 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs index d9413b12..5dc42899 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs index 788d43aa..0863bd6b 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs @@ -1,12 +1,12 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using DocumentFormat.OpenXml.Drawing.Charts; using Mapster; using Microsoft.EntityFrameworkCore; using Xunit; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTest +public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTest { private readonly ProcessMapPlanRotorDto dto = new ProcessMapPlanRotorDto() { diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs index 32969202..333755f2 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs index e91ea5fc..d33a1392 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs @@ -1,5 +1,5 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using Mapster; using Microsoft.EntityFrameworkCore; using Xunit; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs index 01323043..961c4e00 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs index 71ec142a..c84772f9 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Operations; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs index 9850539d..d7104b92 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs @@ -1,14 +1,14 @@ -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Repositories; +using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using AsbCloudWebApi.IntegrationTests; using Microsoft.EntityFrameworkCore; using Xunit; +using AsbCloudDb.Model.ProcessMapPlan.Functions; +using AsbCloudApp.Data.ProcessMaps.Functions; namespace AsbCloudWebApi.Controllers.ProcessMaps; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs index 28a79b9d..5278589b 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs index eba1f7f1..645d016b 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs index 146007c4..0ae7430a 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDamperController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs index a858a858..70ecaa23 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanDrillTestController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs index bd443fdd..c16f5d16 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanOscillationController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs index 04665ffb..748f5ad6 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanShockTestController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs index 1051a45d..95984016 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs index 8e57b51e..3c8bb70b 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Functions; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs index 7e813ef4..58b2bc3c 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanLoadCapacityController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs index 517234c9..7b74ad70 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanOscillationAnglesController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs index 30264156..df24f26b 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs similarity index 85% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs index 2e9aeedf..1fc1bc22 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanReamController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs @@ -1,12 +1,12 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план проработка diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs index c445c7aa..610a815d 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingRotorController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs index d440b854..049c4dbe 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamingSlideController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs index 98c8b0ee..ba857d80 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanRotorController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorController.cs similarity index 85% rename from AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanRotorController.cs rename to AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorController.cs index f437820d..e661009c 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanRotorController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorController.cs @@ -1,12 +1,12 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// /// РТК план бурения (ротор) diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs index d7a4ed32..670ba243 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs index 23bb6c09..3d95708f 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs index 312181ef..7511277f 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs index 88674f71..b8f82d7c 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs index c6407531..8350cb89 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs index 8bc88b53..d749513d 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs index 1359a663..45605c8c 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanTFOrientationController.cs @@ -1,8 +1,8 @@ -using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMaps; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; From f58e934df1ffeb7a75832532644026c03510fafe Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:03:50 +0500 Subject: [PATCH 62/74] =?UTF-8?q?=20=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=BB=D0=B5=D1=80=D1=8B,=20=D0=BC=D0=BE=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=B8=20DTO,=20=D0=BA=D0=B0=D1=81=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D0=B5=20=D0=A0=D0=A2=D0=9A,=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8:=20Op?= =?UTF-8?q?erations=20=D0=B8=20Functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Functions/ProcessMapPlanDamperDto.cs | 21 ++++++++ .../Functions/ProcessMapPlanDrillTestDto.cs | 45 ++++++++++++++++ .../Functions/ProcessMapPlanOscillationDto.cs | 51 +++++++++++++++++++ .../Functions/ProcessMapPlanShockTestDto.cs | 51 +++++++++++++++++++ ...rocessMapPlanStaticMeasurementOutputDto.cs | 15 ++++++ ...ocessMapPlanUpdatingNoloadParametersDto.cs | 20 ++++++++ 6 files changed, 203 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs new file mode 100644 index 00000000..2f271f02 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план демпфер +/// +public class ProcessMapPlanDamperDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] + public double StickSlip { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs new file mode 100644 index 00000000..f8e69983 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs @@ -0,0 +1,45 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план дрилтест +/// +public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto +{ + /// + /// Нагрузка минимальная, т + /// + [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")] + public double WeightOnBitMin { get; set; } + + /// + /// Количество шагов по нагрузке + /// + [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")] + public int WeightOnBitStepsCount { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] + public int RpmMin { get; set; } + + /// + /// Количество шагов оборотов на ВСП, шт. + /// + [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")] + public int RpmStepsCount { get; set; } + + /// + /// Величина проходки шага, м. + /// + [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")] + public double LengthStep { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs new file mode 100644 index 00000000..b444d59a --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs @@ -0,0 +1,51 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план осцилляция +/// +public class ProcessMapPlanOscillationDto : ProcessMapPlanBaseDto +{ + /// + /// Оптимальный угол осцилляции, градусы + /// + [Range(0.0, 6000.0, ErrorMessage = "Оптимальный угол осцилляции, градусы, должно быть в пределах от 0 до 6000")] + public double OptimalOscillationAngle { get; set; } + + /// + /// Скорость вправо, об/мин + /// + [Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")] + public double RpmRight { get; set; } + + /// + /// Скорость влево, об/мин + /// + [Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")] + public double RpmLeft { get; set; } + + /// + /// Ограничение момента вправо, кН*м + /// + [Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMaxRight { get; set; } + + /// + /// Ограничение момента влево, кН*м + /// + [Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMaxLeft { get; set; } + + /// + /// Режим Авто/Руч + /// + [Range(0, 1, ErrorMessage = "Режим Авто/Руч, должен быть либо 0, либо 1")] + public int Mode { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs new file mode 100644 index 00000000..f00b339c --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs @@ -0,0 +1,51 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план shocktest +/// +public class ProcessMapPlanShockTestDto : ProcessMapPlanBaseDto +{ + /// + /// StickSlip + /// + [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")] + public double StickSlip { get; set; } + + /// + /// Whirl + /// + [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")] + public double Whirl { get; set; } + + /// + /// Осевые вибрации + /// + [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")] + public double AxialVibrations { get; set; } + + /// + /// Комбинированные вибрации + /// + [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")] + public double CombinedVibrations { get; set; } + + /// + /// Нагрузка минимальная, т + /// + [Range(0.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")] + public double WeightOnBitMin { get; set; } + + /// + /// Минимальные обороты на ВСП, об/мин. + /// + [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")] + public double RpmMin { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs new file mode 100644 index 00000000..f9aade31 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план выход статического замера +/// +public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto +{ + /// + /// Время ожидания выхода сигнала с ТМС, сек. + /// + [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] + public double SignalWaitingTime { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs new file mode 100644 index 00000000..693c66d9 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Functions; + +/// +/// РТК план обновление холостого хода +/// +public class ProcessMapPlanUpdatingNoloadParametersDto : ProcessMapPlanBaseDto +{ + /// + /// СПУСК ОК Да/Нет + /// + public bool IdDeclineSocketColumn { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file From 89cae8726df98dd457985744f2ed97ac2be6c2d9 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:04:31 +0500 Subject: [PATCH 63/74] =?UTF-8?q?=20=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=BB=D0=B5=D1=80=D1=8B,=20=D0=BC=D0=BE=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B8=20=D0=B8=20DTO,=20=D0=BA=D0=B0=D1=81=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D0=B5=20=D0=A0=D0=A2=D0=9A,=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8:=20Op?= =?UTF-8?q?erations=20=D0=B8=20Functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rocessMapPlanPositioningOffTheBottomDto.cs | 88 ++++++++ .../Operations/ProcessMapPlanReamDto.cs | 82 +++++++ .../ProcessMapPlanReamingRotorDto.cs | 209 ++++++++++++++++++ .../ProcessMapPlanReamingSlideDto.cs | 209 ++++++++++++++++++ ...essMapPlanRecordingStaticMeasurementDto.cs | 21 ++ .../Operations/ProcessMapPlanRotorDto.cs | 88 ++++++++ .../ProcessMapPlanRotorLoweringBitDto.cs | 60 +++++ .../Operations/ProcessMapPlanSlideDto.cs | 75 +++++++ .../ProcessMapPlanSlideLoweringBitDto.cs | 42 ++++ .../ProcessMapPlanSwitchingOffThePumpDto.cs | 21 ++ .../ProcessMapPlanSwitchingToTheModeDto.cs | 34 +++ .../ProcessMapPlanTFOrientationDto.cs | 93 ++++++++ .../Operations/RotorRpmAccelerationDto.cs | 27 +++ 13 files changed, 1049 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs new file mode 100644 index 00000000..e1e58d66 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs @@ -0,0 +1,88 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план позиционирования над забоем +/// +public class ProcessMapPlanPositioningOffTheBottomDto : ProcessMapPlanBaseDto +{ + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] + public double StopOffTheBottom { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вверх, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вверх, об/мин., должно быть в пределах от 0 до 270")] + public double RpmUp { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs new file mode 100644 index 00000000..376888dd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs @@ -0,0 +1,82 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка скважины +/// +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 override 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 diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs new file mode 100644 index 00000000..98b6fcfc --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1. Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 1. Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs new file mode 100644 index 00000000..f2ef28fd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanReamingSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs new file mode 100644 index 00000000..28ba53bd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanRecordingStaticMeasurementDto : ProcessMapPlanBaseDto +{ + /// + /// Время записи замера, сек + /// + [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] + public double MeasurementRecordingTime { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs new file mode 100644 index 00000000..938732c2 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs @@ -0,0 +1,88 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план бурение скважины в роторе +/// +public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимая скорость, м/ч + /// + [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] + public double RopMax { get; set; } + + /// + /// Максимально допустимое давление, атм + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] + public double PressureMax { get; set; } + + /// + /// Перепад давления, атм. Уставка + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., уставка, должно быть в пределах от 0 до 60.0")] + public double DifferentialPressure { get; set; } + + /// + /// Перепад давления, атм. Ограничение + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] + public double DifferentialPressureMax { get; set; } + + /// + /// Нагрузка, т. Уставка + /// + [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., уставка, должно быть в пределах от 0 до 99.0")] + public double WeightOnBit { get; set; } + + /// + /// Нагрузка, т. Ограничение + /// + [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] + public double WeightOnBitMax { get; set; } + + /// + /// Момент на ВСП, кН*м. Уставка + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")] + public double TopDriveTorque { get; set; } + + /// + /// Момент на ВСП, кН*м. Ограничение + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] + public double TopDriveTorqueMax { get; set; } + + /// + /// Обороты на ВСП, об/мин. Уставка + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] + public double Rpm { get; set; } + + /// + /// Обороты на ВСП, об/мин. Ограничение + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] + public double RpmMax { get; set; } + + /// + /// Расход л/с. Уставка + /// + [Range(0.0, 100.0, ErrorMessage = "Расход л/с., уставка, должно быть в пределах от 0 до 100.0")] + public double FlowRate { get; set; } + + /// + /// Расход л/с. Ограничение + /// + [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] + public double FlowRateMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs new file mode 100644 index 00000000..62b9459e --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs @@ -0,0 +1,60 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в роторе +/// +public class ProcessMapPlanRotorLoweringBitDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs new file mode 100644 index 00000000..2ad24fdf --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs @@ -0,0 +1,75 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план бурение скважины в слайде +/// +public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимая скорость, м/ч + /// + [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")] + public double RopMax { get; set; } + + /// + /// Максимально допустимое давление, атм + /// + [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм + /// + [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Перепад давления ограничение, атм + /// + [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressureMax { get; set; } + + /// + /// Нагрузка уставка, т + /// + [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")] + public double WeightOnBit { get; set; } + + /// + /// Нагрузка ограничение, т + /// + [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")] + public double WeightOnBitMax { get; set; } + + /// + /// Расход уставка л/с + /// + [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Расход ограничение л/с + /// + [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")] + public double FlowRateMax { get; set; } + + /// + /// Расчётная пружина, градус + /// + [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")] + public double Spring { get; set; } + + /// + /// Складывание инструмента, м + /// + [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs new file mode 100644 index 00000000..560def75 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs @@ -0,0 +1,42 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в слайде +/// +public class ProcessMapPlanSlideLoweringBitDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs new file mode 100644 index 00000000..7e0d54fe --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto +{ + /// + /// Продолжительность, сек. + /// + [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] + public double Duration { get; set; } + + /// + /// Лимит остаточного давления, атм. + /// + [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] + public double ResidualPressureLimit { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs new file mode 100644 index 00000000..1142cb59 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs @@ -0,0 +1,34 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanSwitchingToTheModeDto : ProcessMapPlanBaseDto +{ + /// + /// Время выхода буровых насосов на плановый расход, сек. + /// + [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] + public double RampTime { get; set; } + + /// + /// Расход, л/с + /// + [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs new file mode 100644 index 00000000..992594c1 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs @@ -0,0 +1,93 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto +{ + /// + /// Задание TF, град. + /// + [Range(0.0, 360.0, ErrorMessage = "Задание TF, град., должно быть в пределах от 0 до 360")] + public double TFSetpoint { get; set; } + + /// + /// Пружина, град. + /// + [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] + public double Spring { get; set; } + + /// + /// Максимальное давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Количество расхаживаний, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] + public int RepetitionsCount { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Интервал расхаживания, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Интервал расхаживания, м., должно быть в пределах от 0 до 30")] + public double Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double StopPointOffBottom { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs new file mode 100644 index 00000000..9f59ab06 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выход на обороты перед ротором +/// +public class RotorRpmAccelerationDto : ProcessMapPlanBaseDto +{ + /// + /// Зенитный угол, градусы + /// + [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] + public double ZenithAngle { get; set; } + + /// + /// Складывание, м + /// + [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file From 0caee63b2ba830adc9bfd874c576e57d86dce0d9 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:12:21 +0500 Subject: [PATCH 64/74] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=B0=D1=82=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D1=8B=D1=85=20=D0=BC=D0=B8=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ocessMapOperationsAndFunctions.Designer.cs | 12580 ---------------- ...Tables_ProcessMapOperationsAndFunctions.cs | 1621 -- .../AsbCloudDbContextModelSnapshot.cs | 2955 +--- 3 files changed, 70 insertions(+), 17086 deletions(-) delete mode 100644 AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs delete mode 100644 AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs diff --git a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs deleted file mode 100644 index 6fc32805..00000000 --- a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs +++ /dev/null @@ -1,12580 +0,0 @@ -// -using System; -using System.Text.Json; -using AsbCloudDb.Model; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace AsbCloudDb.Migrations -{ - [DbContext(typeof(AsbCloudDbContext))] - [Migration("20240627045703_Add_Tables_ProcessMapOperationsAndFunctions")] - partial class Add_Tables_ProcessMapOperationsAndFunctions - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("Russian_Russia.1251") - .HasAnnotation("ProductVersion", "8.0.2") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "adminpack"); - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption") - .HasComment("Название"); - - b.Property("IdDeposit") - .HasColumnType("integer") - .HasColumnName("id_deposit"); - - b.Property("Latitude") - .HasColumnType("double precision") - .HasColumnName("latitude"); - - b.Property("Longitude") - .HasColumnType("double precision") - .HasColumnName("longitude"); - - b.Property("Timezone") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("timezone") - .HasComment("Смещение часового пояса от UTC"); - - b.HasKey("Id"); - - b.HasIndex("IdDeposit"); - - b.ToTable("t_cluster", t => - { - t.HasComment("Кусты"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Company", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption"); - - b.Property("IdCompanyType") - .HasMaxLength(255) - .HasColumnType("integer") - .HasColumnName("id_company_type") - .HasComment("вид деятельности"); - - b.HasKey("Id"); - - b.HasIndex("IdCompanyType"); - - b.ToTable("t_company"); - - b.HasData( - new - { - Id = 1, - Caption = "ООО \"АСБ\"", - IdCompanyType = 3 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption"); - - b.Property("IsContact") - .HasColumnType("boolean") - .HasColumnName("is_contact"); - - b.Property("Order") - .HasColumnType("integer") - .HasColumnName("order"); - - b.HasKey("Id"); - - b.ToTable("t_company_type"); - - b.HasData( - new - { - Id = 1, - Caption = "Недропользователь", - IsContact = true, - Order = 3 - }, - new - { - Id = 2, - Caption = "Буровой подрядчик", - IsContact = true, - Order = 2 - }, - new - { - Id = 3, - Caption = "Сервис автоматизации бурения", - IsContact = true, - Order = 0 - }, - new - { - Id = 4, - Caption = "Сервис по ГТИ", - IsContact = true, - Order = 6 - }, - new - { - Id = 5, - Caption = "Растворный сервис", - IsContact = true, - Order = 4 - }, - new - { - Id = 6, - Caption = "Сервис по ННБ", - IsContact = true, - Order = 5 - }, - new - { - Id = 7, - Caption = "Служба супервайзинга", - IsContact = false, - Order = 1 - }, - new - { - Id = 9, - Caption = "Сервис по цементированию", - IsContact = true, - Order = 7 - }, - new - { - Id = 11, - Caption = "Дизельный сервис", - IsContact = false, - Order = 9 - }, - new - { - Id = 12, - Caption = "Сервис по обслуживанию верхних силовых приводов", - IsContact = true, - Order = 8 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Contact", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Company") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("company") - .HasComment("компания"); - - b.Property("Email") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("email") - .HasComment("email"); - - b.Property("FullName") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("full_name") - .HasComment("ФИО"); - - b.Property("IdCompanyType") - .HasMaxLength(255) - .HasColumnType("integer") - .HasColumnName("id_company_type") - .HasComment("вид деятельности"); - - b.Property("IdWell") - .HasMaxLength(255) - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("ключ скважины"); - - b.Property("Phone") - .HasMaxLength(50) - .HasColumnType("character varying(50)") - .HasColumnName("phone") - .HasComment("номер телефона"); - - b.Property("Position") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("position") - .HasComment("должность"); - - b.HasKey("Id"); - - b.HasIndex("IdCompanyType"); - - b.HasIndex("IdWell"); - - b.ToTable("t_contact", t => - { - t.HasComment("Контакты"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("date") - .HasColumnName("date") - .HasComment("Дата формирования отчёта"); - - b.Property("DateLastUpdate") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_last_update") - .HasComment("Дата последнего обновления"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("ID скважины"); - - b.Property("SignBlock") - .HasColumnType("jsonb") - .HasColumnName("sign_block") - .HasComment("Подпись"); - - b.Property("SubsystemBlock") - .HasColumnType("jsonb") - .HasColumnName("subsystem_block") - .HasComment("Наработкой подсистем"); - - b.Property("TimeBalanceBlock") - .HasColumnType("jsonb") - .HasColumnName("time_balance_block") - .HasComment("Баланс времени"); - - b.HasKey("Id"); - - b.HasIndex("IdWell", "Date") - .IsUnique(); - - b.ToTable("t_daily_report", t => - { - t.HasComment("Ежедневные отчёты"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AxialLoad") - .HasColumnType("double precision") - .HasColumnName("axial_load") - .HasComment("Фактическая нагрузка"); - - b.Property("AxialLoadLimitMax") - .HasColumnType("double precision") - .HasColumnName("axial_load_limit_max") - .HasComment("Максимально допустимая нагрузка"); - - b.Property("AxialLoadSp") - .HasColumnType("double precision") - .HasColumnName("axial_load_sp") - .HasComment("Ограничение факт. нагрузки"); - - b.Property("BlockSpeedSp") - .HasColumnType("double precision") - .HasColumnName("block_speed_sp") - .HasComment("Ограничение скорости блока"); - - b.Property("DateEnd") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_end") - .HasComment("Дата и время окончания"); - - b.Property("DateStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_start") - .HasComment("Дата и время начала"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина забоя по стволу конечная"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина забоя по стволу начальная"); - - b.Property("EnabledSubsystems") - .HasColumnType("integer") - .HasColumnName("enabled_subsystems") - .HasComment("Флаги подсистем"); - - b.Property("Flow") - .HasColumnType("double precision") - .HasColumnName("flow") - .HasComment("Фактический расход"); - - b.Property("HasOscillation") - .HasColumnType("boolean") - .HasColumnName("has_oscillation") - .HasComment("Наличие или отсутствие осцилляции"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("Название автоопределённой операции"); - - b.Property("IdFeedRegulator") - .HasColumnType("smallint") - .HasColumnName("id_feed_regulator") - .HasComment("Работа при достижении ограничения"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry") - .HasComment("Ключ телеметрии"); - - b.Property("Pressure") - .HasColumnType("double precision") - .HasColumnName("pressure") - .HasComment("Давление"); - - b.Property("PressureIdle") - .HasColumnType("double precision") - .HasColumnName("pressure_idle") - .HasComment("Давление холостого хода"); - - b.Property("PressureSp") - .HasColumnType("double precision") - .HasColumnName("pressure_sp") - .HasComment("Ограничение фактического давления"); - - b.Property("RotorSpeed") - .HasColumnType("double precision") - .HasColumnName("rotor_speed") - .HasComment("Фактическая скорость оборотов ВСП"); - - b.Property("RotorTorque") - .HasColumnType("double precision") - .HasColumnName("rotor_torque") - .HasComment("Фактический момент"); - - b.Property("RotorTorqueLimitMax") - .HasColumnType("double precision") - .HasColumnName("rotor_torque_limit_max") - .HasComment("Максимально допустимый момент"); - - b.Property("RotorTorqueSp") - .HasColumnType("double precision") - .HasColumnName("rotor_torque_sp") - .HasComment("Ограничение факт. момента"); - - b.Property("Speed") - .HasColumnType("double precision") - .HasColumnName("speed") - .HasComment("Скорость бурения"); - - b.HasKey("Id"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdTelemetry"); - - b.ToTable("t_data_saub_stat", t => - { - t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption"); - - b.Property("Latitude") - .HasColumnType("double precision") - .HasColumnName("latitude"); - - b.Property("Longitude") - .HasColumnType("double precision") - .HasColumnName("longitude"); - - b.Property("Timezone") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("timezone") - .HasComment("Смещение часового пояса от UTC"); - - b.HasKey("Id"); - - b.ToTable("t_deposit", t => - { - t.HasComment("Месторождение"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DateEnd") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_end") - .HasComment("Дата начала операции"); - - b.Property("DateStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_start") - .HasComment("Дата начала операции"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина после завершения операции, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина на начало операции, м"); - - b.Property("EnabledSubsystems") - .HasColumnType("integer") - .HasColumnName("enabled_subsystems") - .HasComment("флаги включенных подсистем"); - - b.Property("ExtraData") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("extra_data") - .HasComment("доп. инфо по операции"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("Id категории операции"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdUsersAtStart") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("Id пользователя по телеметрии на момент начала операции"); - - b.Property("Value") - .HasColumnType("double precision") - .HasColumnName("value") - .HasComment("Ключевой показатель операции"); - - b.HasKey("Id"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdTelemetry"); - - b.ToTable("t_detected_operation", t => - { - t.HasComment("автоматически определенные операции по телеметрии"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => - { - b.Property("Id") - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry") - .HasComment("Идентификатор телеметрии"); - - b.Property("DepthStart") - .HasColumnType("real") - .HasColumnName("depthStart") - .HasComment("Глубина начала"); - - b.Property("Params") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("t_drill_test_params") - .HasComment("Параметры записи drill test"); - - b.Property("TimeStampStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("timestamp_start") - .HasComment("Время начала"); - - b.HasKey("Id", "IdTelemetry"); - - b.HasIndex("IdTelemetry"); - - b.ToTable("t_drill_test", t => - { - t.HasComment("Drill_test"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Driller", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("name") - .HasComment("Имя"); - - b.Property("Patronymic") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("patronymic") - .HasComment("Отчество"); - - b.Property("Surname") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("surname") - .HasComment("Фамилия"); - - b.HasKey("Id"); - - b.ToTable("t_driller", t => - { - t.HasComment("Бурильщик"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdFileCategory") - .HasColumnType("integer") - .HasColumnName("id_file_category"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well"); - - b.HasKey("Id"); - - b.HasIndex("IdFileCategory"); - - b.HasIndex("IdWell", "IdFileCategory") - .IsUnique(); - - b.ToTable("t_drilling_program_part", t => - { - t.HasComment("части программ бурения"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Faq", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Answer") - .HasColumnType("text") - .HasColumnName("answer") - .HasComment("Текст ответа"); - - b.Property("CounterQuestion") - .HasColumnType("integer") - .HasColumnName("counter_question") - .HasComment("Счетчик повторений вопроса"); - - b.Property("DateAnswer") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_answer") - .HasComment("Дата ответа"); - - b.Property("DateCreatedQuestion") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_created_question") - .HasComment("Дата создания вопроса"); - - b.Property("DateLastEditedQuestion") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_last_edited_question") - .HasComment("Дата последнего редактирования вопроса"); - - b.Property("IdAuthorAnswer") - .HasColumnType("integer") - .HasColumnName("id_author_answer") - .HasComment("id автора ответа"); - - b.Property("IdAuthorQuestion") - .HasColumnType("integer") - .HasColumnName("id_author_question") - .HasComment("id автора вопроса"); - - b.Property("IdReplacementQuestion") - .HasColumnType("integer") - .HasColumnName("id_replacement_question") - .HasComment("Ключ заменяющего вопроса"); - - b.Property("IsFrequently") - .HasColumnType("boolean") - .HasColumnName("is_frequently") - .HasComment("Частый вопрос"); - - b.Property("Question") - .IsRequired() - .HasColumnType("text") - .HasColumnName("question") - .HasComment("Текст вопроса"); - - b.Property("State") - .HasColumnType("integer") - .HasColumnName("state") - .HasComment("Статус вопроса"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthorAnswer"); - - b.HasIndex("IdAuthorQuestion"); - - b.ToTable("t_faq", t => - { - t.HasComment("вопросы пользователей"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название категории"); - - b.Property("ShortName") - .HasColumnType("text") - .HasColumnName("short_name") - .HasComment("Короткое название категории"); - - b.HasKey("Id"); - - b.ToTable("t_file_category", t => - { - t.HasComment("Категории файлов"); - }); - - b.HasData( - new - { - Id = 1, - Name = "Растворный сервис", - ShortName = "fluidService" - }, - new - { - Id = 2, - Name = "Цементирование", - ShortName = "cement" - }, - new - { - Id = 3, - Name = "ННБ", - ShortName = "nnb" - }, - new - { - Id = 4, - Name = "ГТИ", - ShortName = "gti" - }, - new - { - Id = 5, - Name = "Документы по скважине", - ShortName = "wellDocuments" - }, - new - { - Id = 6, - Name = "Супервайзер", - ShortName = "supervisor" - }, - new - { - Id = 7, - Name = "Мастер", - ShortName = "master" - }, - new - { - Id = 8, - Name = "Долотный сервис", - ShortName = "toolService" - }, - new - { - Id = 9, - Name = "Буровой подрядчик", - ShortName = "drillService" - }, - new - { - Id = 10, - Name = "Сервис по заканчиванию скважины", - ShortName = "closingService" - }, - new - { - Id = 12, - Name = "Рапорт", - ShortName = "report" - }, - new - { - Id = 1000, - Name = "Программа бурения" - }, - new - { - Id = 1001, - Name = "Задание от геологов" - }, - new - { - Id = 1002, - Name = "Профиль ствола скважины (ННБ)" - }, - new - { - Id = 1003, - Name = "Технологические расчеты (ННБ)" - }, - new - { - Id = 1004, - Name = "Долотная программа" - }, - new - { - Id = 1005, - Name = "Программа по растворам" - }, - new - { - Id = 1006, - Name = "Программа геофизических исследований" - }, - new - { - Id = 1007, - Name = "Планы спусков обсадных колонн" - }, - new - { - Id = 1008, - Name = "Программы цементирования обсадных колонн" - }, - new - { - Id = 10000, - Name = "Проект на бурение транспортного и горизонтального участков скважины" - }, - new - { - Id = 10001, - Name = "Программа на бурение транспортного и горизонтального участков скважины" - }, - new - { - Id = 10002, - Name = "Акт о начале бурения" - }, - new - { - Id = 10003, - Name = "План работ спуска и цементирования направления" - }, - new - { - Id = 10004, - Name = "Программа цементирования направления" - }, - new - { - Id = 10005, - Name = "Мера обсадных труб (направление)" - }, - new - { - Id = 10006, - Name = "Акт на выполненные работы по цементированию направления" - }, - new - { - Id = 10007, - Name = "Отчет по цементированию направления (график)" - }, - new - { - Id = 10008, - Name = "План работ спуска и цементирования кондуктора" - }, - new - { - Id = 10009, - Name = "Программа цементирования (кондуктор)" - }, - new - { - Id = 10010, - Name = "Мера обсадных труб (кондуктор)" - }, - new - { - Id = 10011, - Name = "Карта крепления кондуктора" - }, - new - { - Id = 10012, - Name = "Акт на выполненные работы по цементированию кондуктора" - }, - new - { - Id = 10013, - Name = "Отчет по цементированию кондуктора (график)" - }, - new - { - Id = 10014, - Name = "Акт о замере расстояния от стола ротора до муфты кондуктора" - }, - new - { - Id = 10015, - Name = "Акт опресовки цементного кольца за кондуктором" - }, - new - { - Id = 10016, - Name = "Акт опресовки ППГ с глухими плашками совместно с кондуктором" - }, - new - { - Id = 10017, - Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с кондуктором" - }, - new - { - Id = 10018, - Name = "План работ на крепление обсадной колонны (эк. колонна)" - }, - new - { - Id = 10019, - Name = "Программа цементирования (эк. колонна)" - }, - new - { - Id = 10020, - Name = "Мера труб эксплуатационной колонны" - }, - new - { - Id = 10021, - Name = "Карта по креплению скважины (эк. колонна)" - }, - new - { - Id = 10022, - Name = "Акт на установку пружинных центраторов" - }, - new - { - Id = 10023, - Name = "Отчет по цементированию эксплуатационной колонны (график)" - }, - new - { - Id = 10024, - Name = "Акт на выполненные работы по цементированию эксплуатационной колонны" - }, - new - { - Id = 10025, - Name = "Акт об испытании эк. колонны на герметичность (СТОП)" - }, - new - { - Id = 10026, - Name = "Акт опресовки ППГ с глухими плашками совместно с э/колонной" - }, - new - { - Id = 10027, - Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с э/колонной" - }, - new - { - Id = 10028, - Name = "Акт на вскрытие продуктивного пласта" - }, - new - { - Id = 10029, - Name = "Акт замера параметров раствора при бурении горизонтального участка" - }, - new - { - Id = 10030, - Name = "Разрешение на спуск «хвостовика» (телефонограмма)" - }, - new - { - Id = 10031, - Name = "План работ на спуск «хвостовика»" - }, - new - { - Id = 10032, - Name = "Акт готовности бурового и энергетического оборудования к спуску «хвостовика»" - }, - new - { - Id = 10033, - Name = "Акт шаблонировки ствола скважины перед спуском «хвостовика»" - }, - new - { - Id = 10034, - Name = "Мера обсадных труб (хвостовик)" - }, - new - { - Id = 10035, - Name = "Акт выполненных работ по спуску хвостовика с закачкой (нефти, солевого раствора" - }, - new - { - Id = 10036, - Name = "Акт о переводе скважины на тех. воду" - }, - new - { - Id = 10037, - Name = "Акт об окончании бурения" - }, - new - { - Id = 10038, - Name = "Акт на передачу скважины в освоение (КРС)" - }, - new - { - Id = 10039, - Name = "Акт на опресовку межколонного пространства с КРС" - }, - new - { - Id = 10040, - Name = "Акт на сдачу скважины в ЦДНГ" - }, - new - { - Id = 10041, - Name = "Паспорт ОУС (заполняется геологами)" - }, - new - { - Id = 10042, - Name = "Паспорт скважины (заполняется геологами)" - }, - new - { - Id = 10043, - Name = "Фактические данные бурения (вставляются в паспорт скважины)" - }, - new - { - Id = 20000, - Name = "Справки по страницам" - }, - new - { - Id = 30000, - Name = "Инструкции" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Id пользователя, загрузившего файл"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("id категории файла"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("id скважины"); - - b.Property("IsDeleted") - .HasColumnType("boolean") - .HasColumnName("is_deleted") - .HasComment("Удален ли файл"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название файла"); - - b.Property("Size") - .HasColumnType("bigint") - .HasColumnName("file_size") - .HasComment("Размер файла"); - - b.Property("UploadDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdWell"); - - b.ToTable("t_file_info", t => - { - t.HasComment("Файлы всех категорий"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Comment") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("comment") - .HasComment("Комментарий"); - - b.Property("DateCreated") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_created") - .HasComment("Дата совершенного действия"); - - b.Property("IdFile") - .HasColumnType("integer") - .HasColumnName("id_file") - .HasComment("id файла"); - - b.Property("IdMarkType") - .HasColumnType("integer") - .HasColumnName("id_mark_type") - .HasComment("0 - отклонен, 1 - согласован"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("id пользователя"); - - b.Property("IsDeleted") - .HasColumnType("boolean") - .HasColumnName("is_deleted") - .HasComment("Помечен ли файл как удаленный"); - - b.HasKey("Id"); - - b.HasIndex("IdFile"); - - b.HasIndex("IdUser"); - - b.ToTable("t_file_mark", t => - { - t.HasComment("Действия с файлами."); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdRecord") - .HasColumnType("integer") - .HasColumnName("id_record"); - - b.Property("IdItem") - .HasColumnType("integer") - .HasColumnName("id_item"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.Property("Value") - .HasColumnType("real") - .HasColumnName("value"); - - b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - - b.ToTable("t_wits_float", t => - { - t.HasComment("таблица данных ГТИ с типом значения float"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdRecord") - .HasColumnType("integer") - .HasColumnName("id_record"); - - b.Property("IdItem") - .HasColumnType("integer") - .HasColumnName("id_item"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.Property("Value") - .HasColumnType("integer") - .HasColumnName("value"); - - b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - - b.ToTable("t_wits_int", t => - { - t.HasComment("таблица данных ГТИ с типом значения int"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdRecord") - .HasColumnType("integer") - .HasColumnName("id_record"); - - b.Property("IdItem") - .HasColumnType("integer") - .HasColumnName("id_item"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.Property("Value") - .IsRequired() - .HasColumnType("text") - .HasColumnName("value"); - - b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - - b.ToTable("t_wits_string", t => - { - t.HasComment("таблица данных ГТИ с типом значения string"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("Id категории файла"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название файла"); - - b.Property("Size") - .HasColumnType("bigint") - .HasColumnName("file_size") - .HasComment("Размер файла"); - - b.Property("UrlPage") - .IsRequired() - .HasColumnType("text") - .HasColumnName("url_page") - .HasComment("Url страницы"); - - b.HasKey("Id"); - - b.HasIndex("IdCategory"); - - b.ToTable("t_help_page", t => - { - t.HasComment("Справки"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateEnd") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_end"); - - b.Property("DateStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_start"); - - b.Property("DepthEnd") - .HasColumnType("real") - .HasColumnName("depth_end"); - - b.Property("DepthStart") - .HasColumnType("real") - .HasColumnName("depth_start"); - - b.Property("IdFeedRegulator") - .HasColumnType("smallint") - .HasColumnName("id_feed_regulator"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.HasKey("Id"); - - b.HasIndex("IdTelemetry"); - - b.ToTable("t_limiting_parameter", t => - { - t.HasComment("Ограничения по параметрам телеметрии"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateDownload") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_download") - .HasComment("Дата загрузки"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Id автора"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("Id категории файла"); - - b.Property("IdDirectory") - .HasColumnType("integer") - .HasColumnName("id_directory") - .HasComment("Id директории"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdDirectory"); - - b.ToTable("t_manual", t => - { - t.HasComment("Инструкции"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdParent") - .HasColumnType("integer") - .HasColumnName("id_parent") - .HasComment("Id родительской директории"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название"); - - b.HasKey("Id"); - - b.HasIndex("IdParent"); - - b.ToTable("t_manual_directory", t => - { - t.HasComment("Директория для инструкций"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Measure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Data") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("data") - .HasComment("Данные таблицы последних данных"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("id категории"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("id скважины"); - - b.Property("IsDeleted") - .HasColumnType("boolean") - .HasColumnName("is_deleted") - .HasComment("Пометка удаленным"); - - b.Property("Timestamp") - .HasColumnType("timestamp with time zone") - .HasColumnName("timestamp") - .HasComment("время добавления"); - - b.HasKey("Id"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdWell"); - - b.ToTable("t_measure", t => - { - t.HasComment("Таблица c данными для вкладки 'Последние данные'"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название категории"); - - b.Property("ShortName") - .HasColumnType("text") - .HasColumnName("short_name") - .HasComment("Короткое название категории"); - - b.HasKey("Id"); - - b.ToTable("t_measure_category", t => - { - t.HasComment("Категория последних данных"); - }); - - b.HasData( - new - { - Id = 1, - Name = "Показатели бурового раствора", - ShortName = "Раствор" - }, - new - { - Id = 2, - Name = "Шламограмма", - ShortName = "Шламограмма" - }, - new - { - Id = 3, - Name = "ННБ", - ShortName = "ННБ" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdNotificationCategory") - .HasColumnType("integer") - .HasColumnName("id_notification_category") - .HasComment("Id категории уведомления"); - - b.Property("IdTransportType") - .HasColumnType("integer") - .HasColumnName("id_transport_type") - .HasComment("Id типа доставки уведомления"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("Id получателя"); - - b.Property("Message") - .IsRequired() - .HasColumnType("text") - .HasColumnName("message") - .HasComment("Сообщение уведомления"); - - b.Property("ReadDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("read_date") - .HasComment("Дата прочтения уведомления"); - - b.Property("RegistrationDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("registration_date") - .HasComment("Дата регистрации уведомления"); - - b.Property("SentDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("sent_date") - .HasComment("Дата отправки уведомления"); - - b.Property("Title") - .IsRequired() - .HasColumnType("text") - .HasColumnName("title") - .HasComment("Заголовок уведомления"); - - b.HasKey("Id"); - - b.HasIndex("IdNotificationCategory"); - - b.HasIndex("IdUser"); - - b.ToTable("t_notification", t => - { - t.HasComment("Уведомления"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name"); - - b.HasKey("Id"); - - b.ToTable("t_notification_category", t => - { - t.HasComment("Категории уведомлений"); - }); - - b.HasData( - new - { - Id = 1, - Name = "Системные уведомления" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Конечная глубина"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Старотовая глубина"); - - b.Property("IdOperationCategory") - .HasColumnType("integer") - .HasColumnName("id_operation_category") - .HasComment("Ид категории операции"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Ид скважины"); - - b.Property("StandardValue") - .HasColumnType("double precision") - .HasColumnName("standard_value") - .HasComment("Нормативный показатель"); - - b.Property("TargetValue") - .HasColumnType("double precision") - .HasColumnName("target_value") - .HasComment("Целевой показатель"); - - b.HasKey("Id"); - - b.HasIndex("IdOperationCategory"); - - b.HasIndex("IdWell"); - - b.ToTable("t_operationvalue", t => - { - t.HasComment("Целевые/нормативные показатели операции"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("description") - .HasComment("Краткое описание"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("name") - .HasComment("Название"); - - b.HasKey("Id"); - - b.ToTable("t_permission", t => - { - t.HasComment("Разрешения на доступ к данным"); - }); - - b.HasData( - new - { - Id = 100, - Description = "Разрешение удалять админ. Кусты", - Name = "AdminCluster.delete" - }, - new - { - Id = 101, - Description = "Разрешение редактировать админ. Кусты", - Name = "AdminCluster.edit" - }, - new - { - Id = 102, - Description = "Разрешение просматривать админ. Кусты", - Name = "AdminCluster.get" - }, - new - { - Id = 103, - Description = "Разрешение удалять админ. Компании", - Name = "AdminCompany.delete" - }, - new - { - Id = 104, - Description = "Разрешение редактировать админ. Компании", - Name = "AdminCompany.edit" - }, - new - { - Id = 105, - Description = "Разрешение просматривать админ. Компании", - Name = "AdminCompany.get" - }, - new - { - Id = 106, - Description = "Разрешение удалять админ. Типы компаний", - Name = "AdminCompanyType.delete" - }, - new - { - Id = 107, - Description = "Разрешение редактировать админ. Типы компаний", - Name = "AdminCompanyType.edit" - }, - new - { - Id = 108, - Description = "Разрешение просматривать админ. Типы компаний", - Name = "AdminCompanyType.get" - }, - new - { - Id = 109, - Description = "Разрешение удалять админ. Месторождения", - Name = "AdminDeposit.delete" - }, - new - { - Id = 110, - Description = "Разрешение редактировать админ. Месторождения", - Name = "AdminDeposit.edit" - }, - new - { - Id = 111, - Description = "Разрешение просматривать админ. Месторождения", - Name = "AdminDeposit.get" - }, - new - { - Id = 112, - Description = "Разрешение удалять админ. Разрешения", - Name = "AdminPermission.delete" - }, - new - { - Id = 113, - Description = "Разрешение редактировать админ. Разрешения", - Name = "AdminPermission.edit" - }, - new - { - Id = 114, - Description = "Разрешение просматривать админ. Разрешения", - Name = "AdminPermission.get" - }, - new - { - Id = 115, - Description = "Разрешение удалять админ. Телеметрию", - Name = "AdminTelemetry.delete" - }, - new - { - Id = 116, - Description = "Разрешение редактировать админ. Телеметрию", - Name = "AdminTelemetry.edit" - }, - new - { - Id = 117, - Description = "Разрешение просматривать админ. Телеметрию", - Name = "AdminTelemetry.get" - }, - new - { - Id = 118, - Description = "Разрешение удалять админ. Пользователей", - Name = "AdminUser.delete" - }, - new - { - Id = 119, - Description = "Разрешение редактировать админ. Пользователей", - Name = "AdminUser.edit" - }, - new - { - Id = 120, - Description = "Разрешение просматривать админ. Пользователей", - Name = "AdminUser.get" - }, - new - { - Id = 121, - Description = "Разрешение удалять админ. Роли пользователей", - Name = "AdminUserRole.delete" - }, - new - { - Id = 122, - Description = "Разрешение редактировать админ. Роли пользователей", - Name = "AdminUserRole.edit" - }, - new - { - Id = 123, - Description = "Разрешение просматривать админ. Роли пользователей", - Name = "AdminUserRole.get" - }, - new - { - Id = 124, - Description = "Разрешение удалять админ. Скважины", - Name = "AdminWell.delete" - }, - new - { - Id = 125, - Description = "Разрешение редактировать админ. Скважины", - Name = "AdminWell.edit" - }, - new - { - Id = 126, - Description = "Разрешение просматривать админ. Скважины", - Name = "AdminWell.get" - }, - new - { - Id = 127, - Description = "Разрешение удалять админ. Подсистемы", - Name = "AdminSubsytem.delete" - }, - new - { - Id = 128, - Description = "Разрешение редактировать админ. Подсистемы", - Name = "AdminSubsytem.edit" - }, - new - { - Id = 129, - Description = "Разрешение просматривать админ. Подсистемы", - Name = "AdminSubsytem.get" - }, - new - { - Id = 200, - Description = "Разрешение редактировать 0", - Name = "Auth.edit" - }, - new - { - Id = 201, - Description = "Разрешение просматривать 0", - Name = "Auth.get" - }, - new - { - Id = 202, - Description = "Разрешение просматривать Кусты", - Name = "Cluster.get" - }, - new - { - Id = 203, - Description = "Разрешение просматривать Месторождения", - Name = "Deposit.get" - }, - new - { - Id = 204, - Description = "Разрешение удалять РТК", - Name = "DrillFlowChart.delete" - }, - new - { - Id = 205, - Description = "Разрешение редактировать РТК", - Name = "DrillFlowChart.edit" - }, - new - { - Id = 206, - Description = "Разрешение просматривать РТК", - Name = "DrillFlowChart.get" - }, - new - { - Id = 207, - Description = "Разрешение удалять Программу бурения", - Name = "DrillingProgram.delete" - }, - new - { - Id = 208, - Description = "Разрешение редактировать Программу бурения", - Name = "DrillingProgram.edit" - }, - new - { - Id = 209, - Description = "Разрешение просматривать Программу бурения", - Name = "DrillingProgram.get" - }, - new - { - Id = 210, - Description = "Разрешение удалять Режимы бурения", - Name = "DrillParams.delete" - }, - new - { - Id = 211, - Description = "Разрешение редактировать Режимы бурения", - Name = "DrillParams.edit" - }, - new - { - Id = 212, - Description = "Разрешение просматривать Режимы бурения", - Name = "DrillParams.get" - }, - new - { - Id = 213, - Description = "Разрешение удалять Файлы", - Name = "File.delete" - }, - new - { - Id = 214, - Description = "Разрешение редактировать Файлы", - Name = "File.edit" - }, - new - { - Id = 215, - Description = "Разрешение просматривать Файлы", - Name = "File.get" - }, - new - { - Id = 216, - Description = "Разрешение удалять Измерения", - Name = "Measure.delete" - }, - new - { - Id = 217, - Description = "Разрешение редактировать Измерения", - Name = "Measure.edit" - }, - new - { - Id = 218, - Description = "Разрешение просматривать Измерения", - Name = "Measure.get" - }, - new - { - Id = 219, - Description = "Разрешение просматривать Сообщения телеметрии", - Name = "Message.get" - }, - new - { - Id = 220, - Description = "Разрешение просматривать Статистику по операциям", - Name = "OperationStat.get" - }, - new - { - Id = 221, - Description = "Разрешение редактировать Рапорта", - Name = "Report.edit" - }, - new - { - Id = 222, - Description = "Разрешение просматривать Рапорта", - Name = "Report.get" - }, - new - { - Id = 223, - Description = "Разрешение просматривать админ. Системная статистика", - Name = "RequestTracker.get" - }, - new - { - Id = 224, - Description = "Разрешение удалять Рекомендации уставок", - Name = "Setpoints.delete" - }, - new - { - Id = 225, - Description = "Разрешение редактировать Рекомендации уставок", - Name = "Setpoints.edit" - }, - new - { - Id = 226, - Description = "Разрешение просматривать Рекомендации уставок", - Name = "Setpoints.get" - }, - new - { - Id = 227, - Description = "Разрешение редактировать Телеметрии", - Name = "Telemetry.edit" - }, - new - { - Id = 228, - Description = "Разрешение просматривать Анализ телеметрии", - Name = "TelemetryAnalytics.get" - }, - new - { - Id = 229, - Description = "Разрешение редактировать Данные телеметрии по САУБ", - Name = "TelemetryDataSaub.edit" - }, - new - { - Id = 230, - Description = "Разрешение просматривать Данные телеметрии по САУБ", - Name = "TelemetryDataSaub.get" - }, - new - { - Id = 231, - Description = "Разрешение редактировать Данные телеметрии по SpinMaster", - Name = "TelemetryDataSpin.edit" - }, - new - { - Id = 232, - Description = "Разрешение просматривать Данные телеметрии по SpinMaster", - Name = "TelemetryDataSpin.get" - }, - new - { - Id = 233, - Description = "Разрешение редактировать Скважины", - Name = "Well.edit" - }, - new - { - Id = 234, - Description = "Разрешение просматривать Скважины", - Name = "Well.get" - }, - new - { - Id = 235, - Description = "Разрешение редактировать Композитные скважины", - Name = "WellComposite.edit" - }, - new - { - Id = 236, - Description = "Разрешение просматривать Композитные скважины", - Name = "WellComposite.get" - }, - new - { - Id = 237, - Description = "Разрешение удалять Операции по скважинам", - Name = "WellOperation.delete" - }, - new - { - Id = 238, - Description = "Разрешение редактировать Операции по скважинам", - Name = "WellOperation.edit" - }, - new - { - Id = 239, - Description = "Разрешение просматривать Операции по скважинам", - Name = "WellOperation.get" - }, - new - { - Id = 240, - Description = "Разрешение редактировать Файлы категории 1 (Растворный сервис)", - Name = "File.edit1" - }, - new - { - Id = 241, - Description = "Разрешение редактировать Файлы категории 2 (Цементирование)", - Name = "File.edit2" - }, - new - { - Id = 242, - Description = "Разрешение редактировать Файлы категории 3 (ННБ)", - Name = "File.edit3" - }, - new - { - Id = 243, - Description = "Разрешение редактировать Файлы категории 4 (ГТИ)", - Name = "File.edit4" - }, - new - { - Id = 244, - Description = "Разрешение редактировать Файлы категории 5 (Документы по скважине)", - Name = "File.edit5" - }, - new - { - Id = 245, - Description = "Разрешение редактировать Файлы категории 6 (Супервайзер)", - Name = "File.edit6" - }, - new - { - Id = 246, - Description = "Разрешение редактировать Файлы категории 7 (Мастер)", - Name = "File.edit7" - }, - new - { - Id = 247, - Description = "Разрешение редактировать Файлы категории 8 (Долотный сервис)", - Name = "File.edit8" - }, - new - { - Id = 248, - Description = "Разрешение редактировать Файлы категории 9 (Буровой подрядчик)", - Name = "File.edit9" - }, - new - { - Id = 249, - Description = "Разрешение редактировать Файлы категории 10 (Сервис по заканчиванию скважины)", - Name = "File.edit10" - }, - new - { - Id = 250, - Description = "Разрешение редактировать Файлы категории 11 (Рапорт)", - Name = "File.edit11" - }, - new - { - Id = 251, - Description = "Разрешение редактировать Файлы категории 12", - Name = "File.edit12" - }, - new - { - Id = 252, - Description = "Разрешение редактировать Файлы категории 12", - Name = "File.edit13" - }, - new - { - Id = 253, - Description = "Разрешение редактировать Файлы категории 13", - Name = "File.edit14" - }, - new - { - Id = 254, - Description = "Разрешение редактировать Файлы категории 14", - Name = "File.edit15" - }, - new - { - Id = 255, - Description = "Разрешение редактировать Файлы категории 15", - Name = "File.edit16" - }, - new - { - Id = 256, - Description = "Разрешение редактировать Файлы категории 16", - Name = "File.edit17" - }, - new - { - Id = 257, - Description = "Разрешение редактировать Файлы категории 17", - Name = "File.edit18" - }, - new - { - Id = 258, - Description = "Разрешение редактировать Файлы категории 18", - Name = "File.edit19" - }, - new - { - Id = 259, - Description = "Разрешение редактировать Файлы категории 19", - Name = "File.edit20" - }, - new - { - Id = 260, - Description = "Разрешение редактировать Файлы категории 20", - Name = "File.edit21" - }, - new - { - Id = 261, - Description = "Разрешение редактировать Файлы категории 21", - Name = "File.edit22" - }, - new - { - Id = 262, - Description = "Разрешение редактировать Файлы категории 22", - Name = "File.edit23" - }, - new - { - Id = 263, - Description = "Разрешение редактировать Файлы категории 23", - Name = "File.edit24" - }, - new - { - Id = 264, - Description = "Разрешение редактировать Файлы категории 24", - Name = "File.edit25" - }, - new - { - Id = 265, - Description = "Разрешение редактировать Файлы категории 25", - Name = "File.edit26" - }, - new - { - Id = 266, - Description = "Разрешение редактировать Файлы категории 26", - Name = "File.edit27" - }, - new - { - Id = 267, - Description = "Разрешение редактировать Файлы категории 27", - Name = "File.edit28" - }, - new - { - Id = 268, - Description = "Разрешение редактировать Файлы категории 28", - Name = "File.edit29" - }, - new - { - Id = 269, - Description = "Разрешение редактировать Файлы категории 29", - Name = "File.edit30" - }, - new - { - Id = 380, - Description = "Разрешение просматривать список бурильщиков", - Name = "Driller.get" - }, - new - { - Id = 381, - Description = "Разрешение редактировать бурильщика", - Name = "Driller.edit" - }, - new - { - Id = 382, - Description = "Разрешение удалять бурильщик", - Name = "Driller.delete" - }, - new - { - Id = 383, - Description = "Разрешение просматривать графики бурильщиков", - Name = "Schedule.get" - }, - new - { - Id = 384, - Description = "Разрешение редактировать график бурильщика", - Name = "Schedule.edit" - }, - new - { - Id = 385, - Description = "Разрешение удалять график бурильщика", - Name = "Schedule.delete" - }, - new - { - Id = 386, - Description = "Разрешение просматривать суточный рапорт", - Name = "DailyReport.get" - }, - new - { - Id = 387, - Description = "Разрешение редактировать суточный рапорт", - Name = "DailyReport.edit" - }, - new - { - Id = 388, - Description = "Разрешение просматривать авто. определенные операции", - Name = "DetectedOperation.get" - }, - new - { - Id = 389, - Description = "Разрешение просматривать целевые значения", - Name = "OperationValue.get" - }, - new - { - Id = 390, - Description = "Разрешение редактировать целевые значения", - Name = "OperationValue.edit" - }, - new - { - Id = 391, - Description = "Разрешение удалять целевые значения", - Name = "OperationValue.delete" - }, - new - { - Id = 400, - Description = "Разрешение просматривать инфо по wits параметрам", - Name = "WitsInfo.get" - }, - new - { - Id = 401, - Description = "Разрешение просматривать WITS record 1", - Name = "WitsRecord1.get" - }, - new - { - Id = 407, - Description = "Разрешение просматривать WITS record 7", - Name = "WitsRecord7.get" - }, - new - { - Id = 408, - Description = "Разрешение просматривать WITS record 8", - Name = "WitsRecord8.get" - }, - new - { - Id = 450, - Description = "Разрешение просматривать WITS record 50", - Name = "WitsRecord50.get" - }, - new - { - Id = 460, - Description = "Разрешение просматривать WITS record 60", - Name = "WitsRecord60.get" - }, - new - { - Id = 461, - Description = "Разрешение просматривать WITS record 61", - Name = "WitsRecord61.get" - }, - new - { - Id = 500, - Description = "Разрешение удалять Категорий документов файлов", - Name = "FileCategory.delete" - }, - new - { - Id = 501, - Description = "Разрешение редактировать Категорий документов файлов", - Name = "FileCategory.edit" - }, - new - { - Id = 502, - Description = "Разрешение просматривать Категорий документов файлов", - Name = "FileCategory.get" - }, - new - { - Id = 503, - Description = "Разрешение удалять Дело скважины", - Name = "WellFinalDocuments.delete" - }, - new - { - Id = 504, - Description = "Разрешение редактировать Дело скважины", - Name = "WellFinalDocuments.edit" - }, - new - { - Id = 505, - Description = "Разрешение просматривать Дело скважины", - Name = "WellFinalDocuments.get" - }, - new - { - Id = 506, - Description = "Разрешение редактировать ответственных за загрузку файла Дело скважины", - Name = "WellFinalDocuments.editPublisher" - }, - new - { - Id = 507, - Description = "Разрешение просматривать наработка талевого каната", - Name = "TelemetryWirelineRunOut.get" - }, - new - { - Id = 510, - Description = "Разрешение просматривать плановая траектория", - Name = "PlannedTrajectory.get" - }, - new - { - Id = 511, - Description = "Разрешение редактировать плановая траектория", - Name = "PlannedTrajectory.edit" - }, - new - { - Id = 512, - Description = "Разрешение удалять плановая траектория", - Name = "PlannedTrajectory.delete" - }, - new - { - Id = 516, - Description = "Разрешение просматривать статистику вопросов", - Name = "FaqStatistics.get" - }, - new - { - Id = 517, - Description = "Разрешение редактировать вопрос", - Name = "FaqStatistics.edit" - }, - new - { - Id = 518, - Description = "Разрешение удалять вопрос", - Name = "FaqStatistics.delete" - }, - new - { - Id = 519, - Description = "Разрешение просматривать список контактов", - Name = "WellContact.get" - }, - new - { - Id = 520, - Description = "Разрешение редактировать список контактов", - Name = "WellContact.edit" - }, - new - { - Id = 521, - Description = "Разрешить создание справок по страницам", - Name = "HelpPage.edit" - }, - new - { - Id = 522, - Description = "Разрешить удаление всех настроек пользователя", - Name = "UserSettings.delete" - }, - new - { - Id = 523, - Description = "Разрешить редактирование инструкций", - Name = "Manual.edit" - }, - new - { - Id = 524, - Description = "Разрешить получение инструкций", - Name = "Manual.get" - }, - new - { - Id = 525, - Description = "Разрешение на редактирование РТК у завершенной скважины", - Name = "ProcessMap.editCompletedWell" - }, - new - { - Id = 526, - Description = "Разрешение на редактирование операций у завершенной скважины", - Name = "WellOperation.editCompletedWell" - }, - new - { - Id = 527, - Description = "Разрешение на удаление инструкций", - Name = "Manual.delete" - }, - new - { - Id = 528, - Description = "Разрешение на удаление контакта", - Name = "WellContact.delete" - }, - new - { - Id = 530, - Description = "Разрешение на редактирование плановой конструкции скважины", - Name = "WellSectionPlan.edit" - }, - new - { - Id = 531, - Description = "Разрешение на удаление плановой конструкции скважины", - Name = "WellSectionPlan.delete" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MinRPM") - .HasColumnType("double precision") - .HasColumnName("min_RPM") - .HasComment("Минимальные обороты ВСП, об/мин"); - - b.Property("MinСonsumptionStartingFlowRate") - .HasColumnType("double precision") - .HasColumnName("min_consumption_starting_flow_rate") - .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("TopDriveTorqueLimitMax") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque_limit_max") - .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_anticrash_rotation", t => - { - t.HasComment("Противоаварийное вращение"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenit_angle") - .HasComment("Зенитный угол, градусы"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_autohold", t => - { - t.HasComment("Автоудержание"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("StickSlip") - .HasColumnType("double precision") - .HasColumnName("stickslip") - .HasComment("StickSlip"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_damper", t => - { - t.HasComment("Демпфер"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdAutostartOrWarning") - .HasColumnType("boolean") - .HasColumnName("id_autostart_or_warning") - .HasComment("Автозапуск или Предупреждение"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("LengthStep") - .HasColumnType("double precision") - .HasColumnName("length_step") - .HasComment("Величина проходки шага, м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("NumberOfStepsBit") - .HasColumnType("integer") - .HasColumnName("number_of_steps_bit") - .HasComment("Количество шагов по нагрузке"); - - b.Property("NumberOfStepsRPM") - .HasColumnType("integer") - .HasColumnName("number_of_steps_rpm") - .HasComment("Количество шагов оборотов на ВСП, шт."); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("RevolutionPerMinuteMin") - .HasColumnType("integer") - .HasColumnName("revolution_per_minute_min") - .HasComment("Минимальные обороты на ВСП, об/мин."); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_drilltest", t => - { - t.HasComment("Дрилтест"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Buckling") - .HasColumnType("double precision") - .HasColumnName("buckling") - .HasComment("Складывание, м"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenit_angle") - .HasComment("Зенитный угол, градусы"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_jarr_drill_tool", t => - { - t.HasComment("Встряхивание бурового инструмента"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Mode") - .HasColumnType("boolean") - .HasColumnName("id_mode") - .HasComment("Режим Авто/Руч"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("OptimalOscillationAngle") - .HasColumnType("double precision") - .HasColumnName("optimal_oscillation_angle") - .HasComment("Оптимальный угол осцилляции, градусы"); - - b.Property("RPMLeft") - .HasColumnType("double precision") - .HasColumnName("RPM​_left") - .HasComment("Скорость влево, об/мин"); - - b.Property("RPMRight") - .HasColumnType("double precision") - .HasColumnName("RPM​_right") - .HasComment("Скорость вправо, об/мин"); - - b.Property("TorqueLimitLeft") - .HasColumnType("double precision") - .HasColumnName("torque_limit_left") - .HasComment("Ограничение момента влево, кН*м"); - - b.Property("TorqueLimitRight") - .HasColumnType("double precision") - .HasColumnName("torque_limit_right") - .HasComment("Ограничение момента вправо, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_oscillation", t => - { - t.HasComment("Осцилляция"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AxialVibrations") - .HasColumnType("double precision") - .HasColumnName("axial_vibrations") - .HasComment("Осевые вибрации"); - - b.Property("CombinedVibrations") - .HasColumnType("double precision") - .HasColumnName("combined_vibrations") - .HasComment("Комбинированные вибрации"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdAutostartOrWarning") - .HasColumnType("boolean") - .HasColumnName("id_autostart_or_warning") - .HasComment("Автозапуск или Предупреждение"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("RevolutionPerMinuteMin") - .HasColumnType("integer") - .HasColumnName("revolution_per_minute_min") - .HasComment("Минимальные обороты на ВСП, об/мин."); - - b.Property("StickSlip") - .HasColumnType("double precision") - .HasColumnName("stickslip") - .HasComment("StickSlip"); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.Property("Whirl") - .HasColumnType("double precision") - .HasColumnName("whirl") - .HasComment("Whirl"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_functions_shock_test", t => - { - t.HasComment("ShockTest"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("SignalWaitingTime") - .HasColumnType("double precision") - .HasColumnName("signal_waiting_time") - .HasComment("Время ожидания выхода сигнала с ТМС, сек."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_static_measure", t => - { - t.HasComment("Выход статического замера"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdDeclineSocketColumn") - .HasColumnType("boolean") - .HasColumnName("id_decline_socket_column") - .HasComment("СПУСК ОК Да/Нет"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_upgrade_no_load", t => - { - t.HasComment("Обновление холостого хода"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Скорость, м/ч., Вверх"); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_oscillation_angels", t => - { - t.HasComment("Определение углов осцилляции"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressureMin") - .HasColumnType("double precision") - .HasColumnName("differential_pressure_min") - .HasComment("Перепад давления минимальный, атм"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("TimeLoadCapacityMin") - .HasColumnType("double precision") - .HasColumnName("time_load_capacity_min") - .HasComment("Время выработки минимальное, сек"); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_load_capacity", t => - { - t.HasComment("РТК выработка нагрузки"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("StopOffTheBottom") - .HasColumnType("double precision") - .HasColumnName("stop_off_the_bottom") - .HasComment("Остановка над забоем, м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1"); - - b.HasIndex("IdPrevious") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2"); - - b.HasIndex("IdWell") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3"); - - b.HasIndex("IdWellSectionType") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4"); - - b.ToTable("t_process_map_plan_operation_positioning_off_the_bottom", t => - { - t.HasComment("Позиционирование над забоем"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал проработки, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_ repetitions") - .HasComment("Проработка 1, Количество повторений, шт."); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_down") - .HasComment("Проработка 1, Обороты, об/мин., Вниз"); - - b.Property("Reaming1RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_up") - .HasComment("Проработка 1, Обороты, об/мин., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming2FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_down") - .HasComment("Проработка 2, Расход, л/с., Вниз"); - - b.Property("Reaming2FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_up") - .HasComment("Проработка 2, Расход, л/с., Вверх"); - - b.Property("Reaming2Interval") - .HasColumnType("double precision") - .HasColumnName("reaming2_interval") - .HasComment("Проработка 2, Интервал проработки, м."); - - b.Property("Reaming2NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming2_number_of_repetitions") - .HasComment("Проработка 2, Количество повторений, шт."); - - b.Property("Reaming2ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_down") - .HasComment("Проработка 2, Скорость, м/ч., Вниз"); - - b.Property("Reaming2ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_up") - .HasComment("Проработка 2, Скорость, м/ч., Вверх"); - - b.Property("Reaming2RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_down") - .HasComment("Проработка 2, Обороты, об/мин., Вниз"); - - b.Property("Reaming2RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_up") - .HasComment("Проработка 2, Обороты, об/мин., Вверх"); - - b.Property("Reaming2StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming2_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming3FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_down") - .HasComment("Проработка 3, Расход, л/с., Вниз"); - - b.Property("Reaming3FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_up") - .HasComment("Проработка 3, Расход, л/с., Вверх"); - - b.Property("Reaming3Interval") - .HasColumnType("double precision") - .HasColumnName("reaming3_interval") - .HasComment("Проработка 3, Интервал проработки, м."); - - b.Property("Reaming3NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming3_number_of_ repetitions") - .HasComment("Проработка 3, Количество повторений, шт."); - - b.Property("Reaming3ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_down") - .HasComment("Проработка 3, Скорость, м/ч., Вниз"); - - b.Property("Reaming3ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_up") - .HasComment("Проработка 3, Скорость, м/ч., Вверх"); - - b.Property("Reaming3RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_down") - .HasComment("Проработка 3, Обороты, об/мин., Вниз"); - - b.Property("Reaming3RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_up") - .HasComment("Проработка 3, Обороты, об/мин., Вверх"); - - b.Property("Reaming3StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming3_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_reaming_rotor", t => - { - t.HasComment("РТК проработка ротор"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал проработки, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_repetitions") - .HasComment("Проработка 1, Количество повторений, шт."); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_down") - .HasComment("Проработка 1, Обороты, об/мин., Вниз"); - - b.Property("Reaming1RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_up") - .HasComment("Проработка 1, Обороты, об/мин., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming2FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_down") - .HasComment("Проработка 2, Расход, л/с., Вниз"); - - b.Property("Reaming2FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_up") - .HasComment("Проработка 2, Расход, л/с., Вверх"); - - b.Property("Reaming2Interval") - .HasColumnType("double precision") - .HasColumnName("reaming2_interval") - .HasComment("Проработка 2, Интервал проработки, м."); - - b.Property("Reaming2NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming2_number_of_ repetitions") - .HasComment("Проработка 2, Количество повторений, шт."); - - b.Property("Reaming2ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_down") - .HasComment("Проработка 2, Скорость, м/ч., Вниз"); - - b.Property("Reaming2ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_up") - .HasComment("Проработка 2, Скорость, м/ч., Вверх"); - - b.Property("Reaming2RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_down") - .HasComment("Проработка 2, Обороты, об/мин., Вниз"); - - b.Property("Reaming2RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_up") - .HasComment("Проработка 2, Обороты, об/мин., Вверх"); - - b.Property("Reaming2StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming2_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming3FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_down") - .HasComment("Проработка 3, Расход, л/с., Вниз"); - - b.Property("Reaming3FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_up") - .HasComment("Проработка 3, Расход, л/с., Вверх"); - - b.Property("Reaming3Interval") - .HasColumnType("double precision") - .HasColumnName("reaming3_interval") - .HasComment("Проработка 3, Интервал проработки, м."); - - b.Property("Reaming3NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming3_number_of_ repetitions") - .HasComment("Проработка 3, Количество повторений, шт."); - - b.Property("Reaming3ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_down") - .HasComment("Проработка 3, Скорость, м/ч., Вниз"); - - b.Property("Reaming3ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_up") - .HasComment("Проработка 3, Скорость, м/ч., Вверх"); - - b.Property("Reaming3RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_down") - .HasComment("Проработка 3, Обороты, об/мин., Вниз"); - - b.Property("Reaming3RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_up") - .HasComment("Проработка 3, Обороты, об/мин., Вверх"); - - b.Property("Reaming3StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming3_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_reaming_slide", t => - { - t.HasComment("РТК проработка слайд"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Comment") - .HasColumnType("double precision") - .HasColumnName("сomment") - .HasComment("Комментарий"); - - b.Property("ConsumptionFlowRate") - .HasColumnType("double precision") - .HasColumnName("consumption_flow_rate") - .HasComment("Выход на плановый расход, расход, л/с"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("ExitTimeConsumption") - .HasColumnType("double precision") - .HasColumnName("exit_time_consumption") - .HasComment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("pressure_limit_Max") - .HasComment("Максимально допустимое давление, атм."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_switch_mode", t => - { - t.HasComment("Выход на режим"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("Duration") - .HasColumnType("double precision") - .HasColumnName("duration") - .HasComment("Продолжительность, сек."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ResidualPressureLimit") - .HasColumnType("double precision") - .HasColumnName("residual_pressure_limit") - .HasComment("Лимит остаточного давления, атм."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_switch_pump", t => - { - t.HasComment("Выключение насоса"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал расхаживания, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_repetitions") - .HasComment("Проработка 1, Количество расхаживаний, шт"); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.Property("Spring") - .HasColumnType("double precision") - .HasColumnName("spring") - .HasComment("Пружина, град "); - - b.Property("planTF") - .HasColumnType("double precision") - .HasColumnName("plan_tf") - .HasComment("План TF, град"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_tf_orientation", t => - { - t.HasComment("Выставление"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Pressure") - .HasColumnType("double precision") - .HasColumnName("pressure") - .HasComment("Давление, атм"); - - b.Property("Repeats") - .HasColumnType("double precision") - .HasColumnName("repeats") - .HasComment("Количество повторений"); - - b.Property("SetpointDrag") - .HasColumnType("double precision") - .HasColumnName("setpoint_drag") - .HasComment("Уставка зятяжки, т"); - - b.Property("SetpointTight") - .HasColumnType("double precision") - .HasColumnName("setpoint_tight") - .HasComment("Уставка посадки, т"); - - b.Property("SpeedDownward") - .HasColumnType("double precision") - .HasColumnName("speed_downward") - .HasComment("Скорость спуска, м/ч"); - - b.Property("SpeedUpward") - .HasColumnType("double precision") - .HasColumnName("speed_upward") - .HasComment("Скорость подъёма, м/ч"); - - b.Property("SpinDownward") - .HasColumnType("double precision") - .HasColumnName("spin_downward") - .HasComment("Вращение при движении вниз, об/мин"); - - b.Property("SpinUpward") - .HasColumnType("double precision") - .HasColumnName("spin_upward") - .HasComment("Вращение при движении вверх, об/мин"); - - b.Property("Torque") - .HasColumnType("double precision") - .HasColumnName("torque") - .HasComment("Момент, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_ream", t => - { - t.HasComment("РТК проработка скважины"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм. Уставка"); - - b.Property("DifferentialPressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("differential_pressure_limit_max") - .HasComment("Перепад давления, атм. Ограничение"); - - b.Property("FlowRate") - .HasColumnType("double precision") - .HasColumnName("flow_rate") - .HasComment("Расход л/с. Уставка"); - - b.Property("FlowRateLimitMax") - .HasColumnType("double precision") - .HasColumnName("flow_rate_limit_max") - .HasComment("Расход л/с. Ограничение"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("pressure_limit_max") - .HasComment("Максимально допустимое давление, атм"); - - b.Property("RevolutionsPerMinute") - .HasColumnType("double precision") - .HasColumnName("revolution_per_minute") - .HasComment("Обороты на ВСП, об/мин. Уставка"); - - b.Property("RevolutionsPerMinuteLimitMax") - .HasColumnType("double precision") - .HasColumnName("revolutions_per_minute_limit_max") - .HasComment("Обороты на ВСП, об/мин. Ограничение"); - - b.Property("RopLimitMax") - .HasColumnType("double precision") - .HasColumnName("rop_limit_max") - .HasComment("Максимально допустимая скорость, м/ч"); - - b.Property("TopDriveTorque") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque") - .HasComment("Момент на ВСП, кН*м. Уставка"); - - b.Property("TopDriveTorqueLimit") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque_limit_max") - .HasComment("Момент на ВСП, кН*м. Ограничение"); - - b.Property("WeightOnBit") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit") - .HasComment("Нагрузка, т. Уставка"); - - b.Property("WeightOnBitLimitMax") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_limit_max") - .HasComment("Нагрузка, т. Ограничение"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_rotor", t => - { - t.HasComment("РТК план бурение ротор"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм. Уставка"); - - b.Property("DifferentialPressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("differential_pressure_limit_max") - .HasComment("Перепад давления, атм. Ограничение"); - - b.Property("FlowRate") - .HasColumnType("double precision") - .HasColumnName("flow_rate") - .HasComment("Расход л/с. Уставка"); - - b.Property("FlowRateLimitMax") - .HasColumnType("double precision") - .HasColumnName("flow_rate_limit_max") - .HasComment("Расход л/с. Ограничение"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("pressure_limit_max") - .HasComment("Максимально допустимое давление, атм"); - - b.Property("RopLimitMax") - .HasColumnType("double precision") - .HasColumnName("rop_limit_max") - .HasComment("Максимально допустимая скорость, м/ч"); - - b.Property("Spring") - .HasColumnType("double precision") - .HasColumnName("spring") - .HasComment("Расчётная пружина, градус"); - - b.Property("ToolBuckling") - .HasColumnType("double precision") - .HasColumnName("tool_buckling") - .HasComment("Складывание инструмента, м"); - - b.Property("WeightOnBit") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit") - .HasComment("Нагрузка, т. Уставка"); - - b.Property("WeightOnBitLimitMax") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_limit_max") - .HasComment("Нагрузка, т. Ограничение"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_slide", t => - { - t.HasComment("РТК план бурение слайд"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MeasurementRecordingTime") - .HasColumnType("double precision") - .HasColumnName("measurement_recording_time") - .HasComment("Время записи замера, сек"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_survey", t => - { - t.HasComment("Запись статического замера"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => - { - b.Property("IdCompany") - .HasColumnType("integer") - .HasColumnName("id_company"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well"); - - b.HasKey("IdCompany", "IdWell"); - - b.HasIndex("IdWell"); - - b.ToTable("t_relation_company_well", t => - { - t.HasComment("отношение скважин и компаний"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => - { - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.HasKey("IdWell", "IdUser"); - - b.HasIndex("IdUser"); - - b.ToTable("t_relation_contact_well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => - { - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.Property("IdDrillingProgramPart") - .HasColumnType("integer") - .HasColumnName("id_drilling_program_part"); - - b.Property("IdUserRole") - .HasColumnType("integer") - .HasColumnName("id_role") - .HasComment("1 - publisher, 2 - approver"); - - b.HasKey("IdUser", "IdDrillingProgramPart") - .HasName("t_relation_user_drilling_program_part_pk"); - - b.HasIndex("IdDrillingProgramPart"); - - b.ToTable("t_relation_user_drilling_program_part", t => - { - t.HasComment("Отношение пользователей и частей ПБ"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => - { - b.Property("IdUserRole") - .HasColumnType("integer") - .HasColumnName("id_user_role"); - - b.Property("IdPermission") - .HasColumnType("integer") - .HasColumnName("id_permission"); - - b.HasKey("IdUserRole", "IdPermission"); - - b.HasIndex("IdPermission"); - - b.ToTable("t_relation_user_role_permission", t => - { - t.HasComment("Отношение ролей пользователей и разрешений доступа"); - }); - - b.HasData( - new - { - IdUserRole = 1100, - IdPermission = 102 - }, - new - { - IdUserRole = 1100, - IdPermission = 111 - }, - new - { - IdUserRole = 1101, - IdPermission = 101 - }, - new - { - IdUserRole = 1101, - IdPermission = 100 - }, - new - { - IdUserRole = 1102, - IdPermission = 105 - }, - new - { - IdUserRole = 1102, - IdPermission = 108 - }, - new - { - IdUserRole = 1103, - IdPermission = 104 - }, - new - { - IdUserRole = 1103, - IdPermission = 103 - }, - new - { - IdUserRole = 1104, - IdPermission = 108 - }, - new - { - IdUserRole = 1105, - IdPermission = 107 - }, - new - { - IdUserRole = 1105, - IdPermission = 106 - }, - new - { - IdUserRole = 1106, - IdPermission = 111 - }, - new - { - IdUserRole = 1107, - IdPermission = 110 - }, - new - { - IdUserRole = 1107, - IdPermission = 109 - }, - new - { - IdUserRole = 1108, - IdPermission = 114 - }, - new - { - IdUserRole = 1109, - IdPermission = 113 - }, - new - { - IdUserRole = 1109, - IdPermission = 112 - }, - new - { - IdUserRole = 1110, - IdPermission = 123 - }, - new - { - IdUserRole = 1110, - IdPermission = 114 - }, - new - { - IdUserRole = 1111, - IdPermission = 122 - }, - new - { - IdUserRole = 1111, - IdPermission = 121 - }, - new - { - IdUserRole = 1112, - IdPermission = 117 - }, - new - { - IdUserRole = 1113, - IdPermission = 105 - }, - new - { - IdUserRole = 1113, - IdPermission = 123 - }, - new - { - IdUserRole = 1113, - IdPermission = 120 - }, - new - { - IdUserRole = 1114, - IdPermission = 119 - }, - new - { - IdUserRole = 1114, - IdPermission = 118 - }, - new - { - IdUserRole = 1114, - IdPermission = 200 - }, - new - { - IdUserRole = 1115, - IdPermission = 223 - }, - new - { - IdUserRole = 1116, - IdPermission = 105 - }, - new - { - IdUserRole = 1116, - IdPermission = 102 - }, - new - { - IdUserRole = 1116, - IdPermission = 117 - }, - new - { - IdUserRole = 1116, - IdPermission = 126 - }, - new - { - IdUserRole = 1117, - IdPermission = 125 - }, - new - { - IdUserRole = 1117, - IdPermission = 124 - }, - new - { - IdUserRole = 1200, - IdPermission = 203 - }, - new - { - IdUserRole = 1200, - IdPermission = 230 - }, - new - { - IdUserRole = 1201, - IdPermission = 202 - }, - new - { - IdUserRole = 1201, - IdPermission = 203 - }, - new - { - IdUserRole = 1201, - IdPermission = 220 - }, - new - { - IdUserRole = 1202, - IdPermission = 203 - }, - new - { - IdUserRole = 1202, - IdPermission = 220 - }, - new - { - IdUserRole = 1202, - IdPermission = 236 - }, - new - { - IdUserRole = 1202, - IdPermission = 212 - }, - new - { - IdUserRole = 1203, - IdPermission = 235 - }, - new - { - IdUserRole = 1204, - IdPermission = 202 - }, - new - { - IdUserRole = 1204, - IdPermission = 203 - }, - new - { - IdUserRole = 1205, - IdPermission = 215 - }, - new - { - IdUserRole = 1206, - IdPermission = 203 - }, - new - { - IdUserRole = 1206, - IdPermission = 206 - }, - new - { - IdUserRole = 1207, - IdPermission = 205 - }, - new - { - IdUserRole = 1208, - IdPermission = 218 - }, - new - { - IdUserRole = 1209, - IdPermission = 217 - }, - new - { - IdUserRole = 1210, - IdPermission = 203 - }, - new - { - IdUserRole = 1210, - IdPermission = 230 - }, - new - { - IdUserRole = 1210, - IdPermission = 219 - }, - new - { - IdUserRole = 1211, - IdPermission = 203 - }, - new - { - IdUserRole = 1211, - IdPermission = 220 - }, - new - { - IdUserRole = 1211, - IdPermission = 239 - }, - new - { - IdUserRole = 1212, - IdPermission = 238 - }, - new - { - IdUserRole = 1212, - IdPermission = 237 - }, - new - { - IdUserRole = 1213, - IdPermission = 203 - }, - new - { - IdUserRole = 1213, - IdPermission = 239 - }, - new - { - IdUserRole = 1213, - IdPermission = 212 - }, - new - { - IdUserRole = 1214, - IdPermission = 211 - }, - new - { - IdUserRole = 1214, - IdPermission = 210 - }, - new - { - IdUserRole = 1215, - IdPermission = 203 - }, - new - { - IdUserRole = 1215, - IdPermission = 222 - }, - new - { - IdUserRole = 1216, - IdPermission = 221 - }, - new - { - IdUserRole = 1217, - IdPermission = 226 - }, - new - { - IdUserRole = 1218, - IdPermission = 225 - }, - new - { - IdUserRole = 1218, - IdPermission = 224 - }, - new - { - IdUserRole = 1219, - IdPermission = 203 - }, - new - { - IdUserRole = 1219, - IdPermission = 206 - }, - new - { - IdUserRole = 1219, - IdPermission = 230 - }, - new - { - IdUserRole = 1219, - IdPermission = 232 - }, - new - { - IdUserRole = 1220, - IdPermission = 203 - }, - new - { - IdUserRole = 1220, - IdPermission = 228 - }, - new - { - IdUserRole = 1221, - IdPermission = 202 - }, - new - { - IdUserRole = 1221, - IdPermission = 203 - }, - new - { - IdUserRole = 1221, - IdPermission = 220 - }, - new - { - IdUserRole = 1221, - IdPermission = 234 - }, - new - { - IdUserRole = 1500, - IdPermission = 507 - }, - new - { - IdUserRole = 1500, - IdPermission = 510 - }, - new - { - IdUserRole = 1501, - IdPermission = 214 - }, - new - { - IdUserRole = 1501, - IdPermission = 213 - }, - new - { - IdUserRole = 1502, - IdPermission = 207 - }, - new - { - IdUserRole = 1502, - IdPermission = 208 - }, - new - { - IdUserRole = 2000, - IdPermission = 205 - }, - new - { - IdUserRole = 2000, - IdPermission = 204 - }, - new - { - IdUserRole = 2000, - IdPermission = 245 - }, - new - { - IdUserRole = 2001, - IdPermission = 244 - }, - new - { - IdUserRole = 2001, - IdPermission = 245 - }, - new - { - IdUserRole = 2002, - IdPermission = 244 - }, - new - { - IdUserRole = 2002, - IdPermission = 246 - }, - new - { - IdUserRole = 2002, - IdPermission = 237 - }, - new - { - IdUserRole = 2002, - IdPermission = 238 - }, - new - { - IdUserRole = 2003, - IdPermission = 240 - }, - new - { - IdUserRole = 2003, - IdPermission = 217 - }, - new - { - IdUserRole = 2003, - IdPermission = 216 - }, - new - { - IdUserRole = 2004, - IdPermission = 242 - }, - new - { - IdUserRole = 2004, - IdPermission = 217 - }, - new - { - IdUserRole = 2004, - IdPermission = 216 - }, - new - { - IdUserRole = 2004, - IdPermission = 205 - }, - new - { - IdUserRole = 2004, - IdPermission = 204 - }, - new - { - IdUserRole = 2005, - IdPermission = 247 - }, - new - { - IdUserRole = 2005, - IdPermission = 205 - }, - new - { - IdUserRole = 2005, - IdPermission = 204 - }, - new - { - IdUserRole = 2006, - IdPermission = 243 - }, - new - { - IdUserRole = 2006, - IdPermission = 205 - }, - new - { - IdUserRole = 2006, - IdPermission = 204 - }, - new - { - IdUserRole = 2007, - IdPermission = 241 - }, - new - { - IdUserRole = 2007, - IdPermission = 205 - }, - new - { - IdUserRole = 2007, - IdPermission = 204 - }, - new - { - IdUserRole = 1, - IdPermission = 100 - }, - new - { - IdUserRole = 1, - IdPermission = 101 - }, - new - { - IdUserRole = 1, - IdPermission = 102 - }, - new - { - IdUserRole = 1, - IdPermission = 103 - }, - new - { - IdUserRole = 1, - IdPermission = 104 - }, - new - { - IdUserRole = 1, - IdPermission = 105 - }, - new - { - IdUserRole = 1, - IdPermission = 106 - }, - new - { - IdUserRole = 1, - IdPermission = 107 - }, - new - { - IdUserRole = 1, - IdPermission = 108 - }, - new - { - IdUserRole = 1, - IdPermission = 109 - }, - new - { - IdUserRole = 1, - IdPermission = 110 - }, - new - { - IdUserRole = 1, - IdPermission = 111 - }, - new - { - IdUserRole = 1, - IdPermission = 112 - }, - new - { - IdUserRole = 1, - IdPermission = 113 - }, - new - { - IdUserRole = 1, - IdPermission = 114 - }, - new - { - IdUserRole = 1, - IdPermission = 115 - }, - new - { - IdUserRole = 1, - IdPermission = 116 - }, - new - { - IdUserRole = 1, - IdPermission = 117 - }, - new - { - IdUserRole = 1, - IdPermission = 118 - }, - new - { - IdUserRole = 1, - IdPermission = 119 - }, - new - { - IdUserRole = 1, - IdPermission = 120 - }, - new - { - IdUserRole = 1, - IdPermission = 121 - }, - new - { - IdUserRole = 1, - IdPermission = 122 - }, - new - { - IdUserRole = 1, - IdPermission = 123 - }, - new - { - IdUserRole = 1, - IdPermission = 124 - }, - new - { - IdUserRole = 1, - IdPermission = 125 - }, - new - { - IdUserRole = 1, - IdPermission = 126 - }, - new - { - IdUserRole = 1, - IdPermission = 127 - }, - new - { - IdUserRole = 1, - IdPermission = 128 - }, - new - { - IdUserRole = 1, - IdPermission = 129 - }, - new - { - IdUserRole = 1, - IdPermission = 200 - }, - new - { - IdUserRole = 1, - IdPermission = 201 - }, - new - { - IdUserRole = 1, - IdPermission = 202 - }, - new - { - IdUserRole = 1, - IdPermission = 203 - }, - new - { - IdUserRole = 1, - IdPermission = 204 - }, - new - { - IdUserRole = 1, - IdPermission = 205 - }, - new - { - IdUserRole = 1, - IdPermission = 206 - }, - new - { - IdUserRole = 1, - IdPermission = 207 - }, - new - { - IdUserRole = 1, - IdPermission = 208 - }, - new - { - IdUserRole = 1, - IdPermission = 209 - }, - new - { - IdUserRole = 1, - IdPermission = 210 - }, - new - { - IdUserRole = 1, - IdPermission = 211 - }, - new - { - IdUserRole = 1, - IdPermission = 212 - }, - new - { - IdUserRole = 1, - IdPermission = 213 - }, - new - { - IdUserRole = 1, - IdPermission = 214 - }, - new - { - IdUserRole = 1, - IdPermission = 215 - }, - new - { - IdUserRole = 1, - IdPermission = 216 - }, - new - { - IdUserRole = 1, - IdPermission = 217 - }, - new - { - IdUserRole = 1, - IdPermission = 218 - }, - new - { - IdUserRole = 1, - IdPermission = 219 - }, - new - { - IdUserRole = 1, - IdPermission = 220 - }, - new - { - IdUserRole = 1, - IdPermission = 221 - }, - new - { - IdUserRole = 1, - IdPermission = 222 - }, - new - { - IdUserRole = 1, - IdPermission = 223 - }, - new - { - IdUserRole = 1, - IdPermission = 224 - }, - new - { - IdUserRole = 1, - IdPermission = 225 - }, - new - { - IdUserRole = 1, - IdPermission = 226 - }, - new - { - IdUserRole = 1, - IdPermission = 227 - }, - new - { - IdUserRole = 1, - IdPermission = 228 - }, - new - { - IdUserRole = 1, - IdPermission = 229 - }, - new - { - IdUserRole = 1, - IdPermission = 230 - }, - new - { - IdUserRole = 1, - IdPermission = 231 - }, - new - { - IdUserRole = 1, - IdPermission = 232 - }, - new - { - IdUserRole = 1, - IdPermission = 233 - }, - new - { - IdUserRole = 1, - IdPermission = 234 - }, - new - { - IdUserRole = 1, - IdPermission = 235 - }, - new - { - IdUserRole = 1, - IdPermission = 236 - }, - new - { - IdUserRole = 1, - IdPermission = 237 - }, - new - { - IdUserRole = 1, - IdPermission = 238 - }, - new - { - IdUserRole = 1, - IdPermission = 239 - }, - new - { - IdUserRole = 1, - IdPermission = 240 - }, - new - { - IdUserRole = 1, - IdPermission = 241 - }, - new - { - IdUserRole = 1, - IdPermission = 242 - }, - new - { - IdUserRole = 1, - IdPermission = 243 - }, - new - { - IdUserRole = 1, - IdPermission = 244 - }, - new - { - IdUserRole = 1, - IdPermission = 245 - }, - new - { - IdUserRole = 1, - IdPermission = 246 - }, - new - { - IdUserRole = 1, - IdPermission = 247 - }, - new - { - IdUserRole = 1, - IdPermission = 248 - }, - new - { - IdUserRole = 1, - IdPermission = 249 - }, - new - { - IdUserRole = 1, - IdPermission = 250 - }, - new - { - IdUserRole = 1, - IdPermission = 251 - }, - new - { - IdUserRole = 1, - IdPermission = 252 - }, - new - { - IdUserRole = 1, - IdPermission = 253 - }, - new - { - IdUserRole = 1, - IdPermission = 254 - }, - new - { - IdUserRole = 1, - IdPermission = 255 - }, - new - { - IdUserRole = 1, - IdPermission = 256 - }, - new - { - IdUserRole = 1, - IdPermission = 257 - }, - new - { - IdUserRole = 1, - IdPermission = 258 - }, - new - { - IdUserRole = 1, - IdPermission = 259 - }, - new - { - IdUserRole = 1, - IdPermission = 260 - }, - new - { - IdUserRole = 1, - IdPermission = 261 - }, - new - { - IdUserRole = 1, - IdPermission = 262 - }, - new - { - IdUserRole = 1, - IdPermission = 263 - }, - new - { - IdUserRole = 1, - IdPermission = 264 - }, - new - { - IdUserRole = 1, - IdPermission = 265 - }, - new - { - IdUserRole = 1, - IdPermission = 266 - }, - new - { - IdUserRole = 1, - IdPermission = 267 - }, - new - { - IdUserRole = 1, - IdPermission = 268 - }, - new - { - IdUserRole = 1, - IdPermission = 269 - }, - new - { - IdUserRole = 1, - IdPermission = 380 - }, - new - { - IdUserRole = 1, - IdPermission = 381 - }, - new - { - IdUserRole = 1, - IdPermission = 382 - }, - new - { - IdUserRole = 1, - IdPermission = 383 - }, - new - { - IdUserRole = 1, - IdPermission = 384 - }, - new - { - IdUserRole = 1, - IdPermission = 385 - }, - new - { - IdUserRole = 1, - IdPermission = 386 - }, - new - { - IdUserRole = 1, - IdPermission = 387 - }, - new - { - IdUserRole = 1, - IdPermission = 388 - }, - new - { - IdUserRole = 1, - IdPermission = 389 - }, - new - { - IdUserRole = 1, - IdPermission = 390 - }, - new - { - IdUserRole = 1, - IdPermission = 391 - }, - new - { - IdUserRole = 1, - IdPermission = 400 - }, - new - { - IdUserRole = 1, - IdPermission = 401 - }, - new - { - IdUserRole = 1, - IdPermission = 407 - }, - new - { - IdUserRole = 1, - IdPermission = 408 - }, - new - { - IdUserRole = 1, - IdPermission = 450 - }, - new - { - IdUserRole = 1, - IdPermission = 460 - }, - new - { - IdUserRole = 1, - IdPermission = 461 - }, - new - { - IdUserRole = 1, - IdPermission = 500 - }, - new - { - IdUserRole = 1, - IdPermission = 501 - }, - new - { - IdUserRole = 1, - IdPermission = 502 - }, - new - { - IdUserRole = 1, - IdPermission = 503 - }, - new - { - IdUserRole = 1, - IdPermission = 504 - }, - new - { - IdUserRole = 1, - IdPermission = 505 - }, - new - { - IdUserRole = 1, - IdPermission = 506 - }, - new - { - IdUserRole = 1, - IdPermission = 507 - }, - new - { - IdUserRole = 1, - IdPermission = 510 - }, - new - { - IdUserRole = 1, - IdPermission = 511 - }, - new - { - IdUserRole = 1, - IdPermission = 512 - }, - new - { - IdUserRole = 1, - IdPermission = 516 - }, - new - { - IdUserRole = 1, - IdPermission = 517 - }, - new - { - IdUserRole = 1, - IdPermission = 518 - }, - new - { - IdUserRole = 1, - IdPermission = 519 - }, - new - { - IdUserRole = 1, - IdPermission = 520 - }, - new - { - IdUserRole = 1, - IdPermission = 521 - }, - new - { - IdUserRole = 1, - IdPermission = 522 - }, - new - { - IdUserRole = 1, - IdPermission = 523 - }, - new - { - IdUserRole = 1, - IdPermission = 524 - }, - new - { - IdUserRole = 1, - IdPermission = 525 - }, - new - { - IdUserRole = 1, - IdPermission = 526 - }, - new - { - IdUserRole = 1, - IdPermission = 527 - }, - new - { - IdUserRole = 1, - IdPermission = 528 - }, - new - { - IdUserRole = 1, - IdPermission = 530 - }, - new - { - IdUserRole = 1, - IdPermission = 531 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => - { - b.Property("Id") - .HasColumnType("integer") - .HasColumnName("id_user_role"); - - b.Property("IdInclude") - .HasColumnType("integer") - .HasColumnName("id_include_user_role"); - - b.HasKey("Id", "IdInclude") - .HasName("t_relation_user_role_user_role_pk"); - - b.HasIndex("IdInclude"); - - b.ToTable("t_relation_user_role_user_role", t => - { - t.HasComment("Отношение ролей к ролям"); - }); - - b.HasData( - new - { - Id = 1101, - IdInclude = 1100 - }, - new - { - Id = 1103, - IdInclude = 1102 - }, - new - { - Id = 1105, - IdInclude = 1104 - }, - new - { - Id = 1107, - IdInclude = 1106 - }, - new - { - Id = 1109, - IdInclude = 1108 - }, - new - { - Id = 1111, - IdInclude = 1110 - }, - new - { - Id = 1114, - IdInclude = 1113 - }, - new - { - Id = 1117, - IdInclude = 1116 - }, - new - { - Id = 1203, - IdInclude = 1202 - }, - new - { - Id = 1207, - IdInclude = 1206 - }, - new - { - Id = 1209, - IdInclude = 1208 - }, - new - { - Id = 1212, - IdInclude = 1211 - }, - new - { - Id = 1214, - IdInclude = 1213 - }, - new - { - Id = 1216, - IdInclude = 1215 - }, - new - { - Id = 1218, - IdInclude = 1217 - }, - new - { - Id = 2000, - IdInclude = 1200 - }, - new - { - Id = 2000, - IdInclude = 1201 - }, - new - { - Id = 2000, - IdInclude = 1202 - }, - new - { - Id = 2000, - IdInclude = 1204 - }, - new - { - Id = 2000, - IdInclude = 1205 - }, - new - { - Id = 2000, - IdInclude = 1206 - }, - new - { - Id = 2000, - IdInclude = 1208 - }, - new - { - Id = 2000, - IdInclude = 1210 - }, - new - { - Id = 2000, - IdInclude = 1211 - }, - new - { - Id = 2000, - IdInclude = 1213 - }, - new - { - Id = 2000, - IdInclude = 1215 - }, - new - { - Id = 2000, - IdInclude = 1217 - }, - new - { - Id = 2000, - IdInclude = 1219 - }, - new - { - Id = 2000, - IdInclude = 1220 - }, - new - { - Id = 2000, - IdInclude = 1221 - }, - new - { - Id = 2000, - IdInclude = 1500 - }, - new - { - Id = 2000, - IdInclude = 1501 - }, - new - { - Id = 2000, - IdInclude = 1502 - }, - new - { - Id = 2001, - IdInclude = 1500 - }, - new - { - Id = 2001, - IdInclude = 1501 - }, - new - { - Id = 2001, - IdInclude = 1502 - }, - new - { - Id = 2002, - IdInclude = 1500 - }, - new - { - Id = 2002, - IdInclude = 1501 - }, - new - { - Id = 2002, - IdInclude = 1502 - }, - new - { - Id = 2003, - IdInclude = 1500 - }, - new - { - Id = 2003, - IdInclude = 1501 - }, - new - { - Id = 2003, - IdInclude = 1502 - }, - new - { - Id = 2004, - IdInclude = 1500 - }, - new - { - Id = 2004, - IdInclude = 1501 - }, - new - { - Id = 2004, - IdInclude = 1502 - }, - new - { - Id = 2005, - IdInclude = 1500 - }, - new - { - Id = 2005, - IdInclude = 1501 - }, - new - { - Id = 2005, - IdInclude = 1502 - }, - new - { - Id = 2006, - IdInclude = 1500 - }, - new - { - Id = 2006, - IdInclude = 1501 - }, - new - { - Id = 2006, - IdInclude = 1502 - }, - new - { - Id = 2007, - IdInclude = 1500 - }, - new - { - Id = 2007, - IdInclude = 1501 - }, - new - { - Id = 2007, - IdInclude = 1502 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => - { - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.Property("IdUserRole") - .HasColumnType("integer") - .HasColumnName("id_user_role"); - - b.HasKey("IdUser", "IdUserRole"); - - b.HasIndex("IdUserRole"); - - b.ToTable("t_relation_user_user_role", t => - { - t.HasComment("Отношение пользователей и ролей"); - }); - - b.HasData( - new - { - IdUser = 1, - IdUserRole = 1 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Begin") - .HasColumnType("timestamp with time zone") - .HasColumnName("begin"); - - b.Property("End") - .HasColumnType("timestamp with time zone") - .HasColumnName("end") - .HasComment("timestamp with time zone"); - - b.Property("Format") - .HasColumnType("integer") - .HasColumnName("format") - .HasComment("Формат отчета"); - - b.Property("IdFile") - .HasColumnType("integer") - .HasColumnName("id_file") - .HasComment("id файла-родителя"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("id скважины"); - - b.Property("Step") - .HasColumnType("integer") - .HasColumnName("step") - .HasComment("размер шага в секундах"); - - b.HasKey("Id"); - - b.HasIndex("IdFile"); - - b.HasIndex("IdWell"); - - b.ToTable("t_report_property", t => - { - t.HasComment("Отчеты с данными по буровым"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DrillEnd") - .HasColumnType("timestamp with time zone") - .HasColumnName("drill_end") - .HasComment("Конец вахты"); - - b.Property("DrillStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("drill_start") - .HasComment("Начало вахты"); - - b.Property("IdDriller") - .HasColumnType("integer") - .HasColumnName("id_driller") - .HasComment("Идентификатор бурильщика"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Идентификатор скважины"); - - b.Property("ShiftEnd") - .HasColumnType("time without time zone") - .HasColumnName("shift_end") - .HasComment("Конец смены"); - - b.Property("ShiftStart") - .HasColumnType("time without time zone") - .HasColumnName("shift_start") - .HasComment("Начало смены"); - - b.HasKey("Id"); - - b.HasIndex("IdDriller"); - - b.HasIndex("IdWell"); - - b.ToTable("t_schedule", t => - { - t.HasComment("График работы бурильщика"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Comment") - .HasColumnType("text") - .HasColumnName("comment") - .HasComment("комментарий для оператора"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Id пользователя, загрузившего файл"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("id скважины"); - - b.Property("ObsolescenceSec") - .HasColumnType("integer") - .HasColumnName("obsolescence") - .HasComment("сек. до устаревания"); - - b.Property("Setpoints") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("setpoint_set") - .HasComment("Набор уставок"); - - b.Property("UploadDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdWell"); - - b.ToTable("t_setpoints_rquest", t => - { - t.HasComment("Запросы на изменение уставок панели оператора"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Subsystem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("description"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("name"); - - b.HasKey("Id"); - - b.ToTable("t_subsystem", t => - { - t.HasComment("Описание подсистем"); - }); - - b.HasData( - new - { - Id = 1, - Description = "Совместная работа режимов \"Бурение в роторе\" и \"Бурение в слайде\"", - Name = "АПД" - }, - new - { - Id = 11, - Description = "Режим работы \"Бурение в роторе\"", - Name = "АПД ротор" - }, - new - { - Id = 12, - Description = "Режим работы \"Бурение в слайде\"", - Name = "АПД слайд" - }, - new - { - Id = 65536, - Description = "Осцилляция", - Name = "Осцилляция" - }, - new - { - Id = 65537, - Description = "Демпфер", - Name = "Демпфер" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Info") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("info") - .HasComment("Информация с панели о скважине"); - - b.Property("RemoteUid") - .IsRequired() - .HasColumnType("text") - .HasColumnName("remote_uid") - .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв."); - - b.Property("TimeZone") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("timezone") - .HasComment("Смещение часового пояса от UTC"); - - b.HasKey("Id"); - - b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); - - b.ToTable("t_telemetry", t => - { - t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date") - .HasComment("'2021-10-19 18:23:54+05'"); - - b.Property("AxialLoad") - .HasColumnType("real") - .HasColumnName("axial_load") - .HasComment("Осевая нагрузка"); - - b.Property("AxialLoadLimitMax") - .HasColumnType("real") - .HasColumnName("axial_load_limit_max") - .HasComment("Осевая нагрузка. Аварийная макс."); - - b.Property("AxialLoadSp") - .HasColumnType("real") - .HasColumnName("axial_load_sp") - .HasComment("Осевая нагрузка. Задание"); - - b.Property("BitDepth") - .HasColumnType("real") - .HasColumnName("bit_depth") - .HasComment("Положение инструмента"); - - b.Property("BlockPosition") - .HasColumnType("real") - .HasColumnName("block_position") - .HasComment("Высота талевого блока"); - - b.Property("BlockPositionMax") - .HasColumnType("real") - .HasColumnName("block_position_max") - .HasComment("Талевый блок. Макс положение"); - - b.Property("BlockPositionMin") - .HasColumnType("real") - .HasColumnName("block_position_min") - .HasComment("Талевый блок. Мин положение"); - - b.Property("BlockSpeed") - .HasColumnType("real") - .HasColumnName("block_speed") - .HasComment("Скорость талевого блока"); - - b.Property("BlockSpeedSp") - .HasColumnType("real") - .HasColumnName("block_speed_sp") - .HasComment("Скорости талевого блока. Задание"); - - b.Property("BlockSpeedSpDevelop") - .HasColumnType("real") - .HasColumnName("block_speed_sp_develop") - .HasComment("Талевый блок. Задание скорости для проработки"); - - b.Property("BlockSpeedSpRotor") - .HasColumnType("real") - .HasColumnName("block_speed_sp_rotor") - .HasComment("Талевый блок. Задание скорости для роторного бурения"); - - b.Property("BlockSpeedSpSlide") - .HasColumnType("real") - .HasColumnName("block_speed_sp_slide") - .HasComment("Талевый блок. Задание скорости для режима слайда"); - - b.Property("Flow") - .HasColumnType("real") - .HasColumnName("flow") - .HasComment("Расход"); - - b.Property("FlowDeltaLimitMax") - .HasColumnType("real") - .HasColumnName("flow_delta_limit_max") - .HasComment("Расход. Аварийный макс."); - - b.Property("FlowIdle") - .HasColumnType("real") - .HasColumnName("flow_idle") - .HasComment("Расход. Холостой ход"); - - b.Property("HookWeight") - .HasColumnType("real") - .HasColumnName("hook_weight") - .HasComment("Вес на крюке"); - - b.Property("HookWeightIdle") - .HasColumnType("real") - .HasColumnName("hook_weight_idle") - .HasComment("Вес на крюке. Холостой ход"); - - b.Property("HookWeightLimitMax") - .HasColumnType("real") - .HasColumnName("hook_weight_limit_max") - .HasComment("Вес на крюке. Затяжка"); - - b.Property("HookWeightLimitMin") - .HasColumnType("real") - .HasColumnName("hook_weight_limit_min") - .HasComment("Вес на крюке. Посадка"); - - b.Property("IdFeedRegulator") - .HasColumnType("smallint") - .HasColumnName("id_feed_regulator") - .HasComment("Текущий критерий бурения"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("Пользователь САУБ"); - - b.Property("Mode") - .HasColumnType("smallint") - .HasColumnName("mode") - .HasComment("Режим САУБ"); - - b.Property("Mse") - .HasColumnType("real") - .HasColumnName("mse") - .HasComment("MSE"); - - b.Property("MseState") - .HasColumnType("smallint") - .HasColumnName("mse_state") - .HasComment("Текущее состояние работы MSE"); - - b.Property("Pressure") - .HasColumnType("real") - .HasColumnName("pressure") - .HasComment("Давление"); - - b.Property("PressureDeltaLimitMax") - .HasColumnType("real") - .HasColumnName("pressure_delta_limit_max") - .HasComment("Давление дифф. Аварийное макс."); - - b.Property("PressureIdle") - .HasColumnType("real") - .HasColumnName("pressure_idle") - .HasComment("Давление. Холостой ход"); - - b.Property("PressureSp") - .HasColumnType("real") - .HasColumnName("pressure_sp") - .HasComment("Давление. Задание"); - - b.Property("PressureSpDevelop") - .HasColumnType("real") - .HasColumnName("pressure_sp_develop") - .HasComment("Давление. Задание для проработки"); - - b.Property("PressureSpRotor") - .HasColumnType("real") - .HasColumnName("pressure_sp_rotor") - .HasComment("Давление. Задание для роторного бурения"); - - b.Property("PressureSpSlide") - .HasColumnType("real") - .HasColumnName("pressure_sp_slide") - .HasComment("Давление. Задание для режима слайда"); - - b.Property("Pump0Flow") - .HasColumnType("real") - .HasColumnName("pump0_flow") - .HasComment("Расход. Буровой насос 1"); - - b.Property("Pump1Flow") - .HasColumnType("real") - .HasColumnName("pump1_flow") - .HasComment("Расход. Буровой насос 2"); - - b.Property("Pump2Flow") - .HasColumnType("real") - .HasColumnName("pump2_flow") - .HasComment("Расход. Буровой насос 3"); - - b.Property("RotorSpeed") - .HasColumnType("real") - .HasColumnName("rotor_speed") - .HasComment("Обороты ротора"); - - b.Property("RotorTorque") - .HasColumnType("real") - .HasColumnName("rotor_torque") - .HasComment("Момент на роторе"); - - b.Property("RotorTorqueIdle") - .HasColumnType("real") - .HasColumnName("rotor_torque_idle") - .HasComment("Момент на роторе. Холостой ход"); - - b.Property("RotorTorqueLimitMax") - .HasColumnType("real") - .HasColumnName("rotor_torque_limit_max") - .HasComment("Момент на роторе. Аварийный макс."); - - b.Property("RotorTorqueSp") - .HasColumnType("real") - .HasColumnName("rotor_torque_sp") - .HasComment("Момент на роторе. Задание"); - - b.Property("WellDepth") - .HasColumnType("real") - .HasColumnName("well_depth") - .HasComment("Глубина забоя"); - - b.HasKey("IdTelemetry", "DateTime"); - - b.ToTable("t_telemetry_data_saub", t => - { - t.HasComment("набор основных данных по SAUB"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaubStat", b => - { - b.Property("Count") - .HasColumnType("bigint") - .HasColumnName("count_items"); - - b.Property("DateMax") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_max"); - - b.Property("DateMin") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_min"); - - b.Property("DepthMax") - .HasColumnType("real") - .HasColumnName("depth_max"); - - b.Property("DepthMin") - .HasColumnType("real") - .HasColumnName("depth_min"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.ToTable((string)null); - - b.ToView("mw_telemetry_datas_saub_stat", (string)null); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date") - .HasComment("'2021-10-19 18:23:54+05'"); - - b.Property("Mode") - .HasColumnType("smallint") - .HasColumnName("mode") - .HasComment("Выбранный режим управления"); - - b.Property("PositionRight") - .HasColumnType("real") - .HasColumnName("position_right") - .HasComment("Крайний правый угол осцилляции"); - - b.Property("PositionZero") - .HasColumnType("real") - .HasColumnName("position_zero") - .HasComment("Нулевая позиция осцилляции"); - - b.Property("RevolsLeftLimit") - .HasColumnType("real") - .HasColumnName("revols_left_limit") - .HasComment("Ограничение числа оборотов влево"); - - b.Property("RevolsLeftTotal") - .HasColumnType("real") - .HasColumnName("revols_left_total") - .HasComment("Суммарное количество оборотов влево"); - - b.Property("RevolsRightLimit") - .HasColumnType("real") - .HasColumnName("revols_right_limit") - .HasComment("Ограничение числа оборотов вправо"); - - b.Property("RevolsRightTotal") - .HasColumnType("real") - .HasColumnName("revols_right_total") - .HasComment("Суммарное количество оборотов вправо"); - - b.Property("SpeedLeftSp") - .HasColumnType("real") - .HasColumnName("speed_left_sp") - .HasComment("Заданная скорость вращения влево"); - - b.Property("SpeedRightSp") - .HasColumnType("real") - .HasColumnName("speed_right_sp") - .HasComment("Заданная скорость вращения вправо"); - - b.Property("State") - .HasColumnType("smallint") - .HasColumnName("state") - .HasComment("Переменная этапа"); - - b.HasKey("IdTelemetry", "DateTime"); - - b.ToTable("t_telemetry_data_spin", t => - { - t.HasComment("набор основных данных по SpinMaster"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdEvent") - .HasColumnType("integer") - .HasColumnName("id_event"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category"); - - b.Property("MessageTemplate") - .IsRequired() - .HasColumnType("text") - .HasColumnName("message_template"); - - b.HasKey("IdTelemetry", "IdEvent"); - - b.ToTable("t_telemetry_event", t => - { - t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Arg0") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("arg0") - .HasComment("Аргумент №0 для вставки в шаблон сообщения"); - - b.Property("Arg1") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("arg1"); - - b.Property("Arg2") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("arg2"); - - b.Property("Arg3") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("arg3"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.Property("IdEvent") - .HasColumnType("integer") - .HasColumnName("id_event"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdTelemetryUser") - .HasColumnType("integer") - .HasColumnName("id_telemetry_user") - .HasComment("Пользователь панели отправляющей телеметрию. не пользователь облака."); - - b.Property("WellDepth") - .HasColumnType("double precision") - .HasColumnName("well_depth"); - - b.HasKey("Id"); - - b.HasIndex("IdTelemetry"); - - b.ToTable("t_telemetry_message", t => - { - t.HasComment("Сообщения на буровых"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.Property("Level") - .HasColumnType("integer") - .HasColumnName("level"); - - b.Property("Name") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("name"); - - b.Property("Patronymic") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("patronymic"); - - b.Property("Surname") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("surname"); - - b.HasKey("IdTelemetry", "IdUser"); - - b.ToTable("t_telemetry_user", t => - { - t.HasComment("Пользователи панели САУБ. Для сообщений."); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryWirelineRunOut", b => - { - b.Property("IdTelemetry") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id_telemetry") - .HasComment("Идентификатор телеметрии"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdTelemetry")); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_time") - .HasComment("Отметка времени"); - - b.Property("Hauling") - .HasColumnType("real") - .HasColumnName("hauling") - .HasComment("Наработка талевого каната с момента перетяжки каната, т*км"); - - b.Property("HaulingWarnSp") - .HasColumnType("real") - .HasColumnName("hauling_warn_sp") - .HasComment("Наработка талевого каната до сигнализации о необходимости перетяжки, т*км"); - - b.Property("Replace") - .HasColumnType("real") - .HasColumnName("replace") - .HasComment("Наработка талевого каната с момента замены каната, т*км"); - - b.Property("ReplaceWarnSp") - .HasColumnType("real") - .HasColumnName("replace_warn_sp") - .HasComment("Наработка талевого каната до сигнализации о необходимости замены, т*км"); - - b.HasKey("IdTelemetry"); - - b.ToTable("t_telemetry_wireline_run_out", t => - { - t.HasComment("Наработка талевого каната"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AzimuthGeo") - .HasColumnType("double precision") - .HasColumnName("azimuth_geo") - .HasComment("Азимут Географ."); - - b.Property("AzimuthMagnetic") - .HasColumnType("double precision") - .HasColumnName("azimuth_magnetic") - .HasComment("Азимут Магнитный"); - - b.Property("Comment") - .HasColumnType("text") - .HasColumnName("comment") - .HasComment("Комментарии"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("ID пользователя который внес/изменил запись"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("ID скважины"); - - b.Property("UpdateDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("update_date") - .HasComment("Дата загрузки траектории"); - - b.Property("VerticalDepth") - .HasColumnType("double precision") - .HasColumnName("vertical_depth") - .HasComment("Глубина вертикальная"); - - b.Property("WellboreDepth") - .HasColumnType("double precision") - .HasColumnName("wellbore_depth") - .HasComment("Глубина по стволу"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenith_angle") - .HasComment("Угол зенитный"); - - b.HasKey("Id"); - - b.HasIndex("IdUser"); - - b.HasIndex("IdWell"); - - b.ToTable("t_trajectory_fact", t => - { - t.HasComment("Загрузка фактической траектории"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AzimuthGeo") - .HasColumnType("double precision") - .HasColumnName("azimuth_geo") - .HasComment("Азимут Географ."); - - b.Property("AzimuthMagnetic") - .HasColumnType("double precision") - .HasColumnName("azimuth_magnetic") - .HasComment("Азимут Магнитный"); - - b.Property("Comment") - .HasColumnType("text") - .HasColumnName("comment") - .HasComment("Комментарии"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("ID пользователя который внес/изменил запись"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("ID скважины"); - - b.Property("Radius") - .HasColumnType("double precision") - .HasColumnName("radius") - .HasComment("Радиус цели"); - - b.Property("UpdateDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("update_date") - .HasComment("Дата загрузки траектории"); - - b.Property("VerticalDepth") - .HasColumnType("double precision") - .HasColumnName("vertical_depth") - .HasComment("Глубина вертикальная"); - - b.Property("WellboreDepth") - .HasColumnType("double precision") - .HasColumnName("wellbore_depth") - .HasComment("Глубина по стволу"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenith_angle") - .HasComment("Угол зенитный"); - - b.HasKey("Id"); - - b.HasIndex("IdUser"); - - b.HasIndex("IdWell"); - - b.ToTable("t_trajectory_plan", t => - { - t.HasComment("Загрузка плановой траектории"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Email") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("email") - .HasComment("должность"); - - b.Property("IdCompany") - .HasColumnType("integer") - .HasColumnName("id_company"); - - b.Property("IdState") - .HasColumnType("smallint") - .HasColumnName("state") - .HasComment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован"); - - b.Property("Login") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("login"); - - b.Property("Name") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("name") - .HasComment("имя"); - - b.Property("PasswordHash") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("password_hash") - .HasComment("соленый хэш пароля.\nпервые 5 символов - соль"); - - b.Property("Patronymic") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("patronymic") - .HasComment("отчество"); - - b.Property("Phone") - .HasMaxLength(50) - .HasColumnType("character varying(50)") - .HasColumnName("phone") - .HasComment("номер телефона"); - - b.Property("Position") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("position") - .HasComment("email"); - - b.Property("Surname") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("surname") - .HasComment("фамилия"); - - b.HasKey("Id"); - - b.HasIndex("IdCompany"); - - b.HasIndex("Login") - .IsUnique(); - - b.ToTable("t_user", t => - { - t.HasComment("Пользователи облака"); - }); - - b.HasData( - new - { - Id = 1, - Email = "", - IdCompany = 1, - IdState = (short)1, - Login = "dev", - Name = "Разработчик", - PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption") - .HasComment("Название"); - - b.Property("IdType") - .HasColumnType("integer") - .HasColumnName("id_type") - .HasComment("0-роль из стандартной матрицы, \n1-специальная роль для какого-либо пользователя"); - - b.HasKey("Id"); - - b.ToTable("t_user_role", t => - { - t.HasComment("Роли пользователей в системе"); - }); - - b.HasData( - new - { - Id = 1, - Caption = "root", - IdType = 1 - }, - new - { - Id = 1100, - Caption = "admin_cluster.view", - IdType = 1 - }, - new - { - Id = 1101, - Caption = "admin_cluster.edit", - IdType = 1 - }, - new - { - Id = 1102, - Caption = "admin_company.view", - IdType = 1 - }, - new - { - Id = 1103, - Caption = "admin_company.edit", - IdType = 1 - }, - new - { - Id = 1104, - Caption = "admin_company_type.view", - IdType = 1 - }, - new - { - Id = 1105, - Caption = "admin_company_type.edit", - IdType = 1 - }, - new - { - Id = 1106, - Caption = "admin_deposit.view", - IdType = 1 - }, - new - { - Id = 1107, - Caption = "admin_deposit.edit", - IdType = 1 - }, - new - { - Id = 1108, - Caption = "admin_permission.view", - IdType = 1 - }, - new - { - Id = 1109, - Caption = "admin_permission.edit", - IdType = 1 - }, - new - { - Id = 1110, - Caption = "admin_role.view", - IdType = 1 - }, - new - { - Id = 1111, - Caption = "admin_role.edit", - IdType = 1 - }, - new - { - Id = 1112, - Caption = "admin_telemetry.view", - IdType = 1 - }, - new - { - Id = 1113, - Caption = "admin_user.view", - IdType = 1 - }, - new - { - Id = 1114, - Caption = "admin_user.edit", - IdType = 1 - }, - new - { - Id = 1115, - Caption = "admin_visit_log.view", - IdType = 1 - }, - new - { - Id = 1116, - Caption = "admin_well.view", - IdType = 1 - }, - new - { - Id = 1117, - Caption = "admin_well.edit", - IdType = 1 - }, - new - { - Id = 1200, - Caption = "archive.view", - IdType = 1 - }, - new - { - Id = 1201, - Caption = "cluster.view", - IdType = 1 - }, - new - { - Id = 1202, - Caption = "composite.view", - IdType = 1 - }, - new - { - Id = 1203, - Caption = "composite.edit", - IdType = 1 - }, - new - { - Id = 1204, - Caption = "deposit.view", - IdType = 1 - }, - new - { - Id = 1205, - Caption = "document.view", - IdType = 1 - }, - new - { - Id = 1206, - Caption = "drillProcessFlow.view", - IdType = 1 - }, - new - { - Id = 1207, - Caption = "drillProcessFlow.edit", - IdType = 1 - }, - new - { - Id = 1208, - Caption = "measure.view", - IdType = 1 - }, - new - { - Id = 1209, - Caption = "measure.edit", - IdType = 1 - }, - new - { - Id = 1210, - Caption = "message.view", - IdType = 1 - }, - new - { - Id = 1211, - Caption = "operations.view", - IdType = 1 - }, - new - { - Id = 1212, - Caption = "operations.edit", - IdType = 1 - }, - new - { - Id = 1213, - Caption = "params.view", - IdType = 1 - }, - new - { - Id = 1214, - Caption = "params.edit", - IdType = 1 - }, - new - { - Id = 1215, - Caption = "report.view", - IdType = 1 - }, - new - { - Id = 1216, - Caption = "report.edit", - IdType = 1 - }, - new - { - Id = 1217, - Caption = "setpoints.view", - IdType = 1 - }, - new - { - Id = 1218, - Caption = "setpoints.edit", - IdType = 1 - }, - new - { - Id = 1219, - Caption = "telemetry.view", - IdType = 1 - }, - new - { - Id = 1220, - Caption = "telemetryAnalysis.view", - IdType = 1 - }, - new - { - Id = 1221, - Caption = "well.view", - IdType = 1 - }, - new - { - Id = 1500, - Caption = "Просмотр всего", - IdType = 1 - }, - new - { - Id = 1501, - Caption = "file.edit", - IdType = 1 - }, - new - { - Id = 1502, - Caption = "drillingProgram.edit", - IdType = 1 - }, - new - { - Id = 2000, - Caption = "Заказчик", - IdType = 0 - }, - new - { - Id = 2001, - Caption = "Супервайзер", - IdType = 0 - }, - new - { - Id = 2002, - Caption = "Буровой подрядчик", - IdType = 0 - }, - new - { - Id = 2003, - Caption = "Растворщик", - IdType = 0 - }, - new - { - Id = 2004, - Caption = "Телеметрист", - IdType = 0 - }, - new - { - Id = 2005, - Caption = "Долотный сервис", - IdType = 0 - }, - new - { - Id = 2006, - Caption = "ГТИ", - IdType = 0 - }, - new - { - Id = 2007, - Caption = "Цементирование", - IdType = 0 - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => - { - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.Property("Key") - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("key") - .HasComment("Ключ настроек пользователя"); - - b.Property("Value") - .HasColumnType("jsonb") - .HasColumnName("setting_value") - .HasComment("Значение настроек пользователя"); - - b.HasKey("IdUser", "Key"); - - b.ToTable("t_user_settings", t => - { - t.HasComment("настройки интерфейса пользователя"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.RecordBase", b => - { - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("DateTime") - .HasColumnType("timestamp with time zone") - .HasColumnName("date"); - - b.Property("Actcod") - .HasColumnType("smallint") - .HasColumnName("ACTCOD"); - - b.Property("Date") - .HasColumnType("integer") - .HasColumnName("DATE"); - - b.Property("Recid") - .HasColumnType("smallint") - .HasColumnName("RECID"); - - b.Property("Seqid") - .HasColumnType("integer") - .HasColumnName("SEQID"); - - b.Property("Stknum") - .HasColumnType("smallint") - .HasColumnName("STKNUM"); - - b.Property("Time") - .HasColumnType("integer") - .HasColumnName("TIME"); - - b.Property("Wellid") - .HasColumnType("text") - .HasColumnName("WELLID"); - - b.HasKey("IdTelemetry", "DateTime"); - - b.ToTable("t_telemetry_wits_base"); - - b.UseTptMappingStrategy(); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Well", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption"); - - b.Property("IdCluster") - .HasColumnType("integer") - .HasColumnName("id_cluster"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("state") - .HasComment("0 - неизвестно, 1 - в работе, 2 - завершена"); - - b.Property("IdTelemetry") - .HasColumnType("integer") - .HasColumnName("id_telemetry"); - - b.Property("IdWellType") - .HasColumnType("integer") - .HasColumnName("id_well_type"); - - b.Property("Latitude") - .HasColumnType("double precision") - .HasColumnName("latitude"); - - b.Property("Longitude") - .HasColumnType("double precision") - .HasColumnName("longitude"); - - b.Property("Timezone") - .IsRequired() - .HasColumnType("jsonb") - .HasColumnName("timezone") - .HasComment("Смещение часового пояса от UTC"); - - b.HasKey("Id"); - - b.HasIndex("IdCluster"); - - b.HasIndex("IdTelemetry") - .IsUnique(); - - b.HasIndex("IdWellType"); - - b.ToTable("t_well", t => - { - t.HasComment("скважины"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => - { - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины получателя"); - - b.Property("IdWellSrc") - .HasColumnType("integer") - .HasColumnName("id_well_src") - .HasComment("Id скважины композита"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_well_section_type") - .HasComment("Id тип секции композита"); - - b.HasKey("IdWell", "IdWellSrc", "IdWellSectionType"); - - b.HasIndex("IdWellSectionType"); - - b.HasIndex("IdWellSrc"); - - b.ToTable("t_well_composite", t => - { - t.HasComment("Композитная скважина"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => - { - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category"); - - b.HasKey("IdWell", "IdUser", "IdCategory") - .HasName("t_well_final_documents_pk"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdUser"); - - b.ToTable("t_well_final_documents", t => - { - t.HasComment("Дело скважины"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("CategoryInfo") - .HasColumnType("text") - .HasColumnName("category_info") - .HasComment("Доп. информация к выбраной категории"); - - b.Property("Comment") - .HasColumnType("text") - .HasColumnName("comment") - .HasComment("Комментарий"); - - b.Property("DateStart") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_start") - .HasComment("Дата начала операции"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина после завершения операции, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина на начало операции, м"); - - b.Property("DurationHours") - .HasColumnType("double precision") - .HasColumnName("duration_hours") - .HasComment("Продолжительность, часы"); - - b.Property("IdCategory") - .HasColumnType("integer") - .HasColumnName("id_category") - .HasComment("Id категории операции"); - - b.Property("IdPlan") - .HasColumnType("integer") - .HasColumnName("id_plan") - .HasComment("Id плановой операции"); - - b.Property("IdType") - .HasColumnType("integer") - .HasColumnName("id_type") - .HasComment("0 = План или 1 = Факт"); - - b.Property("IdUser") - .HasColumnType("integer"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_well_section_type") - .HasComment("Id тип секции скважины"); - - b.Property("LastUpdateDate") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("DateStart"); - - b.HasIndex("DepthEnd"); - - b.HasIndex("IdCategory"); - - b.HasIndex("IdPlan"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_well_operation", t => - { - t.HasComment("Данные по операциям на скважине"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("IdParent") - .HasColumnType("integer") - .HasColumnName("id_parent") - .HasComment("id родительской категории"); - - b.Property("IsHidden") - .HasColumnType("boolean"); - - b.Property("KeyValueName") - .HasMaxLength(32) - .HasColumnType("character varying(32)") - .HasColumnName("key_value_name") - .HasComment("Название ключевого показателя операции"); - - b.Property("KeyValueUnits") - .HasMaxLength(16) - .HasColumnType("character varying(16)") - .HasColumnName("key_value_units") - .HasComment("Единицы измерения ключевого показателя операции"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text") - .HasColumnName("name") - .HasComment("Название категории операции"); - - b.HasKey("Id"); - - b.HasIndex("IdParent"); - - b.ToTable("t_well_operation_category", t => - { - t.HasComment("Справочник операций на скважине"); - }); - - b.HasData( - new - { - Id = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "м/ч", - Name = "БУРЕНИЕ" - }, - new - { - Id = 3001, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО" - }, - new - { - Id = 3002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "КРЕПЛЕНИЕ" - }, - new - { - Id = 3003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ГФР" - }, - new - { - Id = 3004, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Вспомогательные операции" - }, - new - { - Id = 3005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Непроизводительное время (НПВ)" - }, - new - { - Id = 3006, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Заключительные работы" - }, - new - { - Id = 4000, - IdParent = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "КНБК" - }, - new - { - Id = 4001, - IdParent = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "м/ч", - Name = "Механическое. бурение" - }, - new - { - Id = 4002, - IdParent = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Статический замер" - }, - new - { - Id = 4003, - IdParent = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Нормализация диаметра скважины" - }, - new - { - Id = 4004, - IdParent = 3000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Наращивание" - }, - new - { - Id = 4005, - IdParent = 3001, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО" - }, - new - { - Id = 4006, - IdParent = 3002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск обсадной колонны" - }, - new - { - Id = 4018, - IdParent = 3002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Крепление" - }, - new - { - Id = 4007, - IdParent = 3002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Цементирование" - }, - new - { - Id = 4008, - IdParent = 3002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Вспомогательные работы при креплении" - }, - new - { - Id = 4009, - IdParent = 3003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка/разборка приборов ГИС" - }, - new - { - Id = 4010, - IdParent = 3003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО" - }, - new - { - Id = 4011, - IdParent = 3003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ГИС" - }, - new - { - Id = 4012, - IdParent = 3004, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Промывка, ОБР" - }, - new - { - Id = 4013, - IdParent = 3004, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Вспомогательные работы" - }, - new - { - Id = 4014, - IdParent = 3005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ремонт оборудования" - }, - new - { - Id = 4015, - IdParent = 3005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Аварийные работы" - }, - new - { - Id = 4016, - IdParent = 3005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Осложнение" - }, - new - { - Id = 4017, - IdParent = 3005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Незаложенные в ГГД операции" - }, - new - { - Id = 4019, - IdParent = 3006, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Заключительные операции" - }, - new - { - Id = 5000, - IdParent = 4000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Разборка КНБК" - }, - new - { - Id = 5001, - IdParent = 4000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка КНБК" - }, - new - { - Id = 5002, - IdParent = 4001, - IsHidden = true, - KeyValueName = "МСП", - KeyValueUnits = "м/ч", - Name = "Бурение слайдом" - }, - new - { - Id = 5003, - IdParent = 4001, - IsHidden = true, - KeyValueName = "МСП", - KeyValueUnits = "м/ч", - Name = "Бурение ротором" - }, - new - { - Id = 5004, - IdParent = 4002, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Замер ЗТС (запись MWD)" - }, - new - { - Id = 5005, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Промывка перед наращиванием" - }, - new - { - Id = 5006, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Проработка во время бурения" - }, - new - { - Id = 5007, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Проработка" - }, - new - { - Id = 5008, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Шаблонировка во время бурения" - }, - new - { - Id = 5009, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Шаблонировка перед наращиванием" - }, - new - { - Id = 5010, - IdParent = 4004, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Наращивание" - }, - new - { - Id = 5011, - IdParent = 4004, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Удержание в клиньях" - }, - new - { - Id = 5012, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подъем инструмента" - }, - new - { - Id = 5013, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подъем КНБК" - }, - new - { - Id = 5014, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск инструмента" - }, - new - { - Id = 5015, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск КНБК" - }, - new - { - Id = 5016, - IdParent = 4006, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Промывка при спуске ОК" - }, - new - { - Id = 5017, - IdParent = 4006, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск ОК" - }, - new - { - Id = 5018, - IdParent = 4007, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ОЗЦ" - }, - new - { - Id = 5019, - IdParent = 4007, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Цементирование" - }, - new - { - Id = 5020, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Опрессовка БИ" - }, - new - { - Id = 5021, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Опрессовка ОК" - }, - new - { - Id = 5022, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ПЗР при спуске ОК" - }, - new - { - Id = 5023, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ПЗР при цементировании" - }, - new - { - Id = 5024, - IdParent = 4009, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Разборка комплекса приборов ГИС" - }, - new - { - Id = 5025, - IdParent = 4009, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка комплекса приборов ГИС" - }, - new - { - Id = 5026, - IdParent = 4010, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подъем приборов ГИС (на трубах)" - }, - new - { - Id = 5027, - IdParent = 4010, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск приборов ГИС (на трубах)" - }, - new - { - Id = 5028, - IdParent = 4011, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Комплекс ГИС на жестком кабеле" - }, - new - { - Id = 5029, - IdParent = 4011, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Комплекс ГИС на кабеле" - }, - new - { - Id = 5030, - IdParent = 4011, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Комплекс ГИС на трубах" - }, - new - { - Id = 5031, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Закачка/прокачка пачки" - }, - new - { - Id = 5032, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Обработка БР" - }, - new - { - Id = 5033, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ориентирование ТС при бурении" - }, - new - { - Id = 5034, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Перезапись гаммы-каротажа" - }, - new - { - Id = 5035, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Приготовление БР" - }, - new - { - Id = 5036, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Промывка" - }, - new - { - Id = 5037, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Разбуривание тех.оснастки" - }, - new - { - Id = 5038, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск инструмента с проработкой" - }, - new - { - Id = 5039, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ВМР" - }, - new - { - Id = 5040, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Демонтаж ПВО" - }, - new - { - Id = 5041, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Долив затруба при подъёме" - }, - new - { - Id = 5042, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Монтаж ПВО" - }, - new - { - Id = 5043, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Наработка жёлоба" - }, - new - { - Id = 5044, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Обвязка устья с циркуляционной системой" - }, - new - { - Id = 5045, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Оборудование устья" - }, - new - { - Id = 5046, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Опрессовка ПВО" - }, - new - { - Id = 5047, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Перемонтаж ПВО " - }, - new - { - Id = 5048, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Перетяжка талевого каната" - }, - new - { - Id = 5049, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ПЗР при сборке КНБК" - }, - new - { - Id = 5050, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Полная замена талевого каната" - }, - new - { - Id = 5051, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ПР перед забуркой направления" - }, - new - { - Id = 5052, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Продувка манифольда" - }, - new - { - Id = 5053, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Срезка" - }, - new - { - Id = 5054, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Тайм-дриллинг" - }, - new - { - Id = 5055, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Тех.отстой" - }, - new - { - Id = 5056, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Учебная тревога \"Выброс\"" - }, - new - { - Id = 5057, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Чистка ЦСГО/емкостного блока" - }, - new - { - Id = 5058, - IdParent = 4014, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ремонт бурового оборудования" - }, - new - { - Id = 5059, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ловильные работы" - }, - new - { - Id = 5060, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ожидание" - }, - new - { - Id = 5061, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Определение места прихвата и ЛМ" - }, - new - { - Id = 5062, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Работа яссом" - }, - new - { - Id = 5063, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Расхаживание" - }, - new - { - Id = 5064, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО - колокол" - }, - new - { - Id = 5065, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО - метчик" - }, - new - { - Id = 5066, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО - овершот" - }, - new - { - Id = 5067, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "СПО - труболовка" - }, - new - { - Id = 5068, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Торпедирование (встряхивание)" - }, - new - { - Id = 5069, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Торпедирование (отстрел)" - }, - new - { - Id = 5070, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Установка ванн" - }, - new - { - Id = 5071, - IdParent = 4015, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Фрезеровка" - }, - new - { - Id = 5072, - IdParent = 4016, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Контролируемое ГНВП" - }, - new - { - Id = 5073, - IdParent = 4016, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Поглощение" - }, - new - { - Id = 5074, - IdParent = 4016, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сальникообразование" - }, - new - { - Id = 5075, - IdParent = 4016, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Утяжеление БР" - }, - new - { - Id = 5076, - IdParent = 4017, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "НПВ / прочее" - }, - new - { - Id = 5077, - IdParent = 4017, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Обработка раствора (несоответствие параметров)" - }, - new - { - Id = 5078, - IdParent = 4017, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "подъем ОК" - }, - new - { - Id = 5079, - IdParent = 4017, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ревизия КНБК/инструмента/ЗТС" - }, - new - { - Id = 5082, - IdParent = 4000, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка устройства ориентирования КО" - }, - new - { - Id = 5083, - IdParent = 4003, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Проработка принудительная" - }, - new - { - Id = 5084, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Шаблонировка подъем БИ, продувка" - }, - new - { - Id = 5085, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск бурильного инструмента со сборкой с мостков" - }, - new - { - Id = 5086, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подъем БИ с выбросом на мостки" - }, - new - { - Id = 5087, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск БИ со сборкой с мостков" - }, - new - { - Id = 5088, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка и спуск ТБТ" - }, - new - { - Id = 5089, - IdParent = 4005, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск КО на транспортной колонне" - }, - new - { - Id = 5090, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Отворот допускной трубы" - }, - new - { - Id = 5091, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Активация подвески, опрессовка" - }, - new - { - Id = 5092, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Монтаж, опрессовка ФА" - }, - new - { - Id = 5093, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка хвостовика 114мм (согласно схеме)" - }, - new - { - Id = 5094, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ПЗР к спуску УЭЦН" - }, - new - { - Id = 5095, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Активация подвески (потайной колонны, хвостовика)" - }, - new - { - Id = 5096, - IdParent = 4008, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Шаблонирование перед спуском" - }, - new - { - Id = 5097, - IdParent = 4012, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Промывка - перевод скважины на новый раствор" - }, - new - { - Id = 5098, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка БИ с мостков на подсвечник" - }, - new - { - Id = 5099, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО." - }, - new - { - Id = 5100, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Смена рабочего переводника ВСП" - }, - new - { - Id = 5101, - IdParent = 4014, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ремонт" - }, - new - { - Id = 5102, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск пакера" - }, - new - { - Id = 5103, - IdParent = 4011, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Запись гамма-каратожа" - }, - new - { - Id = 5104, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Шаблонирование спуск БИ" - }, - new - { - Id = 5105, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Сборка клин-отклонителя" - }, - new - { - Id = 5106, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ориентирование и посадка клина-отклонителя" - }, - new - { - Id = 5107, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Протяжка подъемного патрубка подвески" - }, - new - { - Id = 5108, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Подъем клина-отклонителя" - }, - new - { - Id = 5109, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Стыковка стингера с хвостовиком основного ствола" - }, - new - { - Id = 5110, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Ориентирование и установка стыковочного узла хвостовика" - }, - new - { - Id = 5111, - IdParent = 4001, - IsHidden = false, - KeyValueName = "МСП", - KeyValueUnits = "м/ч", - Name = "Бурение с отбором керна" - }, - new - { - Id = 5112, - IdParent = 4018, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Работа пакером в обсадной колонне" - }, - new - { - Id = 5113, - IdParent = 4001, - IsHidden = false, - KeyValueName = "МСП", - KeyValueUnits = "м/ч", - Name = "Бурение" - }, - new - { - Id = 5114, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "ТО оборудования" - }, - new - { - Id = 5115, - IdParent = 4019, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Спуск НКТ" - }, - new - { - Id = 5116, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Вырезка окна" - }, - new - { - Id = 5117, - IdParent = 4013, - IsHidden = false, - KeyValueName = "dT", - KeyValueUnits = "мин", - Name = "Расширение ствола" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption") - .HasComment("Название"); - - b.Property("Order") - .HasColumnType("real") - .HasColumnName("order") - .HasComment("Порядок"); - - b.HasKey("Id"); - - b.ToTable("t_well_section_type", t => - { - t.HasComment("конструкция секции скважины"); - }); - - b.HasData( - new - { - Id = 1, - Caption = "Пилотный ствол", - Order = 4f - }, - new - { - Id = 2, - Caption = "Направление", - Order = 0f - }, - new - { - Id = 3, - Caption = "Кондуктор", - Order = 1f - }, - new - { - Id = 4, - Caption = "Эксплуатационная колонна", - Order = 3f - }, - new - { - Id = 5, - Caption = "Транспортный ствол", - Order = 5f - }, - new - { - Id = 6, - Caption = "Хвостовик", - Order = 6f - }, - new - { - Id = 7, - Caption = "Пилотный ствол 2", - Order = 4.1f - }, - new - { - Id = 8, - Caption = "Направление 2", - Order = 0.1f - }, - new - { - Id = 9, - Caption = "Кондуктор 2", - Order = 1.1f - }, - new - { - Id = 10, - Caption = "Эксплуатационная колонна 2", - Order = 3.1f - }, - new - { - Id = 11, - Caption = "Транспортный ствол 2", - Order = 5.1f - }, - new - { - Id = 12, - Caption = "Хвостовик 2", - Order = 6.1f - }, - new - { - Id = 13, - Caption = "Пилотный ствол 3", - Order = 4.2f - }, - new - { - Id = 14, - Caption = "Направление 3", - Order = 0.2f - }, - new - { - Id = 15, - Caption = "Кондуктор 3", - Order = 1.2f - }, - new - { - Id = 16, - Caption = "Эксплуатационная колонна 3", - Order = 3.2f - }, - new - { - Id = 17, - Caption = "Транспортный ствол 3", - Order = 5.2f - }, - new - { - Id = 18, - Caption = "Хвостовик 3", - Order = 6.2f - }, - new - { - Id = 19, - Caption = "Пилотный ствол 4", - Order = 4.3f - }, - new - { - Id = 20, - Caption = "Направление 4", - Order = 0.3f - }, - new - { - Id = 21, - Caption = "Кондуктор 4", - Order = 1.3f - }, - new - { - Id = 22, - Caption = "Эксплуатационная колонна 4", - Order = 3.3f - }, - new - { - Id = 23, - Caption = "Транспортный ствол 4", - Order = 5.3f - }, - new - { - Id = 24, - Caption = "Хвостовик 4", - Order = 6.3f - }, - new - { - Id = 25, - Caption = "Пилотный ствол 5", - Order = 4.4f - }, - new - { - Id = 26, - Caption = "Направление 5", - Order = 0.4f - }, - new - { - Id = 27, - Caption = "Кондуктор 5", - Order = 1.4f - }, - new - { - Id = 28, - Caption = "Эксплуатационная колонна 5", - Order = 3.4f - }, - new - { - Id = 29, - Caption = "Транспортный ствол 5", - Order = 5.4f - }, - new - { - Id = 30, - Caption = "Хвостовик 5", - Order = 6.4f - }, - new - { - Id = 31, - Caption = "Техническая колонна", - Order = 2f - }, - new - { - Id = 32, - Caption = "Техническая колонна 2", - Order = 2.1f - }, - new - { - Id = 33, - Caption = "Техническая колонна 3", - Order = 2.2f - }, - new - { - Id = 34, - Caption = "Хвостовик 6", - Order = 6.5f - }, - new - { - Id = 35, - Caption = "Хвостовик 7", - Order = 6.6f - }, - new - { - Id = 36, - Caption = "Хвостовик 8", - Order = 6.7f - }, - new - { - Id = 37, - Caption = "Хвостовик 9", - Order = 6.8f - }, - new - { - Id = 38, - Caption = "Хвостовик 10", - Order = 6.9f - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Конечная глубина бурения, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Начальная глубина бурения, м"); - - b.Property("IdSectionType") - .HasColumnType("integer") - .HasColumnName("id_section_type") - .HasComment("Тип секции"); - - b.Property("IdUser") - .HasColumnType("integer") - .HasColumnName("id_user") - .HasComment("Id пользователя"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("InnerDiameter") - .HasColumnType("double precision") - .HasColumnName("inner_diameter") - .HasComment("Внутренний диаметр"); - - b.Property("LastUpdateDate") - .HasColumnType("timestamp with time zone") - .HasColumnName("date_last_update") - .HasComment("Дата последнего обновления"); - - b.Property("OuterDiameter") - .HasColumnType("double precision") - .HasColumnName("outer_diameter") - .HasComment("Внешний диаметр"); - - b.HasKey("Id"); - - b.HasIndex("IdSectionType"); - - b.HasIndex("IdWell", "IdSectionType") - .IsUnique(); - - b.ToTable("t_well_section_plan"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Caption") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)") - .HasColumnName("caption") - .HasComment("Название"); - - b.HasKey("Id"); - - b.ToTable("t_well_type", t => - { - t.HasComment("конструкция скважины"); - }); - - b.HasData( - new - { - Id = 1, - Caption = "Наклонно-направленная" - }, - new - { - Id = 2, - Caption = "Горизонтальная" - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Blkpos") - .HasColumnType("real") - .HasColumnName("BLKPOS"); - - b.Property("Chkp") - .HasColumnType("real") - .HasColumnName("CHKP"); - - b.Property("Deptbitm") - .HasColumnType("real") - .HasColumnName("DEPTBITM"); - - b.Property("Deptbitv") - .HasColumnType("real") - .HasColumnName("DEPTBITV"); - - b.Property("Deptmeas") - .HasColumnType("real") - .HasColumnName("DEPTMEAS"); - - b.Property("Deptretm") - .HasColumnType("real") - .HasColumnName("DEPTRETM"); - - b.Property("Deptvert") - .HasColumnType("real") - .HasColumnName("DEPTVERT"); - - b.Property("Gasa") - .HasColumnType("real") - .HasColumnName("GASA"); - - b.Property("Hkla") - .HasColumnType("real") - .HasColumnName("HKLA"); - - b.Property("Hklx") - .HasColumnType("real") - .HasColumnName("HKLX"); - - b.Property("Lagstks") - .HasColumnType("smallint") - .HasColumnName("LAGSTKS"); - - b.Property("Mcia") - .HasColumnType("real") - .HasColumnName("MCIA"); - - b.Property("Mcoa") - .HasColumnType("real") - .HasColumnName("MCOA"); - - b.Property("Mdia") - .HasColumnType("real") - .HasColumnName("MDIA"); - - b.Property("Mdoa") - .HasColumnType("real") - .HasColumnName("MDOA"); - - b.Property("Mfia") - .HasColumnType("real") - .HasColumnName("MFIA"); - - b.Property("Mfoa") - .HasColumnType("real") - .HasColumnName("MFOA"); - - b.Property("Mfop") - .HasColumnType("smallint") - .HasColumnName("MFOP"); - - b.Property("Mtia") - .HasColumnType("real") - .HasColumnName("MTIA"); - - b.Property("Mtoa") - .HasColumnType("real") - .HasColumnName("MTOA"); - - b.Property("Ropa") - .HasColumnType("real") - .HasColumnName("ROPA"); - - b.Property("Rpma") - .HasColumnType("smallint") - .HasColumnName("RPMA"); - - b.Property("Spare1") - .HasColumnType("real") - .HasColumnName("SPARE1"); - - b.Property("Spare2") - .HasColumnType("real") - .HasColumnName("SPARE2"); - - b.Property("Spare3") - .HasColumnType("real") - .HasColumnName("SPARE3"); - - b.Property("Spare4") - .HasColumnType("real") - .HasColumnName("SPARE4"); - - b.Property("Spare5") - .HasColumnType("real") - .HasColumnName("SPARE5"); - - b.Property("Spm1") - .HasColumnType("smallint") - .HasColumnName("SPM1"); - - b.Property("Spm2") - .HasColumnType("smallint") - .HasColumnName("SPM2"); - - b.Property("Spm3") - .HasColumnType("smallint") - .HasColumnName("SPM3"); - - b.Property("Sppa") - .HasColumnType("real") - .HasColumnName("SPPA"); - - b.Property("Stkc") - .HasColumnType("integer") - .HasColumnName("STKC"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.Property("Torqa") - .HasColumnType("real") - .HasColumnName("TORQA"); - - b.Property("Torqx") - .HasColumnType("real") - .HasColumnName("TORQX"); - - b.Property("Tvolact") - .HasColumnType("real") - .HasColumnName("TVOLACT"); - - b.Property("Tvolcact") - .HasColumnType("real") - .HasColumnName("TVOLCACT"); - - b.Property("Woba") - .HasColumnType("real") - .HasColumnName("WOBA"); - - b.Property("Wobx") - .HasColumnType("real") - .HasColumnName("WOBX"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_1"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Deptbitm") - .HasColumnType("real") - .HasColumnName("DEPTBITM"); - - b.Property("DeptmeasGdpMc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_GDP_mc"); - - b.Property("DeptmeasMcrstat") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_MCRSTAT"); - - b.Property("DeptmeasRa33Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RA33_mc"); - - b.Property("DeptmeasRa33f2Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RA33F2_mc"); - - b.Property("DeptmeasRa33f4Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RA33F4_mc"); - - b.Property("DeptmeasRp33Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RP33_mc"); - - b.Property("DeptmeasRp33f2Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RP33F2_mc"); - - b.Property("DeptmeasRp33f4Mc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_RP33F4_mc"); - - b.Property("DeptmeasSlvlMc") - .HasColumnType("real") - .HasColumnName("DEPTMEAS_SLVL_mc"); - - b.Property("GdpMc") - .HasColumnType("real") - .HasColumnName("GDP_mc"); - - b.Property("Mcrstat") - .HasColumnType("real") - .HasColumnName("MCRSTAT"); - - b.Property("Ra33Mc") - .HasColumnType("real") - .HasColumnName("RA33_mc"); - - b.Property("Ra33f2Mc") - .HasColumnType("real") - .HasColumnName("RA33F2_mc"); - - b.Property("Ra33f4Mc") - .HasColumnType("real") - .HasColumnName("RA33F4_mc"); - - b.Property("Rp33Mc") - .HasColumnType("real") - .HasColumnName("RP33_mc"); - - b.Property("Rp33f2Mc") - .HasColumnType("real") - .HasColumnName("RP33F2_mc"); - - b.Property("Rp33f4Mc") - .HasColumnType("real") - .HasColumnName("RP33F4_mc"); - - b.Property("SlvlMc") - .HasColumnType("real") - .HasColumnName("SLVL_mc"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_50"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Btot") - .HasColumnType("real") - .HasColumnName("Btot"); - - b.Property("Bx") - .HasColumnType("real") - .HasColumnName("Bx"); - - b.Property("By") - .HasColumnType("real") - .HasColumnName("By"); - - b.Property("Bz") - .HasColumnType("real") - .HasColumnName("Bz"); - - b.Property("Deptbitm") - .HasColumnType("real") - .HasColumnName("DEPTBITM"); - - b.Property("Deptmeas") - .HasColumnType("real") - .HasColumnName("DEPTMEAS"); - - b.Property("Gtot") - .HasColumnType("real") - .HasColumnName("Gtot"); - - b.Property("Gx") - .HasColumnType("real") - .HasColumnName("Gx"); - - b.Property("Gy") - .HasColumnType("real") - .HasColumnName("Gy"); - - b.Property("Gz") - .HasColumnType("real") - .HasColumnName("Gz"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_60"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Att06h") - .HasColumnType("real") - .HasColumnName("ATT06H"); - - b.Property("Att06l") - .HasColumnType("real") - .HasColumnName("ATT06L"); - - b.Property("Att10h") - .HasColumnType("real") - .HasColumnName("ATT10H"); - - b.Property("Att10l") - .HasColumnType("real") - .HasColumnName("ATT10L"); - - b.Property("Deptbitm") - .HasColumnType("real") - .HasColumnName("DEPTBITM"); - - b.Property("Deptmeas") - .HasColumnType("real") - .HasColumnName("DEPTMEAS"); - - b.Property("Phl1f1") - .HasColumnType("real") - .HasColumnName("PHL1F1"); - - b.Property("Phl1f2") - .HasColumnType("real") - .HasColumnName("PHL1F2"); - - b.Property("Phl2f1") - .HasColumnType("real") - .HasColumnName("PHL2F1"); - - b.Property("Phl2f2") - .HasColumnType("real") - .HasColumnName("PHL2F2"); - - b.Property("Status") - .HasColumnType("real") - .HasColumnName("Status"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_61"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Deptmeas") - .HasColumnType("real") - .HasColumnName("DEPTMEAS"); - - b.Property("Deptsvym") - .HasColumnType("real") - .HasColumnName("DEPTSVYM"); - - b.Property("Deptsvyv") - .HasColumnType("real") - .HasColumnName("DEPTSVYV"); - - b.Property("Passnum") - .HasColumnType("smallint") - .HasColumnName("PASSNUM"); - - b.Property("Spare1") - .HasColumnType("real") - .HasColumnName("SPARE1"); - - b.Property("Spare2") - .HasColumnType("real") - .HasColumnName("SPARE2"); - - b.Property("Spare3") - .HasColumnType("real") - .HasColumnName("SPARE3"); - - b.Property("Spare4") - .HasColumnType("real") - .HasColumnName("SPARE4"); - - b.Property("Spare5") - .HasColumnType("real") - .HasColumnName("SPARE5"); - - b.Property("Svyazc") - .HasColumnType("real") - .HasColumnName("SVYAZC"); - - b.Property("Svyazu") - .HasColumnType("real") - .HasColumnName("SVYAZU"); - - b.Property("Svydls") - .HasColumnType("real") - .HasColumnName("SVYDLS"); - - b.Property("Svyew") - .HasColumnType("real") - .HasColumnName("SVYEW"); - - b.Property("Svygtf") - .HasColumnType("real") - .HasColumnName("SVYGTF"); - - b.Property("Svyinc") - .HasColumnType("real") - .HasColumnName("SVYINC"); - - b.Property("Svymtf") - .HasColumnType("real") - .HasColumnName("SVYMTF"); - - b.Property("Svyns") - .HasColumnType("real") - .HasColumnName("SVYNS"); - - b.Property("Svytype") - .HasColumnType("text") - .HasColumnName("SVYTYPE"); - - b.Property("Svywalk") - .HasColumnType("real") - .HasColumnName("SVYWALK"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_7"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => - { - b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); - - b.Property("Deptbitm") - .HasColumnType("real") - .HasColumnName("DEPTBITM"); - - b.Property("Deptbitv") - .HasColumnType("real") - .HasColumnName("DEPTBITV"); - - b.Property("Deptcalm") - .HasColumnType("real") - .HasColumnName("DEPTCALM"); - - b.Property("Deptcalv") - .HasColumnType("real") - .HasColumnName("DEPTCALV"); - - b.Property("Deptfdm") - .HasColumnType("real") - .HasColumnName("DEPTFDM"); - - b.Property("Deptfdv") - .HasColumnType("real") - .HasColumnName("DEPTFDV"); - - b.Property("Deptgr1m") - .HasColumnType("real") - .HasColumnName("DEPTGR1M"); - - b.Property("Deptgr1v") - .HasColumnType("real") - .HasColumnName("DEPTGR1V"); - - b.Property("Deptgr2m") - .HasColumnType("real") - .HasColumnName("DEPTGR2M"); - - b.Property("Deptgr2v") - .HasColumnType("real") - .HasColumnName("DEPTGR2V"); - - b.Property("Deptmeas") - .HasColumnType("real") - .HasColumnName("DEPTMEAS"); - - b.Property("Deptp1m") - .HasColumnType("real") - .HasColumnName("DEPTP1M"); - - b.Property("Deptp1v") - .HasColumnType("real") - .HasColumnName("DEPTP1V"); - - b.Property("Deptp2m") - .HasColumnType("real") - .HasColumnName("DEPTP2M"); - - b.Property("Deptp2v") - .HasColumnType("real") - .HasColumnName("DEPTP2V"); - - b.Property("Deptrs1m") - .HasColumnType("real") - .HasColumnName("DEPTRS1M"); - - b.Property("Deptrs1v") - .HasColumnType("real") - .HasColumnName("DEPTRS1V"); - - b.Property("Deptrs2m") - .HasColumnType("real") - .HasColumnName("DEPTRS2M"); - - b.Property("Deptrs2v") - .HasColumnType("real") - .HasColumnName("DEPTRS2V"); - - b.Property("Deptvert") - .HasColumnType("real") - .HasColumnName("DEPTVERT"); - - b.Property("Mclp") - .HasColumnType("real") - .HasColumnName("MCLP"); - - b.Property("Mfd") - .HasColumnType("real") - .HasColumnName("MFD"); - - b.Property("Mffp") - .HasColumnType("real") - .HasColumnName("MFFP"); - - b.Property("Mfpp") - .HasColumnType("real") - .HasColumnName("MFPP"); - - b.Property("Mfrann") - .HasColumnType("real") - .HasColumnName("MFRANN"); - - b.Property("Mfrpipe") - .HasColumnType("real") - .HasColumnName("MFRPIPE"); - - b.Property("Mftann") - .HasColumnType("real") - .HasColumnName("MFTANN"); - - b.Property("Mftpipe") - .HasColumnType("real") - .HasColumnName("MFTPIPE"); - - b.Property("Mg1") - .HasColumnType("real") - .HasColumnName("MG1"); - - b.Property("Mg1c") - .HasColumnType("real") - .HasColumnName("MG1C"); - - b.Property("Mg2") - .HasColumnType("real") - .HasColumnName("MG2"); - - b.Property("Mg2c") - .HasColumnType("real") - .HasColumnName("MG2C"); - - b.Property("Mpo1") - .HasColumnType("real") - .HasColumnName("MPO1"); - - b.Property("Mpo2") - .HasColumnType("real") - .HasColumnName("MPO2"); - - b.Property("Mr1") - .HasColumnType("real") - .HasColumnName("MR1"); - - b.Property("Mr1c") - .HasColumnType("real") - .HasColumnName("MR1C"); - - b.Property("Mr2") - .HasColumnType("real") - .HasColumnName("MR2"); - - b.Property("Mr2c") - .HasColumnType("real") - .HasColumnName("MR2C"); - - b.Property("Passnum") - .HasColumnType("smallint") - .HasColumnName("PASSNUM"); - - b.Property("Spare1") - .HasColumnType("real") - .HasColumnName("SPARE1"); - - b.Property("Spare2") - .HasColumnType("real") - .HasColumnName("SPARE2"); - - b.Property("Spare3") - .HasColumnType("real") - .HasColumnName("SPARE3"); - - b.Property("Spare4") - .HasColumnType("real") - .HasColumnName("SPARE4"); - - b.Property("Spare5") - .HasColumnType("real") - .HasColumnName("SPARE5"); - - b.Property("Spare6") - .HasColumnType("real") - .HasColumnName("SPARE6"); - - b.Property("Spare7") - .HasColumnType("real") - .HasColumnName("SPARE7"); - - b.Property("Spare8") - .HasColumnType("real") - .HasColumnName("SPARE8"); - - b.Property("Spare9") - .HasColumnType("real") - .HasColumnName("SPARE9"); - - b.Property("TelemetryId") - .HasColumnType("integer"); - - b.HasIndex("TelemetryId"); - - b.ToTable("t_telemetry_wits_8"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => - { - b.HasOne("AsbCloudDb.Model.Deposit", "Deposit") - .WithMany("Clusters") - .HasForeignKey("IdDeposit") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_cluster_t_deposit_id_fk"); - - b.Navigation("Deposit"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Company", b => - { - b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") - .WithMany("Companies") - .HasForeignKey("IdCompanyType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CompanyType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Contact", b => - { - b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") - .WithMany("Contacts") - .HasForeignKey("IdCompanyType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany("Contacts") - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CompanyType"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => - { - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => - { - b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("OperationCategory"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => - { - b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("OperationCategory"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => - { - b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") - .WithMany() - .HasForeignKey("IdFileCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany("DrillingProgramParts") - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("FileCategory"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Faq", b => - { - b.HasOne("AsbCloudDb.Model.User", "AuthorAnswer") - .WithMany() - .HasForeignKey("IdAuthorAnswer"); - - b.HasOne("AsbCloudDb.Model.User", "AuthorQuestion") - .WithMany() - .HasForeignKey("IdAuthorQuestion") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("AuthorAnswer"); - - b.Navigation("AuthorQuestion"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany("Files") - .HasForeignKey("IdAuthor"); - - b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("FileCategory"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => - { - b.HasOne("AsbCloudDb.Model.FileInfo", "FileInfo") - .WithMany("FileMarks") - .HasForeignKey("IdFile") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_file_mark_t_file_info_fk"); - - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany("FileMarks") - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_user_t_file_mark_fk"); - - b.Navigation("FileInfo"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => - { - b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("FileCategory"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.FileCategory", "Category") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Directory") - .WithMany("Manuals") - .HasForeignKey("IdDirectory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Category"); - - b.Navigation("Directory"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => - { - b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Parent") - .WithMany("Children") - .HasForeignKey("IdParent") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("Parent"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Measure", b => - { - b.HasOne("AsbCloudDb.Model.MeasureCategory", "Category") - .WithMany("Measures") - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Category"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Notification", b => - { - b.HasOne("AsbCloudDb.Model.NotificationCategory", "NotificationCategory") - .WithMany("Notifications") - .HasForeignKey("IdNotificationCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("NotificationCategory"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => - { - b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") - .WithMany() - .HasForeignKey("IdOperationCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("OperationCategory"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict) - .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1"); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2"); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => - { - b.HasOne("AsbCloudDb.Model.Company", "Company") - .WithMany("RelationCompaniesWells") - .HasForeignKey("IdCompany") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_relation_company_well_t_company_id_fk"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany("RelationCompaniesWells") - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_relation_company_well_t_well_id_fk"); - - b.Navigation("Company"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => - { - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany("RelationContactsWells") - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => - { - b.HasOne("AsbCloudDb.Model.DrillingProgramPart", "DrillingProgramPart") - .WithMany("RelatedUsers") - .HasForeignKey("IdDrillingProgramPart") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("DrillingProgramPart"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => - { - b.HasOne("AsbCloudDb.Model.Permission", "Permission") - .WithMany("RelationUserRolePermissions") - .HasForeignKey("IdPermission") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") - .WithMany("RelationUserRolePermissions") - .HasForeignKey("IdUserRole") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Permission"); - - b.Navigation("UserRole"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => - { - b.HasOne("AsbCloudDb.Model.UserRole", "Role") - .WithMany("RelationUserRoleUserRoles") - .HasForeignKey("Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.UserRole", "IncludeRole") - .WithMany() - .HasForeignKey("IdInclude") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("IncludeRole"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => - { - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany("RelationUsersUserRoles") - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") - .WithMany("RelationUsersUserRoles") - .HasForeignKey("IdUserRole") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - - b.Navigation("UserRole"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => - { - b.HasOne("AsbCloudDb.Model.FileInfo", "File") - .WithMany() - .HasForeignKey("IdFile") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("File"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => - { - b.HasOne("AsbCloudDb.Model.Driller", "Driller") - .WithMany("Schedule") - .HasForeignKey("IdDriller") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_schedule_t_driller_id_driller"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Driller"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany("DataSaub") - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_telemetry_data_saub_t_telemetry_id_fk"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany("DataSpin") - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_telemetry_data_spin_t_telemetry_id_fk"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany("Events") - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_event_t_telemetry_id_fk"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany("Messages") - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_messages_t_telemetry_id_fk"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany("Users") - .HasForeignKey("IdTelemetry") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_telemetry_user_t_telemetry_id_fk"); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => - { - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => - { - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.User", b => - { - b.HasOne("AsbCloudDb.Model.Company", "Company") - .WithMany("Users") - .HasForeignKey("IdCompany") - .OnDelete(DeleteBehavior.SetNull) - .IsRequired() - .HasConstraintName("t_user_t_company_id_fk"); - - b.Navigation("Company"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => - { - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Well", b => - { - b.HasOne("AsbCloudDb.Model.Cluster", "Cluster") - .WithMany("Wells") - .HasForeignKey("IdCluster") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_well_t_cluster_id_fk"); - - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithOne("Well") - .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry") - .OnDelete(DeleteBehavior.SetNull) - .HasConstraintName("t_well_t_telemetry_id_fk"); - - b.HasOne("AsbCloudDb.Model.WellType", "WellType") - .WithMany("Wells") - .HasForeignKey("IdWellType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Cluster"); - - b.Navigation("Telemetry"); - - b.Navigation("WellType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => - { - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany("WellComposites") - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_well_сomposite_t_well_id_fk"); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany("WellComposites") - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_well_сomposite_t_well_section_type_id_fk"); - - b.HasOne("AsbCloudDb.Model.Well", "WellSrc") - .WithMany("WellCompositeSrcs") - .HasForeignKey("IdWellSrc") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("t_well_сomposite_src_t_well_id_fk"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - - b.Navigation("WellSrc"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => - { - b.HasOne("AsbCloudDb.Model.FileCategory", "Category") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "User") - .WithMany() - .HasForeignKey("IdUser") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Category"); - - b.Navigation("User"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => - { - b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") - .WithMany() - .HasForeignKey("IdCategory") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellOperation", "OperationPlan") - .WithMany() - .HasForeignKey("IdPlan") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany("WellOperations") - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany("WellOperations") - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("OperationCategory"); - - b.Navigation("OperationPlan"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => - { - b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Parent") - .WithMany() - .HasForeignKey("IdParent"); - - b.Navigation("Parent"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => - { - b.HasOne("AsbCloudDb.Model.WellSectionType", "SectionType") - .WithMany() - .HasForeignKey("IdSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("SectionType"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record1", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record50", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record60", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record61", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record7", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => - { - b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") - .WithMany() - .HasForeignKey("TelemetryId"); - - b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) - .WithOne() - .HasForeignKey("AsbCloudDb.Model.WITS.Record8", "IdTelemetry", "DateTime") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Telemetry"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => - { - b.Navigation("Wells"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Company", b => - { - b.Navigation("RelationCompaniesWells"); - - b.Navigation("Users"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => - { - b.Navigation("Companies"); - - b.Navigation("Contacts"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => - { - b.Navigation("Clusters"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Driller", b => - { - b.Navigation("Schedule"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => - { - b.Navigation("RelatedUsers"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => - { - b.Navigation("FileMarks"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => - { - b.Navigation("Children"); - - b.Navigation("Manuals"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => - { - b.Navigation("Measures"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => - { - b.Navigation("Notifications"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Permission", b => - { - b.Navigation("RelationUserRolePermissions"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => - { - b.Navigation("DataSaub"); - - b.Navigation("DataSpin"); - - b.Navigation("Events"); - - b.Navigation("Messages"); - - b.Navigation("Users"); - - b.Navigation("Well"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.User", b => - { - b.Navigation("FileMarks"); - - b.Navigation("Files"); - - b.Navigation("RelationContactsWells"); - - b.Navigation("RelationUsersUserRoles"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => - { - b.Navigation("RelationUserRolePermissions"); - - b.Navigation("RelationUserRoleUserRoles"); - - b.Navigation("RelationUsersUserRoles"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.Well", b => - { - b.Navigation("Contacts"); - - b.Navigation("DrillingProgramParts"); - - b.Navigation("RelationCompaniesWells"); - - b.Navigation("WellCompositeSrcs"); - - b.Navigation("WellComposites"); - - b.Navigation("WellOperations"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => - { - b.Navigation("WellComposites"); - - b.Navigation("WellOperations"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.WellType", b => - { - b.Navigation("Wells"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs b/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs deleted file mode 100644 index c898af75..00000000 --- a/AsbCloudDb/Migrations/20240627045703_Add_Tables_ProcessMapOperationsAndFunctions.cs +++ /dev/null @@ -1,1621 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace AsbCloudDb.Migrations -{ - /// - public partial class Add_Tables_ProcessMapOperationsAndFunctions : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "t_process_map_functions_shock_test", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - stickslip = table.Column(type: "double precision", nullable: false, comment: "StickSlip"), - whirl = table.Column(type: "double precision", nullable: false, comment: "Whirl"), - axial_vibrations = table.Column(type: "double precision", nullable: false, comment: "Осевые вибрации"), - combined_vibrations = table.Column(type: "double precision", nullable: false, comment: "Комбинированные вибрации"), - weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), - revolution_per_minute_min = table.Column(type: "integer", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), - id_autostart_or_warning = table.Column(type: "boolean", nullable: false, comment: "Автозапуск или Предупреждение"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_functions_shock_test", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_functions_shock_test_t_process_map_functions_~", - column: x => x.id_previous, - principalTable: "t_process_map_functions_shock_test", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_functions_shock_test_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_functions_shock_test_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_functions_shock_test_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_functions_shock_test_t_well_section_type_id_w~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "ShockTest"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_anticrash_rotation", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - min_RPM = table.Column(type: "double precision", nullable: false, comment: "Минимальные обороты ВСП, об/мин"), - min_consumption_starting_flow_rate = table.Column(type: "double precision", nullable: false, comment: "Минимальный расход для запуска оборотов ВСП, л/сек"), - top_drive_torque_limit_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_anticrash_rotation", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_anticrash_rotation_t_process_m~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_anticrash_rotation", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_anticrash_rotation_t_user_id_a~", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_anticrash_rotation_t_user_id_e~", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_anticrash_rotation_t_well_id_w~", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_anticrash_rotation_t_well_sect~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Противоаварийное вращение"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_autohold", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_autohold", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_autohold_t_process_map_plan_fu~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_autohold", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_autohold_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_autohold_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_autohold_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_autohold_t_well_section_type_i~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Автоудержание"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_damper", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - stickslip = table.Column(type: "double precision", nullable: false, comment: "StickSlip"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_damper", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_damper_t_process_map_plan_func~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_damper", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_damper_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_damper_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_damper_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_damper_t_well_section_type_id_~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Демпфер"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_drilltest", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), - number_of_steps_bit = table.Column(type: "integer", nullable: false, comment: "Количество шагов по нагрузке"), - revolution_per_minute_min = table.Column(type: "integer", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), - number_of_steps_rpm = table.Column(type: "integer", nullable: false, comment: "Количество шагов оборотов на ВСП, шт."), - length_step = table.Column(type: "double precision", nullable: false, comment: "Величина проходки шага, м."), - id_autostart_or_warning = table.Column(type: "boolean", nullable: false, comment: "Автозапуск или Предупреждение"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_drilltest", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_drilltest_t_process_map_plan_f~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_drilltest", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_drilltest_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_drilltest_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_drilltest_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_drilltest_t_well_section_type_~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Дрилтест"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_jarr_drill_tool", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), - buckling = table.Column(type: "double precision", nullable: false, comment: "Складывание, м"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_jarr_drill_tool", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_process_map_~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_jarr_drill_tool", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_user_id_auth~", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_user_id_edit~", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_jarr_drill_tool_t_well_section~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Встряхивание бурового инструмента"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_oscillation", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - optimal_oscillation_angle = table.Column(type: "double precision", nullable: false, comment: "Оптимальный угол осцилляции, градусы"), - RPM​_right = table.Column(type: "double precision", nullable: false, comment: "Скорость вправо, об/мин"), - RPM​_left = table.Column(type: "double precision", nullable: false, comment: "Скорость влево, об/мин"), - torque_limit_right = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента вправо, кН*м"), - torque_limit_left = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента влево, кН*м"), - id_mode = table.Column(type: "boolean", nullable: false, comment: "Режим Авто/Руч"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_oscillation", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_oscillation_t_process_map_plan~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_oscillation", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_oscillation_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_oscillation_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_oscillation_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_oscillation_t_well_section_typ~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Осцилляция"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_static_measure", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - signal_waiting_time = table.Column(type: "double precision", nullable: false, comment: "Время ожидания выхода сигнала с ТМС, сек."), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_static_measure", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_static_measure_t_process_map_p~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_static_measure", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_static_measure_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_static_measure_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_static_measure_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_static_measure_t_well_section_~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Выход статического замера"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_functions_upgrade_no_load", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - id_decline_socket_column = table.Column(type: "boolean", nullable: false, comment: "СПУСК ОК Да/Нет"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_functions_upgrade_no_load", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_upgrade_no_load_t_process_map_~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_functions_upgrade_no_load", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_upgrade_no_load_t_user_id_auth~", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_upgrade_no_load_t_user_id_edit~", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_upgrade_no_load_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_functions_upgrade_no_load_t_well_section~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Обновление холостого хода"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_load_capacity", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - time_load_capacity_min = table.Column(type: "double precision", nullable: false, comment: "Время выработки минимальное, сек"), - differential_pressure_min = table.Column(type: "double precision", nullable: false, comment: "Перепад давления минимальный, атм"), - weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_load_capacity", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_load_capacity_t_process_map_pl~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_load_capacity", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_load_capacity_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_load_capacity_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_load_capacity_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_load_capacity_t_well_section_t~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "РТК выработка нагрузки"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_oscillation_angels", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), - differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), - setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), - setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), - reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Скорость, м/ч., Вверх"), - reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость, м/ч., Вниз"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_oscillation_angels", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_oscillation_angels_t_process_m~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_oscillation_angels", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_a~", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_e~", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_id_w~", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_sect~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Определение углов осцилляции"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_positioning_off_the_bottom", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - stop_off_the_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_positioning_off_the_bottom", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_p~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_positioning_off_the_bottom", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_u~", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_w~", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Позиционирование над забоем"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_reaming_rotor", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), - differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), - setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), - setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), - max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), - reaming1_number_of_repetitions = table.Column(name: "reaming1_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 1, Количество повторений, шт."), - reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), - reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), - reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), - reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), - reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), - reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), - reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), - reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - reaming2_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Количество повторений, шт."), - reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), - reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), - reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), - reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), - reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), - reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), - reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), - reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - reaming3_number_of_repetitions = table.Column(name: "reaming3_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 3, Количество повторений, шт."), - reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), - reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), - reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), - reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), - reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), - reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), - reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), - reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_reaming_rotor", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_rotor_t_process_map_pl~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_reaming_rotor", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_section_t~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "РТК проработка ротор"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_reaming_slide", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), - differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), - setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), - setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), - max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), - reaming1_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Количество повторений, шт."), - reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), - reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), - reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), - reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), - reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), - reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), - reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), - reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - reaming2_number_of_repetitions = table.Column(name: "reaming2_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 2, Количество повторений, шт."), - reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), - reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), - reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), - reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), - reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), - reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), - reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), - reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - reaming3_number_of_repetitions = table.Column(name: "reaming3_number_of_ repetitions", type: "double precision", nullable: false, comment: "Проработка 3, Количество повторений, шт."), - reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), - reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), - reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), - reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), - reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), - reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), - reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), - reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_reaming_slide", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_slide_t_process_map_pl~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_reaming_slide", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_slide_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_slide_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_slide_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_reaming_slide_t_well_section_t~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "РТК проработка слайд"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_switch_mode", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - exit_time_consumption = table.Column(type: "double precision", nullable: false, comment: "Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."), - consumption_flow_rate = table.Column(type: "double precision", nullable: false, comment: "Выход на плановый расход, расход, л/с"), - pressure_limit_Max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), - сomment = table.Column(type: "double precision", nullable: false, comment: "Комментарий"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_switch_mode", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_mode_t_process_map_plan~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_switch_mode", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_mode_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_mode_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_mode_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_mode_t_well_section_typ~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Выход на режим"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_switch_pump", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - duration = table.Column(type: "double precision", nullable: false, comment: "Продолжительность, сек."), - residual_pressure_limit = table.Column(type: "double precision", nullable: false, comment: "Лимит остаточного давления, атм."), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_switch_pump", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_pump_t_process_map_plan~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_switch_pump", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_pump_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_pump_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_pump_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_switch_pump_t_well_section_typ~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Выключение насоса"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_operation_tf_orientation", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - plan_tf = table.Column(type: "double precision", nullable: false, comment: "План TF, град"), - spring = table.Column(type: "double precision", nullable: false, comment: "Пружина, град "), - max_pressure = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм"), - differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), - setpoints_tight = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., затяжка"), - setpoints_slacking_off = table.Column(type: "double precision", nullable: false, comment: "Уставки, т., посадка"), - max_torque = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), - reaming1_number_of_repetitions = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Количество расхаживаний, шт"), - reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вверх"), - reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), - reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), - reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), - reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал расхаживания, м."), - reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_operation_tf_orientation", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_tf_orientation_t_process_map_p~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_operation_tf_orientation", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_tf_orientation_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_tf_orientation_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_tf_orientation_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_operation_tf_orientation_t_well_section_~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Выставление"); - - migrationBuilder.CreateTable( - name: "t_process_map_plan_survey", - columns: table => new - { - id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - measurement_recording_time = table.Column(type: "double precision", nullable: false, comment: "Время записи замера, сек"), - id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), - id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), - creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), - obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), - id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), - id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), - id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), - depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), - depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") - }, - constraints: table => - { - table.PrimaryKey("PK_t_process_map_plan_survey", x => x.id); - table.ForeignKey( - name: "FK_t_process_map_plan_survey_t_process_map_plan_survey_id_prev~", - column: x => x.id_previous, - principalTable: "t_process_map_plan_survey", - principalColumn: "id"); - table.ForeignKey( - name: "FK_t_process_map_plan_survey_t_user_id_author", - column: x => x.id_author, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_survey_t_user_id_editor", - column: x => x.id_editor, - principalTable: "t_user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_t_process_map_plan_survey_t_well_id_well", - column: x => x.id_well, - principalTable: "t_well", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_t_process_map_plan_survey_t_well_section_type_id_wellsectio~", - column: x => x.id_wellsection_type, - principalTable: "t_well_section_type", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }, - comment: "Запись статического замера"); - - migrationBuilder.UpdateData( - table: "t_well_operation_category", - keyColumn: "id", - keyValue: 5002, - column: "IsHidden", - value: true); - - migrationBuilder.UpdateData( - table: "t_well_operation_category", - keyColumn: "id", - keyValue: 5003, - column: "IsHidden", - value: true); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_functions_shock_test_id_author", - table: "t_process_map_functions_shock_test", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_functions_shock_test_id_editor", - table: "t_process_map_functions_shock_test", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_functions_shock_test_id_previous", - table: "t_process_map_functions_shock_test", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_functions_shock_test_id_well", - table: "t_process_map_functions_shock_test", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_functions_shock_test_id_wellsection_type", - table: "t_process_map_functions_shock_test", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_anticrash_rotation_id_author", - table: "t_process_map_plan_functions_anticrash_rotation", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_anticrash_rotation_id_editor", - table: "t_process_map_plan_functions_anticrash_rotation", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_anticrash_rotation_id_previous", - table: "t_process_map_plan_functions_anticrash_rotation", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_anticrash_rotation_id_well", - table: "t_process_map_plan_functions_anticrash_rotation", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_anticrash_rotation_id_wellsect~", - table: "t_process_map_plan_functions_anticrash_rotation", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_autohold_id_author", - table: "t_process_map_plan_functions_autohold", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_autohold_id_editor", - table: "t_process_map_plan_functions_autohold", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_autohold_id_previous", - table: "t_process_map_plan_functions_autohold", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_autohold_id_well", - table: "t_process_map_plan_functions_autohold", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_autohold_id_wellsection_type", - table: "t_process_map_plan_functions_autohold", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_damper_id_author", - table: "t_process_map_plan_functions_damper", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_damper_id_editor", - table: "t_process_map_plan_functions_damper", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_damper_id_previous", - table: "t_process_map_plan_functions_damper", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_damper_id_well", - table: "t_process_map_plan_functions_damper", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_damper_id_wellsection_type", - table: "t_process_map_plan_functions_damper", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_drilltest_id_author", - table: "t_process_map_plan_functions_drilltest", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_drilltest_id_editor", - table: "t_process_map_plan_functions_drilltest", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_drilltest_id_previous", - table: "t_process_map_plan_functions_drilltest", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_drilltest_id_well", - table: "t_process_map_plan_functions_drilltest", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_drilltest_id_wellsection_type", - table: "t_process_map_plan_functions_drilltest", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_author", - table: "t_process_map_plan_functions_jarr_drill_tool", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_editor", - table: "t_process_map_plan_functions_jarr_drill_tool", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_previous", - table: "t_process_map_plan_functions_jarr_drill_tool", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_well", - table: "t_process_map_plan_functions_jarr_drill_tool", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_jarr_drill_tool_id_wellsection~", - table: "t_process_map_plan_functions_jarr_drill_tool", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_oscillation_id_author", - table: "t_process_map_plan_functions_oscillation", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_oscillation_id_editor", - table: "t_process_map_plan_functions_oscillation", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_oscillation_id_previous", - table: "t_process_map_plan_functions_oscillation", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_oscillation_id_well", - table: "t_process_map_plan_functions_oscillation", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_oscillation_id_wellsection_type", - table: "t_process_map_plan_functions_oscillation", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_static_measure_id_author", - table: "t_process_map_plan_functions_static_measure", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_static_measure_id_editor", - table: "t_process_map_plan_functions_static_measure", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_static_measure_id_previous", - table: "t_process_map_plan_functions_static_measure", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_static_measure_id_well", - table: "t_process_map_plan_functions_static_measure", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_static_measure_id_wellsection_~", - table: "t_process_map_plan_functions_static_measure", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_upgrade_no_load_id_author", - table: "t_process_map_plan_functions_upgrade_no_load", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_upgrade_no_load_id_editor", - table: "t_process_map_plan_functions_upgrade_no_load", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_upgrade_no_load_id_previous", - table: "t_process_map_plan_functions_upgrade_no_load", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_upgrade_no_load_id_well", - table: "t_process_map_plan_functions_upgrade_no_load", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_functions_upgrade_no_load_id_wellsection~", - table: "t_process_map_plan_functions_upgrade_no_load", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_load_capacity_id_author", - table: "t_process_map_plan_operation_load_capacity", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_load_capacity_id_editor", - table: "t_process_map_plan_operation_load_capacity", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_load_capacity_id_previous", - table: "t_process_map_plan_operation_load_capacity", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_load_capacity_id_well", - table: "t_process_map_plan_operation_load_capacity", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_load_capacity_id_wellsection_t~", - table: "t_process_map_plan_operation_load_capacity", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_oscillation_angels_id_author", - table: "t_process_map_plan_operation_oscillation_angels", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_oscillation_angels_id_editor", - table: "t_process_map_plan_operation_oscillation_angels", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_oscillation_angels_id_previous", - table: "t_process_map_plan_operation_oscillation_angels", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_oscillation_angels_id_well", - table: "t_process_map_plan_operation_oscillation_angels", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_oscillation_angels_id_wellsect~", - table: "t_process_map_plan_operation_oscillation_angels", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id_~", - table: "t_process_map_plan_operation_positioning_off_the_bottom", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1", - table: "t_process_map_plan_operation_positioning_off_the_bottom", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2", - table: "t_process_map_plan_operation_positioning_off_the_bottom", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3", - table: "t_process_map_plan_operation_positioning_off_the_bottom", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4", - table: "t_process_map_plan_operation_positioning_off_the_bottom", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_rotor_id_author", - table: "t_process_map_plan_operation_reaming_rotor", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_rotor_id_editor", - table: "t_process_map_plan_operation_reaming_rotor", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_rotor_id_previous", - table: "t_process_map_plan_operation_reaming_rotor", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_rotor_id_well", - table: "t_process_map_plan_operation_reaming_rotor", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_rotor_id_wellsection_t~", - table: "t_process_map_plan_operation_reaming_rotor", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_slide_id_author", - table: "t_process_map_plan_operation_reaming_slide", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_slide_id_editor", - table: "t_process_map_plan_operation_reaming_slide", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_slide_id_previous", - table: "t_process_map_plan_operation_reaming_slide", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_slide_id_well", - table: "t_process_map_plan_operation_reaming_slide", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_reaming_slide_id_wellsection_t~", - table: "t_process_map_plan_operation_reaming_slide", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_mode_id_author", - table: "t_process_map_plan_operation_switch_mode", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_mode_id_editor", - table: "t_process_map_plan_operation_switch_mode", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_mode_id_previous", - table: "t_process_map_plan_operation_switch_mode", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_mode_id_well", - table: "t_process_map_plan_operation_switch_mode", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_mode_id_wellsection_type", - table: "t_process_map_plan_operation_switch_mode", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_pump_id_author", - table: "t_process_map_plan_operation_switch_pump", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_pump_id_editor", - table: "t_process_map_plan_operation_switch_pump", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_pump_id_previous", - table: "t_process_map_plan_operation_switch_pump", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_pump_id_well", - table: "t_process_map_plan_operation_switch_pump", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_switch_pump_id_wellsection_type", - table: "t_process_map_plan_operation_switch_pump", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_tf_orientation_id_author", - table: "t_process_map_plan_operation_tf_orientation", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_tf_orientation_id_editor", - table: "t_process_map_plan_operation_tf_orientation", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_tf_orientation_id_previous", - table: "t_process_map_plan_operation_tf_orientation", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_tf_orientation_id_well", - table: "t_process_map_plan_operation_tf_orientation", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_operation_tf_orientation_id_wellsection_~", - table: "t_process_map_plan_operation_tf_orientation", - column: "id_wellsection_type"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_survey_id_author", - table: "t_process_map_plan_survey", - column: "id_author"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_survey_id_editor", - table: "t_process_map_plan_survey", - column: "id_editor"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_survey_id_previous", - table: "t_process_map_plan_survey", - column: "id_previous"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_survey_id_well", - table: "t_process_map_plan_survey", - column: "id_well"); - - migrationBuilder.CreateIndex( - name: "IX_t_process_map_plan_survey_id_wellsection_type", - table: "t_process_map_plan_survey", - column: "id_wellsection_type"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "t_process_map_functions_shock_test"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_anticrash_rotation"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_autohold"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_damper"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_drilltest"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_jarr_drill_tool"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_oscillation"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_static_measure"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_functions_upgrade_no_load"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_load_capacity"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_oscillation_angels"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_positioning_off_the_bottom"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_reaming_rotor"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_reaming_slide"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_switch_mode"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_switch_pump"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_operation_tf_orientation"); - - migrationBuilder.DropTable( - name: "t_process_map_plan_survey"); - - migrationBuilder.UpdateData( - table: "t_well_operation_category", - keyColumn: "id", - keyValue: 5002, - column: "IsHidden", - value: false); - - migrationBuilder.UpdateData( - table: "t_well_operation_category", - keyColumn: "id", - keyValue: 5003, - column: "IsHidden", - value: false); - } - } -} diff --git a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs index f14be949..85f4125d 100644 --- a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs +++ b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs @@ -63,7 +63,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDeposit"); - b.ToTable("t_cluster", t => + b.ToTable("t_cluster", null, t => { t.HasComment("Кусты"); }); @@ -94,7 +94,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdCompanyType"); - b.ToTable("t_company"); + b.ToTable("t_company", (string)null); b.HasData( new @@ -130,7 +130,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_company_type"); + b.ToTable("t_company_type", (string)null); b.HasData( new @@ -265,7 +265,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_contact", t => + b.ToTable("t_contact", null, t => { t.HasComment("Контакты"); }); @@ -314,7 +314,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "Date") .IsUnique(); - b.ToTable("t_daily_report", t => + b.ToTable("t_daily_report", null, t => { t.HasComment("Ежедневные отчёты"); }); @@ -445,7 +445,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_data_saub_stat", t => + b.ToTable("t_data_saub_stat", null, t => { t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); }); @@ -482,7 +482,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_deposit", t => + b.ToTable("t_deposit", null, t => { t.HasComment("Месторождение"); }); @@ -563,7 +563,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_detected_operation", t => + b.ToTable("t_detected_operation", null, t => { t.HasComment("автоматически определенные операции по телеметрии"); }); @@ -601,7 +601,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_drill_test", t => + b.ToTable("t_drill_test", null, t => { t.HasComment("Drill_test"); }); @@ -639,7 +639,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_driller", t => + b.ToTable("t_driller", null, t => { t.HasComment("Бурильщик"); }); @@ -669,7 +669,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "IdFileCategory") .IsUnique(); - b.ToTable("t_drilling_program_part", t => + b.ToTable("t_drilling_program_part", null, t => { t.HasComment("части программ бурения"); }); @@ -747,7 +747,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdAuthorQuestion"); - b.ToTable("t_faq", t => + b.ToTable("t_faq", null, t => { t.HasComment("вопросы пользователей"); }); @@ -775,7 +775,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_file_category", t => + b.ToTable("t_file_category", null, t => { t.HasComment("Категории файлов"); }); @@ -1176,7 +1176,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_file_info", t => + b.ToTable("t_file_info", null, t => { t.HasComment("Файлы всех категорий"); }); @@ -1228,7 +1228,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_file_mark", t => + b.ToTable("t_file_mark", null, t => { t.HasComment("Действия с файлами."); }); @@ -1258,7 +1258,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_float", t => + b.ToTable("t_wits_float", null, t => { t.HasComment("таблица данных ГТИ с типом значения float"); }); @@ -1288,7 +1288,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_int", t => + b.ToTable("t_wits_int", null, t => { t.HasComment("таблица данных ГТИ с типом значения int"); }); @@ -1319,7 +1319,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_string", t => + b.ToTable("t_wits_string", null, t => { t.HasComment("таблица данных ГТИ с типом значения string"); }); @@ -1360,7 +1360,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdCategory"); - b.ToTable("t_help_page", t => + b.ToTable("t_help_page", null, t => { t.HasComment("Справки"); }); @@ -1403,7 +1403,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_limiting_parameter", t => + b.ToTable("t_limiting_parameter", null, t => { t.HasComment("Ограничения по параметрам телеметрии"); }); @@ -1452,7 +1452,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDirectory"); - b.ToTable("t_manual", t => + b.ToTable("t_manual", null, t => { t.HasComment("Инструкции"); }); @@ -1482,7 +1482,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdParent"); - b.ToTable("t_manual_directory", t => + b.ToTable("t_manual_directory", null, t => { t.HasComment("Директория для инструкций"); }); @@ -1529,7 +1529,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_measure", t => + b.ToTable("t_measure", null, t => { t.HasComment("Таблица c данными для вкладки 'Последние данные'"); }); @@ -1557,7 +1557,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_measure_category", t => + b.ToTable("t_measure_category", null, t => { t.HasComment("Категория последних данных"); }); @@ -1640,7 +1640,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_notification", t => + b.ToTable("t_notification", null, t => { t.HasComment("Уведомления"); }); @@ -1662,7 +1662,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_notification_category", t => + b.ToTable("t_notification_category", null, t => { t.HasComment("Категории уведомлений"); }); @@ -1721,7 +1721,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_operationvalue", t => + b.ToTable("t_operationvalue", null, t => { t.HasComment("Целевые/нормативные показатели операции"); }); @@ -1751,7 +1751,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_permission", t => + b.ToTable("t_permission", null, t => { t.HasComment("Разрешения на доступ к данным"); }); @@ -2629,2016 +2629,6 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MinRPM") - .HasColumnType("double precision") - .HasColumnName("min_RPM") - .HasComment("Минимальные обороты ВСП, об/мин"); - - b.Property("MinСonsumptionStartingFlowRate") - .HasColumnType("double precision") - .HasColumnName("min_consumption_starting_flow_rate") - .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("TopDriveTorqueLimitMax") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque_limit_max") - .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_anticrash_rotation", t => - { - t.HasComment("Противоаварийное вращение"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenit_angle") - .HasComment("Зенитный угол, градусы"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_autohold", t => - { - t.HasComment("Автоудержание"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("StickSlip") - .HasColumnType("double precision") - .HasColumnName("stickslip") - .HasComment("StickSlip"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_damper", t => - { - t.HasComment("Демпфер"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdAutostartOrWarning") - .HasColumnType("boolean") - .HasColumnName("id_autostart_or_warning") - .HasComment("Автозапуск или Предупреждение"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("LengthStep") - .HasColumnType("double precision") - .HasColumnName("length_step") - .HasComment("Величина проходки шага, м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("NumberOfStepsBit") - .HasColumnType("integer") - .HasColumnName("number_of_steps_bit") - .HasComment("Количество шагов по нагрузке"); - - b.Property("NumberOfStepsRPM") - .HasColumnType("integer") - .HasColumnName("number_of_steps_rpm") - .HasComment("Количество шагов оборотов на ВСП, шт."); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("RevolutionPerMinuteMin") - .HasColumnType("integer") - .HasColumnName("revolution_per_minute_min") - .HasComment("Минимальные обороты на ВСП, об/мин."); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_drilltest", t => - { - t.HasComment("Дрилтест"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Buckling") - .HasColumnType("double precision") - .HasColumnName("buckling") - .HasComment("Складывание, м"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ZenithAngle") - .HasColumnType("double precision") - .HasColumnName("zenit_angle") - .HasComment("Зенитный угол, градусы"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_jarr_drill_tool", t => - { - t.HasComment("Встряхивание бурового инструмента"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Mode") - .HasColumnType("boolean") - .HasColumnName("id_mode") - .HasComment("Режим Авто/Руч"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("OptimalOscillationAngle") - .HasColumnType("double precision") - .HasColumnName("optimal_oscillation_angle") - .HasComment("Оптимальный угол осцилляции, градусы"); - - b.Property("RPMLeft") - .HasColumnType("double precision") - .HasColumnName("RPM​_left") - .HasComment("Скорость влево, об/мин"); - - b.Property("RPMRight") - .HasColumnType("double precision") - .HasColumnName("RPM​_right") - .HasComment("Скорость вправо, об/мин"); - - b.Property("TorqueLimitLeft") - .HasColumnType("double precision") - .HasColumnName("torque_limit_left") - .HasComment("Ограничение момента влево, кН*м"); - - b.Property("TorqueLimitRight") - .HasColumnType("double precision") - .HasColumnName("torque_limit_right") - .HasComment("Ограничение момента вправо, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_oscillation", t => - { - t.HasComment("Осцилляция"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("AxialVibrations") - .HasColumnType("double precision") - .HasColumnName("axial_vibrations") - .HasComment("Осевые вибрации"); - - b.Property("CombinedVibrations") - .HasColumnType("double precision") - .HasColumnName("combined_vibrations") - .HasComment("Комбинированные вибрации"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdAutostartOrWarning") - .HasColumnType("boolean") - .HasColumnName("id_autostart_or_warning") - .HasComment("Автозапуск или Предупреждение"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("RevolutionPerMinuteMin") - .HasColumnType("integer") - .HasColumnName("revolution_per_minute_min") - .HasComment("Минимальные обороты на ВСП, об/мин."); - - b.Property("StickSlip") - .HasColumnType("double precision") - .HasColumnName("stickslip") - .HasComment("StickSlip"); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.Property("Whirl") - .HasColumnType("double precision") - .HasColumnName("whirl") - .HasComment("Whirl"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_functions_shock_test", t => - { - t.HasComment("ShockTest"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("SignalWaitingTime") - .HasColumnType("double precision") - .HasColumnName("signal_waiting_time") - .HasComment("Время ожидания выхода сигнала с ТМС, сек."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_static_measure", t => - { - t.HasComment("Выход статического замера"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdDeclineSocketColumn") - .HasColumnType("boolean") - .HasColumnName("id_decline_socket_column") - .HasComment("СПУСК ОК Да/Нет"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_functions_upgrade_no_load", t => - { - t.HasComment("Обновление холостого хода"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Скорость, м/ч., Вверх"); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_oscillation_angels", t => - { - t.HasComment("Определение углов осцилляции"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressureMin") - .HasColumnType("double precision") - .HasColumnName("differential_pressure_min") - .HasComment("Перепад давления минимальный, атм"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("TimeLoadCapacityMin") - .HasColumnType("double precision") - .HasColumnName("time_load_capacity_min") - .HasComment("Время выработки минимальное, сек"); - - b.Property("WeightOnBitMin") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_min") - .HasComment("Нагрузка минимальная, т"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_load_capacity", t => - { - t.HasComment("РТК выработка нагрузки"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("StopOffTheBottom") - .HasColumnType("double precision") - .HasColumnName("stop_off_the_bottom") - .HasComment("Остановка над забоем, м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~1"); - - b.HasIndex("IdPrevious") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~2"); - - b.HasIndex("IdWell") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~3"); - - b.HasIndex("IdWellSectionType") - .HasDatabaseName("IX_t_process_map_plan_operation_positioning_off_the_bottom_id~4"); - - b.ToTable("t_process_map_plan_operation_positioning_off_the_bottom", t => - { - t.HasComment("Позиционирование над забоем"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал проработки, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_ repetitions") - .HasComment("Проработка 1, Количество повторений, шт."); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_down") - .HasComment("Проработка 1, Обороты, об/мин., Вниз"); - - b.Property("Reaming1RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_up") - .HasComment("Проработка 1, Обороты, об/мин., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming2FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_down") - .HasComment("Проработка 2, Расход, л/с., Вниз"); - - b.Property("Reaming2FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_up") - .HasComment("Проработка 2, Расход, л/с., Вверх"); - - b.Property("Reaming2Interval") - .HasColumnType("double precision") - .HasColumnName("reaming2_interval") - .HasComment("Проработка 2, Интервал проработки, м."); - - b.Property("Reaming2NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming2_number_of_repetitions") - .HasComment("Проработка 2, Количество повторений, шт."); - - b.Property("Reaming2ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_down") - .HasComment("Проработка 2, Скорость, м/ч., Вниз"); - - b.Property("Reaming2ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_up") - .HasComment("Проработка 2, Скорость, м/ч., Вверх"); - - b.Property("Reaming2RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_down") - .HasComment("Проработка 2, Обороты, об/мин., Вниз"); - - b.Property("Reaming2RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_up") - .HasComment("Проработка 2, Обороты, об/мин., Вверх"); - - b.Property("Reaming2StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming2_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming3FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_down") - .HasComment("Проработка 3, Расход, л/с., Вниз"); - - b.Property("Reaming3FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_up") - .HasComment("Проработка 3, Расход, л/с., Вверх"); - - b.Property("Reaming3Interval") - .HasColumnType("double precision") - .HasColumnName("reaming3_interval") - .HasComment("Проработка 3, Интервал проработки, м."); - - b.Property("Reaming3NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming3_number_of_ repetitions") - .HasComment("Проработка 3, Количество повторений, шт."); - - b.Property("Reaming3ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_down") - .HasComment("Проработка 3, Скорость, м/ч., Вниз"); - - b.Property("Reaming3ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_up") - .HasComment("Проработка 3, Скорость, м/ч., Вверх"); - - b.Property("Reaming3RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_down") - .HasComment("Проработка 3, Обороты, об/мин., Вниз"); - - b.Property("Reaming3RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_up") - .HasComment("Проработка 3, Обороты, об/мин., Вверх"); - - b.Property("Reaming3StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming3_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_reaming_rotor", t => - { - t.HasComment("РТК проработка ротор"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал проработки, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_repetitions") - .HasComment("Проработка 1, Количество повторений, шт."); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_down") - .HasComment("Проработка 1, Обороты, об/мин., Вниз"); - - b.Property("Reaming1RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rpm_up") - .HasComment("Проработка 1, Обороты, об/мин., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming2FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_down") - .HasComment("Проработка 2, Расход, л/с., Вниз"); - - b.Property("Reaming2FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_flow_rate_up") - .HasComment("Проработка 2, Расход, л/с., Вверх"); - - b.Property("Reaming2Interval") - .HasColumnType("double precision") - .HasColumnName("reaming2_interval") - .HasComment("Проработка 2, Интервал проработки, м."); - - b.Property("Reaming2NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming2_number_of_ repetitions") - .HasComment("Проработка 2, Количество повторений, шт."); - - b.Property("Reaming2ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_down") - .HasComment("Проработка 2, Скорость, м/ч., Вниз"); - - b.Property("Reaming2ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rop_up") - .HasComment("Проработка 2, Скорость, м/ч., Вверх"); - - b.Property("Reaming2RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_down") - .HasComment("Проработка 2, Обороты, об/мин., Вниз"); - - b.Property("Reaming2RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming2_rpm_up") - .HasComment("Проработка 2, Обороты, об/мин., Вверх"); - - b.Property("Reaming2StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming2_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("Reaming3FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_down") - .HasComment("Проработка 3, Расход, л/с., Вниз"); - - b.Property("Reaming3FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_flow_rate_up") - .HasComment("Проработка 3, Расход, л/с., Вверх"); - - b.Property("Reaming3Interval") - .HasColumnType("double precision") - .HasColumnName("reaming3_interval") - .HasComment("Проработка 3, Интервал проработки, м."); - - b.Property("Reaming3NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming3_number_of_ repetitions") - .HasComment("Проработка 3, Количество повторений, шт."); - - b.Property("Reaming3ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_down") - .HasComment("Проработка 3, Скорость, м/ч., Вниз"); - - b.Property("Reaming3ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rop_up") - .HasComment("Проработка 3, Скорость, м/ч., Вверх"); - - b.Property("Reaming3RPMDown") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_down") - .HasComment("Проработка 3, Обороты, об/мин., Вниз"); - - b.Property("Reaming3RPMUp") - .HasColumnType("double precision") - .HasColumnName("reaming3_rpm_up") - .HasComment("Проработка 3, Обороты, об/мин., Вверх"); - - b.Property("Reaming3StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming3_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_reaming_slide", t => - { - t.HasComment("РТК проработка слайд"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Comment") - .HasColumnType("double precision") - .HasColumnName("сomment") - .HasComment("Комментарий"); - - b.Property("ConsumptionFlowRate") - .HasColumnType("double precision") - .HasColumnName("consumption_flow_rate") - .HasComment("Выход на плановый расход, расход, л/с"); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("ExitTimeConsumption") - .HasColumnType("double precision") - .HasColumnName("exit_time_consumption") - .HasComment("Выход на плановый расход, время выхода буровых насосов на плановый расход, сек."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureLimitMax") - .HasColumnType("double precision") - .HasColumnName("pressure_limit_Max") - .HasComment("Максимально допустимое давление, атм."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_switch_mode", t => - { - t.HasComment("Выход на режим"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("Duration") - .HasColumnType("double precision") - .HasColumnName("duration") - .HasComment("Продолжительность, сек."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("ResidualPressureLimit") - .HasColumnType("double precision") - .HasColumnName("residual_pressure_limit") - .HasComment("Лимит остаточного давления, атм."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_switch_pump", t => - { - t.HasComment("Выключение насоса"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MaxPressure") - .HasColumnType("double precision") - .HasColumnName("max_pressure") - .HasComment("Максимальное давление, атм"); - - b.Property("MaxTorque") - .HasColumnType("double precision") - .HasColumnName("max_torque") - .HasComment("Максимально допустимый момент, кН*м."); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Reaming1FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_down") - .HasComment("Проработка 1, Расход, л/с., Вниз"); - - b.Property("Reaming1FlowRateUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_flow_rate_up") - .HasComment("Проработка 1, Расход, л/с., Вверх"); - - b.Property("Reaming1Interval") - .HasColumnType("double precision") - .HasColumnName("reaming1_interval") - .HasComment("Проработка 1, Интервал расхаживания, м."); - - b.Property("Reaming1NumberOfRepetitions") - .HasColumnType("double precision") - .HasColumnName("reaming1_number_of_repetitions") - .HasComment("Проработка 1, Количество расхаживаний, шт"); - - b.Property("Reaming1ROPDown") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_down") - .HasComment("Проработка 1, Скорость, м/ч., Вниз"); - - b.Property("Reaming1ROPUp") - .HasColumnType("double precision") - .HasColumnName("reaming1_rop_up") - .HasComment("Проработка 1, Скорость, м/ч., Вверх"); - - b.Property("Reaming1StopPointOffBottom") - .HasColumnType("double precision") - .HasColumnName("reaming1_stop_point_off_bottom") - .HasComment("Остановка над забоем, м."); - - b.Property("SetpointsSlackingOff") - .HasColumnType("double precision") - .HasColumnName("setpoints_slacking_off") - .HasComment("Уставки, т., посадка"); - - b.Property("SetpointsTight") - .HasColumnType("double precision") - .HasColumnName("setpoints_tight") - .HasComment("Уставки, т., затяжка"); - - b.Property("Spring") - .HasColumnType("double precision") - .HasColumnName("spring") - .HasComment("Пружина, град "); - - b.Property("planTF") - .HasColumnType("double precision") - .HasColumnName("plan_tf") - .HasComment("План TF, град"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_operation_tf_orientation", t => - { - t.HasComment("Выставление"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => { b.Property("Id") @@ -4754,7 +2744,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_ream", t => + b.ToTable("t_process_map_plan_ream", null, t => { t.HasComment("РТК проработка скважины"); }); @@ -4899,7 +2889,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_rotor", t => + b.ToTable("t_process_map_plan_rotor", null, t => { t.HasComment("РТК план бурение ротор"); }); @@ -5034,95 +3024,12 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_slide", t => + b.ToTable("t_process_map_plan_slide", null, t => { t.HasComment("РТК план бурение слайд"); }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("MeasurementRecordingTime") - .HasColumnType("double precision") - .HasColumnName("measurement_recording_time") - .HasComment("Время записи замера, сек"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_survey", t => - { - t.HasComment("Запись статического замера"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => { b.Property("IdCompany") @@ -5137,7 +3044,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_relation_company_well", t => + b.ToTable("t_relation_company_well", null, t => { t.HasComment("отношение скважин и компаний"); }); @@ -5157,7 +3064,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_relation_contact_well"); + b.ToTable("t_relation_contact_well", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => @@ -5180,7 +3087,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDrillingProgramPart"); - b.ToTable("t_relation_user_drilling_program_part", t => + b.ToTable("t_relation_user_drilling_program_part", null, t => { t.HasComment("Отношение пользователей и частей ПБ"); }); @@ -5200,7 +3107,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdPermission"); - b.ToTable("t_relation_user_role_permission", t => + b.ToTable("t_relation_user_role_permission", null, t => { t.HasComment("Отношение ролей пользователей и разрешений доступа"); }); @@ -6518,7 +4425,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdInclude"); - b.ToTable("t_relation_user_role_user_role", t => + b.ToTable("t_relation_user_role_user_role", null, t => { t.HasComment("Отношение ролей к ролям"); }); @@ -6810,7 +4717,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUserRole"); - b.ToTable("t_relation_user_user_role", t => + b.ToTable("t_relation_user_user_role", null, t => { t.HasComment("Отношение пользователей и ролей"); }); @@ -6867,7 +4774,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_report_property", t => + b.ToTable("t_report_property", null, t => { t.HasComment("Отчеты с данными по буровым"); }); @@ -6919,7 +4826,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_schedule", t => + b.ToTable("t_schedule", null, t => { t.HasComment("График работы бурильщика"); }); @@ -6975,7 +4882,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_setpoints_rquest", t => + b.ToTable("t_setpoints_rquest", null, t => { t.HasComment("Запросы на изменение уставок панели оператора"); }); @@ -7003,7 +4910,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_subsystem", t => + b.ToTable("t_subsystem", null, t => { t.HasComment("Описание подсистем"); }); @@ -7072,7 +4979,7 @@ namespace AsbCloudDb.Migrations b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); - b.ToTable("t_telemetry", t => + b.ToTable("t_telemetry", null, t => { t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); }); @@ -7291,7 +5198,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_data_saub", t => + b.ToTable("t_telemetry_data_saub", null, t => { t.HasComment("набор основных данных по SAUB"); }); @@ -7391,7 +5298,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_data_spin", t => + b.ToTable("t_telemetry_data_spin", null, t => { t.HasComment("набор основных данных по SpinMaster"); }); @@ -7418,7 +5325,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdEvent"); - b.ToTable("t_telemetry_event", t => + b.ToTable("t_telemetry_event", null, t => { t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); }); @@ -7479,7 +5386,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_telemetry_message", t => + b.ToTable("t_telemetry_message", null, t => { t.HasComment("Сообщения на буровых"); }); @@ -7517,7 +5424,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdUser"); - b.ToTable("t_telemetry_user", t => + b.ToTable("t_telemetry_user", null, t => { t.HasComment("Пользователи панели САУБ. Для сообщений."); }); @@ -7560,7 +5467,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry"); - b.ToTable("t_telemetry_wireline_run_out", t => + b.ToTable("t_telemetry_wireline_run_out", null, t => { t.HasComment("Наработка талевого каната"); }); @@ -7626,7 +5533,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_trajectory_fact", t => + b.ToTable("t_trajectory_fact", null, t => { t.HasComment("Загрузка фактической траектории"); }); @@ -7697,7 +5604,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_trajectory_plan", t => + b.ToTable("t_trajectory_plan", null, t => { t.HasComment("Загрузка плановой траектории"); }); @@ -7778,7 +5685,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("Login") .IsUnique(); - b.ToTable("t_user", t => + b.ToTable("t_user", null, t => { t.HasComment("Пользователи облака"); }); @@ -7819,7 +5726,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_user_role", t => + b.ToTable("t_user_role", null, t => { t.HasComment("Роли пользователей в системе"); }); @@ -8158,7 +6065,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdUser", "Key"); - b.ToTable("t_user_settings", t => + b.ToTable("t_user_settings", null, t => { t.HasComment("настройки интерфейса пользователя"); }); @@ -8204,7 +6111,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_wits_base"); + b.ToTable("t_telemetry_wits_base", (string)null); b.UseTptMappingStrategy(); }); @@ -8264,7 +6171,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellType"); - b.ToTable("t_well", t => + b.ToTable("t_well", null, t => { t.HasComment("скважины"); }); @@ -8293,7 +6200,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSrc"); - b.ToTable("t_well_composite", t => + b.ToTable("t_well_composite", null, t => { t.HasComment("Композитная скважина"); }); @@ -8320,7 +6227,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_well_final_documents", t => + b.ToTable("t_well_final_documents", null, t => { t.HasComment("Дело скважины"); }); @@ -8410,7 +6317,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_well_operation", t => + b.ToTable("t_well_operation", null, t => { t.HasComment("Данные по операциям на скважине"); }); @@ -8455,7 +6362,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdParent"); - b.ToTable("t_well_operation_category", t => + b.ToTable("t_well_operation_category", null, t => { t.HasComment("Справочник операций на скважине"); }); @@ -8719,7 +6626,7 @@ namespace AsbCloudDb.Migrations { Id = 5002, IdParent = 4001, - IsHidden = false, + IsHidden = true, KeyValueName = "МСП", KeyValueUnits = "м/ч", Name = "Бурение слайдом" @@ -8728,7 +6635,7 @@ namespace AsbCloudDb.Migrations { Id = 5003, IdParent = 4001, - IsHidden = false, + IsHidden = true, KeyValueName = "МСП", KeyValueUnits = "м/ч", Name = "Бурение ротором" @@ -9766,7 +7673,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_well_section_type", t => + b.ToTable("t_well_section_type", null, t => { t.HasComment("конструкция секции скважины"); }); @@ -10058,7 +7965,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "IdSectionType") .IsUnique(); - b.ToTable("t_well_section_plan"); + b.ToTable("t_well_section_plan", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WellType", b => @@ -10079,7 +7986,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_well_type", t => + b.ToTable("t_well_type", null, t => { t.HasComment("конструкция скважины"); }); @@ -10258,7 +8165,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_1"); + b.ToTable("t_telemetry_wits_1", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => @@ -10346,7 +8253,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_50"); + b.ToTable("t_telemetry_wits_50", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => @@ -10398,7 +8305,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_60"); + b.ToTable("t_telemetry_wits_60", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => @@ -10454,7 +8361,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_61"); + b.ToTable("t_telemetry_wits_61", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => @@ -10542,7 +8449,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_7"); + b.ToTable("t_telemetry_wits_7", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => @@ -10746,7 +8653,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_8"); + b.ToTable("t_telemetry_wits_8", (string)null); }); modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => @@ -11082,688 +8989,6 @@ namespace AsbCloudDb.Migrations b.Navigation("Well"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAnticrashRotation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsAutoHold", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDamper", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsDrillTest", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsJarrDrillTool", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsOscillation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsShockTest", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsStaticMeasure", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanFunctionsUpgradeNoload", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationDeterminationOfOscillationAngles", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationLoadCapacity", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict) - .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~1"); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationPositioningOffTheBottom", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("FK_t_process_map_plan_operation_positioning_off_the_bottom_t_~2"); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingRotor", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationReamingSlide", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchMode", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationSwitchPump", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanOperationTFOrientation", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => { b.HasOne("AsbCloudDb.Model.User", "Author") @@ -11877,46 +9102,6 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSurvey", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => { b.HasOne("AsbCloudDb.Model.Company", "Company") From f2f4d7c6c4c8c31b3f3a46c6fb00cb8f611bec97 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:23:21 +0500 Subject: [PATCH 65/74] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B2=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudDb/Model/AsbCloudDbContext.cs | 36 +++++++++++++------------- AsbCloudDb/Model/IAsbCloudDbContext.cs | 36 +++++++++++++------------- AsbCloudWebApi/appsettings.json | 6 ++--- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index 92dc12de..d947def6 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -23,24 +23,24 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanRotor => Set(); public virtual DbSet ProcessMapPlanSlide => Set(); public virtual DbSet ProcessMapPlanReams => Set(); - public virtual DbSet ProcessMapPlanOperationReamingRotor => Set(); - public virtual DbSet ProcessMapPlanOperationReamingSlide => Set(); - public virtual DbSet ProcessMapPlanOperationLoadCapacity => Set(); - public virtual DbSet ProcessMapPlanSurvey => Set(); - public virtual DbSet ProcessMapPlanOperationPositioningOffTheBottom => Set(); - public virtual DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles => Set(); - public virtual DbSet ProcessMapPlanOperationTFOrientation => Set(); - public virtual DbSet ProcessMapPlanOperationSwitchPump => Set(); - public virtual DbSet ProcessMapPlanOperationSwitchMode => Set(); - public virtual DbSet ProcessMapPlanFunctionsDrillTest => Set(); - public virtual DbSet ProcessMapPlanFunctionsShockTest => Set(); - public virtual DbSet ProcessMapPlanFunctionsDamper => Set(); - public virtual DbSet ProcessMapPlanFunctionsAutoHold => Set(); - public virtual DbSet ProcessMapPlanFunctionsJarrDrillTool => Set(); - public virtual DbSet ProcessMapPlanFunctionsUpgradeNoload => Set(); - public virtual DbSet ProcessMapPlanFunctionsOscillation => Set(); - public virtual DbSet ProcessMapPlanFunctionsAnticrashRotation => Set(); - public virtual DbSet ProcessMapPlanFunctionsStaticMeasure => Set(); + public virtual DbSet ProcessMapPlanReamingRotor => Set(); + public virtual DbSet ProcessMapPlanReamingSlide => Set(); + public virtual DbSet ProcessMapPlanLoadCapacity => Set(); + public virtual DbSet ProcessMapPlanRecordingStaticMeasurement => Set(); + public virtual DbSet ProcessMapPlanPositioningOffTheBottom => Set(); + public virtual DbSet ProcessMapPlanOscillationAngles => Set(); + public virtual DbSet ProcessMapPlanTFOrientation => Set(); + public virtual DbSet ProcessMapPlanSwitchingOffThePump => Set(); + public virtual DbSet ProcessMapPlanSwitchingToTheMode => Set(); + public virtual DbSet ProcessMapPlanDrillTest => Set(); + public virtual DbSet ProcessMapPlanShockTest => Set(); + public virtual DbSet ProcessMapPlanDamper => Set(); + public virtual DbSet ProcessMapPlanAutoHoldTF => Set(); + public virtual DbSet ProcessMapPlanRotorRpmAcceleration => Set(); + public virtual DbSet ProcessMapPlanUpdatingNoloadParameters => Set(); + public virtual DbSet ProcessMapPlanOscillation => Set(); + public virtual DbSet ProcessMapPlanAntiCrashRotation => Set(); + public virtual DbSet ProcessMapPlanStaticMeasurementOutput => Set(); public virtual DbSet ProcessMapPlanRotorLoweringBit => Set(); public virtual DbSet ProcessMapPlanSlideLoweringBit => Set(); diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index a6a12765..2157467f 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -84,24 +84,24 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanReams { get; } DbSet ProcessMapPlanRotor { get; } DbSet ProcessMapPlanSlide { get; } - DbSet ProcessMapPlanOperationReamingRotor { get; } - DbSet ProcessMapPlanOperationReamingSlide { get; } - DbSet ProcessMapPlanOperationLoadCapacity { get; } - DbSet ProcessMapPlanSurvey { get; } - DbSet ProcessMapPlanOperationPositioningOffTheBottom { get; } - DbSet ProcessMapPlanOperationDeterminationOfOscillationAngles { get; } - DbSet ProcessMapPlanOperationTFOrientation { get; } - DbSet ProcessMapPlanOperationSwitchPump { get; } - DbSet ProcessMapPlanOperationSwitchMode { get; } - DbSet ProcessMapPlanFunctionsDrillTest { get; } - DbSet ProcessMapPlanFunctionsShockTest { get; } - DbSet ProcessMapPlanFunctionsDamper { get; } - DbSet ProcessMapPlanFunctionsAutoHold { get; } - DbSet ProcessMapPlanFunctionsJarrDrillTool { get; } - DbSet ProcessMapPlanFunctionsUpgradeNoload { get; } - DbSet ProcessMapPlanFunctionsOscillation { get; } - DbSet ProcessMapPlanFunctionsAnticrashRotation { get; } - DbSet ProcessMapPlanFunctionsStaticMeasure { get; } + DbSet ProcessMapPlanReamingRotor { get; } + DbSet ProcessMapPlanReamingSlide { get; } + DbSet ProcessMapPlanLoadCapacity { get; } + DbSet ProcessMapPlanRecordingStaticMeasurement { get; } + DbSet ProcessMapPlanPositioningOffTheBottom { get; } + DbSet ProcessMapPlanOscillationAngles { get; } + DbSet ProcessMapPlanTFOrientation { get; } + DbSet ProcessMapPlanSwitchingOffThePump { get; } + DbSet ProcessMapPlanSwitchingToTheMode { get; } + DbSet ProcessMapPlanDrillTest { get; } + DbSet ProcessMapPlanShockTest { get; } + DbSet ProcessMapPlanDamper { get; } + DbSet ProcessMapPlanAutoHoldTF { get; } + DbSet ProcessMapPlanRotorRpmAcceleration { get; } + DbSet ProcessMapPlanUpdatingNoloadParameters { get; } + DbSet ProcessMapPlanOscillation { get; } + DbSet ProcessMapPlanAntiCrashRotation { get; } + DbSet ProcessMapPlanStaticMeasurementOutput { get; } DbSet ProcessMapPlanRotorLoweringBit { get; } DbSet ProcessMapPlanSlideLoweringBit { get; } diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index 72d50f57..5294ebe7 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -7,10 +7,10 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True", - "DebugConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", + "DefaultConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True", + "DebugConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", "TestConnection": "Host=localhost;Database=test;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", - "LocalConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True" + "LocalConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True" }, "AllowedHosts": "*", "ContentPath": "../data", From caef2ee796e1888e775597e690ab42bfc8d3cce1 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:24:07 +0500 Subject: [PATCH 66/74] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20ap?= =?UTF-8?q?psettings.json=20(=D0=B1=D1=8B=D0=BB=20push=20=D0=BB=D0=B8?= =?UTF-8?q?=D1=88=D0=BD=D0=B8=D1=85=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/appsettings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index 5294ebe7..72d50f57 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -7,10 +7,10 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True", - "DebugConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", + "DefaultConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True", + "DebugConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", "TestConnection": "Host=localhost;Database=test;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True", - "LocalConnection": "Host=localhost;Database=postgres2;Username=postgres;Password=q;Persist Security Info=True" + "LocalConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True" }, "AllowedHosts": "*", "ContentPath": "../data", From 8341c46e20963160b630626686c98c8b993ee19b Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:32:05 +0500 Subject: [PATCH 67/74] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B8=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ocessMapOperationsAndFunctions.Designer.cs | 12939 ++++++++++++++++ ...Tables_ProcessMapOperationsAndFunctions.cs | 2060 +++ .../AsbCloudDbContextModelSnapshot.cs | 3430 +++- AsbCloudInfrastructure/DependencyInjection.cs | 238 +- 4 files changed, 18418 insertions(+), 249 deletions(-) create mode 100644 AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs create mode 100644 AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.cs diff --git a/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs b/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs new file mode 100644 index 00000000..5c02c0f2 --- /dev/null +++ b/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.Designer.cs @@ -0,0 +1,12939 @@ +// +using System; +using System.Text.Json; +using AsbCloudDb.Model; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + [DbContext(typeof(AsbCloudDbContext))] + [Migration("20240630162502_Add_Tables_ProcessMapOperationsAndFunctions")] + partial class Add_Tables_ProcessMapOperationsAndFunctions + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("Russian_Russia.1251") + .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "adminpack"); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdDeposit") + .HasColumnType("integer") + .HasColumnName("id_deposit"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdDeposit"); + + b.ToTable("t_cluster", t => + { + t.HasComment("Кусты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.ToTable("t_company"); + + b.HasData( + new + { + Id = 1, + Caption = "ООО \"АСБ\"", + IdCompanyType = 3 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IsContact") + .HasColumnType("boolean") + .HasColumnName("is_contact"); + + b.Property("Order") + .HasColumnType("integer") + .HasColumnName("order"); + + b.HasKey("Id"); + + b.ToTable("t_company_type"); + + b.HasData( + new + { + Id = 1, + Caption = "Недропользователь", + IsContact = true, + Order = 3 + }, + new + { + Id = 2, + Caption = "Буровой подрядчик", + IsContact = true, + Order = 2 + }, + new + { + Id = 3, + Caption = "Сервис автоматизации бурения", + IsContact = true, + Order = 0 + }, + new + { + Id = 4, + Caption = "Сервис по ГТИ", + IsContact = true, + Order = 6 + }, + new + { + Id = 5, + Caption = "Растворный сервис", + IsContact = true, + Order = 4 + }, + new + { + Id = 6, + Caption = "Сервис по ННБ", + IsContact = true, + Order = 5 + }, + new + { + Id = 7, + Caption = "Служба супервайзинга", + IsContact = false, + Order = 1 + }, + new + { + Id = 9, + Caption = "Сервис по цементированию", + IsContact = true, + Order = 7 + }, + new + { + Id = 11, + Caption = "Дизельный сервис", + IsContact = false, + Order = 9 + }, + new + { + Id = 12, + Caption = "Сервис по обслуживанию верхних силовых приводов", + IsContact = true, + Order = 8 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Company") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("company") + .HasComment("компания"); + + b.Property("Email") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("email"); + + b.Property("FullName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("full_name") + .HasComment("ФИО"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.Property("IdWell") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ключ скважины"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("должность"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.HasIndex("IdWell"); + + b.ToTable("t_contact", t => + { + t.HasComment("Контакты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date") + .HasColumnName("date") + .HasComment("Дата формирования отчёта"); + + b.Property("DateLastUpdate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("SignBlock") + .HasColumnType("jsonb") + .HasColumnName("sign_block") + .HasComment("Подпись"); + + b.Property("SubsystemBlock") + .HasColumnType("jsonb") + .HasColumnName("subsystem_block") + .HasComment("Наработкой подсистем"); + + b.Property("TimeBalanceBlock") + .HasColumnType("jsonb") + .HasColumnName("time_balance_block") + .HasComment("Баланс времени"); + + b.HasKey("Id"); + + b.HasIndex("IdWell", "Date") + .IsUnique(); + + b.ToTable("t_daily_report", t => + { + t.HasComment("Ежедневные отчёты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialLoad") + .HasColumnType("double precision") + .HasColumnName("axial_load") + .HasComment("Фактическая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("double precision") + .HasColumnName("axial_load_limit_max") + .HasComment("Максимально допустимая нагрузка"); + + b.Property("AxialLoadSp") + .HasColumnType("double precision") + .HasColumnName("axial_load_sp") + .HasComment("Ограничение факт. нагрузки"); + + b.Property("BlockSpeedSp") + .HasColumnType("double precision") + .HasColumnName("block_speed_sp") + .HasComment("Ограничение скорости блока"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата и время окончания"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата и время начала"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина забоя по стволу конечная"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина забоя по стволу начальная"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("Флаги подсистем"); + + b.Property("Flow") + .HasColumnType("double precision") + .HasColumnName("flow") + .HasComment("Фактический расход"); + + b.Property("HasOscillation") + .HasColumnType("boolean") + .HasColumnName("has_oscillation") + .HasComment("Наличие или отсутствие осцилляции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Название автоопределённой операции"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Работа при достижении ограничения"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Ключ телеметрии"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureIdle") + .HasColumnType("double precision") + .HasColumnName("pressure_idle") + .HasComment("Давление холостого хода"); + + b.Property("PressureSp") + .HasColumnType("double precision") + .HasColumnName("pressure_sp") + .HasComment("Ограничение фактического давления"); + + b.Property("RotorSpeed") + .HasColumnType("double precision") + .HasColumnName("rotor_speed") + .HasComment("Фактическая скорость оборотов ВСП"); + + b.Property("RotorTorque") + .HasColumnType("double precision") + .HasColumnName("rotor_torque") + .HasComment("Фактический момент"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Максимально допустимый момент"); + + b.Property("RotorTorqueSp") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_sp") + .HasComment("Ограничение факт. момента"); + + b.Property("Speed") + .HasColumnType("double precision") + .HasColumnName("speed") + .HasComment("Скорость бурения"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_data_saub_stat", t => + { + t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.ToTable("t_deposit", t => + { + t.HasComment("Месторождение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата начала операции"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("флаги включенных подсистем"); + + b.Property("ExtraData") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("extra_data") + .HasComment("доп. инфо по операции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUsersAtStart") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя по телеметрии на момент начала операции"); + + b.Property("Value") + .HasColumnType("double precision") + .HasColumnName("value") + .HasComment("Ключевой показатель операции"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_detected_operation", t => + { + t.HasComment("автоматически определенные операции по телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depthStart") + .HasComment("Глубина начала"); + + b.Property("Params") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("t_drill_test_params") + .HasComment("Параметры записи drill test"); + + b.Property("TimeStampStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp_start") + .HasComment("Время начала"); + + b.HasKey("Id", "IdTelemetry"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_drill_test", t => + { + t.HasComment("Drill_test"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Имя"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("Отчество"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("Фамилия"); + + b.HasKey("Id"); + + b.ToTable("t_driller", t => + { + t.HasComment("Бурильщик"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdFileCategory") + .HasColumnType("integer") + .HasColumnName("id_file_category"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("Id"); + + b.HasIndex("IdFileCategory"); + + b.HasIndex("IdWell", "IdFileCategory") + .IsUnique(); + + b.ToTable("t_drilling_program_part", t => + { + t.HasComment("части программ бурения"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Answer") + .HasColumnType("text") + .HasColumnName("answer") + .HasComment("Текст ответа"); + + b.Property("CounterQuestion") + .HasColumnType("integer") + .HasColumnName("counter_question") + .HasComment("Счетчик повторений вопроса"); + + b.Property("DateAnswer") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_answer") + .HasComment("Дата ответа"); + + b.Property("DateCreatedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created_question") + .HasComment("Дата создания вопроса"); + + b.Property("DateLastEditedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_edited_question") + .HasComment("Дата последнего редактирования вопроса"); + + b.Property("IdAuthorAnswer") + .HasColumnType("integer") + .HasColumnName("id_author_answer") + .HasComment("id автора ответа"); + + b.Property("IdAuthorQuestion") + .HasColumnType("integer") + .HasColumnName("id_author_question") + .HasComment("id автора вопроса"); + + b.Property("IdReplacementQuestion") + .HasColumnType("integer") + .HasColumnName("id_replacement_question") + .HasComment("Ключ заменяющего вопроса"); + + b.Property("IsFrequently") + .HasColumnType("boolean") + .HasColumnName("is_frequently") + .HasComment("Частый вопрос"); + + b.Property("Question") + .IsRequired() + .HasColumnType("text") + .HasColumnName("question") + .HasComment("Текст вопроса"); + + b.Property("State") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("Статус вопроса"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthorAnswer"); + + b.HasIndex("IdAuthorQuestion"); + + b.ToTable("t_faq", t => + { + t.HasComment("вопросы пользователей"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_file_category", t => + { + t.HasComment("Категории файлов"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Растворный сервис", + ShortName = "fluidService" + }, + new + { + Id = 2, + Name = "Цементирование", + ShortName = "cement" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "nnb" + }, + new + { + Id = 4, + Name = "ГТИ", + ShortName = "gti" + }, + new + { + Id = 5, + Name = "Документы по скважине", + ShortName = "wellDocuments" + }, + new + { + Id = 6, + Name = "Супервайзер", + ShortName = "supervisor" + }, + new + { + Id = 7, + Name = "Мастер", + ShortName = "master" + }, + new + { + Id = 8, + Name = "Долотный сервис", + ShortName = "toolService" + }, + new + { + Id = 9, + Name = "Буровой подрядчик", + ShortName = "drillService" + }, + new + { + Id = 10, + Name = "Сервис по заканчиванию скважины", + ShortName = "closingService" + }, + new + { + Id = 12, + Name = "Рапорт", + ShortName = "report" + }, + new + { + Id = 1000, + Name = "Программа бурения" + }, + new + { + Id = 1001, + Name = "Задание от геологов" + }, + new + { + Id = 1002, + Name = "Профиль ствола скважины (ННБ)" + }, + new + { + Id = 1003, + Name = "Технологические расчеты (ННБ)" + }, + new + { + Id = 1004, + Name = "Долотная программа" + }, + new + { + Id = 1005, + Name = "Программа по растворам" + }, + new + { + Id = 1006, + Name = "Программа геофизических исследований" + }, + new + { + Id = 1007, + Name = "Планы спусков обсадных колонн" + }, + new + { + Id = 1008, + Name = "Программы цементирования обсадных колонн" + }, + new + { + Id = 10000, + Name = "Проект на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10001, + Name = "Программа на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10002, + Name = "Акт о начале бурения" + }, + new + { + Id = 10003, + Name = "План работ спуска и цементирования направления" + }, + new + { + Id = 10004, + Name = "Программа цементирования направления" + }, + new + { + Id = 10005, + Name = "Мера обсадных труб (направление)" + }, + new + { + Id = 10006, + Name = "Акт на выполненные работы по цементированию направления" + }, + new + { + Id = 10007, + Name = "Отчет по цементированию направления (график)" + }, + new + { + Id = 10008, + Name = "План работ спуска и цементирования кондуктора" + }, + new + { + Id = 10009, + Name = "Программа цементирования (кондуктор)" + }, + new + { + Id = 10010, + Name = "Мера обсадных труб (кондуктор)" + }, + new + { + Id = 10011, + Name = "Карта крепления кондуктора" + }, + new + { + Id = 10012, + Name = "Акт на выполненные работы по цементированию кондуктора" + }, + new + { + Id = 10013, + Name = "Отчет по цементированию кондуктора (график)" + }, + new + { + Id = 10014, + Name = "Акт о замере расстояния от стола ротора до муфты кондуктора" + }, + new + { + Id = 10015, + Name = "Акт опресовки цементного кольца за кондуктором" + }, + new + { + Id = 10016, + Name = "Акт опресовки ППГ с глухими плашками совместно с кондуктором" + }, + new + { + Id = 10017, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с кондуктором" + }, + new + { + Id = 10018, + Name = "План работ на крепление обсадной колонны (эк. колонна)" + }, + new + { + Id = 10019, + Name = "Программа цементирования (эк. колонна)" + }, + new + { + Id = 10020, + Name = "Мера труб эксплуатационной колонны" + }, + new + { + Id = 10021, + Name = "Карта по креплению скважины (эк. колонна)" + }, + new + { + Id = 10022, + Name = "Акт на установку пружинных центраторов" + }, + new + { + Id = 10023, + Name = "Отчет по цементированию эксплуатационной колонны (график)" + }, + new + { + Id = 10024, + Name = "Акт на выполненные работы по цементированию эксплуатационной колонны" + }, + new + { + Id = 10025, + Name = "Акт об испытании эк. колонны на герметичность (СТОП)" + }, + new + { + Id = 10026, + Name = "Акт опресовки ППГ с глухими плашками совместно с э/колонной" + }, + new + { + Id = 10027, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с э/колонной" + }, + new + { + Id = 10028, + Name = "Акт на вскрытие продуктивного пласта" + }, + new + { + Id = 10029, + Name = "Акт замера параметров раствора при бурении горизонтального участка" + }, + new + { + Id = 10030, + Name = "Разрешение на спуск «хвостовика» (телефонограмма)" + }, + new + { + Id = 10031, + Name = "План работ на спуск «хвостовика»" + }, + new + { + Id = 10032, + Name = "Акт готовности бурового и энергетического оборудования к спуску «хвостовика»" + }, + new + { + Id = 10033, + Name = "Акт шаблонировки ствола скважины перед спуском «хвостовика»" + }, + new + { + Id = 10034, + Name = "Мера обсадных труб (хвостовик)" + }, + new + { + Id = 10035, + Name = "Акт выполненных работ по спуску хвостовика с закачкой (нефти, солевого раствора" + }, + new + { + Id = 10036, + Name = "Акт о переводе скважины на тех. воду" + }, + new + { + Id = 10037, + Name = "Акт об окончании бурения" + }, + new + { + Id = 10038, + Name = "Акт на передачу скважины в освоение (КРС)" + }, + new + { + Id = 10039, + Name = "Акт на опресовку межколонного пространства с КРС" + }, + new + { + Id = 10040, + Name = "Акт на сдачу скважины в ЦДНГ" + }, + new + { + Id = 10041, + Name = "Паспорт ОУС (заполняется геологами)" + }, + new + { + Id = 10042, + Name = "Паспорт скважины (заполняется геологами)" + }, + new + { + Id = 10043, + Name = "Фактические данные бурения (вставляются в паспорт скважины)" + }, + new + { + Id = 20000, + Name = "Справки по страницам" + }, + new + { + Id = 30000, + Name = "Инструкции" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории файла"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Удален ли файл"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_file_info", t => + { + t.HasComment("Файлы всех категорий"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created") + .HasComment("Дата совершенного действия"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла"); + + b.Property("IdMarkType") + .HasColumnType("integer") + .HasColumnName("id_mark_type") + .HasComment("0 - отклонен, 1 - согласован"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("id пользователя"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Помечен ли файл как удаленный"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdUser"); + + b.ToTable("t_file_mark", t => + { + t.HasComment("Действия с файлами."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("real") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_float", t => + { + t.HasComment("таблица данных ГТИ с типом значения float"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("integer") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_int", t => + { + t.HasComment("таблица данных ГТИ с типом значения int"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .IsRequired() + .HasColumnType("text") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_string", t => + { + t.HasComment("таблица данных ГТИ с типом значения string"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UrlPage") + .IsRequired() + .HasColumnType("text") + .HasColumnName("url_page") + .HasComment("Url страницы"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.ToTable("t_help_page", t => + { + t.HasComment("Справки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start"); + + b.Property("DepthEnd") + .HasColumnType("real") + .HasColumnName("depth_end"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depth_start"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_limiting_parameter", t => + { + t.HasComment("Ограничения по параметрам телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateDownload") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_download") + .HasComment("Дата загрузки"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id автора"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("IdDirectory") + .HasColumnType("integer") + .HasColumnName("id_directory") + .HasComment("Id директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdDirectory"); + + b.ToTable("t_manual", t => + { + t.HasComment("Инструкции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("Id родительской директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_manual_directory", t => + { + t.HasComment("Директория для инструкций"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("data") + .HasComment("Данные таблицы последних данных"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Пометка удаленным"); + + b.Property("Timestamp") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp") + .HasComment("время добавления"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_measure", t => + { + t.HasComment("Таблица c данными для вкладки 'Последние данные'"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_measure_category", t => + { + t.HasComment("Категория последних данных"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Показатели бурового раствора", + ShortName = "Раствор" + }, + new + { + Id = 2, + Name = "Шламограмма", + ShortName = "Шламограмма" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "ННБ" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdNotificationCategory") + .HasColumnType("integer") + .HasColumnName("id_notification_category") + .HasComment("Id категории уведомления"); + + b.Property("IdTransportType") + .HasColumnType("integer") + .HasColumnName("id_transport_type") + .HasComment("Id типа доставки уведомления"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id получателя"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message") + .HasComment("Сообщение уведомления"); + + b.Property("ReadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("read_date") + .HasComment("Дата прочтения уведомления"); + + b.Property("RegistrationDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("registration_date") + .HasComment("Дата регистрации уведомления"); + + b.Property("SentDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("sent_date") + .HasComment("Дата отправки уведомления"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title") + .HasComment("Заголовок уведомления"); + + b.HasKey("Id"); + + b.HasIndex("IdNotificationCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_notification", t => + { + t.HasComment("Уведомления"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_notification_category", t => + { + t.HasComment("Категории уведомлений"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Системные уведомления" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Старотовая глубина"); + + b.Property("IdOperationCategory") + .HasColumnType("integer") + .HasColumnName("id_operation_category") + .HasComment("Ид категории операции"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Ид скважины"); + + b.Property("StandardValue") + .HasColumnType("double precision") + .HasColumnName("standard_value") + .HasComment("Нормативный показатель"); + + b.Property("TargetValue") + .HasColumnType("double precision") + .HasColumnName("target_value") + .HasComment("Целевой показатель"); + + b.HasKey("Id"); + + b.HasIndex("IdOperationCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_operationvalue", t => + { + t.HasComment("Целевые/нормативные показатели операции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description") + .HasComment("Краткое описание"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_permission", t => + { + t.HasComment("Разрешения на доступ к данным"); + }); + + b.HasData( + new + { + Id = 100, + Description = "Разрешение удалять админ. Кусты", + Name = "AdminCluster.delete" + }, + new + { + Id = 101, + Description = "Разрешение редактировать админ. Кусты", + Name = "AdminCluster.edit" + }, + new + { + Id = 102, + Description = "Разрешение просматривать админ. Кусты", + Name = "AdminCluster.get" + }, + new + { + Id = 103, + Description = "Разрешение удалять админ. Компании", + Name = "AdminCompany.delete" + }, + new + { + Id = 104, + Description = "Разрешение редактировать админ. Компании", + Name = "AdminCompany.edit" + }, + new + { + Id = 105, + Description = "Разрешение просматривать админ. Компании", + Name = "AdminCompany.get" + }, + new + { + Id = 106, + Description = "Разрешение удалять админ. Типы компаний", + Name = "AdminCompanyType.delete" + }, + new + { + Id = 107, + Description = "Разрешение редактировать админ. Типы компаний", + Name = "AdminCompanyType.edit" + }, + new + { + Id = 108, + Description = "Разрешение просматривать админ. Типы компаний", + Name = "AdminCompanyType.get" + }, + new + { + Id = 109, + Description = "Разрешение удалять админ. Месторождения", + Name = "AdminDeposit.delete" + }, + new + { + Id = 110, + Description = "Разрешение редактировать админ. Месторождения", + Name = "AdminDeposit.edit" + }, + new + { + Id = 111, + Description = "Разрешение просматривать админ. Месторождения", + Name = "AdminDeposit.get" + }, + new + { + Id = 112, + Description = "Разрешение удалять админ. Разрешения", + Name = "AdminPermission.delete" + }, + new + { + Id = 113, + Description = "Разрешение редактировать админ. Разрешения", + Name = "AdminPermission.edit" + }, + new + { + Id = 114, + Description = "Разрешение просматривать админ. Разрешения", + Name = "AdminPermission.get" + }, + new + { + Id = 115, + Description = "Разрешение удалять админ. Телеметрию", + Name = "AdminTelemetry.delete" + }, + new + { + Id = 116, + Description = "Разрешение редактировать админ. Телеметрию", + Name = "AdminTelemetry.edit" + }, + new + { + Id = 117, + Description = "Разрешение просматривать админ. Телеметрию", + Name = "AdminTelemetry.get" + }, + new + { + Id = 118, + Description = "Разрешение удалять админ. Пользователей", + Name = "AdminUser.delete" + }, + new + { + Id = 119, + Description = "Разрешение редактировать админ. Пользователей", + Name = "AdminUser.edit" + }, + new + { + Id = 120, + Description = "Разрешение просматривать админ. Пользователей", + Name = "AdminUser.get" + }, + new + { + Id = 121, + Description = "Разрешение удалять админ. Роли пользователей", + Name = "AdminUserRole.delete" + }, + new + { + Id = 122, + Description = "Разрешение редактировать админ. Роли пользователей", + Name = "AdminUserRole.edit" + }, + new + { + Id = 123, + Description = "Разрешение просматривать админ. Роли пользователей", + Name = "AdminUserRole.get" + }, + new + { + Id = 124, + Description = "Разрешение удалять админ. Скважины", + Name = "AdminWell.delete" + }, + new + { + Id = 125, + Description = "Разрешение редактировать админ. Скважины", + Name = "AdminWell.edit" + }, + new + { + Id = 126, + Description = "Разрешение просматривать админ. Скважины", + Name = "AdminWell.get" + }, + new + { + Id = 127, + Description = "Разрешение удалять админ. Подсистемы", + Name = "AdminSubsytem.delete" + }, + new + { + Id = 128, + Description = "Разрешение редактировать админ. Подсистемы", + Name = "AdminSubsytem.edit" + }, + new + { + Id = 129, + Description = "Разрешение просматривать админ. Подсистемы", + Name = "AdminSubsytem.get" + }, + new + { + Id = 200, + Description = "Разрешение редактировать 0", + Name = "Auth.edit" + }, + new + { + Id = 201, + Description = "Разрешение просматривать 0", + Name = "Auth.get" + }, + new + { + Id = 202, + Description = "Разрешение просматривать Кусты", + Name = "Cluster.get" + }, + new + { + Id = 203, + Description = "Разрешение просматривать Месторождения", + Name = "Deposit.get" + }, + new + { + Id = 204, + Description = "Разрешение удалять РТК", + Name = "DrillFlowChart.delete" + }, + new + { + Id = 205, + Description = "Разрешение редактировать РТК", + Name = "DrillFlowChart.edit" + }, + new + { + Id = 206, + Description = "Разрешение просматривать РТК", + Name = "DrillFlowChart.get" + }, + new + { + Id = 207, + Description = "Разрешение удалять Программу бурения", + Name = "DrillingProgram.delete" + }, + new + { + Id = 208, + Description = "Разрешение редактировать Программу бурения", + Name = "DrillingProgram.edit" + }, + new + { + Id = 209, + Description = "Разрешение просматривать Программу бурения", + Name = "DrillingProgram.get" + }, + new + { + Id = 210, + Description = "Разрешение удалять Режимы бурения", + Name = "DrillParams.delete" + }, + new + { + Id = 211, + Description = "Разрешение редактировать Режимы бурения", + Name = "DrillParams.edit" + }, + new + { + Id = 212, + Description = "Разрешение просматривать Режимы бурения", + Name = "DrillParams.get" + }, + new + { + Id = 213, + Description = "Разрешение удалять Файлы", + Name = "File.delete" + }, + new + { + Id = 214, + Description = "Разрешение редактировать Файлы", + Name = "File.edit" + }, + new + { + Id = 215, + Description = "Разрешение просматривать Файлы", + Name = "File.get" + }, + new + { + Id = 216, + Description = "Разрешение удалять Измерения", + Name = "Measure.delete" + }, + new + { + Id = 217, + Description = "Разрешение редактировать Измерения", + Name = "Measure.edit" + }, + new + { + Id = 218, + Description = "Разрешение просматривать Измерения", + Name = "Measure.get" + }, + new + { + Id = 219, + Description = "Разрешение просматривать Сообщения телеметрии", + Name = "Message.get" + }, + new + { + Id = 220, + Description = "Разрешение просматривать Статистику по операциям", + Name = "OperationStat.get" + }, + new + { + Id = 221, + Description = "Разрешение редактировать Рапорта", + Name = "Report.edit" + }, + new + { + Id = 222, + Description = "Разрешение просматривать Рапорта", + Name = "Report.get" + }, + new + { + Id = 223, + Description = "Разрешение просматривать админ. Системная статистика", + Name = "RequestTracker.get" + }, + new + { + Id = 224, + Description = "Разрешение удалять Рекомендации уставок", + Name = "Setpoints.delete" + }, + new + { + Id = 225, + Description = "Разрешение редактировать Рекомендации уставок", + Name = "Setpoints.edit" + }, + new + { + Id = 226, + Description = "Разрешение просматривать Рекомендации уставок", + Name = "Setpoints.get" + }, + new + { + Id = 227, + Description = "Разрешение редактировать Телеметрии", + Name = "Telemetry.edit" + }, + new + { + Id = 228, + Description = "Разрешение просматривать Анализ телеметрии", + Name = "TelemetryAnalytics.get" + }, + new + { + Id = 229, + Description = "Разрешение редактировать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.edit" + }, + new + { + Id = 230, + Description = "Разрешение просматривать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.get" + }, + new + { + Id = 231, + Description = "Разрешение редактировать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.edit" + }, + new + { + Id = 232, + Description = "Разрешение просматривать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.get" + }, + new + { + Id = 233, + Description = "Разрешение редактировать Скважины", + Name = "Well.edit" + }, + new + { + Id = 234, + Description = "Разрешение просматривать Скважины", + Name = "Well.get" + }, + new + { + Id = 235, + Description = "Разрешение редактировать Композитные скважины", + Name = "WellComposite.edit" + }, + new + { + Id = 236, + Description = "Разрешение просматривать Композитные скважины", + Name = "WellComposite.get" + }, + new + { + Id = 237, + Description = "Разрешение удалять Операции по скважинам", + Name = "WellOperation.delete" + }, + new + { + Id = 238, + Description = "Разрешение редактировать Операции по скважинам", + Name = "WellOperation.edit" + }, + new + { + Id = 239, + Description = "Разрешение просматривать Операции по скважинам", + Name = "WellOperation.get" + }, + new + { + Id = 240, + Description = "Разрешение редактировать Файлы категории 1 (Растворный сервис)", + Name = "File.edit1" + }, + new + { + Id = 241, + Description = "Разрешение редактировать Файлы категории 2 (Цементирование)", + Name = "File.edit2" + }, + new + { + Id = 242, + Description = "Разрешение редактировать Файлы категории 3 (ННБ)", + Name = "File.edit3" + }, + new + { + Id = 243, + Description = "Разрешение редактировать Файлы категории 4 (ГТИ)", + Name = "File.edit4" + }, + new + { + Id = 244, + Description = "Разрешение редактировать Файлы категории 5 (Документы по скважине)", + Name = "File.edit5" + }, + new + { + Id = 245, + Description = "Разрешение редактировать Файлы категории 6 (Супервайзер)", + Name = "File.edit6" + }, + new + { + Id = 246, + Description = "Разрешение редактировать Файлы категории 7 (Мастер)", + Name = "File.edit7" + }, + new + { + Id = 247, + Description = "Разрешение редактировать Файлы категории 8 (Долотный сервис)", + Name = "File.edit8" + }, + new + { + Id = 248, + Description = "Разрешение редактировать Файлы категории 9 (Буровой подрядчик)", + Name = "File.edit9" + }, + new + { + Id = 249, + Description = "Разрешение редактировать Файлы категории 10 (Сервис по заканчиванию скважины)", + Name = "File.edit10" + }, + new + { + Id = 250, + Description = "Разрешение редактировать Файлы категории 11 (Рапорт)", + Name = "File.edit11" + }, + new + { + Id = 251, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit12" + }, + new + { + Id = 252, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit13" + }, + new + { + Id = 253, + Description = "Разрешение редактировать Файлы категории 13", + Name = "File.edit14" + }, + new + { + Id = 254, + Description = "Разрешение редактировать Файлы категории 14", + Name = "File.edit15" + }, + new + { + Id = 255, + Description = "Разрешение редактировать Файлы категории 15", + Name = "File.edit16" + }, + new + { + Id = 256, + Description = "Разрешение редактировать Файлы категории 16", + Name = "File.edit17" + }, + new + { + Id = 257, + Description = "Разрешение редактировать Файлы категории 17", + Name = "File.edit18" + }, + new + { + Id = 258, + Description = "Разрешение редактировать Файлы категории 18", + Name = "File.edit19" + }, + new + { + Id = 259, + Description = "Разрешение редактировать Файлы категории 19", + Name = "File.edit20" + }, + new + { + Id = 260, + Description = "Разрешение редактировать Файлы категории 20", + Name = "File.edit21" + }, + new + { + Id = 261, + Description = "Разрешение редактировать Файлы категории 21", + Name = "File.edit22" + }, + new + { + Id = 262, + Description = "Разрешение редактировать Файлы категории 22", + Name = "File.edit23" + }, + new + { + Id = 263, + Description = "Разрешение редактировать Файлы категории 23", + Name = "File.edit24" + }, + new + { + Id = 264, + Description = "Разрешение редактировать Файлы категории 24", + Name = "File.edit25" + }, + new + { + Id = 265, + Description = "Разрешение редактировать Файлы категории 25", + Name = "File.edit26" + }, + new + { + Id = 266, + Description = "Разрешение редактировать Файлы категории 26", + Name = "File.edit27" + }, + new + { + Id = 267, + Description = "Разрешение редактировать Файлы категории 27", + Name = "File.edit28" + }, + new + { + Id = 268, + Description = "Разрешение редактировать Файлы категории 28", + Name = "File.edit29" + }, + new + { + Id = 269, + Description = "Разрешение редактировать Файлы категории 29", + Name = "File.edit30" + }, + new + { + Id = 380, + Description = "Разрешение просматривать список бурильщиков", + Name = "Driller.get" + }, + new + { + Id = 381, + Description = "Разрешение редактировать бурильщика", + Name = "Driller.edit" + }, + new + { + Id = 382, + Description = "Разрешение удалять бурильщик", + Name = "Driller.delete" + }, + new + { + Id = 383, + Description = "Разрешение просматривать графики бурильщиков", + Name = "Schedule.get" + }, + new + { + Id = 384, + Description = "Разрешение редактировать график бурильщика", + Name = "Schedule.edit" + }, + new + { + Id = 385, + Description = "Разрешение удалять график бурильщика", + Name = "Schedule.delete" + }, + new + { + Id = 386, + Description = "Разрешение просматривать суточный рапорт", + Name = "DailyReport.get" + }, + new + { + Id = 387, + Description = "Разрешение редактировать суточный рапорт", + Name = "DailyReport.edit" + }, + new + { + Id = 388, + Description = "Разрешение просматривать авто. определенные операции", + Name = "DetectedOperation.get" + }, + new + { + Id = 389, + Description = "Разрешение просматривать целевые значения", + Name = "OperationValue.get" + }, + new + { + Id = 390, + Description = "Разрешение редактировать целевые значения", + Name = "OperationValue.edit" + }, + new + { + Id = 391, + Description = "Разрешение удалять целевые значения", + Name = "OperationValue.delete" + }, + new + { + Id = 400, + Description = "Разрешение просматривать инфо по wits параметрам", + Name = "WitsInfo.get" + }, + new + { + Id = 401, + Description = "Разрешение просматривать WITS record 1", + Name = "WitsRecord1.get" + }, + new + { + Id = 407, + Description = "Разрешение просматривать WITS record 7", + Name = "WitsRecord7.get" + }, + new + { + Id = 408, + Description = "Разрешение просматривать WITS record 8", + Name = "WitsRecord8.get" + }, + new + { + Id = 450, + Description = "Разрешение просматривать WITS record 50", + Name = "WitsRecord50.get" + }, + new + { + Id = 460, + Description = "Разрешение просматривать WITS record 60", + Name = "WitsRecord60.get" + }, + new + { + Id = 461, + Description = "Разрешение просматривать WITS record 61", + Name = "WitsRecord61.get" + }, + new + { + Id = 500, + Description = "Разрешение удалять Категорий документов файлов", + Name = "FileCategory.delete" + }, + new + { + Id = 501, + Description = "Разрешение редактировать Категорий документов файлов", + Name = "FileCategory.edit" + }, + new + { + Id = 502, + Description = "Разрешение просматривать Категорий документов файлов", + Name = "FileCategory.get" + }, + new + { + Id = 503, + Description = "Разрешение удалять Дело скважины", + Name = "WellFinalDocuments.delete" + }, + new + { + Id = 504, + Description = "Разрешение редактировать Дело скважины", + Name = "WellFinalDocuments.edit" + }, + new + { + Id = 505, + Description = "Разрешение просматривать Дело скважины", + Name = "WellFinalDocuments.get" + }, + new + { + Id = 506, + Description = "Разрешение редактировать ответственных за загрузку файла Дело скважины", + Name = "WellFinalDocuments.editPublisher" + }, + new + { + Id = 507, + Description = "Разрешение просматривать наработка талевого каната", + Name = "TelemetryWirelineRunOut.get" + }, + new + { + Id = 510, + Description = "Разрешение просматривать плановая траектория", + Name = "PlannedTrajectory.get" + }, + new + { + Id = 511, + Description = "Разрешение редактировать плановая траектория", + Name = "PlannedTrajectory.edit" + }, + new + { + Id = 512, + Description = "Разрешение удалять плановая траектория", + Name = "PlannedTrajectory.delete" + }, + new + { + Id = 516, + Description = "Разрешение просматривать статистику вопросов", + Name = "FaqStatistics.get" + }, + new + { + Id = 517, + Description = "Разрешение редактировать вопрос", + Name = "FaqStatistics.edit" + }, + new + { + Id = 518, + Description = "Разрешение удалять вопрос", + Name = "FaqStatistics.delete" + }, + new + { + Id = 519, + Description = "Разрешение просматривать список контактов", + Name = "WellContact.get" + }, + new + { + Id = 520, + Description = "Разрешение редактировать список контактов", + Name = "WellContact.edit" + }, + new + { + Id = 521, + Description = "Разрешить создание справок по страницам", + Name = "HelpPage.edit" + }, + new + { + Id = 522, + Description = "Разрешить удаление всех настроек пользователя", + Name = "UserSettings.delete" + }, + new + { + Id = 523, + Description = "Разрешить редактирование инструкций", + Name = "Manual.edit" + }, + new + { + Id = 524, + Description = "Разрешить получение инструкций", + Name = "Manual.get" + }, + new + { + Id = 525, + Description = "Разрешение на редактирование РТК у завершенной скважины", + Name = "ProcessMap.editCompletedWell" + }, + new + { + Id = 526, + Description = "Разрешение на редактирование операций у завершенной скважины", + Name = "WellOperation.editCompletedWell" + }, + new + { + Id = 527, + Description = "Разрешение на удаление инструкций", + Name = "Manual.delete" + }, + new + { + Id = 528, + Description = "Разрешение на удаление контакта", + Name = "WellContact.delete" + }, + new + { + Id = 530, + Description = "Разрешение на редактирование плановой конструкции скважины", + Name = "WellSectionPlan.edit" + }, + new + { + Id = 531, + Description = "Разрешение на удаление плановой конструкции скважины", + Name = "WellSectionPlan.delete" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveRpmMin") + .HasColumnType("double precision") + .HasColumnName("top_drive_rpm_min") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("TopDriveStartMinFlowRate") + .HasColumnType("double precision") + .HasColumnName("top_drive_start_min_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_anti_crash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_auto_hold_tf", t => + { + t.HasComment("Автоудержание TF"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("RpmStepsCount") + .HasColumnType("integer") + .HasColumnName("rpm_steps_count") + .HasComment("Количество шагов оборотов на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("WeightOnBitStepsCount") + .HasColumnType("integer") + .HasColumnName("weight_on_bit_steps_count") + .HasComment("Количество шагов по нагрузке"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_drilltest", t => + { + t.HasComment("DrillTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("integer") + .HasColumnName("mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RpmLeft") + .HasColumnType("double precision") + .HasColumnName("Rpm_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RpmRight") + .HasColumnType("double precision") + .HasColumnName("Rpm​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueMaxLeft") + .HasColumnType("double precision") + .HasColumnName("torque_max_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueMaxRight") + .HasColumnType("double precision") + .HasColumnName("torque_max_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("stickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_static_measurement_output", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdDeclineSocketColumn") + .HasColumnType("boolean") + .HasColumnName("id_decline_socket_column") + .HasComment("СПУСК ОК Да/Нет"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_updating_noload_parameters", t => + { + t.HasComment("Обновление холостого хода"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин., Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин., Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м., Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м., Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("RpmUp") + .HasColumnType("double precision") + .HasColumnName("rpm_up") + .HasComment("Обороты вверх, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление, атм"); + + b.Property("Repeats") + .HasColumnType("double precision") + .HasColumnName("repeats") + .HasComment("Количество повторений"); + + b.Property("SetpointDrag") + .HasColumnType("double precision") + .HasColumnName("setpoint_drag") + .HasComment("Уставка зятяжки, т"); + + b.Property("SetpointTight") + .HasColumnType("double precision") + .HasColumnName("setpoint_tight") + .HasComment("Уставка посадки, т"); + + b.Property("SpeedDownward") + .HasColumnType("double precision") + .HasColumnName("speed_downward") + .HasComment("Скорость спуска, м/ч"); + + b.Property("SpeedUpward") + .HasColumnType("double precision") + .HasColumnName("speed_upward") + .HasComment("Скорость подъёма, м/ч"); + + b.Property("SpinDownward") + .HasColumnType("double precision") + .HasColumnName("spin_downward") + .HasComment("Вращение при движении вниз, об/мин"); + + b.Property("SpinUpward") + .HasColumnType("double precision") + .HasColumnName("spin_upward") + .HasComment("Вращение при движении вверх, об/мин"); + + b.Property("Torque") + .HasColumnType("double precision") + .HasColumnName("torque") + .HasComment("Момент, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_ream", t => + { + t.HasComment("РТК проработка скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1. Скорость вниз, м/ч."); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_recording_static_measurement", t => + { + t.HasComment("Запись статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм. Уставка"); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления, атм. Ограничение"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход л/с. Уставка"); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход л/с. Ограничение"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм"); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин. Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин. Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м. Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м. Ограничение"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка, т. Уставка"); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка, т. Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor", t => + { + t.HasComment("РТК план бурение ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor_lowering_bit", t => + { + t.HasComment("РТК подход к забою в роторе"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание, м"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor_rpm_acceleration", t => + { + t.HasComment("Выход на обороты перед ротором"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание инструмента, м."); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления ограничение, атм."); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход уставка, л/с."); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход ограничение, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Расчётная пружина, градус"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка уставка, т."); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка ограничение, т."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide", t => + { + t.HasComment("РТК план бурение слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide_lowering_bit", t => + { + t.HasComment("РТК подход к забою в слайде"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switching_off_the_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход, л/с"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RampTime") + .HasColumnType("double precision") + .HasColumnName("ramp_time") + .HasComment("Время выхода буровых насосов на плановый расход, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_switching_to_the_mode", t => + { + t.HasComment("Выход на плановый расход"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Interval") + .HasColumnType("double precision") + .HasColumnName("interval") + .HasComment("Интервал расхаживания, м."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимальное давление, атм."); + + b.Property("RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("repetitions_count") + .HasComment("Количество расхаживаний, шт."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град."); + + b.Property("StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("TFSetpoint") + .HasColumnType("double precision") + .HasColumnName("tf_setpoint") + .HasComment("Задание TF, град."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("IdCompany", "IdWell"); + + b.HasIndex("IdWell"); + + b.ToTable("t_relation_company_well", t => + { + t.HasComment("отношение скважин и компаний"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.HasKey("IdWell", "IdUser"); + + b.HasIndex("IdUser"); + + b.ToTable("t_relation_contact_well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdDrillingProgramPart") + .HasColumnType("integer") + .HasColumnName("id_drilling_program_part"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_role") + .HasComment("1 - publisher, 2 - approver"); + + b.HasKey("IdUser", "IdDrillingProgramPart") + .HasName("t_relation_user_drilling_program_part_pk"); + + b.HasIndex("IdDrillingProgramPart"); + + b.ToTable("t_relation_user_drilling_program_part", t => + { + t.HasComment("Отношение пользователей и частей ПБ"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdPermission") + .HasColumnType("integer") + .HasColumnName("id_permission"); + + b.HasKey("IdUserRole", "IdPermission"); + + b.HasIndex("IdPermission"); + + b.ToTable("t_relation_user_role_permission", t => + { + t.HasComment("Отношение ролей пользователей и разрешений доступа"); + }); + + b.HasData( + new + { + IdUserRole = 1100, + IdPermission = 102 + }, + new + { + IdUserRole = 1100, + IdPermission = 111 + }, + new + { + IdUserRole = 1101, + IdPermission = 101 + }, + new + { + IdUserRole = 1101, + IdPermission = 100 + }, + new + { + IdUserRole = 1102, + IdPermission = 105 + }, + new + { + IdUserRole = 1102, + IdPermission = 108 + }, + new + { + IdUserRole = 1103, + IdPermission = 104 + }, + new + { + IdUserRole = 1103, + IdPermission = 103 + }, + new + { + IdUserRole = 1104, + IdPermission = 108 + }, + new + { + IdUserRole = 1105, + IdPermission = 107 + }, + new + { + IdUserRole = 1105, + IdPermission = 106 + }, + new + { + IdUserRole = 1106, + IdPermission = 111 + }, + new + { + IdUserRole = 1107, + IdPermission = 110 + }, + new + { + IdUserRole = 1107, + IdPermission = 109 + }, + new + { + IdUserRole = 1108, + IdPermission = 114 + }, + new + { + IdUserRole = 1109, + IdPermission = 113 + }, + new + { + IdUserRole = 1109, + IdPermission = 112 + }, + new + { + IdUserRole = 1110, + IdPermission = 123 + }, + new + { + IdUserRole = 1110, + IdPermission = 114 + }, + new + { + IdUserRole = 1111, + IdPermission = 122 + }, + new + { + IdUserRole = 1111, + IdPermission = 121 + }, + new + { + IdUserRole = 1112, + IdPermission = 117 + }, + new + { + IdUserRole = 1113, + IdPermission = 105 + }, + new + { + IdUserRole = 1113, + IdPermission = 123 + }, + new + { + IdUserRole = 1113, + IdPermission = 120 + }, + new + { + IdUserRole = 1114, + IdPermission = 119 + }, + new + { + IdUserRole = 1114, + IdPermission = 118 + }, + new + { + IdUserRole = 1114, + IdPermission = 200 + }, + new + { + IdUserRole = 1115, + IdPermission = 223 + }, + new + { + IdUserRole = 1116, + IdPermission = 105 + }, + new + { + IdUserRole = 1116, + IdPermission = 102 + }, + new + { + IdUserRole = 1116, + IdPermission = 117 + }, + new + { + IdUserRole = 1116, + IdPermission = 126 + }, + new + { + IdUserRole = 1117, + IdPermission = 125 + }, + new + { + IdUserRole = 1117, + IdPermission = 124 + }, + new + { + IdUserRole = 1200, + IdPermission = 203 + }, + new + { + IdUserRole = 1200, + IdPermission = 230 + }, + new + { + IdUserRole = 1201, + IdPermission = 202 + }, + new + { + IdUserRole = 1201, + IdPermission = 203 + }, + new + { + IdUserRole = 1201, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 203 + }, + new + { + IdUserRole = 1202, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 236 + }, + new + { + IdUserRole = 1202, + IdPermission = 212 + }, + new + { + IdUserRole = 1203, + IdPermission = 235 + }, + new + { + IdUserRole = 1204, + IdPermission = 202 + }, + new + { + IdUserRole = 1204, + IdPermission = 203 + }, + new + { + IdUserRole = 1205, + IdPermission = 215 + }, + new + { + IdUserRole = 1206, + IdPermission = 203 + }, + new + { + IdUserRole = 1206, + IdPermission = 206 + }, + new + { + IdUserRole = 1207, + IdPermission = 205 + }, + new + { + IdUserRole = 1208, + IdPermission = 218 + }, + new + { + IdUserRole = 1209, + IdPermission = 217 + }, + new + { + IdUserRole = 1210, + IdPermission = 203 + }, + new + { + IdUserRole = 1210, + IdPermission = 230 + }, + new + { + IdUserRole = 1210, + IdPermission = 219 + }, + new + { + IdUserRole = 1211, + IdPermission = 203 + }, + new + { + IdUserRole = 1211, + IdPermission = 220 + }, + new + { + IdUserRole = 1211, + IdPermission = 239 + }, + new + { + IdUserRole = 1212, + IdPermission = 238 + }, + new + { + IdUserRole = 1212, + IdPermission = 237 + }, + new + { + IdUserRole = 1213, + IdPermission = 203 + }, + new + { + IdUserRole = 1213, + IdPermission = 239 + }, + new + { + IdUserRole = 1213, + IdPermission = 212 + }, + new + { + IdUserRole = 1214, + IdPermission = 211 + }, + new + { + IdUserRole = 1214, + IdPermission = 210 + }, + new + { + IdUserRole = 1215, + IdPermission = 203 + }, + new + { + IdUserRole = 1215, + IdPermission = 222 + }, + new + { + IdUserRole = 1216, + IdPermission = 221 + }, + new + { + IdUserRole = 1217, + IdPermission = 226 + }, + new + { + IdUserRole = 1218, + IdPermission = 225 + }, + new + { + IdUserRole = 1218, + IdPermission = 224 + }, + new + { + IdUserRole = 1219, + IdPermission = 203 + }, + new + { + IdUserRole = 1219, + IdPermission = 206 + }, + new + { + IdUserRole = 1219, + IdPermission = 230 + }, + new + { + IdUserRole = 1219, + IdPermission = 232 + }, + new + { + IdUserRole = 1220, + IdPermission = 203 + }, + new + { + IdUserRole = 1220, + IdPermission = 228 + }, + new + { + IdUserRole = 1221, + IdPermission = 202 + }, + new + { + IdUserRole = 1221, + IdPermission = 203 + }, + new + { + IdUserRole = 1221, + IdPermission = 220 + }, + new + { + IdUserRole = 1221, + IdPermission = 234 + }, + new + { + IdUserRole = 1500, + IdPermission = 507 + }, + new + { + IdUserRole = 1500, + IdPermission = 510 + }, + new + { + IdUserRole = 1501, + IdPermission = 214 + }, + new + { + IdUserRole = 1501, + IdPermission = 213 + }, + new + { + IdUserRole = 1502, + IdPermission = 207 + }, + new + { + IdUserRole = 1502, + IdPermission = 208 + }, + new + { + IdUserRole = 2000, + IdPermission = 205 + }, + new + { + IdUserRole = 2000, + IdPermission = 204 + }, + new + { + IdUserRole = 2000, + IdPermission = 245 + }, + new + { + IdUserRole = 2001, + IdPermission = 244 + }, + new + { + IdUserRole = 2001, + IdPermission = 245 + }, + new + { + IdUserRole = 2002, + IdPermission = 244 + }, + new + { + IdUserRole = 2002, + IdPermission = 246 + }, + new + { + IdUserRole = 2002, + IdPermission = 237 + }, + new + { + IdUserRole = 2002, + IdPermission = 238 + }, + new + { + IdUserRole = 2003, + IdPermission = 240 + }, + new + { + IdUserRole = 2003, + IdPermission = 217 + }, + new + { + IdUserRole = 2003, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 242 + }, + new + { + IdUserRole = 2004, + IdPermission = 217 + }, + new + { + IdUserRole = 2004, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 205 + }, + new + { + IdUserRole = 2004, + IdPermission = 204 + }, + new + { + IdUserRole = 2005, + IdPermission = 247 + }, + new + { + IdUserRole = 2005, + IdPermission = 205 + }, + new + { + IdUserRole = 2005, + IdPermission = 204 + }, + new + { + IdUserRole = 2006, + IdPermission = 243 + }, + new + { + IdUserRole = 2006, + IdPermission = 205 + }, + new + { + IdUserRole = 2006, + IdPermission = 204 + }, + new + { + IdUserRole = 2007, + IdPermission = 241 + }, + new + { + IdUserRole = 2007, + IdPermission = 205 + }, + new + { + IdUserRole = 2007, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 100 + }, + new + { + IdUserRole = 1, + IdPermission = 101 + }, + new + { + IdUserRole = 1, + IdPermission = 102 + }, + new + { + IdUserRole = 1, + IdPermission = 103 + }, + new + { + IdUserRole = 1, + IdPermission = 104 + }, + new + { + IdUserRole = 1, + IdPermission = 105 + }, + new + { + IdUserRole = 1, + IdPermission = 106 + }, + new + { + IdUserRole = 1, + IdPermission = 107 + }, + new + { + IdUserRole = 1, + IdPermission = 108 + }, + new + { + IdUserRole = 1, + IdPermission = 109 + }, + new + { + IdUserRole = 1, + IdPermission = 110 + }, + new + { + IdUserRole = 1, + IdPermission = 111 + }, + new + { + IdUserRole = 1, + IdPermission = 112 + }, + new + { + IdUserRole = 1, + IdPermission = 113 + }, + new + { + IdUserRole = 1, + IdPermission = 114 + }, + new + { + IdUserRole = 1, + IdPermission = 115 + }, + new + { + IdUserRole = 1, + IdPermission = 116 + }, + new + { + IdUserRole = 1, + IdPermission = 117 + }, + new + { + IdUserRole = 1, + IdPermission = 118 + }, + new + { + IdUserRole = 1, + IdPermission = 119 + }, + new + { + IdUserRole = 1, + IdPermission = 120 + }, + new + { + IdUserRole = 1, + IdPermission = 121 + }, + new + { + IdUserRole = 1, + IdPermission = 122 + }, + new + { + IdUserRole = 1, + IdPermission = 123 + }, + new + { + IdUserRole = 1, + IdPermission = 124 + }, + new + { + IdUserRole = 1, + IdPermission = 125 + }, + new + { + IdUserRole = 1, + IdPermission = 126 + }, + new + { + IdUserRole = 1, + IdPermission = 127 + }, + new + { + IdUserRole = 1, + IdPermission = 128 + }, + new + { + IdUserRole = 1, + IdPermission = 129 + }, + new + { + IdUserRole = 1, + IdPermission = 200 + }, + new + { + IdUserRole = 1, + IdPermission = 201 + }, + new + { + IdUserRole = 1, + IdPermission = 202 + }, + new + { + IdUserRole = 1, + IdPermission = 203 + }, + new + { + IdUserRole = 1, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 205 + }, + new + { + IdUserRole = 1, + IdPermission = 206 + }, + new + { + IdUserRole = 1, + IdPermission = 207 + }, + new + { + IdUserRole = 1, + IdPermission = 208 + }, + new + { + IdUserRole = 1, + IdPermission = 209 + }, + new + { + IdUserRole = 1, + IdPermission = 210 + }, + new + { + IdUserRole = 1, + IdPermission = 211 + }, + new + { + IdUserRole = 1, + IdPermission = 212 + }, + new + { + IdUserRole = 1, + IdPermission = 213 + }, + new + { + IdUserRole = 1, + IdPermission = 214 + }, + new + { + IdUserRole = 1, + IdPermission = 215 + }, + new + { + IdUserRole = 1, + IdPermission = 216 + }, + new + { + IdUserRole = 1, + IdPermission = 217 + }, + new + { + IdUserRole = 1, + IdPermission = 218 + }, + new + { + IdUserRole = 1, + IdPermission = 219 + }, + new + { + IdUserRole = 1, + IdPermission = 220 + }, + new + { + IdUserRole = 1, + IdPermission = 221 + }, + new + { + IdUserRole = 1, + IdPermission = 222 + }, + new + { + IdUserRole = 1, + IdPermission = 223 + }, + new + { + IdUserRole = 1, + IdPermission = 224 + }, + new + { + IdUserRole = 1, + IdPermission = 225 + }, + new + { + IdUserRole = 1, + IdPermission = 226 + }, + new + { + IdUserRole = 1, + IdPermission = 227 + }, + new + { + IdUserRole = 1, + IdPermission = 228 + }, + new + { + IdUserRole = 1, + IdPermission = 229 + }, + new + { + IdUserRole = 1, + IdPermission = 230 + }, + new + { + IdUserRole = 1, + IdPermission = 231 + }, + new + { + IdUserRole = 1, + IdPermission = 232 + }, + new + { + IdUserRole = 1, + IdPermission = 233 + }, + new + { + IdUserRole = 1, + IdPermission = 234 + }, + new + { + IdUserRole = 1, + IdPermission = 235 + }, + new + { + IdUserRole = 1, + IdPermission = 236 + }, + new + { + IdUserRole = 1, + IdPermission = 237 + }, + new + { + IdUserRole = 1, + IdPermission = 238 + }, + new + { + IdUserRole = 1, + IdPermission = 239 + }, + new + { + IdUserRole = 1, + IdPermission = 240 + }, + new + { + IdUserRole = 1, + IdPermission = 241 + }, + new + { + IdUserRole = 1, + IdPermission = 242 + }, + new + { + IdUserRole = 1, + IdPermission = 243 + }, + new + { + IdUserRole = 1, + IdPermission = 244 + }, + new + { + IdUserRole = 1, + IdPermission = 245 + }, + new + { + IdUserRole = 1, + IdPermission = 246 + }, + new + { + IdUserRole = 1, + IdPermission = 247 + }, + new + { + IdUserRole = 1, + IdPermission = 248 + }, + new + { + IdUserRole = 1, + IdPermission = 249 + }, + new + { + IdUserRole = 1, + IdPermission = 250 + }, + new + { + IdUserRole = 1, + IdPermission = 251 + }, + new + { + IdUserRole = 1, + IdPermission = 252 + }, + new + { + IdUserRole = 1, + IdPermission = 253 + }, + new + { + IdUserRole = 1, + IdPermission = 254 + }, + new + { + IdUserRole = 1, + IdPermission = 255 + }, + new + { + IdUserRole = 1, + IdPermission = 256 + }, + new + { + IdUserRole = 1, + IdPermission = 257 + }, + new + { + IdUserRole = 1, + IdPermission = 258 + }, + new + { + IdUserRole = 1, + IdPermission = 259 + }, + new + { + IdUserRole = 1, + IdPermission = 260 + }, + new + { + IdUserRole = 1, + IdPermission = 261 + }, + new + { + IdUserRole = 1, + IdPermission = 262 + }, + new + { + IdUserRole = 1, + IdPermission = 263 + }, + new + { + IdUserRole = 1, + IdPermission = 264 + }, + new + { + IdUserRole = 1, + IdPermission = 265 + }, + new + { + IdUserRole = 1, + IdPermission = 266 + }, + new + { + IdUserRole = 1, + IdPermission = 267 + }, + new + { + IdUserRole = 1, + IdPermission = 268 + }, + new + { + IdUserRole = 1, + IdPermission = 269 + }, + new + { + IdUserRole = 1, + IdPermission = 380 + }, + new + { + IdUserRole = 1, + IdPermission = 381 + }, + new + { + IdUserRole = 1, + IdPermission = 382 + }, + new + { + IdUserRole = 1, + IdPermission = 383 + }, + new + { + IdUserRole = 1, + IdPermission = 384 + }, + new + { + IdUserRole = 1, + IdPermission = 385 + }, + new + { + IdUserRole = 1, + IdPermission = 386 + }, + new + { + IdUserRole = 1, + IdPermission = 387 + }, + new + { + IdUserRole = 1, + IdPermission = 388 + }, + new + { + IdUserRole = 1, + IdPermission = 389 + }, + new + { + IdUserRole = 1, + IdPermission = 390 + }, + new + { + IdUserRole = 1, + IdPermission = 391 + }, + new + { + IdUserRole = 1, + IdPermission = 400 + }, + new + { + IdUserRole = 1, + IdPermission = 401 + }, + new + { + IdUserRole = 1, + IdPermission = 407 + }, + new + { + IdUserRole = 1, + IdPermission = 408 + }, + new + { + IdUserRole = 1, + IdPermission = 450 + }, + new + { + IdUserRole = 1, + IdPermission = 460 + }, + new + { + IdUserRole = 1, + IdPermission = 461 + }, + new + { + IdUserRole = 1, + IdPermission = 500 + }, + new + { + IdUserRole = 1, + IdPermission = 501 + }, + new + { + IdUserRole = 1, + IdPermission = 502 + }, + new + { + IdUserRole = 1, + IdPermission = 503 + }, + new + { + IdUserRole = 1, + IdPermission = 504 + }, + new + { + IdUserRole = 1, + IdPermission = 505 + }, + new + { + IdUserRole = 1, + IdPermission = 506 + }, + new + { + IdUserRole = 1, + IdPermission = 507 + }, + new + { + IdUserRole = 1, + IdPermission = 510 + }, + new + { + IdUserRole = 1, + IdPermission = 511 + }, + new + { + IdUserRole = 1, + IdPermission = 512 + }, + new + { + IdUserRole = 1, + IdPermission = 516 + }, + new + { + IdUserRole = 1, + IdPermission = 517 + }, + new + { + IdUserRole = 1, + IdPermission = 518 + }, + new + { + IdUserRole = 1, + IdPermission = 519 + }, + new + { + IdUserRole = 1, + IdPermission = 520 + }, + new + { + IdUserRole = 1, + IdPermission = 521 + }, + new + { + IdUserRole = 1, + IdPermission = 522 + }, + new + { + IdUserRole = 1, + IdPermission = 523 + }, + new + { + IdUserRole = 1, + IdPermission = 524 + }, + new + { + IdUserRole = 1, + IdPermission = 525 + }, + new + { + IdUserRole = 1, + IdPermission = 526 + }, + new + { + IdUserRole = 1, + IdPermission = 527 + }, + new + { + IdUserRole = 1, + IdPermission = 528 + }, + new + { + IdUserRole = 1, + IdPermission = 530 + }, + new + { + IdUserRole = 1, + IdPermission = 531 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdInclude") + .HasColumnType("integer") + .HasColumnName("id_include_user_role"); + + b.HasKey("Id", "IdInclude") + .HasName("t_relation_user_role_user_role_pk"); + + b.HasIndex("IdInclude"); + + b.ToTable("t_relation_user_role_user_role", t => + { + t.HasComment("Отношение ролей к ролям"); + }); + + b.HasData( + new + { + Id = 1101, + IdInclude = 1100 + }, + new + { + Id = 1103, + IdInclude = 1102 + }, + new + { + Id = 1105, + IdInclude = 1104 + }, + new + { + Id = 1107, + IdInclude = 1106 + }, + new + { + Id = 1109, + IdInclude = 1108 + }, + new + { + Id = 1111, + IdInclude = 1110 + }, + new + { + Id = 1114, + IdInclude = 1113 + }, + new + { + Id = 1117, + IdInclude = 1116 + }, + new + { + Id = 1203, + IdInclude = 1202 + }, + new + { + Id = 1207, + IdInclude = 1206 + }, + new + { + Id = 1209, + IdInclude = 1208 + }, + new + { + Id = 1212, + IdInclude = 1211 + }, + new + { + Id = 1214, + IdInclude = 1213 + }, + new + { + Id = 1216, + IdInclude = 1215 + }, + new + { + Id = 1218, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1200 + }, + new + { + Id = 2000, + IdInclude = 1201 + }, + new + { + Id = 2000, + IdInclude = 1202 + }, + new + { + Id = 2000, + IdInclude = 1204 + }, + new + { + Id = 2000, + IdInclude = 1205 + }, + new + { + Id = 2000, + IdInclude = 1206 + }, + new + { + Id = 2000, + IdInclude = 1208 + }, + new + { + Id = 2000, + IdInclude = 1210 + }, + new + { + Id = 2000, + IdInclude = 1211 + }, + new + { + Id = 2000, + IdInclude = 1213 + }, + new + { + Id = 2000, + IdInclude = 1215 + }, + new + { + Id = 2000, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1219 + }, + new + { + Id = 2000, + IdInclude = 1220 + }, + new + { + Id = 2000, + IdInclude = 1221 + }, + new + { + Id = 2000, + IdInclude = 1500 + }, + new + { + Id = 2000, + IdInclude = 1501 + }, + new + { + Id = 2000, + IdInclude = 1502 + }, + new + { + Id = 2001, + IdInclude = 1500 + }, + new + { + Id = 2001, + IdInclude = 1501 + }, + new + { + Id = 2001, + IdInclude = 1502 + }, + new + { + Id = 2002, + IdInclude = 1500 + }, + new + { + Id = 2002, + IdInclude = 1501 + }, + new + { + Id = 2002, + IdInclude = 1502 + }, + new + { + Id = 2003, + IdInclude = 1500 + }, + new + { + Id = 2003, + IdInclude = 1501 + }, + new + { + Id = 2003, + IdInclude = 1502 + }, + new + { + Id = 2004, + IdInclude = 1500 + }, + new + { + Id = 2004, + IdInclude = 1501 + }, + new + { + Id = 2004, + IdInclude = 1502 + }, + new + { + Id = 2005, + IdInclude = 1500 + }, + new + { + Id = 2005, + IdInclude = 1501 + }, + new + { + Id = 2005, + IdInclude = 1502 + }, + new + { + Id = 2006, + IdInclude = 1500 + }, + new + { + Id = 2006, + IdInclude = 1501 + }, + new + { + Id = 2006, + IdInclude = 1502 + }, + new + { + Id = 2007, + IdInclude = 1500 + }, + new + { + Id = 2007, + IdInclude = 1501 + }, + new + { + Id = 2007, + IdInclude = 1502 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.HasKey("IdUser", "IdUserRole"); + + b.HasIndex("IdUserRole"); + + b.ToTable("t_relation_user_user_role", t => + { + t.HasComment("Отношение пользователей и ролей"); + }); + + b.HasData( + new + { + IdUser = 1, + IdUserRole = 1 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Begin") + .HasColumnType("timestamp with time zone") + .HasColumnName("begin"); + + b.Property("End") + .HasColumnType("timestamp with time zone") + .HasColumnName("end") + .HasComment("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer") + .HasColumnName("format") + .HasComment("Формат отчета"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла-родителя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("Step") + .HasColumnType("integer") + .HasColumnName("step") + .HasComment("размер шага в секундах"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdWell"); + + b.ToTable("t_report_property", t => + { + t.HasComment("Отчеты с данными по буровым"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DrillEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_end") + .HasComment("Конец вахты"); + + b.Property("DrillStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_start") + .HasComment("Начало вахты"); + + b.Property("IdDriller") + .HasColumnType("integer") + .HasColumnName("id_driller") + .HasComment("Идентификатор бурильщика"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Идентификатор скважины"); + + b.Property("ShiftEnd") + .HasColumnType("time without time zone") + .HasColumnName("shift_end") + .HasComment("Конец смены"); + + b.Property("ShiftStart") + .HasColumnType("time without time zone") + .HasColumnName("shift_start") + .HasComment("Начало смены"); + + b.HasKey("Id"); + + b.HasIndex("IdDriller"); + + b.HasIndex("IdWell"); + + b.ToTable("t_schedule", t => + { + t.HasComment("График работы бурильщика"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("комментарий для оператора"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("ObsolescenceSec") + .HasColumnType("integer") + .HasColumnName("obsolescence") + .HasComment("сек. до устаревания"); + + b.Property("Setpoints") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("setpoint_set") + .HasComment("Набор уставок"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdWell"); + + b.ToTable("t_setpoints_rquest", t => + { + t.HasComment("Запросы на изменение уставок панели оператора"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Subsystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_subsystem", t => + { + t.HasComment("Описание подсистем"); + }); + + b.HasData( + new + { + Id = 1, + Description = "Совместная работа режимов \"Бурение в роторе\" и \"Бурение в слайде\"", + Name = "АПД" + }, + new + { + Id = 11, + Description = "Режим работы \"Бурение в роторе\"", + Name = "АПД ротор" + }, + new + { + Id = 12, + Description = "Режим работы \"Бурение в слайде\"", + Name = "АПД слайд" + }, + new + { + Id = 65536, + Description = "Осцилляция", + Name = "Осцилляция" + }, + new + { + Id = 65537, + Description = "Демпфер", + Name = "Демпфер" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Info") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("info") + .HasComment("Информация с панели о скважине"); + + b.Property("RemoteUid") + .IsRequired() + .HasColumnType("text") + .HasColumnName("remote_uid") + .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв."); + + b.Property("TimeZone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); + + b.ToTable("t_telemetry", t => + { + t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("AxialLoad") + .HasColumnType("real") + .HasColumnName("axial_load") + .HasComment("Осевая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("real") + .HasColumnName("axial_load_limit_max") + .HasComment("Осевая нагрузка. Аварийная макс."); + + b.Property("AxialLoadSp") + .HasColumnType("real") + .HasColumnName("axial_load_sp") + .HasComment("Осевая нагрузка. Задание"); + + b.Property("BitDepth") + .HasColumnType("real") + .HasColumnName("bit_depth") + .HasComment("Положение инструмента"); + + b.Property("BlockPosition") + .HasColumnType("real") + .HasColumnName("block_position") + .HasComment("Высота талевого блока"); + + b.Property("BlockPositionMax") + .HasColumnType("real") + .HasColumnName("block_position_max") + .HasComment("Талевый блок. Макс положение"); + + b.Property("BlockPositionMin") + .HasColumnType("real") + .HasColumnName("block_position_min") + .HasComment("Талевый блок. Мин положение"); + + b.Property("BlockSpeed") + .HasColumnType("real") + .HasColumnName("block_speed") + .HasComment("Скорость талевого блока"); + + b.Property("BlockSpeedSp") + .HasColumnType("real") + .HasColumnName("block_speed_sp") + .HasComment("Скорости талевого блока. Задание"); + + b.Property("BlockSpeedSpDevelop") + .HasColumnType("real") + .HasColumnName("block_speed_sp_develop") + .HasComment("Талевый блок. Задание скорости для проработки"); + + b.Property("BlockSpeedSpRotor") + .HasColumnType("real") + .HasColumnName("block_speed_sp_rotor") + .HasComment("Талевый блок. Задание скорости для роторного бурения"); + + b.Property("BlockSpeedSpSlide") + .HasColumnType("real") + .HasColumnName("block_speed_sp_slide") + .HasComment("Талевый блок. Задание скорости для режима слайда"); + + b.Property("Flow") + .HasColumnType("real") + .HasColumnName("flow") + .HasComment("Расход"); + + b.Property("FlowDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("flow_delta_limit_max") + .HasComment("Расход. Аварийный макс."); + + b.Property("FlowIdle") + .HasColumnType("real") + .HasColumnName("flow_idle") + .HasComment("Расход. Холостой ход"); + + b.Property("HookWeight") + .HasColumnType("real") + .HasColumnName("hook_weight") + .HasComment("Вес на крюке"); + + b.Property("HookWeightIdle") + .HasColumnType("real") + .HasColumnName("hook_weight_idle") + .HasComment("Вес на крюке. Холостой ход"); + + b.Property("HookWeightLimitMax") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_max") + .HasComment("Вес на крюке. Затяжка"); + + b.Property("HookWeightLimitMin") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_min") + .HasComment("Вес на крюке. Посадка"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Текущий критерий бурения"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Пользователь САУБ"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Режим САУБ"); + + b.Property("Mse") + .HasColumnType("real") + .HasColumnName("mse") + .HasComment("MSE"); + + b.Property("MseState") + .HasColumnType("smallint") + .HasColumnName("mse_state") + .HasComment("Текущее состояние работы MSE"); + + b.Property("Pressure") + .HasColumnType("real") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("pressure_delta_limit_max") + .HasComment("Давление дифф. Аварийное макс."); + + b.Property("PressureIdle") + .HasColumnType("real") + .HasColumnName("pressure_idle") + .HasComment("Давление. Холостой ход"); + + b.Property("PressureSp") + .HasColumnType("real") + .HasColumnName("pressure_sp") + .HasComment("Давление. Задание"); + + b.Property("PressureSpDevelop") + .HasColumnType("real") + .HasColumnName("pressure_sp_develop") + .HasComment("Давление. Задание для проработки"); + + b.Property("PressureSpRotor") + .HasColumnType("real") + .HasColumnName("pressure_sp_rotor") + .HasComment("Давление. Задание для роторного бурения"); + + b.Property("PressureSpSlide") + .HasColumnType("real") + .HasColumnName("pressure_sp_slide") + .HasComment("Давление. Задание для режима слайда"); + + b.Property("Pump0Flow") + .HasColumnType("real") + .HasColumnName("pump0_flow") + .HasComment("Расход. Буровой насос 1"); + + b.Property("Pump1Flow") + .HasColumnType("real") + .HasColumnName("pump1_flow") + .HasComment("Расход. Буровой насос 2"); + + b.Property("Pump2Flow") + .HasColumnType("real") + .HasColumnName("pump2_flow") + .HasComment("Расход. Буровой насос 3"); + + b.Property("RotorSpeed") + .HasColumnType("real") + .HasColumnName("rotor_speed") + .HasComment("Обороты ротора"); + + b.Property("RotorTorque") + .HasColumnType("real") + .HasColumnName("rotor_torque") + .HasComment("Момент на роторе"); + + b.Property("RotorTorqueIdle") + .HasColumnType("real") + .HasColumnName("rotor_torque_idle") + .HasComment("Момент на роторе. Холостой ход"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("real") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Момент на роторе. Аварийный макс."); + + b.Property("RotorTorqueSp") + .HasColumnType("real") + .HasColumnName("rotor_torque_sp") + .HasComment("Момент на роторе. Задание"); + + b.Property("WellDepth") + .HasColumnType("real") + .HasColumnName("well_depth") + .HasComment("Глубина забоя"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_saub", t => + { + t.HasComment("набор основных данных по SAUB"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaubStat", b => + { + b.Property("Count") + .HasColumnType("bigint") + .HasColumnName("count_items"); + + b.Property("DateMax") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_max"); + + b.Property("DateMin") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_min"); + + b.Property("DepthMax") + .HasColumnType("real") + .HasColumnName("depth_max"); + + b.Property("DepthMin") + .HasColumnType("real") + .HasColumnName("depth_min"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.ToTable((string)null); + + b.ToView("mw_telemetry_datas_saub_stat", (string)null); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Выбранный режим управления"); + + b.Property("PositionRight") + .HasColumnType("real") + .HasColumnName("position_right") + .HasComment("Крайний правый угол осцилляции"); + + b.Property("PositionZero") + .HasColumnType("real") + .HasColumnName("position_zero") + .HasComment("Нулевая позиция осцилляции"); + + b.Property("RevolsLeftLimit") + .HasColumnType("real") + .HasColumnName("revols_left_limit") + .HasComment("Ограничение числа оборотов влево"); + + b.Property("RevolsLeftTotal") + .HasColumnType("real") + .HasColumnName("revols_left_total") + .HasComment("Суммарное количество оборотов влево"); + + b.Property("RevolsRightLimit") + .HasColumnType("real") + .HasColumnName("revols_right_limit") + .HasComment("Ограничение числа оборотов вправо"); + + b.Property("RevolsRightTotal") + .HasColumnType("real") + .HasColumnName("revols_right_total") + .HasComment("Суммарное количество оборотов вправо"); + + b.Property("SpeedLeftSp") + .HasColumnType("real") + .HasColumnName("speed_left_sp") + .HasComment("Заданная скорость вращения влево"); + + b.Property("SpeedRightSp") + .HasColumnType("real") + .HasColumnName("speed_right_sp") + .HasComment("Заданная скорость вращения вправо"); + + b.Property("State") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("Переменная этапа"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_spin", t => + { + t.HasComment("набор основных данных по SpinMaster"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.Property("MessageTemplate") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message_template"); + + b.HasKey("IdTelemetry", "IdEvent"); + + b.ToTable("t_telemetry_event", t => + { + t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Arg0") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg0") + .HasComment("Аргумент №0 для вставки в шаблон сообщения"); + + b.Property("Arg1") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg1"); + + b.Property("Arg2") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg2"); + + b.Property("Arg3") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg3"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdTelemetryUser") + .HasColumnType("integer") + .HasColumnName("id_telemetry_user") + .HasComment("Пользователь панели отправляющей телеметрию. не пользователь облака."); + + b.Property("WellDepth") + .HasColumnType("double precision") + .HasColumnName("well_depth"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_telemetry_message", t => + { + t.HasComment("Сообщения на буровых"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname"); + + b.HasKey("IdTelemetry", "IdUser"); + + b.ToTable("t_telemetry_user", t => + { + t.HasComment("Пользователи панели САУБ. Для сообщений."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryWirelineRunOut", b => + { + b.Property("IdTelemetry") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdTelemetry")); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_time") + .HasComment("Отметка времени"); + + b.Property("Hauling") + .HasColumnType("real") + .HasColumnName("hauling") + .HasComment("Наработка талевого каната с момента перетяжки каната, т*км"); + + b.Property("HaulingWarnSp") + .HasColumnType("real") + .HasColumnName("hauling_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости перетяжки, т*км"); + + b.Property("Replace") + .HasColumnType("real") + .HasColumnName("replace") + .HasComment("Наработка талевого каната с момента замены каната, т*км"); + + b.Property("ReplaceWarnSp") + .HasColumnType("real") + .HasColumnName("replace_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости замены, т*км"); + + b.HasKey("IdTelemetry"); + + b.ToTable("t_telemetry_wireline_run_out", t => + { + t.HasComment("Наработка талевого каната"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_fact", t => + { + t.HasComment("Загрузка фактической траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("Radius") + .HasColumnType("double precision") + .HasColumnName("radius") + .HasComment("Радиус цели"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_plan", t => + { + t.HasComment("Загрузка плановой траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("должность"); + + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdState") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("login"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("имя"); + + b.Property("PasswordHash") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("password_hash") + .HasComment("соленый хэш пароля.\nпервые 5 символов - соль"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("отчество"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("email"); + + b.Property("Surname") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("фамилия"); + + b.HasKey("Id"); + + b.HasIndex("IdCompany"); + + b.HasIndex("Login") + .IsUnique(); + + b.ToTable("t_user", t => + { + t.HasComment("Пользователи облака"); + }); + + b.HasData( + new + { + Id = 1, + Email = "", + IdCompany = 1, + IdState = (short)1, + Login = "dev", + Name = "Разработчик", + PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0-роль из стандартной матрицы, \n1-специальная роль для какого-либо пользователя"); + + b.HasKey("Id"); + + b.ToTable("t_user_role", t => + { + t.HasComment("Роли пользователей в системе"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "root", + IdType = 1 + }, + new + { + Id = 1100, + Caption = "admin_cluster.view", + IdType = 1 + }, + new + { + Id = 1101, + Caption = "admin_cluster.edit", + IdType = 1 + }, + new + { + Id = 1102, + Caption = "admin_company.view", + IdType = 1 + }, + new + { + Id = 1103, + Caption = "admin_company.edit", + IdType = 1 + }, + new + { + Id = 1104, + Caption = "admin_company_type.view", + IdType = 1 + }, + new + { + Id = 1105, + Caption = "admin_company_type.edit", + IdType = 1 + }, + new + { + Id = 1106, + Caption = "admin_deposit.view", + IdType = 1 + }, + new + { + Id = 1107, + Caption = "admin_deposit.edit", + IdType = 1 + }, + new + { + Id = 1108, + Caption = "admin_permission.view", + IdType = 1 + }, + new + { + Id = 1109, + Caption = "admin_permission.edit", + IdType = 1 + }, + new + { + Id = 1110, + Caption = "admin_role.view", + IdType = 1 + }, + new + { + Id = 1111, + Caption = "admin_role.edit", + IdType = 1 + }, + new + { + Id = 1112, + Caption = "admin_telemetry.view", + IdType = 1 + }, + new + { + Id = 1113, + Caption = "admin_user.view", + IdType = 1 + }, + new + { + Id = 1114, + Caption = "admin_user.edit", + IdType = 1 + }, + new + { + Id = 1115, + Caption = "admin_visit_log.view", + IdType = 1 + }, + new + { + Id = 1116, + Caption = "admin_well.view", + IdType = 1 + }, + new + { + Id = 1117, + Caption = "admin_well.edit", + IdType = 1 + }, + new + { + Id = 1200, + Caption = "archive.view", + IdType = 1 + }, + new + { + Id = 1201, + Caption = "cluster.view", + IdType = 1 + }, + new + { + Id = 1202, + Caption = "composite.view", + IdType = 1 + }, + new + { + Id = 1203, + Caption = "composite.edit", + IdType = 1 + }, + new + { + Id = 1204, + Caption = "deposit.view", + IdType = 1 + }, + new + { + Id = 1205, + Caption = "document.view", + IdType = 1 + }, + new + { + Id = 1206, + Caption = "drillProcessFlow.view", + IdType = 1 + }, + new + { + Id = 1207, + Caption = "drillProcessFlow.edit", + IdType = 1 + }, + new + { + Id = 1208, + Caption = "measure.view", + IdType = 1 + }, + new + { + Id = 1209, + Caption = "measure.edit", + IdType = 1 + }, + new + { + Id = 1210, + Caption = "message.view", + IdType = 1 + }, + new + { + Id = 1211, + Caption = "operations.view", + IdType = 1 + }, + new + { + Id = 1212, + Caption = "operations.edit", + IdType = 1 + }, + new + { + Id = 1213, + Caption = "params.view", + IdType = 1 + }, + new + { + Id = 1214, + Caption = "params.edit", + IdType = 1 + }, + new + { + Id = 1215, + Caption = "report.view", + IdType = 1 + }, + new + { + Id = 1216, + Caption = "report.edit", + IdType = 1 + }, + new + { + Id = 1217, + Caption = "setpoints.view", + IdType = 1 + }, + new + { + Id = 1218, + Caption = "setpoints.edit", + IdType = 1 + }, + new + { + Id = 1219, + Caption = "telemetry.view", + IdType = 1 + }, + new + { + Id = 1220, + Caption = "telemetryAnalysis.view", + IdType = 1 + }, + new + { + Id = 1221, + Caption = "well.view", + IdType = 1 + }, + new + { + Id = 1500, + Caption = "Просмотр всего", + IdType = 1 + }, + new + { + Id = 1501, + Caption = "file.edit", + IdType = 1 + }, + new + { + Id = 1502, + Caption = "drillingProgram.edit", + IdType = 1 + }, + new + { + Id = 2000, + Caption = "Заказчик", + IdType = 0 + }, + new + { + Id = 2001, + Caption = "Супервайзер", + IdType = 0 + }, + new + { + Id = 2002, + Caption = "Буровой подрядчик", + IdType = 0 + }, + new + { + Id = 2003, + Caption = "Растворщик", + IdType = 0 + }, + new + { + Id = 2004, + Caption = "Телеметрист", + IdType = 0 + }, + new + { + Id = 2005, + Caption = "Долотный сервис", + IdType = 0 + }, + new + { + Id = 2006, + Caption = "ГТИ", + IdType = 0 + }, + new + { + Id = 2007, + Caption = "Цементирование", + IdType = 0 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Key") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("key") + .HasComment("Ключ настроек пользователя"); + + b.Property("Value") + .HasColumnType("jsonb") + .HasColumnName("setting_value") + .HasComment("Значение настроек пользователя"); + + b.HasKey("IdUser", "Key"); + + b.ToTable("t_user_settings", t => + { + t.HasComment("настройки интерфейса пользователя"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.RecordBase", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Actcod") + .HasColumnType("smallint") + .HasColumnName("ACTCOD"); + + b.Property("Date") + .HasColumnType("integer") + .HasColumnName("DATE"); + + b.Property("Recid") + .HasColumnType("smallint") + .HasColumnName("RECID"); + + b.Property("Seqid") + .HasColumnType("integer") + .HasColumnName("SEQID"); + + b.Property("Stknum") + .HasColumnType("smallint") + .HasColumnName("STKNUM"); + + b.Property("Time") + .HasColumnType("integer") + .HasColumnName("TIME"); + + b.Property("Wellid") + .HasColumnType("text") + .HasColumnName("WELLID"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_wits_base"); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCluster") + .HasColumnType("integer") + .HasColumnName("id_cluster"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("0 - неизвестно, 1 - в работе, 2 - завершена"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdWellType") + .HasColumnType("integer") + .HasColumnName("id_well_type"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdCluster"); + + b.HasIndex("IdTelemetry") + .IsUnique(); + + b.HasIndex("IdWellType"); + + b.ToTable("t_well", t => + { + t.HasComment("скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины получателя"); + + b.Property("IdWellSrc") + .HasColumnType("integer") + .HasColumnName("id_well_src") + .HasComment("Id скважины композита"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции композита"); + + b.HasKey("IdWell", "IdWellSrc", "IdWellSectionType"); + + b.HasIndex("IdWellSectionType"); + + b.HasIndex("IdWellSrc"); + + b.ToTable("t_well_composite", t => + { + t.HasComment("Композитная скважина"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.HasKey("IdWell", "IdUser", "IdCategory") + .HasName("t_well_final_documents_pk"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_well_final_documents", t => + { + t.HasComment("Дело скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CategoryInfo") + .HasColumnType("text") + .HasColumnName("category_info") + .HasComment("Доп. информация к выбраной категории"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("DurationHours") + .HasColumnType("double precision") + .HasColumnName("duration_hours") + .HasComment("Продолжительность, часы"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdPlan") + .HasColumnType("integer") + .HasColumnName("id_plan") + .HasComment("Id плановой операции"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0 = План или 1 = Факт"); + + b.Property("IdUser") + .HasColumnType("integer"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции скважины"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("DateStart"); + + b.HasIndex("DepthEnd"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdPlan"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_well_operation", t => + { + t.HasComment("Данные по операциям на скважине"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("id родительской категории"); + + b.Property("IsHidden") + .HasColumnType("boolean"); + + b.Property("KeyValueName") + .HasMaxLength(32) + .HasColumnType("character varying(32)") + .HasColumnName("key_value_name") + .HasComment("Название ключевого показателя операции"); + + b.Property("KeyValueUnits") + .HasMaxLength(16) + .HasColumnType("character varying(16)") + .HasColumnName("key_value_units") + .HasComment("Единицы измерения ключевого показателя операции"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории операции"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_well_operation_category", t => + { + t.HasComment("Справочник операций на скважине"); + }); + + b.HasData( + new + { + Id = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "БУРЕНИЕ" + }, + new + { + Id = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КРЕПЛЕНИЕ" + }, + new + { + Id = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГФР" + }, + new + { + Id = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные операции" + }, + new + { + Id = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Непроизводительное время (НПВ)" + }, + new + { + Id = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные работы" + }, + new + { + Id = 4000, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КНБК" + }, + new + { + Id = 4001, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "Механическое. бурение" + }, + new + { + Id = 4002, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Статический замер" + }, + new + { + Id = 4003, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Нормализация диаметра скважины" + }, + new + { + Id = 4004, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 4005, + IdParent = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4006, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск обсадной колонны" + }, + new + { + Id = 4018, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Крепление" + }, + new + { + Id = 4007, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 4008, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы при креплении" + }, + new + { + Id = 4009, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка/разборка приборов ГИС" + }, + new + { + Id = 4010, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4011, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГИС" + }, + new + { + Id = 4012, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка, ОБР" + }, + new + { + Id = 4013, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы" + }, + new + { + Id = 4014, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт оборудования" + }, + new + { + Id = 4015, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Аварийные работы" + }, + new + { + Id = 4016, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Осложнение" + }, + new + { + Id = 4017, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Незаложенные в ГГД операции" + }, + new + { + Id = 4019, + IdParent = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные операции" + }, + new + { + Id = 5000, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка КНБК" + }, + new + { + Id = 5001, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка КНБК" + }, + new + { + Id = 5002, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение слайдом" + }, + new + { + Id = 5003, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение ротором" + }, + new + { + Id = 5004, + IdParent = 4002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Замер ЗТС (запись MWD)" + }, + new + { + Id = 5005, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка перед наращиванием" + }, + new + { + Id = 5006, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка во время бурения" + }, + new + { + Id = 5007, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка" + }, + new + { + Id = 5008, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка во время бурения" + }, + new + { + Id = 5009, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка перед наращиванием" + }, + new + { + Id = 5010, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 5011, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Удержание в клиньях" + }, + new + { + Id = 5012, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем инструмента" + }, + new + { + Id = 5013, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем КНБК" + }, + new + { + Id = 5014, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента" + }, + new + { + Id = 5015, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КНБК" + }, + new + { + Id = 5016, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка при спуске ОК" + }, + new + { + Id = 5017, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск ОК" + }, + new + { + Id = 5018, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ОЗЦ" + }, + new + { + Id = 5019, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 5020, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка БИ" + }, + new + { + Id = 5021, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ОК" + }, + new + { + Id = 5022, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при спуске ОК" + }, + new + { + Id = 5023, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при цементировании" + }, + new + { + Id = 5024, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка комплекса приборов ГИС" + }, + new + { + Id = 5025, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка комплекса приборов ГИС" + }, + new + { + Id = 5026, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем приборов ГИС (на трубах)" + }, + new + { + Id = 5027, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск приборов ГИС (на трубах)" + }, + new + { + Id = 5028, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на жестком кабеле" + }, + new + { + Id = 5029, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на кабеле" + }, + new + { + Id = 5030, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на трубах" + }, + new + { + Id = 5031, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Закачка/прокачка пачки" + }, + new + { + Id = 5032, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка БР" + }, + new + { + Id = 5033, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование ТС при бурении" + }, + new + { + Id = 5034, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перезапись гаммы-каротажа" + }, + new + { + Id = 5035, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Приготовление БР" + }, + new + { + Id = 5036, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка" + }, + new + { + Id = 5037, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разбуривание тех.оснастки" + }, + new + { + Id = 5038, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента с проработкой" + }, + new + { + Id = 5039, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ВМР" + }, + new + { + Id = 5040, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Демонтаж ПВО" + }, + new + { + Id = 5041, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Долив затруба при подъёме" + }, + new + { + Id = 5042, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж ПВО" + }, + new + { + Id = 5043, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наработка жёлоба" + }, + new + { + Id = 5044, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обвязка устья с циркуляционной системой" + }, + new + { + Id = 5045, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Оборудование устья" + }, + new + { + Id = 5046, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ПВО" + }, + new + { + Id = 5047, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перемонтаж ПВО " + }, + new + { + Id = 5048, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перетяжка талевого каната" + }, + new + { + Id = 5049, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при сборке КНБК" + }, + new + { + Id = 5050, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Полная замена талевого каната" + }, + new + { + Id = 5051, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПР перед забуркой направления" + }, + new + { + Id = 5052, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Продувка манифольда" + }, + new + { + Id = 5053, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Срезка" + }, + new + { + Id = 5054, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тайм-дриллинг" + }, + new + { + Id = 5055, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тех.отстой" + }, + new + { + Id = 5056, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Учебная тревога \"Выброс\"" + }, + new + { + Id = 5057, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Чистка ЦСГО/емкостного блока" + }, + new + { + Id = 5058, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт бурового оборудования" + }, + new + { + Id = 5059, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ловильные работы" + }, + new + { + Id = 5060, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ожидание" + }, + new + { + Id = 5061, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Определение места прихвата и ЛМ" + }, + new + { + Id = 5062, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа яссом" + }, + new + { + Id = 5063, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расхаживание" + }, + new + { + Id = 5064, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - колокол" + }, + new + { + Id = 5065, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - метчик" + }, + new + { + Id = 5066, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - овершот" + }, + new + { + Id = 5067, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - труболовка" + }, + new + { + Id = 5068, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (встряхивание)" + }, + new + { + Id = 5069, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (отстрел)" + }, + new + { + Id = 5070, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Установка ванн" + }, + new + { + Id = 5071, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Фрезеровка" + }, + new + { + Id = 5072, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Контролируемое ГНВП" + }, + new + { + Id = 5073, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Поглощение" + }, + new + { + Id = 5074, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сальникообразование" + }, + new + { + Id = 5075, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Утяжеление БР" + }, + new + { + Id = 5076, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "НПВ / прочее" + }, + new + { + Id = 5077, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка раствора (несоответствие параметров)" + }, + new + { + Id = 5078, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "подъем ОК" + }, + new + { + Id = 5079, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ревизия КНБК/инструмента/ЗТС" + }, + new + { + Id = 5082, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка устройства ориентирования КО" + }, + new + { + Id = 5083, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка принудительная" + }, + new + { + Id = 5084, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка подъем БИ, продувка" + }, + new + { + Id = 5085, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск бурильного инструмента со сборкой с мостков" + }, + new + { + Id = 5086, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем БИ с выбросом на мостки" + }, + new + { + Id = 5087, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск БИ со сборкой с мостков" + }, + new + { + Id = 5088, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка и спуск ТБТ" + }, + new + { + Id = 5089, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КО на транспортной колонне" + }, + new + { + Id = 5090, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Отворот допускной трубы" + }, + new + { + Id = 5091, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески, опрессовка" + }, + new + { + Id = 5092, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж, опрессовка ФА" + }, + new + { + Id = 5093, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка хвостовика 114мм (согласно схеме)" + }, + new + { + Id = 5094, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР к спуску УЭЦН" + }, + new + { + Id = 5095, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески (потайной колонны, хвостовика)" + }, + new + { + Id = 5096, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование перед спуском" + }, + new + { + Id = 5097, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка - перевод скважины на новый раствор" + }, + new + { + Id = 5098, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка БИ с мостков на подсвечник" + }, + new + { + Id = 5099, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО." + }, + new + { + Id = 5100, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Смена рабочего переводника ВСП" + }, + new + { + Id = 5101, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт" + }, + new + { + Id = 5102, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск пакера" + }, + new + { + Id = 5103, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Запись гамма-каратожа" + }, + new + { + Id = 5104, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование спуск БИ" + }, + new + { + Id = 5105, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка клин-отклонителя" + }, + new + { + Id = 5106, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и посадка клина-отклонителя" + }, + new + { + Id = 5107, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Протяжка подъемного патрубка подвески" + }, + new + { + Id = 5108, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем клина-отклонителя" + }, + new + { + Id = 5109, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Стыковка стингера с хвостовиком основного ствола" + }, + new + { + Id = 5110, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и установка стыковочного узла хвостовика" + }, + new + { + Id = 5111, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение с отбором керна" + }, + new + { + Id = 5112, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа пакером в обсадной колонне" + }, + new + { + Id = 5113, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение" + }, + new + { + Id = 5114, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ТО оборудования" + }, + new + { + Id = 5115, + IdParent = 4019, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск НКТ" + }, + new + { + Id = 5116, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вырезка окна" + }, + new + { + Id = 5117, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расширение ствола" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("Order") + .HasColumnType("real") + .HasColumnName("order") + .HasComment("Порядок"); + + b.HasKey("Id"); + + b.ToTable("t_well_section_type", t => + { + t.HasComment("конструкция секции скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Пилотный ствол", + Order = 4f + }, + new + { + Id = 2, + Caption = "Направление", + Order = 0f + }, + new + { + Id = 3, + Caption = "Кондуктор", + Order = 1f + }, + new + { + Id = 4, + Caption = "Эксплуатационная колонна", + Order = 3f + }, + new + { + Id = 5, + Caption = "Транспортный ствол", + Order = 5f + }, + new + { + Id = 6, + Caption = "Хвостовик", + Order = 6f + }, + new + { + Id = 7, + Caption = "Пилотный ствол 2", + Order = 4.1f + }, + new + { + Id = 8, + Caption = "Направление 2", + Order = 0.1f + }, + new + { + Id = 9, + Caption = "Кондуктор 2", + Order = 1.1f + }, + new + { + Id = 10, + Caption = "Эксплуатационная колонна 2", + Order = 3.1f + }, + new + { + Id = 11, + Caption = "Транспортный ствол 2", + Order = 5.1f + }, + new + { + Id = 12, + Caption = "Хвостовик 2", + Order = 6.1f + }, + new + { + Id = 13, + Caption = "Пилотный ствол 3", + Order = 4.2f + }, + new + { + Id = 14, + Caption = "Направление 3", + Order = 0.2f + }, + new + { + Id = 15, + Caption = "Кондуктор 3", + Order = 1.2f + }, + new + { + Id = 16, + Caption = "Эксплуатационная колонна 3", + Order = 3.2f + }, + new + { + Id = 17, + Caption = "Транспортный ствол 3", + Order = 5.2f + }, + new + { + Id = 18, + Caption = "Хвостовик 3", + Order = 6.2f + }, + new + { + Id = 19, + Caption = "Пилотный ствол 4", + Order = 4.3f + }, + new + { + Id = 20, + Caption = "Направление 4", + Order = 0.3f + }, + new + { + Id = 21, + Caption = "Кондуктор 4", + Order = 1.3f + }, + new + { + Id = 22, + Caption = "Эксплуатационная колонна 4", + Order = 3.3f + }, + new + { + Id = 23, + Caption = "Транспортный ствол 4", + Order = 5.3f + }, + new + { + Id = 24, + Caption = "Хвостовик 4", + Order = 6.3f + }, + new + { + Id = 25, + Caption = "Пилотный ствол 5", + Order = 4.4f + }, + new + { + Id = 26, + Caption = "Направление 5", + Order = 0.4f + }, + new + { + Id = 27, + Caption = "Кондуктор 5", + Order = 1.4f + }, + new + { + Id = 28, + Caption = "Эксплуатационная колонна 5", + Order = 3.4f + }, + new + { + Id = 29, + Caption = "Транспортный ствол 5", + Order = 5.4f + }, + new + { + Id = 30, + Caption = "Хвостовик 5", + Order = 6.4f + }, + new + { + Id = 31, + Caption = "Техническая колонна", + Order = 2f + }, + new + { + Id = 32, + Caption = "Техническая колонна 2", + Order = 2.1f + }, + new + { + Id = 33, + Caption = "Техническая колонна 3", + Order = 2.2f + }, + new + { + Id = 34, + Caption = "Хвостовик 6", + Order = 6.5f + }, + new + { + Id = 35, + Caption = "Хвостовик 7", + Order = 6.6f + }, + new + { + Id = 36, + Caption = "Хвостовик 8", + Order = 6.7f + }, + new + { + Id = 37, + Caption = "Хвостовик 9", + Order = 6.8f + }, + new + { + Id = 38, + Caption = "Хвостовик 10", + Order = 6.9f + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина бурения, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Начальная глубина бурения, м"); + + b.Property("IdSectionType") + .HasColumnType("integer") + .HasColumnName("id_section_type") + .HasComment("Тип секции"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("InnerDiameter") + .HasColumnType("double precision") + .HasColumnName("inner_diameter") + .HasComment("Внутренний диаметр"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("OuterDiameter") + .HasColumnType("double precision") + .HasColumnName("outer_diameter") + .HasComment("Внешний диаметр"); + + b.HasKey("Id"); + + b.HasIndex("IdSectionType"); + + b.HasIndex("IdWell", "IdSectionType") + .IsUnique(); + + b.ToTable("t_well_section_plan"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_well_type", t => + { + t.HasComment("конструкция скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Наклонно-направленная" + }, + new + { + Id = 2, + Caption = "Горизонтальная" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Blkpos") + .HasColumnType("real") + .HasColumnName("BLKPOS"); + + b.Property("Chkp") + .HasColumnType("real") + .HasColumnName("CHKP"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptretm") + .HasColumnType("real") + .HasColumnName("DEPTRETM"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Gasa") + .HasColumnType("real") + .HasColumnName("GASA"); + + b.Property("Hkla") + .HasColumnType("real") + .HasColumnName("HKLA"); + + b.Property("Hklx") + .HasColumnType("real") + .HasColumnName("HKLX"); + + b.Property("Lagstks") + .HasColumnType("smallint") + .HasColumnName("LAGSTKS"); + + b.Property("Mcia") + .HasColumnType("real") + .HasColumnName("MCIA"); + + b.Property("Mcoa") + .HasColumnType("real") + .HasColumnName("MCOA"); + + b.Property("Mdia") + .HasColumnType("real") + .HasColumnName("MDIA"); + + b.Property("Mdoa") + .HasColumnType("real") + .HasColumnName("MDOA"); + + b.Property("Mfia") + .HasColumnType("real") + .HasColumnName("MFIA"); + + b.Property("Mfoa") + .HasColumnType("real") + .HasColumnName("MFOA"); + + b.Property("Mfop") + .HasColumnType("smallint") + .HasColumnName("MFOP"); + + b.Property("Mtia") + .HasColumnType("real") + .HasColumnName("MTIA"); + + b.Property("Mtoa") + .HasColumnType("real") + .HasColumnName("MTOA"); + + b.Property("Ropa") + .HasColumnType("real") + .HasColumnName("ROPA"); + + b.Property("Rpma") + .HasColumnType("smallint") + .HasColumnName("RPMA"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spm1") + .HasColumnType("smallint") + .HasColumnName("SPM1"); + + b.Property("Spm2") + .HasColumnType("smallint") + .HasColumnName("SPM2"); + + b.Property("Spm3") + .HasColumnType("smallint") + .HasColumnName("SPM3"); + + b.Property("Sppa") + .HasColumnType("real") + .HasColumnName("SPPA"); + + b.Property("Stkc") + .HasColumnType("integer") + .HasColumnName("STKC"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.Property("Torqa") + .HasColumnType("real") + .HasColumnName("TORQA"); + + b.Property("Torqx") + .HasColumnType("real") + .HasColumnName("TORQX"); + + b.Property("Tvolact") + .HasColumnType("real") + .HasColumnName("TVOLACT"); + + b.Property("Tvolcact") + .HasColumnType("real") + .HasColumnName("TVOLCACT"); + + b.Property("Woba") + .HasColumnType("real") + .HasColumnName("WOBA"); + + b.Property("Wobx") + .HasColumnType("real") + .HasColumnName("WOBX"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_1"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("DeptmeasGdpMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_GDP_mc"); + + b.Property("DeptmeasMcrstat") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_MCRSTAT"); + + b.Property("DeptmeasRa33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33_mc"); + + b.Property("DeptmeasRa33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F2_mc"); + + b.Property("DeptmeasRa33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F4_mc"); + + b.Property("DeptmeasRp33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33_mc"); + + b.Property("DeptmeasRp33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F2_mc"); + + b.Property("DeptmeasRp33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F4_mc"); + + b.Property("DeptmeasSlvlMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_SLVL_mc"); + + b.Property("GdpMc") + .HasColumnType("real") + .HasColumnName("GDP_mc"); + + b.Property("Mcrstat") + .HasColumnType("real") + .HasColumnName("MCRSTAT"); + + b.Property("Ra33Mc") + .HasColumnType("real") + .HasColumnName("RA33_mc"); + + b.Property("Ra33f2Mc") + .HasColumnType("real") + .HasColumnName("RA33F2_mc"); + + b.Property("Ra33f4Mc") + .HasColumnType("real") + .HasColumnName("RA33F4_mc"); + + b.Property("Rp33Mc") + .HasColumnType("real") + .HasColumnName("RP33_mc"); + + b.Property("Rp33f2Mc") + .HasColumnType("real") + .HasColumnName("RP33F2_mc"); + + b.Property("Rp33f4Mc") + .HasColumnType("real") + .HasColumnName("RP33F4_mc"); + + b.Property("SlvlMc") + .HasColumnType("real") + .HasColumnName("SLVL_mc"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_50"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Btot") + .HasColumnType("real") + .HasColumnName("Btot"); + + b.Property("Bx") + .HasColumnType("real") + .HasColumnName("Bx"); + + b.Property("By") + .HasColumnType("real") + .HasColumnName("By"); + + b.Property("Bz") + .HasColumnType("real") + .HasColumnName("Bz"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Gtot") + .HasColumnType("real") + .HasColumnName("Gtot"); + + b.Property("Gx") + .HasColumnType("real") + .HasColumnName("Gx"); + + b.Property("Gy") + .HasColumnType("real") + .HasColumnName("Gy"); + + b.Property("Gz") + .HasColumnType("real") + .HasColumnName("Gz"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_60"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Att06h") + .HasColumnType("real") + .HasColumnName("ATT06H"); + + b.Property("Att06l") + .HasColumnType("real") + .HasColumnName("ATT06L"); + + b.Property("Att10h") + .HasColumnType("real") + .HasColumnName("ATT10H"); + + b.Property("Att10l") + .HasColumnType("real") + .HasColumnName("ATT10L"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Phl1f1") + .HasColumnType("real") + .HasColumnName("PHL1F1"); + + b.Property("Phl1f2") + .HasColumnType("real") + .HasColumnName("PHL1F2"); + + b.Property("Phl2f1") + .HasColumnType("real") + .HasColumnName("PHL2F1"); + + b.Property("Phl2f2") + .HasColumnType("real") + .HasColumnName("PHL2F2"); + + b.Property("Status") + .HasColumnType("real") + .HasColumnName("Status"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_61"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptsvym") + .HasColumnType("real") + .HasColumnName("DEPTSVYM"); + + b.Property("Deptsvyv") + .HasColumnType("real") + .HasColumnName("DEPTSVYV"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Svyazc") + .HasColumnType("real") + .HasColumnName("SVYAZC"); + + b.Property("Svyazu") + .HasColumnType("real") + .HasColumnName("SVYAZU"); + + b.Property("Svydls") + .HasColumnType("real") + .HasColumnName("SVYDLS"); + + b.Property("Svyew") + .HasColumnType("real") + .HasColumnName("SVYEW"); + + b.Property("Svygtf") + .HasColumnType("real") + .HasColumnName("SVYGTF"); + + b.Property("Svyinc") + .HasColumnType("real") + .HasColumnName("SVYINC"); + + b.Property("Svymtf") + .HasColumnType("real") + .HasColumnName("SVYMTF"); + + b.Property("Svyns") + .HasColumnType("real") + .HasColumnName("SVYNS"); + + b.Property("Svytype") + .HasColumnType("text") + .HasColumnName("SVYTYPE"); + + b.Property("Svywalk") + .HasColumnType("real") + .HasColumnName("SVYWALK"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_7"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptcalm") + .HasColumnType("real") + .HasColumnName("DEPTCALM"); + + b.Property("Deptcalv") + .HasColumnType("real") + .HasColumnName("DEPTCALV"); + + b.Property("Deptfdm") + .HasColumnType("real") + .HasColumnName("DEPTFDM"); + + b.Property("Deptfdv") + .HasColumnType("real") + .HasColumnName("DEPTFDV"); + + b.Property("Deptgr1m") + .HasColumnType("real") + .HasColumnName("DEPTGR1M"); + + b.Property("Deptgr1v") + .HasColumnType("real") + .HasColumnName("DEPTGR1V"); + + b.Property("Deptgr2m") + .HasColumnType("real") + .HasColumnName("DEPTGR2M"); + + b.Property("Deptgr2v") + .HasColumnType("real") + .HasColumnName("DEPTGR2V"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptp1m") + .HasColumnType("real") + .HasColumnName("DEPTP1M"); + + b.Property("Deptp1v") + .HasColumnType("real") + .HasColumnName("DEPTP1V"); + + b.Property("Deptp2m") + .HasColumnType("real") + .HasColumnName("DEPTP2M"); + + b.Property("Deptp2v") + .HasColumnType("real") + .HasColumnName("DEPTP2V"); + + b.Property("Deptrs1m") + .HasColumnType("real") + .HasColumnName("DEPTRS1M"); + + b.Property("Deptrs1v") + .HasColumnType("real") + .HasColumnName("DEPTRS1V"); + + b.Property("Deptrs2m") + .HasColumnType("real") + .HasColumnName("DEPTRS2M"); + + b.Property("Deptrs2v") + .HasColumnType("real") + .HasColumnName("DEPTRS2V"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Mclp") + .HasColumnType("real") + .HasColumnName("MCLP"); + + b.Property("Mfd") + .HasColumnType("real") + .HasColumnName("MFD"); + + b.Property("Mffp") + .HasColumnType("real") + .HasColumnName("MFFP"); + + b.Property("Mfpp") + .HasColumnType("real") + .HasColumnName("MFPP"); + + b.Property("Mfrann") + .HasColumnType("real") + .HasColumnName("MFRANN"); + + b.Property("Mfrpipe") + .HasColumnType("real") + .HasColumnName("MFRPIPE"); + + b.Property("Mftann") + .HasColumnType("real") + .HasColumnName("MFTANN"); + + b.Property("Mftpipe") + .HasColumnType("real") + .HasColumnName("MFTPIPE"); + + b.Property("Mg1") + .HasColumnType("real") + .HasColumnName("MG1"); + + b.Property("Mg1c") + .HasColumnType("real") + .HasColumnName("MG1C"); + + b.Property("Mg2") + .HasColumnType("real") + .HasColumnName("MG2"); + + b.Property("Mg2c") + .HasColumnType("real") + .HasColumnName("MG2C"); + + b.Property("Mpo1") + .HasColumnType("real") + .HasColumnName("MPO1"); + + b.Property("Mpo2") + .HasColumnType("real") + .HasColumnName("MPO2"); + + b.Property("Mr1") + .HasColumnType("real") + .HasColumnName("MR1"); + + b.Property("Mr1c") + .HasColumnType("real") + .HasColumnName("MR1C"); + + b.Property("Mr2") + .HasColumnType("real") + .HasColumnName("MR2"); + + b.Property("Mr2c") + .HasColumnType("real") + .HasColumnName("MR2C"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spare6") + .HasColumnType("real") + .HasColumnName("SPARE6"); + + b.Property("Spare7") + .HasColumnType("real") + .HasColumnName("SPARE7"); + + b.Property("Spare8") + .HasColumnType("real") + .HasColumnName("SPARE8"); + + b.Property("Spare9") + .HasColumnType("real") + .HasColumnName("SPARE9"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_8"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.HasOne("AsbCloudDb.Model.Deposit", "Deposit") + .WithMany("Clusters") + .HasForeignKey("IdDeposit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_cluster_t_deposit_id_fk"); + + b.Navigation("Deposit"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Companies") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Contacts") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("Contacts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdFileCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("DrillingProgramParts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.HasOne("AsbCloudDb.Model.User", "AuthorAnswer") + .WithMany() + .HasForeignKey("IdAuthorAnswer"); + + b.HasOne("AsbCloudDb.Model.User", "AuthorQuestion") + .WithMany() + .HasForeignKey("IdAuthorQuestion") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuthorAnswer"); + + b.Navigation("AuthorQuestion"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany("Files") + .HasForeignKey("IdAuthor"); + + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "FileInfo") + .WithMany("FileMarks") + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_file_mark_t_file_info_fk"); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("FileMarks") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_user_t_file_mark_fk"); + + b.Navigation("FileInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Directory") + .WithMany("Manuals") + .HasForeignKey("IdDirectory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Category"); + + b.Navigation("Directory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Parent") + .WithMany("Children") + .HasForeignKey("IdParent") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.HasOne("AsbCloudDb.Model.MeasureCategory", "Category") + .WithMany("Measures") + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.HasOne("AsbCloudDb.Model.NotificationCategory", "NotificationCategory") + .WithMany("Notifications") + .HasForeignKey("IdNotificationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("NotificationCategory"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdOperationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_user~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_well~1"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_company_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_well_id_fk"); + + b.Navigation("Company"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationContactsWells") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.DrillingProgramPart", "DrillingProgramPart") + .WithMany("RelatedUsers") + .HasForeignKey("IdDrillingProgramPart") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DrillingProgramPart"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.HasOne("AsbCloudDb.Model.Permission", "Permission") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdPermission") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.HasOne("AsbCloudDb.Model.UserRole", "Role") + .WithMany("RelationUserRoleUserRoles") + .HasForeignKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "IncludeRole") + .WithMany() + .HasForeignKey("IdInclude") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("IncludeRole"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "File") + .WithMany() + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.HasOne("AsbCloudDb.Model.Driller", "Driller") + .WithMany("Schedule") + .HasForeignKey("IdDriller") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_schedule_t_driller_id_driller"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Driller"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSaub") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_saub_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSpin") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_spin_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Events") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_event_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Messages") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_messages_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Users") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_user_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("Users") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("t_user_t_company_id_fk"); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.HasOne("AsbCloudDb.Model.Cluster", "Cluster") + .WithMany("Wells") + .HasForeignKey("IdCluster") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_t_cluster_id_fk"); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithOne("Well") + .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("t_well_t_telemetry_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellType", "WellType") + .WithMany("Wells") + .HasForeignKey("IdWellType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cluster"); + + b.Navigation("Telemetry"); + + b.Navigation("WellType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellComposites") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellComposites") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_section_type_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "WellSrc") + .WithMany("WellCompositeSrcs") + .HasForeignKey("IdWellSrc") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_src_t_well_id_fk"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + + b.Navigation("WellSrc"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellOperation", "OperationPlan") + .WithMany() + .HasForeignKey("IdPlan") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellOperations") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellOperations") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("OperationPlan"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Parent") + .WithMany() + .HasForeignKey("IdParent"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.HasOne("AsbCloudDb.Model.WellSectionType", "SectionType") + .WithMany() + .HasForeignKey("IdSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SectionType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record1", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record50", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record60", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record61", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record7", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record8", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Navigation("Wells"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Navigation("RelationCompaniesWells"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Navigation("Companies"); + + b.Navigation("Contacts"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Navigation("Clusters"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Navigation("Schedule"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Navigation("RelatedUsers"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Navigation("FileMarks"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Navigation("Children"); + + b.Navigation("Manuals"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Navigation("Measures"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Navigation("Notifications"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Navigation("RelationUserRolePermissions"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Navigation("DataSaub"); + + b.Navigation("DataSpin"); + + b.Navigation("Events"); + + b.Navigation("Messages"); + + b.Navigation("Users"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Navigation("FileMarks"); + + b.Navigation("Files"); + + b.Navigation("RelationContactsWells"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Navigation("RelationUserRolePermissions"); + + b.Navigation("RelationUserRoleUserRoles"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Navigation("Contacts"); + + b.Navigation("DrillingProgramParts"); + + b.Navigation("RelationCompaniesWells"); + + b.Navigation("WellCompositeSrcs"); + + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Navigation("Wells"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.cs b/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.cs new file mode 100644 index 00000000..03db637a --- /dev/null +++ b/AsbCloudDb/Migrations/20240630162502_Add_Tables_ProcessMapOperationsAndFunctions.cs @@ -0,0 +1,2060 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + /// + public partial class Add_Tables_ProcessMapOperationsAndFunctions : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "differential_pressure_limit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "flow_rate_limit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "pressure_limit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "rop_limit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "tool_buckling", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "weight_on_bit_limit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.RenameColumn( + name: "pressure_limit_max", + table: "t_process_map_plan_rotor", + newName: "pressure_max"); + + migrationBuilder.RenameColumn( + name: "weight_on_bit_limit_max", + table: "t_process_map_plan_rotor", + newName: "weight_on_bit_max"); + + migrationBuilder.RenameColumn( + name: "top_drive_torque_limit_max", + table: "t_process_map_plan_rotor", + newName: "top_drive_torque_max"); + + migrationBuilder.RenameColumn( + name: "rop_limit_max", + table: "t_process_map_plan_rotor", + newName: "rop_max"); + + migrationBuilder.RenameColumn( + name: "revolutions_per_minute_limit_max", + table: "t_process_map_plan_rotor", + newName: "rpm_max"); + + migrationBuilder.RenameColumn( + name: "revolution_per_minute", + table: "t_process_map_plan_rotor", + newName: "rpm"); + + migrationBuilder.RenameColumn( + name: "flow_rate_limit_max", + table: "t_process_map_plan_rotor", + newName: "flow_rate_max"); + + migrationBuilder.RenameColumn( + name: "differential_pressure_limit_max", + table: "t_process_map_plan_rotor", + newName: "differential_pressure_max"); + + migrationBuilder.AlterColumn( + name: "weight_on_bit", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Нагрузка уставка, т.", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Нагрузка, т. Уставка"); + + migrationBuilder.AlterColumn( + name: "flow_rate", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Расход уставка, л/с.", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Расход л/с. Уставка"); + + migrationBuilder.AlterColumn( + name: "differential_pressure", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Перепад давления уставка, атм.", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Перепад давления, атм. Уставка"); + + migrationBuilder.AddColumn( + name: "buckling", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Складывание инструмента, м."); + + migrationBuilder.AddColumn( + name: "differential_pressure_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Перепад давления ограничение, атм."); + + migrationBuilder.AddColumn( + name: "flow_rate_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Расход ограничение, л/с."); + + migrationBuilder.AddColumn( + name: "pressure_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Максимально допустимое давление, атм."); + + migrationBuilder.AddColumn( + name: "rop_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Максимально допустимая скорость, м/ч."); + + migrationBuilder.AddColumn( + name: "weight_on_bit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Нагрузка ограничение, т."); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_anti_crash_rotation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + top_drive_rpm_min = table.Column(type: "double precision", nullable: false, comment: "Минимальные обороты ВСП, об/мин"), + top_drive_start_min_flow_rate = table.Column(type: "double precision", nullable: false, comment: "Минимальный расход для запуска оборотов ВСП, л/сек"), + top_drive_torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_anti_crash_rotation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_anti_crash_rotation_t_process_map_plan_a~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_anti_crash_rotation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_anti_crash_rotation_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_anti_crash_rotation_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_anti_crash_rotation_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_anti_crash_rotation_t_well_section_type_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Противоаварийное вращение"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_auto_hold_tf", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_auto_hold_tf", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_auto_hold_tf_t_process_map_plan_auto_hol~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_auto_hold_tf", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_auto_hold_tf_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_auto_hold_tf_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_auto_hold_tf_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_auto_hold_tf_t_well_section_type_id_well~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Автоудержание TF"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_drilltest", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + weight_on_bit_steps_count = table.Column(type: "integer", nullable: false, comment: "Количество шагов по нагрузке"), + rpm_min = table.Column(type: "double precision", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), + rpm_steps_count = table.Column(type: "integer", nullable: false, comment: "Количество шагов оборотов на ВСП, об/мин."), + length_step = table.Column(type: "double precision", nullable: false, comment: "Величина проходки шага, м."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_drilltest", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_drilltest_t_process_map_plan_drilltest_i~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_drilltest", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_drilltest_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_drilltest_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_drilltest_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_drilltest_t_well_section_type_id_wellsec~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "DrillTest"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_functions_damper", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stick_slip = table.Column(type: "double precision", nullable: false, comment: "StickSlip"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_functions_damper", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_process_map_plan_func~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_functions_damper", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_functions_damper_t_well_section_type_id_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Демпфер"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_load_capacity", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + time_load_capacity_min = table.Column(type: "double precision", nullable: false, comment: "Время выработки минимальное, сек"), + differential_pressure_min = table.Column(type: "double precision", nullable: false, comment: "Перепад давления минимальный, атм"), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_load_capacity", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_load_capacity_t_process_map_plan_load_ca~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_load_capacity", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_load_capacity_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_load_capacity_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_load_capacity_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_load_capacity_t_well_section_type_id_wel~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК выработка нагрузки"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_oscillation_angels", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + top_drive_torque = table.Column(type: "double precision", nullable: false, comment: "Момент на ВСП, кН*м., Уставка"), + top_drive_torque_max = table.Column(type: "double precision", nullable: false, comment: "Момент на ВСП, кН*м., Ограничение"), + rpm = table.Column(type: "double precision", nullable: false, comment: "Обороты на ВСП, об/мин., Уставка"), + rpm_max = table.Column(type: "double precision", nullable: false, comment: "Обороты на ВСП, об/мин., Ограничение"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_oscillation_angels", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_process_m~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_oscillation_angels", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_a~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_user_id_e~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_id_w~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_oscillation_angels_t_well_sect~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Определение углов осцилляции"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_reaming_rotor", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + tight = table.Column(type: "double precision", nullable: false, comment: "Затяжка, т."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + reaming1_repetitions_count = table.Column(type: "integer", nullable: false, comment: "Проработка 1. Количество повторений, шт."), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1. Скорость вверх, м/ч."), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Скорость, м/ч., Вниз"), + reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), + reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), + reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), + reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), + reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), + reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming2_repetitions_count = table.Column(type: "integer", nullable: false, comment: "Проработка 2, Количество повторений, шт."), + reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), + reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), + reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), + reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), + reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), + reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), + reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), + reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming3_repetitions_count = table.Column(type: "integer", nullable: false, comment: "Проработка 3, Количество повторений, шт."), + reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), + reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), + reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), + reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), + reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), + reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), + reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), + reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_reaming_rotor", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_process_map_pl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_reaming_rotor", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_reaming_rotor_t_well_section_t~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК проработка ротор"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_operation_switching_off_the_pump", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + duration = table.Column(type: "double precision", nullable: false, comment: "Продолжительность, сек."), + residual_pressure_limit = table.Column(type: "double precision", nullable: false, comment: "Лимит остаточного давления, атм."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_operation_switching_off_the_pump", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switching_off_the_pump_t_proce~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_operation_switching_off_the_pump", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switching_off_the_pump_t_user_~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switching_off_the_pump_t_user~1", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switching_off_the_pump_t_well_~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_operation_switching_off_the_pump_t_well~1", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выключение насоса"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_oscillation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + optimal_oscillation_angle = table.Column(type: "double precision", nullable: false, comment: "Оптимальный угол осцилляции, градусы"), + Rpm​_right = table.Column(type: "double precision", nullable: false, comment: "Скорость вправо, об/мин"), + Rpm_left = table.Column(type: "double precision", nullable: false, comment: "Скорость влево, об/мин"), + torque_max_right = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента вправо, кН*м"), + torque_max_left = table.Column(type: "double precision", nullable: false, comment: "Ограничение момента влево, кН*м"), + mode = table.Column(type: "integer", nullable: false, comment: "Режим Авто/Руч"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_oscillation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_oscillation_t_process_map_plan_oscillati~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_oscillation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_oscillation_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_oscillation_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_oscillation_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_oscillation_t_well_section_type_id_wells~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Осцилляция"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_positioning_off_the_bottom", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stop_off_the_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + tight = table.Column(type: "double precision", nullable: false, comment: "Затяжка, т."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + rop_up = table.Column(type: "double precision", nullable: false, comment: "Скорость вверх, м/ч."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."), + rpm_up = table.Column(type: "double precision", nullable: false, comment: "Обороты вверх, об/мин."), + rpm_down = table.Column(type: "double precision", nullable: false, comment: "Обороты вниз, об/мин."), + flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Расход вверх, л/с."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_positioning_off_the_bottom", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_positioning_off_the_bottom_t_process_map~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_positioning_off_the_bottom", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_positioning_off_the_bottom_t_user_id_aut~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_positioning_off_the_bottom_t_user_id_edi~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_positioning_off_the_bottom_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_positioning_off_the_bottom_t_well_sectio~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Позиционирование над забоем"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_reaming_slide", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + tight = table.Column(type: "double precision", nullable: false, comment: "Затяжка, т."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + reaming1_repetitions_count = table.Column(type: "double precision", nullable: false, comment: "Проработка 1. Количество повторений, шт."), + reaming1_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1. Скорость вверх, м/ч."), + reaming1_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1. Скорость вниз, м/ч."), + reaming1_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вверх"), + reaming1_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Обороты, об/мин., Вниз"), + reaming1_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вверх"), + reaming1_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Расход, л/с., Вниз"), + reaming1_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 1, Интервал проработки, м."), + reaming1_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming2_repetitions_count = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Количество повторений, шт."), + reaming2_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вверх"), + reaming2_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Скорость, м/ч., Вниз"), + reaming2_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вверх"), + reaming2_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Обороты, об/мин., Вниз"), + reaming2_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вверх"), + reaming2_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Расход, л/с., Вниз"), + reaming2_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 2, Интервал проработки, м."), + reaming2_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + reaming3_repetitions_count = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Количество повторений, шт."), + reaming3_rop_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вверх"), + reaming3_rop_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Скорость, м/ч., Вниз"), + reaming3_rpm_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вверх"), + reaming3_rpm_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Обороты, об/мин., Вниз"), + reaming3_flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вверх"), + reaming3_flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Расход, л/с., Вниз"), + reaming3_interval = table.Column(type: "double precision", nullable: false, comment: "Проработка 3, Интервал проработки, м."), + reaming3_stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_reaming_slide", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_reaming_slide_t_process_map_plan_reaming~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_reaming_slide", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_reaming_slide_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_reaming_slide_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_reaming_slide_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_reaming_slide_t_well_section_type_id_wel~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК проработка слайд"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_recording_static_measurement", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + measurement_recording_time = table.Column(type: "double precision", nullable: false, comment: "Время записи замера, сек"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_recording_static_measurement", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_recording_static_measurement_t_process_m~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_recording_static_measurement", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_recording_static_measurement_t_user_id_a~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_recording_static_measurement_t_user_id_e~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_recording_static_measurement_t_well_id_w~", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_recording_static_measurement_t_well_sect~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Запись статического замера"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_rotor_lowering_bit", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."), + rpm_down = table.Column(type: "double precision", nullable: false, comment: "Обороты вниз, об/мин."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_rotor_lowering_bit", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_process_map_plan_ro~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_rotor_lowering_bit", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_section_type_i~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК подход к забою в роторе"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_rotor_rpm_acceleration", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + zenit_angle = table.Column(type: "double precision", nullable: false, comment: "Зенитный угол, градусы"), + buckling = table.Column(type: "double precision", nullable: false, comment: "Складывание, м"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_rotor_rpm_acceleration", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_process_map_pla~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_rotor_rpm_acceleration", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_section_ty~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход на обороты перед ротором"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_slide_lowering_bit", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_slide_lowering_bit", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_process_map_plan_sl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_slide_lowering_bit", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_well_section_type_i~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК подход к забою в слайде"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_static_measurement_output", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + signal_waiting_time = table.Column(type: "double precision", nullable: false, comment: "Время ожидания выхода сигнала с ТМС, сек."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_static_measurement_output", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_static_measurement_output_t_process_map_~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_static_measurement_output", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_static_measurement_output_t_user_id_auth~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_static_measurement_output_t_user_id_edit~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_static_measurement_output_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_static_measurement_output_t_well_section~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход статического замера"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_switching_to_the_mode", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ramp_time = table.Column(type: "double precision", nullable: false, comment: "Время выхода буровых насосов на плановый расход, сек."), + flow_rate = table.Column(type: "double precision", nullable: false, comment: "Расход, л/с"), + pressure_limit = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_switching_to_the_mode", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_switching_to_the_mode_t_process_map_plan~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_switching_to_the_mode", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_switching_to_the_mode_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_switching_to_the_mode_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_switching_to_the_mode_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_switching_to_the_mode_t_well_section_typ~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход на плановый расход"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_tf_orientation", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + tf_setpoint = table.Column(type: "double precision", nullable: false, comment: "Задание TF, град."), + spring = table.Column(type: "double precision", nullable: false, comment: "Пружина, град."), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимальное давление, атм."), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления, атм."), + tight = table.Column(type: "double precision", nullable: false, comment: "Затяжка, т."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м."), + repetitions_count = table.Column(type: "integer", nullable: false, comment: "Количество расхаживаний, шт."), + rop_up = table.Column(type: "double precision", nullable: false, comment: "Скорость вверх, м/ч."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."), + flow_rate_up = table.Column(type: "double precision", nullable: false, comment: "Расход вверх, л/с."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + interval = table.Column(type: "double precision", nullable: false, comment: "Интервал расхаживания, м."), + stop_point_off_bottom = table.Column(type: "double precision", nullable: false, comment: "Остановка над забоем, м."), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_tf_orientation", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_tf_orientation_t_process_map_plan_tf_ori~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_tf_orientation", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_tf_orientation_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_tf_orientation_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_tf_orientation_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_tf_orientation_t_well_section_type_id_we~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выставление"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_updating_noload_parameters", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_decline_socket_column = table.Column(type: "boolean", nullable: false, comment: "СПУСК ОК Да/Нет"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_updating_noload_parameters", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_process_map~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_updating_noload_parameters", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_aut~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_edi~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_well_sectio~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Обновление холостого хода"); + + migrationBuilder.CreateTable( + name: "t_process_map_shock_test", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + stick_slip = table.Column(type: "double precision", nullable: false, comment: "stickSlip"), + whirl = table.Column(type: "double precision", nullable: false, comment: "Whirl"), + axial_vibrations = table.Column(type: "double precision", nullable: false, comment: "Осевые вибрации"), + combined_vibrations = table.Column(type: "double precision", nullable: false, comment: "Комбинированные вибрации"), + weight_on_bit_min = table.Column(type: "double precision", nullable: false, comment: "Нагрузка минимальная, т"), + rpm_min = table.Column(type: "double precision", nullable: false, comment: "Минимальные обороты на ВСП, об/мин."), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_shock_test", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_shock_test_t_process_map_shock_test_id_previo~", + column: x => x.id_previous, + principalTable: "t_process_map_shock_test", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_shock_test_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_shock_test_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_shock_test_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_shock_test_t_well_section_type_id_wellsection~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "ShockTest"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_anti_crash_rotation_id_author", + table: "t_process_map_plan_anti_crash_rotation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_anti_crash_rotation_id_editor", + table: "t_process_map_plan_anti_crash_rotation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_anti_crash_rotation_id_previous", + table: "t_process_map_plan_anti_crash_rotation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_anti_crash_rotation_id_well", + table: "t_process_map_plan_anti_crash_rotation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_anti_crash_rotation_id_wellsection_type", + table: "t_process_map_plan_anti_crash_rotation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_auto_hold_tf_id_author", + table: "t_process_map_plan_auto_hold_tf", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_auto_hold_tf_id_editor", + table: "t_process_map_plan_auto_hold_tf", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_auto_hold_tf_id_previous", + table: "t_process_map_plan_auto_hold_tf", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_auto_hold_tf_id_well", + table: "t_process_map_plan_auto_hold_tf", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_auto_hold_tf_id_wellsection_type", + table: "t_process_map_plan_auto_hold_tf", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_drilltest_id_author", + table: "t_process_map_plan_drilltest", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_drilltest_id_editor", + table: "t_process_map_plan_drilltest", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_drilltest_id_previous", + table: "t_process_map_plan_drilltest", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_drilltest_id_well", + table: "t_process_map_plan_drilltest", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_drilltest_id_wellsection_type", + table: "t_process_map_plan_drilltest", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_author", + table: "t_process_map_plan_functions_damper", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_editor", + table: "t_process_map_plan_functions_damper", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_previous", + table: "t_process_map_plan_functions_damper", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_well", + table: "t_process_map_plan_functions_damper", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_functions_damper_id_wellsection_type", + table: "t_process_map_plan_functions_damper", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_load_capacity_id_author", + table: "t_process_map_plan_load_capacity", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_load_capacity_id_editor", + table: "t_process_map_plan_load_capacity", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_load_capacity_id_previous", + table: "t_process_map_plan_load_capacity", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_load_capacity_id_well", + table: "t_process_map_plan_load_capacity", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_load_capacity_id_wellsection_type", + table: "t_process_map_plan_load_capacity", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_author", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_editor", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_previous", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_well", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_oscillation_angels_id_wellsect~", + table: "t_process_map_plan_operation_oscillation_angels", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_author", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_editor", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_previous", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_well", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_reaming_rotor_id_wellsection_t~", + table: "t_process_map_plan_operation_reaming_rotor", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switching_off_the_pump_id_auth~", + table: "t_process_map_plan_operation_switching_off_the_pump", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switching_off_the_pump_id_edit~", + table: "t_process_map_plan_operation_switching_off_the_pump", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switching_off_the_pump_id_prev~", + table: "t_process_map_plan_operation_switching_off_the_pump", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switching_off_the_pump_id_well", + table: "t_process_map_plan_operation_switching_off_the_pump", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_operation_switching_off_the_pump_id_well~", + table: "t_process_map_plan_operation_switching_off_the_pump", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_oscillation_id_author", + table: "t_process_map_plan_oscillation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_oscillation_id_editor", + table: "t_process_map_plan_oscillation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_oscillation_id_previous", + table: "t_process_map_plan_oscillation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_oscillation_id_well", + table: "t_process_map_plan_oscillation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_oscillation_id_wellsection_type", + table: "t_process_map_plan_oscillation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_positioning_off_the_bottom_id_author", + table: "t_process_map_plan_positioning_off_the_bottom", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_positioning_off_the_bottom_id_editor", + table: "t_process_map_plan_positioning_off_the_bottom", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_positioning_off_the_bottom_id_previous", + table: "t_process_map_plan_positioning_off_the_bottom", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_positioning_off_the_bottom_id_well", + table: "t_process_map_plan_positioning_off_the_bottom", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_positioning_off_the_bottom_id_wellsectio~", + table: "t_process_map_plan_positioning_off_the_bottom", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_reaming_slide_id_author", + table: "t_process_map_plan_reaming_slide", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_reaming_slide_id_editor", + table: "t_process_map_plan_reaming_slide", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_reaming_slide_id_previous", + table: "t_process_map_plan_reaming_slide", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_reaming_slide_id_well", + table: "t_process_map_plan_reaming_slide", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_reaming_slide_id_wellsection_type", + table: "t_process_map_plan_reaming_slide", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_recording_static_measurement_id_author", + table: "t_process_map_plan_recording_static_measurement", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_recording_static_measurement_id_editor", + table: "t_process_map_plan_recording_static_measurement", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_recording_static_measurement_id_previous", + table: "t_process_map_plan_recording_static_measurement", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_recording_static_measurement_id_well", + table: "t_process_map_plan_recording_static_measurement", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_recording_static_measurement_id_wellsect~", + table: "t_process_map_plan_recording_static_measurement", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_author", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_editor", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_previous", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_well", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_wellsection_type", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_author", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_editor", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_previous", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_well", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_wellsection_ty~", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_author", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_editor", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_previous", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_well", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_wellsection_type", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_static_measurement_output_id_author", + table: "t_process_map_plan_static_measurement_output", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_static_measurement_output_id_editor", + table: "t_process_map_plan_static_measurement_output", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_static_measurement_output_id_previous", + table: "t_process_map_plan_static_measurement_output", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_static_measurement_output_id_well", + table: "t_process_map_plan_static_measurement_output", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_static_measurement_output_id_wellsection~", + table: "t_process_map_plan_static_measurement_output", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_switching_to_the_mode_id_author", + table: "t_process_map_plan_switching_to_the_mode", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_switching_to_the_mode_id_editor", + table: "t_process_map_plan_switching_to_the_mode", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_switching_to_the_mode_id_previous", + table: "t_process_map_plan_switching_to_the_mode", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_switching_to_the_mode_id_well", + table: "t_process_map_plan_switching_to_the_mode", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_switching_to_the_mode_id_wellsection_type", + table: "t_process_map_plan_switching_to_the_mode", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_tf_orientation_id_author", + table: "t_process_map_plan_tf_orientation", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_tf_orientation_id_editor", + table: "t_process_map_plan_tf_orientation", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_tf_orientation_id_previous", + table: "t_process_map_plan_tf_orientation", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_tf_orientation_id_well", + table: "t_process_map_plan_tf_orientation", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_tf_orientation_id_wellsection_type", + table: "t_process_map_plan_tf_orientation", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_author", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_editor", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_previous", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_well", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_wellsectio~", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_shock_test_id_author", + table: "t_process_map_shock_test", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_shock_test_id_editor", + table: "t_process_map_shock_test", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_shock_test_id_previous", + table: "t_process_map_shock_test", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_shock_test_id_well", + table: "t_process_map_shock_test", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_shock_test_id_wellsection_type", + table: "t_process_map_shock_test", + column: "id_wellsection_type"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "t_process_map_plan_anti_crash_rotation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_auto_hold_tf"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_drilltest"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_functions_damper"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_load_capacity"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_oscillation_angels"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_reaming_rotor"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_operation_switching_off_the_pump"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_oscillation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_positioning_off_the_bottom"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_reaming_slide"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_recording_static_measurement"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_rotor_lowering_bit"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_slide_lowering_bit"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_static_measurement_output"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_switching_to_the_mode"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_tf_orientation"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_updating_noload_parameters"); + + migrationBuilder.DropTable( + name: "t_process_map_shock_test"); + + migrationBuilder.DropColumn( + name: "buckling", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "differential_pressure_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "flow_rate_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "pressure_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "rop_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.DropColumn( + name: "weight_on_bit_max", + table: "t_process_map_plan_slide"); + + migrationBuilder.RenameColumn( + name: "pressure_max", + table: "t_process_map_plan_rotor", + newName: "pressure_limit_max"); + + migrationBuilder.RenameColumn( + name: "weight_on_bit_max", + table: "t_process_map_plan_rotor", + newName: "weight_on_bit_limit_max"); + + migrationBuilder.RenameColumn( + name: "top_drive_torque_max", + table: "t_process_map_plan_rotor", + newName: "top_drive_torque_limit_max"); + + migrationBuilder.RenameColumn( + name: "rpm_max", + table: "t_process_map_plan_rotor", + newName: "revolutions_per_minute_limit_max"); + + migrationBuilder.RenameColumn( + name: "rpm", + table: "t_process_map_plan_rotor", + newName: "revolution_per_minute"); + + migrationBuilder.RenameColumn( + name: "rop_max", + table: "t_process_map_plan_rotor", + newName: "rop_limit_max"); + + migrationBuilder.RenameColumn( + name: "flow_rate_max", + table: "t_process_map_plan_rotor", + newName: "flow_rate_limit_max"); + + migrationBuilder.RenameColumn( + name: "differential_pressure_max", + table: "t_process_map_plan_rotor", + newName: "differential_pressure_limit_max"); + + migrationBuilder.AlterColumn( + name: "weight_on_bit", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Нагрузка, т. Уставка", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Нагрузка уставка, т."); + + migrationBuilder.AlterColumn( + name: "flow_rate", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Расход л/с. Уставка", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Расход уставка, л/с."); + + migrationBuilder.AlterColumn( + name: "differential_pressure", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + comment: "Перепад давления, атм. Уставка", + oldClrType: typeof(double), + oldType: "double precision", + oldComment: "Перепад давления уставка, атм."); + + migrationBuilder.AddColumn( + name: "differential_pressure_limit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Перепад давления, атм. Ограничение"); + + migrationBuilder.AddColumn( + name: "flow_rate_limit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Расход л/с. Ограничение"); + + migrationBuilder.AddColumn( + name: "pressure_limit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Максимально допустимое давление, атм"); + + migrationBuilder.AddColumn( + name: "rop_limit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Максимально допустимая скорость, м/ч"); + + migrationBuilder.AddColumn( + name: "tool_buckling", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Складывание инструмента, м"); + + migrationBuilder.AddColumn( + name: "weight_on_bit_limit_max", + table: "t_process_map_plan_slide", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Нагрузка, т. Ограничение"); + } + } +} diff --git a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs index 85f4125d..f2af7c9e 100644 --- a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs +++ b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs @@ -63,7 +63,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDeposit"); - b.ToTable("t_cluster", null, t => + b.ToTable("t_cluster", t => { t.HasComment("Кусты"); }); @@ -94,7 +94,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdCompanyType"); - b.ToTable("t_company", (string)null); + b.ToTable("t_company"); b.HasData( new @@ -130,7 +130,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_company_type", (string)null); + b.ToTable("t_company_type"); b.HasData( new @@ -265,7 +265,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_contact", null, t => + b.ToTable("t_contact", t => { t.HasComment("Контакты"); }); @@ -314,7 +314,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "Date") .IsUnique(); - b.ToTable("t_daily_report", null, t => + b.ToTable("t_daily_report", t => { t.HasComment("Ежедневные отчёты"); }); @@ -445,7 +445,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_data_saub_stat", null, t => + b.ToTable("t_data_saub_stat", t => { t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); }); @@ -482,7 +482,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_deposit", null, t => + b.ToTable("t_deposit", t => { t.HasComment("Месторождение"); }); @@ -563,7 +563,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_detected_operation", null, t => + b.ToTable("t_detected_operation", t => { t.HasComment("автоматически определенные операции по телеметрии"); }); @@ -601,7 +601,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_drill_test", null, t => + b.ToTable("t_drill_test", t => { t.HasComment("Drill_test"); }); @@ -639,7 +639,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_driller", null, t => + b.ToTable("t_driller", t => { t.HasComment("Бурильщик"); }); @@ -669,7 +669,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "IdFileCategory") .IsUnique(); - b.ToTable("t_drilling_program_part", null, t => + b.ToTable("t_drilling_program_part", t => { t.HasComment("части программ бурения"); }); @@ -747,7 +747,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdAuthorQuestion"); - b.ToTable("t_faq", null, t => + b.ToTable("t_faq", t => { t.HasComment("вопросы пользователей"); }); @@ -775,7 +775,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_file_category", null, t => + b.ToTable("t_file_category", t => { t.HasComment("Категории файлов"); }); @@ -1176,7 +1176,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_file_info", null, t => + b.ToTable("t_file_info", t => { t.HasComment("Файлы всех категорий"); }); @@ -1228,7 +1228,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_file_mark", null, t => + b.ToTable("t_file_mark", t => { t.HasComment("Действия с файлами."); }); @@ -1258,7 +1258,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_float", null, t => + b.ToTable("t_wits_float", t => { t.HasComment("таблица данных ГТИ с типом значения float"); }); @@ -1288,7 +1288,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_int", null, t => + b.ToTable("t_wits_int", t => { t.HasComment("таблица данных ГТИ с типом значения int"); }); @@ -1319,7 +1319,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); - b.ToTable("t_wits_string", null, t => + b.ToTable("t_wits_string", t => { t.HasComment("таблица данных ГТИ с типом значения string"); }); @@ -1360,7 +1360,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdCategory"); - b.ToTable("t_help_page", null, t => + b.ToTable("t_help_page", t => { t.HasComment("Справки"); }); @@ -1403,7 +1403,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_limiting_parameter", null, t => + b.ToTable("t_limiting_parameter", t => { t.HasComment("Ограничения по параметрам телеметрии"); }); @@ -1452,7 +1452,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDirectory"); - b.ToTable("t_manual", null, t => + b.ToTable("t_manual", t => { t.HasComment("Инструкции"); }); @@ -1482,7 +1482,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdParent"); - b.ToTable("t_manual_directory", null, t => + b.ToTable("t_manual_directory", t => { t.HasComment("Директория для инструкций"); }); @@ -1529,7 +1529,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_measure", null, t => + b.ToTable("t_measure", t => { t.HasComment("Таблица c данными для вкладки 'Последние данные'"); }); @@ -1557,7 +1557,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_measure_category", null, t => + b.ToTable("t_measure_category", t => { t.HasComment("Категория последних данных"); }); @@ -1640,7 +1640,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_notification", null, t => + b.ToTable("t_notification", t => { t.HasComment("Уведомления"); }); @@ -1662,7 +1662,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_notification_category", null, t => + b.ToTable("t_notification_category", t => { t.HasComment("Категории уведомлений"); }); @@ -1721,7 +1721,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_operationvalue", null, t => + b.ToTable("t_operationvalue", t => { t.HasComment("Целевые/нормативные показатели операции"); }); @@ -1751,7 +1751,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_permission", null, t => + b.ToTable("t_permission", t => { t.HasComment("Разрешения на доступ к данным"); }); @@ -2629,7 +2629,1143 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveRpmMin") + .HasColumnType("double precision") + .HasColumnName("top_drive_rpm_min") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("TopDriveStartMinFlowRate") + .HasColumnType("double precision") + .HasColumnName("top_drive_start_min_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_anti_crash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_auto_hold_tf", t => + { + t.HasComment("Автоудержание TF"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("RpmStepsCount") + .HasColumnType("integer") + .HasColumnName("rpm_steps_count") + .HasComment("Количество шагов оборотов на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("WeightOnBitStepsCount") + .HasColumnType("integer") + .HasColumnName("weight_on_bit_steps_count") + .HasComment("Количество шагов по нагрузке"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_drilltest", t => + { + t.HasComment("DrillTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("integer") + .HasColumnName("mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RpmLeft") + .HasColumnType("double precision") + .HasColumnName("Rpm_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RpmRight") + .HasColumnType("double precision") + .HasColumnName("Rpm​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueMaxLeft") + .HasColumnType("double precision") + .HasColumnName("torque_max_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueMaxRight") + .HasColumnType("double precision") + .HasColumnName("torque_max_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("stickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_static_measurement_output", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdDeclineSocketColumn") + .HasColumnType("boolean") + .HasColumnName("id_decline_socket_column") + .HasComment("СПУСК ОК Да/Нет"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_updating_noload_parameters", t => + { + t.HasComment("Обновление холостого хода"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин., Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин., Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м., Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м., Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("RpmUp") + .HasColumnType("double precision") + .HasColumnName("rpm_up") + .HasComment("Обороты вверх, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -2744,13 +3880,593 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_ream", null, t => + b.ToTable("t_process_map_plan_ream", t => { t.HasComment("РТК проработка скважины"); }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1. Скорость вниз, м/ч."); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_recording_static_measurement", t => + { + t.HasComment("Запись статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -2780,9 +4496,9 @@ namespace AsbCloudDb.Migrations .HasColumnName("differential_pressure") .HasComment("Перепад давления, атм. Уставка"); - b.Property("DifferentialPressureLimitMax") + b.Property("DifferentialPressureMax") .HasColumnType("double precision") - .HasColumnName("differential_pressure_limit_max") + .HasColumnName("differential_pressure_max") .HasComment("Перепад давления, атм. Ограничение"); b.Property("FlowRate") @@ -2790,9 +4506,9 @@ namespace AsbCloudDb.Migrations .HasColumnName("flow_rate") .HasComment("Расход л/с. Уставка"); - b.Property("FlowRateLimitMax") + b.Property("FlowRateMax") .HasColumnType("double precision") - .HasColumnName("flow_rate_limit_max") + .HasColumnName("flow_rate_max") .HasComment("Расход л/с. Ограничение"); b.Property("IdAuthor") @@ -2839,32 +4555,32 @@ namespace AsbCloudDb.Migrations b.Property("PressureLimitMax") .HasColumnType("double precision") - .HasColumnName("pressure_limit_max") + .HasColumnName("pressure_max") .HasComment("Максимально допустимое давление, атм"); - b.Property("RevolutionsPerMinute") + b.Property("RopMax") .HasColumnType("double precision") - .HasColumnName("revolution_per_minute") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") .HasComment("Обороты на ВСП, об/мин. Уставка"); - b.Property("RevolutionsPerMinuteLimitMax") + b.Property("RpmMax") .HasColumnType("double precision") - .HasColumnName("revolutions_per_minute_limit_max") + .HasColumnName("rpm_max") .HasComment("Обороты на ВСП, об/мин. Ограничение"); - b.Property("RopLimitMax") - .HasColumnType("double precision") - .HasColumnName("rop_limit_max") - .HasComment("Максимально допустимая скорость, м/ч"); - b.Property("TopDriveTorque") .HasColumnType("double precision") .HasColumnName("top_drive_torque") .HasComment("Момент на ВСП, кН*м. Уставка"); - b.Property("TopDriveTorqueLimit") + b.Property("TopDriveTorqueMax") .HasColumnType("double precision") - .HasColumnName("top_drive_torque_limit_max") + .HasColumnName("top_drive_torque_max") .HasComment("Момент на ВСП, кН*м. Ограничение"); b.Property("WeightOnBit") @@ -2872,9 +4588,9 @@ namespace AsbCloudDb.Migrations .HasColumnName("weight_on_bit") .HasComment("Нагрузка, т. Уставка"); - b.Property("WeightOnBitLimitMax") + b.Property("WeightOnBitMax") .HasColumnType("double precision") - .HasColumnName("weight_on_bit_limit_max") + .HasColumnName("weight_on_bit_max") .HasComment("Нагрузка, т. Ограничение"); b.HasKey("Id"); @@ -2889,13 +4605,13 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_rotor", null, t => + b.ToTable("t_process_map_plan_rotor", t => { t.HasComment("РТК план бурение ротор"); }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -2923,22 +4639,12 @@ namespace AsbCloudDb.Migrations b.Property("DifferentialPressure") .HasColumnType("double precision") .HasColumnName("differential_pressure") - .HasComment("Перепад давления, атм. Уставка"); + .HasComment("Перепад давления уставка, атм."); - b.Property("DifferentialPressureLimitMax") + b.Property("FlowRateDown") .HasColumnType("double precision") - .HasColumnName("differential_pressure_limit_max") - .HasComment("Перепад давления, атм. Ограничение"); - - b.Property("FlowRate") - .HasColumnType("double precision") - .HasColumnName("flow_rate") - .HasComment("Расход л/с. Уставка"); - - b.Property("FlowRateLimitMax") - .HasColumnType("double precision") - .HasColumnName("flow_rate_limit_max") - .HasComment("Расход л/с. Ограничение"); + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); b.Property("IdAuthor") .HasColumnType("integer") @@ -2982,35 +4688,30 @@ namespace AsbCloudDb.Migrations .HasColumnName("obsolete") .HasComment("дата устаревания"); - b.Property("PressureLimitMax") + b.Property("PressureMax") .HasColumnType("double precision") - .HasColumnName("pressure_limit_max") - .HasComment("Максимально допустимое давление, атм"); + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); - b.Property("RopLimitMax") + b.Property("RopDown") .HasColumnType("double precision") - .HasColumnName("rop_limit_max") - .HasComment("Максимально допустимая скорость, м/ч"); + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); - b.Property("Spring") + b.Property("RpmDown") .HasColumnType("double precision") - .HasColumnName("spring") - .HasComment("Расчётная пружина, градус"); + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); - b.Property("ToolBuckling") + b.Property("SlackingOff") .HasColumnType("double precision") - .HasColumnName("tool_buckling") - .HasComment("Складывание инструмента, м"); + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); - b.Property("WeightOnBit") + b.Property("TorqueMax") .HasColumnType("double precision") - .HasColumnName("weight_on_bit") - .HasComment("Нагрузка, т. Уставка"); - - b.Property("WeightOnBitLimitMax") - .HasColumnType("double precision") - .HasColumnName("weight_on_bit_limit_max") - .HasComment("Нагрузка, т. Ограничение"); + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); b.HasKey("Id"); @@ -3024,12 +4725,683 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_process_map_plan_slide", null, t => + b.ToTable("t_process_map_plan_rotor_lowering_bit", t => + { + t.HasComment("РТК подход к забою в роторе"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание, м"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor_rpm_acceleration", t => + { + t.HasComment("Выход на обороты перед ротором"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание инструмента, м."); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления ограничение, атм."); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход уставка, л/с."); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход ограничение, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Расчётная пружина, градус"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка уставка, т."); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка ограничение, т."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide", t => { t.HasComment("РТК план бурение слайд"); }); }); + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide_lowering_bit", t => + { + t.HasComment("РТК подход к забою в слайде"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switching_off_the_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход, л/с"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RampTime") + .HasColumnType("double precision") + .HasColumnName("ramp_time") + .HasComment("Время выхода буровых насосов на плановый расход, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_switching_to_the_mode", t => + { + t.HasComment("Выход на плановый расход"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Interval") + .HasColumnType("double precision") + .HasColumnName("interval") + .HasComment("Интервал расхаживания, м."); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимальное давление, атм."); + + b.Property("RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("repetitions_count") + .HasComment("Количество расхаживаний, шт."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град."); + + b.Property("StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("TFSetpoint") + .HasColumnType("double precision") + .HasColumnName("tf_setpoint") + .HasComment("Задание TF, град."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => { b.Property("IdCompany") @@ -3044,7 +5416,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_relation_company_well", null, t => + b.ToTable("t_relation_company_well", t => { t.HasComment("отношение скважин и компаний"); }); @@ -3064,7 +5436,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_relation_contact_well", (string)null); + b.ToTable("t_relation_contact_well"); }); modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => @@ -3087,7 +5459,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdDrillingProgramPart"); - b.ToTable("t_relation_user_drilling_program_part", null, t => + b.ToTable("t_relation_user_drilling_program_part", t => { t.HasComment("Отношение пользователей и частей ПБ"); }); @@ -3107,7 +5479,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdPermission"); - b.ToTable("t_relation_user_role_permission", null, t => + b.ToTable("t_relation_user_role_permission", t => { t.HasComment("Отношение ролей пользователей и разрешений доступа"); }); @@ -4425,7 +6797,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdInclude"); - b.ToTable("t_relation_user_role_user_role", null, t => + b.ToTable("t_relation_user_role_user_role", t => { t.HasComment("Отношение ролей к ролям"); }); @@ -4717,7 +7089,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUserRole"); - b.ToTable("t_relation_user_user_role", null, t => + b.ToTable("t_relation_user_user_role", t => { t.HasComment("Отношение пользователей и ролей"); }); @@ -4774,7 +7146,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_report_property", null, t => + b.ToTable("t_report_property", t => { t.HasComment("Отчеты с данными по буровым"); }); @@ -4826,7 +7198,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_schedule", null, t => + b.ToTable("t_schedule", t => { t.HasComment("График работы бурильщика"); }); @@ -4882,7 +7254,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_setpoints_rquest", null, t => + b.ToTable("t_setpoints_rquest", t => { t.HasComment("Запросы на изменение уставок панели оператора"); }); @@ -4910,7 +7282,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_subsystem", null, t => + b.ToTable("t_subsystem", t => { t.HasComment("Описание подсистем"); }); @@ -4979,7 +7351,7 @@ namespace AsbCloudDb.Migrations b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); - b.ToTable("t_telemetry", null, t => + b.ToTable("t_telemetry", t => { t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); }); @@ -5198,7 +7570,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_data_saub", null, t => + b.ToTable("t_telemetry_data_saub", t => { t.HasComment("набор основных данных по SAUB"); }); @@ -5298,7 +7670,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_data_spin", null, t => + b.ToTable("t_telemetry_data_spin", t => { t.HasComment("набор основных данных по SpinMaster"); }); @@ -5325,7 +7697,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdEvent"); - b.ToTable("t_telemetry_event", null, t => + b.ToTable("t_telemetry_event", t => { t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); }); @@ -5386,7 +7758,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdTelemetry"); - b.ToTable("t_telemetry_message", null, t => + b.ToTable("t_telemetry_message", t => { t.HasComment("Сообщения на буровых"); }); @@ -5424,7 +7796,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "IdUser"); - b.ToTable("t_telemetry_user", null, t => + b.ToTable("t_telemetry_user", t => { t.HasComment("Пользователи панели САУБ. Для сообщений."); }); @@ -5467,7 +7839,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry"); - b.ToTable("t_telemetry_wireline_run_out", null, t => + b.ToTable("t_telemetry_wireline_run_out", t => { t.HasComment("Наработка талевого каната"); }); @@ -5533,7 +7905,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_trajectory_fact", null, t => + b.ToTable("t_trajectory_fact", t => { t.HasComment("Загрузка фактической траектории"); }); @@ -5604,7 +7976,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell"); - b.ToTable("t_trajectory_plan", null, t => + b.ToTable("t_trajectory_plan", t => { t.HasComment("Загрузка плановой траектории"); }); @@ -5685,7 +8057,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("Login") .IsUnique(); - b.ToTable("t_user", null, t => + b.ToTable("t_user", t => { t.HasComment("Пользователи облака"); }); @@ -5726,7 +8098,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_user_role", null, t => + b.ToTable("t_user_role", t => { t.HasComment("Роли пользователей в системе"); }); @@ -6065,7 +8437,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdUser", "Key"); - b.ToTable("t_user_settings", null, t => + b.ToTable("t_user_settings", t => { t.HasComment("настройки интерфейса пользователя"); }); @@ -6111,7 +8483,7 @@ namespace AsbCloudDb.Migrations b.HasKey("IdTelemetry", "DateTime"); - b.ToTable("t_telemetry_wits_base", (string)null); + b.ToTable("t_telemetry_wits_base"); b.UseTptMappingStrategy(); }); @@ -6171,7 +8543,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellType"); - b.ToTable("t_well", null, t => + b.ToTable("t_well", t => { t.HasComment("скважины"); }); @@ -6200,7 +8572,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSrc"); - b.ToTable("t_well_composite", null, t => + b.ToTable("t_well_composite", t => { t.HasComment("Композитная скважина"); }); @@ -6227,7 +8599,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdUser"); - b.ToTable("t_well_final_documents", null, t => + b.ToTable("t_well_final_documents", t => { t.HasComment("Дело скважины"); }); @@ -6317,7 +8689,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWellSectionType"); - b.ToTable("t_well_operation", null, t => + b.ToTable("t_well_operation", t => { t.HasComment("Данные по операциям на скважине"); }); @@ -6362,7 +8734,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdParent"); - b.ToTable("t_well_operation_category", null, t => + b.ToTable("t_well_operation_category", t => { t.HasComment("Справочник операций на скважине"); }); @@ -7673,7 +10045,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_well_section_type", null, t => + b.ToTable("t_well_section_type", t => { t.HasComment("конструкция секции скважины"); }); @@ -7965,7 +10337,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("IdWell", "IdSectionType") .IsUnique(); - b.ToTable("t_well_section_plan", (string)null); + b.ToTable("t_well_section_plan"); }); modelBuilder.Entity("AsbCloudDb.Model.WellType", b => @@ -7986,7 +10358,7 @@ namespace AsbCloudDb.Migrations b.HasKey("Id"); - b.ToTable("t_well_type", null, t => + b.ToTable("t_well_type", t => { t.HasComment("конструкция скважины"); }); @@ -8165,7 +10537,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_1", (string)null); + b.ToTable("t_telemetry_wits_1"); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => @@ -8253,7 +10625,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_50", (string)null); + b.ToTable("t_telemetry_wits_50"); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => @@ -8305,7 +10677,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_60", (string)null); + b.ToTable("t_telemetry_wits_60"); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => @@ -8361,7 +10733,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_61", (string)null); + b.ToTable("t_telemetry_wits_61"); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => @@ -8449,7 +10821,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_7", (string)null); + b.ToTable("t_telemetry_wits_7"); }); modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => @@ -8653,7 +11025,7 @@ namespace AsbCloudDb.Migrations b.HasIndex("TelemetryId"); - b.ToTable("t_telemetry_wits_8", (string)null); + b.ToTable("t_telemetry_wits_8"); }); modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => @@ -8989,7 +11361,447 @@ namespace AsbCloudDb.Migrations b.Navigation("Well"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanReam", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => { b.HasOne("AsbCloudDb.Model.User", "Author") .WithMany() @@ -9022,7 +11834,7 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => { b.HasOne("AsbCloudDb.Model.User", "Author") .WithMany() @@ -9035,7 +11847,7 @@ namespace AsbCloudDb.Migrations .HasForeignKey("IdEditor") .OnDelete(DeleteBehavior.Restrict); - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanRotor", "Previous") + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", "Previous") .WithMany() .HasForeignKey("IdPrevious"); @@ -9062,7 +11874,7 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", b => + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => { b.HasOne("AsbCloudDb.Model.User", "Author") .WithMany() @@ -9075,7 +11887,369 @@ namespace AsbCloudDb.Migrations .HasForeignKey("IdEditor") .OnDelete(DeleteBehavior.Restrict); - b.HasOne("AsbCloudDb.Model.ProcessMaps.ProcessMapPlanSlide", "Previous") + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_user~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_well~1"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", "Previous") .WithMany() .HasForeignKey("IdPrevious"); diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 61374520..5c72ef65 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -345,6 +345,98 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + + services.AddTransient< + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); + services.AddTransient(); services.AddTransient(); @@ -389,7 +481,31 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); + + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient>(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -500,125 +616,5 @@ namespace AsbCloudInfrastructure return services; } - - public static IServiceCollection AddProcessMaps(this IServiceCollection services, IConfiguration configuration) - { - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); - - return services; - } } } From f3dc6f61f83be9fbe3f65bfe5988f81a70f0cae6 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:53:44 +0500 Subject: [PATCH 68/74] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=A0=D0=A2=D0=9A=20(=D1=8D=D0=BA=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsbCloudInfrastructure.csproj | 38 ++++++++++++++++++ ...ocessMapPlanAntiCrashRotationTemplate.xlsx | Bin 0 -> 10828 bytes .../ProcessMapPlanAutoHoldTFTemplate.xlsx | Bin 0 -> 10485 bytes .../ProcessMapPlanDamperTemplate.xlsx | Bin 0 -> 10424 bytes .../ProcessMapPlanDrillTestTemplate.xlsx | Bin 0 -> 12436 bytes .../ProcessMapPlanLoadCapacityTemplate.xlsx | Bin 0 -> 10632 bytes ...ocessMapPlanOscillationAnglesTemplate.xlsx | Bin 0 -> 10915 bytes .../ProcessMapPlanOscillationTemplate.xlsx | Bin 0 -> 11014 bytes ...apPlanPositioningOffTheBottomTemplate.xlsx | Bin 0 -> 74128 bytes .../ProcessMapPlanReamingRotorTemplate.xlsx | Bin 0 -> 12430 bytes .../ProcessMapPlanReamingSlideTemplate.xlsx | Bin 0 -> 12454 bytes ...lanRecordingStaticMeasurementTemplate.xlsx | Bin 0 -> 16668 bytes ...rocessMapPlanRotorLoweringBitTemplate.xlsx | Bin 0 -> 10680 bytes ...ssMapPlanRotorRpmAccelerationTemplate.xlsx | Bin 0 -> 10760 bytes .../ProcessMapPlanRotorTemplate.xlsx | Bin 8600 -> 11112 bytes .../ProcessMapPlanShockTestTemplate.xlsx | Bin 0 -> 10868 bytes ...rocessMapPlanSlideLoweringBitTemplate.xlsx | Bin 0 -> 10771 bytes .../ProcessMapPlanSlideTemplate.xlsx | Bin 12950 -> 10958 bytes ...apPlanStaticMeasurementOutputTemplate.xlsx | Bin 0 -> 10688 bytes ...essMapPlanSwitchingOffThePumpTemplate.xlsx | Bin 0 -> 17012 bytes ...cessMapPlanSwitchingToTheModeTemplate.xlsx | Bin 0 -> 10773 bytes .../ProcessMapPlanTFOrientationTemplate.xlsx | Bin 0 -> 11231 bytes 22 files changed, 38 insertions(+) create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAntiCrashRotationTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAutoHoldTFTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDamperTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDrillTestTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanLoadCapacityTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanOscillationAnglesTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanOscillationTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanPositioningOffTheBottomTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingRotorTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingSlideTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorLoweringBitTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanShockTestTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanStaticMeasurementOutputTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSwitchingOffThePumpTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSwitchingToTheModeTemplate.xlsx create mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanTFOrientationTemplate.xlsx diff --git a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj index 563b41f5..079abac9 100644 --- a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj +++ b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj @@ -14,9 +14,28 @@ + + + + + + + + + + + + + + + + + + + @@ -40,9 +59,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAntiCrashRotationTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAntiCrashRotationTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..46c7efc95a821a7196a68d1ff21280183a975b11 GIT binary patch literal 10828 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAutoHoldTFTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanAutoHoldTFTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9be509e7aec8c17709e84172749011cca90e0610 GIT binary patch literal 10485 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDamperTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDamperTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3e42d6bfe04e634be207226ea48ca4d2c336631a GIT binary patch literal 10424 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDrillTestTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanDrillTestTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0b974d53b8a8e25d540d6451fa83506737127851 GIT binary patch literal 12436 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 WJUm23erC5JL-j$-j()nI)c*s@!Vz-- literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanOscillationTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanOscillationTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d82c0ba38c71a3b32dd927418677abcbb5b07f7d GIT binary patch literal 11014 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanPositioningOffTheBottomTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanPositioningOffTheBottomTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f4a9007f12abe45f986b149f3538da13c7344c1b GIT binary patch literal 74128 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 N0lfR?>_o%je*gzUje`IH literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingRotorTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingRotorTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fc024d7ebe779a7815a5eae791135022b6ce2347 GIT binary patch literal 12430 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingSlideTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamingSlideTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..58fb5e284afda13b37f2cecae358874951ba4b5f GIT binary patch literal 12454 zcmeHN1y@~3w#N11?(R--2=4CgaB+7hI0Oq8AV_fc;O=gL;2zvvgFMnb{kl8T^9yFq zTKArH>eRQZ>a1;5`%{zwhd>8`0)YVm0U-fF#a>-81qA`Yh6DjY1Azh45wW*(0ou73 zsCqg8o%I+!Y;A~hAi$`zK)_!6|L^)Q{sO&;6L#Iqfd12j8$`7V6})w3Ikb?TXME1Q zYUn{+5wa=r_Xt4^pYaSo6(9x+F6JxY{rKVMXo56w*l$J`ZqZ67*0C1>(A}V zya2mQt`n~xxn??h<$lR9`F1!zLR^GHDNbLt2iwVZyD&Bq=@hHaC=O9tAT1THw(=u_ zMph@XkYyQYQMH(Mq&QB)F8})HK&66wf1?jKK2mq0F2WHHDwLSP(<1}yr+Bh>Y{`~)+QT`WO z;$N0t7B8pJ!wd*Lm3#~vyq#J3fGjNIE+pAPqU!ffY8k06I+q-8rGp9|Srs=3T*AN2 z?{Ro(g)jPGkmTk&TUjJ3IxkthdwFQ`gQF`nEv3^(amTWaUKF>P>zSKW329Gix3*Z? z(#E1}nV~f@@#%BXYUBw<4P02XeEd+%x2XZz{c>8X#&;Ejp>lcv#2LZta zfdTcfVfx)p-0hvLjqUBNf5xysYzFi-kiAOz@4i~&$Ed`djwsLD&8%q3^LWEnO4!F~0efXsE3hPnnHqIofGybezP zRzc&IIK1vn^DQDqlw?&oBNNBOytTZ7X^S9fF_*GoYEMw2st!IIkUvW%xqm>&8P|j^ zr~;{3Ol#*pBdUWv>yzdC3?*du9o$|&z|g(D?HZe2bZomH-sCwB{7?jZLRJhzO`zqY zKBg8Jq-SQfZo)>-0JxSYzazc|d7(@bgv#TaQDfEy>+TOTC}Z#gs{B0pZ*-U_oWIZl zVto%Ds_EFq1a6$vUk>2^NpmvF;SW?^U8@fS2nf=vO1x^$Uv(xgam;R75P9HKvbCq? zpsqTD(ze=IV?Vhlm{|C!@vf$t^PKjFksGJn2yCOn5gG9+F)`vKoJYtQ9!ou*19ccF z;_6E3%(K~!K+DOoE=3~DoO=;^ce-a2bJGl z7N?3AtEyEX2(etSvvuU;rR*maAz2v=)$VagOCkCcucK69mH5nh@A6^(sWMN8}Of^<#EwXHH{nNO0ZL1>~11$|y6qM+dky$O|Jr{`DRjPEk;`NZ!mGT$zZ2_l{LV8Zicr5Y?)(a>!@6AOMmAJ&yvAsXA z$b5mZ4=grw>B}zcJ4tk$N8rh*k8Qitpo78%47N-#%*1Op7v@2x+Ce@WNYUQtS7d?i zLHcq7KMAkN0KXGPks}OE0>a0>s$RmJh73gnz$L&c?NaVz_3>AedzL77Cz#N_H$9wj zUOOeSBRaApM{pflnSBasCug8I7YyZ@@p>vGcdTq}DU2E)wSSUE(@SSbE!GO&pwQ)* z{W9#^&zcr=r6UAQD1PiMyuj6fa$@JUq;>?=+0PP}GR-5zMGM4)a*OFa& z`K1nJ(pQuOHo8;7y!k3SG(Fvo`6tL{i}H?HM5B3+mN7ajr&Re2!B4DkA+ zK+GN0t9Jdn=W@-R(Cm5DJt|@l5QN|L&)LP(2I&0LV;yOA*==$lw_)uGz%=v5AzPU_7t`i>n17nu@#T1hQqDZ*0)+T zqGuqLvj->o)+OI3vK)6tx;#X}rq5!qKc9(eJTq zWb4!SL+<`55ES~$v8KexI3VyVejzpQCj98SRJYiB^5yrbNemF;js=wY-wqbt)}&F4 z%ovRl#pQzYBwKYDc~BIvB;#qaMJwv)rzLa0rr~UY$gvr2mF`gL*nx&JJ z)GLn{O$6^D1*~#znyTr$#NlEMA)%j3P(6Ne!68NYX*icv(x*p|mfmr_IWp||xB5^Ah_h1p4uoaJ{^#U<^hia2h9Z|{+clMM0*!*s z!!{^a7U-5R=O|%HYea-Mm*(dZxBlnR_(a_*44Q4aWvr|4wT)eL1YWl=x;l3=5>05) zbs*(=yv!ZSo+F#t3sMmBXL@+Is%H(`WSS4&n`A|;2wM_&jgj{UX-@Fww*8MPu-3Mz zm&d!-46&hntY#c%g`;x5${6C}xXD@8#caHVzy{Z?D@ZRL@GGSca43oHp zP!s}Dzfv-02-+6WSruhlhdijKw$n5s%urp9wRD_3x4(G2?5-64h;@JYX7g4Ll@``J zOBH(IyoC1IHBzj^ujHA&N(*6-a1(-|xOIW=YV6>F3O@k|H%qhn5VGu4EOuw+`lMb* zp5A_7C&+rw5rhc#h$kcDb9q~OUb?ZZHh&B_I?tNs9k4Usi(%rmvuAB@1%$cHWj-od zANh&sXmDnefV+F;MhRbPpr-3z|+mJ7P+)Rw#O4^JemtvtPt5vhiexSyNwIf;xR@3e-;d$&b z|3`0^t}Fn}0tEuXME`o)@VmGB8Eu^{fIt^#rr&O?KOJA$C%M=~N#xK|x?_LAcIf5j zUYKyRgy{GlX{A~s^H@u$(|I=QwA9g#wF4_+Lk-J?c%&i2&D(OPC55B_?e-UajRdTf z+Wdt|KKARjh*c~zm6Olvt3)0CUYxg-w#lcQp1>Qg?Y8|{?~dpD!tGMa%%zOk6$t#B zyHyq^=gdpC zT6?htT(e$l+zH|up3wIVEf;#SWYjlYgj7L8gDy` z-)`N=tHXQPVmHkdVPO>gVW!8k(-)FWL~BP7eY*7DqU z?G28>jzRzWa79|+(rb|yK3j<8C@&G*VwtE`$KMu?Lx56oO^s4MVcR=cNY-6PNRe~B zFQ)1ux&+nVs8O!KWGpB#D*oQW*9%32C#MF(JrUI~+KYvZa>oKVFq3gei_GFG5v}Gi zS>&E6yRBrBM96l~XKEFTTY8tJ#6+p$n*|!{f`o9W(EE*uT^&?7cj+=J6)vxzR>-3E zB8yS?0XX`NSPUcE0!|~=lwVVif(jMMCZ4ZcO@(@1fak+x*pZU zcO}&BqS&*sDc*M32Ll8sp%XMLDhyyH+RG?LcePWJzdVV&Ou&BTuU7lp6y}lUq z9d#g5TwX)zdTXw`Rt_uTDX8Qp5xn6n*3C>Xm?FNwfCSs)LTrKyY=Z$zXGd8kUXwD* zhOrhXx#{Sjh3+f%vkiNpG)@q*7KjX7jjaqb6AY(_Yn|d_7l`0YQy=PC{@%xqEbs5| z*~m_2gf&S?E4o)ab^+OIXC2QI_=LlWhqx%i#5g}zeX_Zrh(}Ww@fi7Tg?{6$2f7U^ zGA5^$#IpoP%%)YTyP=}@x`pJArU0=Mt>m)=6tpI)rECNGO>p41C;X8+L7aW6O|qT4 zaG+0C)Tlzg#OOK7&(_q>QL!nTWFOB1SXl*dh*$O<^H$sWC^c} zpzV--6(jk&6r4E$RvaQ~vde_?ILD{oUjAI+KQz+{Y>$9A@+>NahF>%h=J?={%S-H1 z_lVx>5-GI<&Z-IhGc&gwwY(wcDFO%DdjJ>r@JJ4Lx z>K-9X@pMVsZl8(Hh;7ARzqvxZdvu#b7!Bd)oq>X4=k+aj@*by6iQ?N*cxY(#1Z$DX zZ{T_Z%f(T+@s+0aWVB0Oc~QYOwjd~C1f%9&l3=|QEjNC%wGX|W2eFj;Bsy5k?i zj2V79+2_}zfC$8&2im`F>Rc>XYkV9CEc`G$!wrLG@BuK63edIYV&uc~E3Nje$!|_SuGpHd)K%quop| zqNpYkn$p{j5_Qk zUKw4qt5i~=n)r6T!7#Vy+=GKwa@;pI0c_dsjdaqL0&YVxz{i=Qj>OowG-HaNqaBt_ z`2CgDSg^aq{4mkx1W^Wl>|hNP^UQ$lnZ~A-ppWxiq5#C}saDV|HU4K0`p6U?{^X(y25;4(iZx-9L``^ z@3fEvGBOOx%n=ENa7OOskO&}*8ujP)Fyj-C4yVr$A!qD)CG6u8b&n5o19g*)!9fsA zMYoq#Vlm_-A=*4Cox0iZYVu6y35Q5{nH})4xcv+Dcm}G>v8Y4!8kJrooAznCpneWqO5ErP8or zXk$evE(4qe&-Hiu{X6*30sMoMr}0JO{D?Zd=+Zb>M@1aMVA{9Tpfv9#MFcB-5n-+0 zB=?%W>s2!G34{>8p`^zIr{7uhRVgWWZ%g}5TL*(np75(Mk$kj;7b|I0f3v)}K-$5< z_g2gNTZ)7Q0_IR|C3iuM{g9nzPCkMR%et4MT9Ixm&g9^kP@D+Mm5iIjdySsA4YQFI zd5CW_-tVxvu*K}0Dp@m-@-B8ZmZL{`-_rSWz-}}n$60Mt5q~<(`1Aqkk^MzlKMIda4Rah7gGhx(Qy^0bZ4jm{6%qWX+_5;n@Y*zjA5O@C8W zaM@u;MwjZyNoTaushDO`oLA1gvE4d#4g-PD8==j_AP62BhqXf?kE8?89|y%hu8L;A zYUV7A$x5hQeZ$9`zQw!1EVT>gDT{L1jFxfJZm_6D#C3I$ZuPs;`PMv!Z}rL1AhgbG zPCa=MPamdCcJyYeJOd>t)nk7v%(X?Y6k61|ve)F@THuX@j;AZacSlf-J)MHQCO!db zq4g_{mHa@YX=nN%55*oL z%T5XwND5Q5Mk<<3iOdm^dm?l6^PIc%vX_w_vE3&(d0Z*U|Lh z(szU-p6*++yKApL0*`IFH6ucJ(={jLftL)3rxgCN=P3|uh^2^8wz7yP z;f-hCB@`#SXZvGZ#bc+DQFbyw>4s1D$t9H7T{|#04ybez43g<{ie!$KiabVcgGM`@ zQw>&JZQeb?m%^#YAWUez*pyxd4$CY5j(CP=>Xeb<5X^@ZhfR9MS$;F zNkDaz{#@<@0lmW{v{&wq494)?mSI&#o;geuoGMWWG==3>*Mab{vRos_m{{qkVcz!K zCn`x!B^j;XD~ZC%hcA984vLG9&=MQiW2h#ARlv_9H2-n@SrERF<`WTr(#PEHAfrzf z%swSu54&i) zivpp;BIjZcT9x@1AKVJ0mx*)f+*vfLOj75)AikUSXxX4x%wR)Vcw^aj=Q5yJvogf@*0eopx~T-xx)pAH z)F~=c!9fg?xnKZnQyh8oOE@X#Fv~rc^+ifi6NRbpVB!ZH68GR`v)DBs*TbS347}B(ry|J zis3I7D{#Jw4-brZY4POj9+VMrsuVb`@{(yE;DvdDT}-_j(+w8wnv&QFxW zUrTn*_kI`i(EBcZUu{*l$W=F?Db&+Epm``doz5AvC?g8a!$h|euc5bF3e;XUg44{? zIs4g7VyBsDJvt0*b)8QEk$r?PQd<^UcDolJvp>uijGqSvVn$=9v+i7LMnm}$N% z!oR_KJ$*T}JYmK&jKVk~v}{O06%-#l;w3r5tg)}~16o%S{ub$`T-S%C;E|g0U1&U8 zR{^<0LR>od!K^tqD}cQZ^Q+JQuLO2~dm(6X5|{~)uJr?b8wBQ60k_x0m}M?GekC4H zo+}}0rfYb!1olM%ZZ8#c@(o?qZpFJyZ>IvJUc7WPlFa0<03h^)oaJ(us(hh!kcF~k zCQA1w)gAvLDU6=5PZquoYQ)9$g|y_ZU&!Ev3*{t^2=lS<#IP`o(=|hiC|9CDMai`Q zSu%GEesSvb@$D#vd+~l1X7X~uUe3G{5Ux9snh=ci5lxbL3AvDZe9hdXdpTIP6Mc9A zR_A?+VQr(;kP%n=qEH82;3bfey4w~)b&eUikP!gq+N{KmArzq@=Ec)y#~7H4kz>C( zxtkWd<~7$ZPZcdor_Dc}D!k`UdB$&l#Ef_aLu$vbdk|2pc=4cnNy6Jd)5(yya9yF z>*>g-yz+qqQdeBCL{#US2x#t|7C0~pkLWSUioB@m2x`vZoS&>3W;2y2%45j=~ z;D8F|#(u-_E(9ntKtJ}fF>{yU`z}BbFW`j5qw}4!@TcGp>yD^z<+}%@9=TwNsZh4a zgZT)0xU@F0V7`ZOSP%HS^?tb%O!H>?4$8&1X!XsV%kRs&aD!n8bRrM&5GK-D7`VW6K5h#?sJoZ*>1m)f#Hr3eAXQa&$P*= z=Y2`$*VuHW-;#DL!{rdz=?BGfjt#rsbn5K~HGHcb?04?>Ez8SOk zCnn^LLAmYioSfw+%(73)vz@ejEaHA9(P(!Xq1&^Fk4tXdHMW&;X6!7PLU}KG3f(!5 zl_7PNY*n_}Rm3aSx%2QZHOxI$9+d%5M=`#$opbrSJRSNBdMapX7?8u;BeF-Sv-!o* za)+2UAqP83IAh!hg*~hq?;kZdh5R z9coUekcm}7^nJ(X*3NU&{vWquuGWbC;jddUuGiuk`tMsYXA2`Ips9+Blck;cZ)J{J zjTLD;A@p{nJH#G+%tJfl10u&Z>MPhqXwC2H;ASRYl#VjQ%OD}M(Y2+YiYG^e(N#=x zVDBKzSButC6|1}{#~6)?$y+Wn?8mv+Qn}yc=a(ORS_B+A=3_GO+|x`b8L3tpe+WG6-=3+$?NzC}X6_zb z(r&|LJJU39+`RU}rXMIZnlGwof}BWmEES?~Qf;b7VQ02CT2#VQ+FlXAbGkFD-@D6i z{GL2Y4}b2Z*ngB2(eq%ocXt*2;8N)BqGErjcW{98?W=_JsbVr?u~VZ6ri>U31-4TYT({wU!`{YTZ$r*i)<;$=YOE?aVFw!nK019SX%rm0k7(a#%_H zS$JCz*{e>n&9DZ|E{~&_s8jO;4Psb#wikJ{Oc^ygbVEvp-TWz?5|i8|A$| zxDipSAH?V5t#4Bh&g7$B3Z>&@Ncef^ zzIY%G{jL3!j08)Z3WvbS#J5osZq<#ifN3VyUPpfp(%j+$?FCn1KkDB@EGEB6v01dB=%vQk)$g9e zP_%?`Iw9@MvQbehV>ZL&W zZj<@Q2r-n|7-kj3cLDV);*dpTB2tMBNR%;kKoB#ogivrt8x;E73ntreW&)NOrJh1d z;}0A02IIrbgB%9}O$Ruj3^ z`Dsrar!DQeS!!hZ*1@}9+i2J^9JhR-SAJ~Z0@g-+J|mcPj)=E?X4-Fd_Ts?J;zQi5 zAi8;!=YorkZ%lLXZlHNa7)&$wdp3H0-Qxdyg*>4-;pyg857%F#2=ZU`(8$5ze`@%u zfB(ADRmSYlSdiPv&JpR>@az{$gyY=lz6E-LpwL*J_VcD`+8iYvSD?z*Vj;f0dfy9r z4waolT3hQ2d5Xud*f21KeXd_ANd1~?UH+5l4q159$cKK+g728$fAz6nBrIX7y|!X@8C-a2ASl!1&< z?MyMezAU6^RDA+q0YMNSci+r$&|(P)-t}g_tJ`t-4Sdup^gQ92bS-~!e}9=n8(8o( zW!1&o;d-gShGk(fDpE+!c)GA!TFuRGZXb2bjb9d+hI20(`Hav(<*GQA=Ia?aH?MKu z^&12w=ES3?`5K1MBP_U42$z$4(tzd z%{{KjZaU7e=mNI)$si9T`t+X-U!+Ui-2{jZ^iJ08cnF~u3`Y^jxfDnCwV>t+5krSc zNO?^v#6K(>5mJ?C@muiQEUz2{%|-dYTEp+Q0t&|Pnpyobm-`Rh_~ZT$ z%x*=QzYF*~-}DdQ&wIw}kbhyH{tEm%2k)=I?$?U%e`e(UD(6>5)}N9dU+L<<@Uwme z|4OI%6YTR!|9S=gNv`=7`fF|aPpB30|Bw4`mFi!m{91bWQ_5G&-=zFni1<~&uV!_TMx11YZw4FCWD literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f032611f3bc213d840763127d58a92270855fb53 GIT binary patch literal 16668 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

$Io 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d4db9ff76ece54b2d288dd7e5fe9f77eca087126 GIT binary patch literal 10760 zcmeHNg?CiR(x14yyAv1UM%;+I3vuEyQHUqRJ%KoJAuhz--HE#!arbXvchBzfcz?n7 z?m07eZg>5v`}S0Imnq6XKw<)*0k8l7fDC|+yS!uq1_0nf0RR{PSa2OtJ6k7HTPFim zcY9Ny9+R7mHE9+kI86os97O-W>;Lfzbj6R_cCaA!9LHTDtCgw{tg^^qeCT{4BASLn4kjQxk(}Y zoG*rqHvi)#vUCL)=EnHtlzju751u(6gSZ^#QEpdZpoHNX1ov{%?JUju40nRC8UhCl z&+etI=@yZ1cB(egOMHP2Sw==v1*@kfs*pEICMXMS(?ytckXCf!vUD2q&yM}B$WZ2a zxW#g91U;yglbK7m3vUvx2XaFsL^+jW^i?}?9c{Mqqry;*ak>p-kfjAvlHk9VeL~X6 zXhRjYC3w;RmMl4O1Lo-agz)YUOyvZ&l{ijxn80Wt>BgUf0r_t|BW*4||< zGmQ=3DX3N!XmbHlzvpKNfa1TDvs#UX;sPXbvLM|<04b+|qp3BJnd!&(|CI9ou_pfG z)r({06gpWD1COO1g8HtfmZDKbWL$-%8p%|>d|of2R7Ye}5-hb+6QZi(`$I^2H+ww{ zEG+Ry?Dvsft+N-0p=0t<)VP)eCfqqV!_d8O{3PK}yw-*0GIcq1l_V+cPUF%XMORc; zkSWu@LLo7EDpr9y%A|o0hmlJdi2W+bSGz|}YuV_g6l_XF<*+2Myp}6tKW;R|d*)N# z9+F@%kL>q}B&kGP~!wSSO-zUZ$m~B!q03PZ_C(*S}WK zxF!v*W^1@c#tN4zFJWTl9G$h2S1@T5BLBjz{3fZ>KVDUbklj=uLnfi8R~U$IOz&Tc z(jcz2eVZ2E%8`+55t^oi>bi~J<%QUPYiF~RWV)Re|TtXrwHe;3l>5_z1melN(W}Tpkcop>@dNoGmsf9 z8hcyOnsjUSBJHCC*%kHYfyz7r?ipbJE&|? z$vue>KbodiI*SKE#npg~%c3IerKBd9g{qGov|)*%1a9%GiNm43Vyasz6Mjke_Um|p zblhj3%HFjJOuR1oF{pfPypMBGKJdwuW#0&D{8+4|<$3XNtn)L8Vk$jk;Yq~bPzG0^ zDBEh`ZaF^jwZOSUIDW3Z^ zCr-1QJLmcy@@9(OHVv8c4rEh)S9$1&FFq7$uXTOzJ zKY3pxbdaRVU;qF}e@H9P$=%u%_+x+jt|@1`!HKzyvr7bdg!MRkHXFDpOeom~P{|Nd z&d|}$vNobo&e#p-7oX7^BHBjQa~bEOw%16Dmf;FifjNJR$t=n z7uA<8sjOPDgb6rVq=YRdBHNnnMY`OkWN`8_uV~F9j~gJUd*ie54O6LmeKs|{G_hRB z&%o(<^TP|P+eOqrhp#Z!MZ1moSZ-Z97^y7_-9Dy*Og;)pd%fOX?H2LP@!fvpDAEAbpG5dLahMAFJOdgt9YWGARnNSSxk5Q5N4 z?T2U)Rf=w3Ijds*KQ(rQk5G9UkO$>;Z4wWMA46Al;(ZgANhpc6=&>qgm@{a6u{@j0qI^J(wwMtXh zxs!)e5Q%N&x_wV^dfa+9Nl)Ofl>Q8ATGf?rR*G$1<_ZYS>)TOKL;u zQxW?iCqH(!2DVIWk-4yFZIQY86#q!|%5jHH#LnI^9!GFgLHgr)P6LJQKD_E~6oMv) zDf-0I4@s>e1=bYTt&)!haK&=cqP|kF#$3D~y@zYmM7ZYZs&43_fR{`WsNX+0#aR<) zc32Z1getb~N{@>dRWz2jzphjNX!CU~>y1@2-dMyet6f4klbgIH8q2ICLC-Ul8uK zc2&o8Wkeu^+0;@s$Nm9+eJeFOX^#Q<*qbdrh(m9;0*d=e)XlPl4+dDPs8f7Pa7s>u z8yJ?c0y&;s92V(dr01=30RQuCX_zP3?mfJn&j#+bkKYUD^6*6O4=-*ciM$qy7(MYL z#vT*y1xW-19~_>qJ9q9|d5_Y{XjI~lch7v%)DK(QQ`h5LfGm8WC7cDGwEZWcUltB~ zVXH?4W8zC4PsYu@jb6ypK%iw_-8KspxIuVg`yE}h1OTBPbm(7GTr6B(48L_Dy1yDr zLq7D1g1n+h9QmH%&5<^|9&^yB(dx=1*s`|YsryX`KJvC+o3veHe$aHR4paxpm&pGrBdZ`Yh_~ z)Zu468WBMa%J%3@0#&g2rva18esWL0HIgQ{cZQgu0RUzOkgNaqQ3rf$YU%`J{&{2l zv5yod%h|0e^(ab!QwGo8BOLelg^#rd4V^}uR$*zS=Ps7W?@-FDGZ9 z;XZ^Wf4tgUbJiEGFJav?z0DS9LGaU$qT=ojXFdJ|_YDmAlgTz*P>o447cRqd3@N^o z??UcRO0<}VD~bl1pQdH!jgjD*pR(xBE6-Myo6>Id1&(;%8`bEKj5Nr>>AWdh$QfVw z=$eo1D&2kc>gJQ6%;SXq!>hfspcSXwFnPOG>Gv4#p-95rEA1ZO^F2~9TiV}ki)#oR zC^Qtd@%pGfIVkyc>m@c*8+GUBFj08*93WfG@7j13Hz?%Y6)igP1ry4~QJ%$-Udc0i zaWNZw)yWRcr)^RsTp0Pb6IXuf@{E%*^L`22evNE_7Pn0sL8YB;?fJFdJRdHT?o(&U zXg5NKMRJ}YX3PC&)^<~Fh{ekLrooxPo+jBx?1SPS@`Wh=jdo8Ne@5 zU^bGL4DiII%DUVWPn|@I`=dKNGBFZ!{7zRA(StY32Ell-XgVK9X&kNUk8YpH0&6JZ zTu9Aq{h{a(9_={?=bcJ;NZBPNV=Q9!{gSvZ{FcQN{u0fJvWK81688OWlR^~s&6uOi zg*yzEOUVc|pRs~k`8@D171F5qCH$Hl_3uB(A}On)h346R49Wix7WmzAL=7@;o2GCV zF?iK-2=u!LQZ?fC7?!57g_TT23A`{1G1y*5P~@ooLm>$S`JzC6fNV8vf#plmjzi$< zzHfm(g-Ab|g92o!%10ZymP~{KbdE#=?|s(2gdnd|9h_@f<6$tje$Z%$Ax`>+Tg2;~ zqrQ}dVa-#T4r^l}8c3ATVg~PYqA|udovG$9N<=o5%`V3Az5h;T%E<|Kzf1wQVTVkTWssHSg1QFMqDL>?`omF{JQsA2Aq=(P+ zUA`d~#7m3Gjys8~z^#9hzUl7^)8(RiFi90Jbw&4LEhL|zg%iXRjd?!}YU~m_>c5(1 z{&ecgy6+Wf>X8wC5qF9P^yp$0P?XrF-k{jN3I5SKq|hTdbc!~3BZQZf9v+prLGc4Z z*DBTnGax01M-pN;pgz5!us;>9X}Ug}Nx7lXAs$^X(!2clN>`Vx*39|OWDmwM;? zh1t3bdaRH=v4I-sdoc0H(S4TsYYqdKQL3OJ3m&$A(BAdmBmy6enf@GhTlYEfuNm^p z2>v7iy@T<{WmNr-QEq>dQ^ft8x$K`a$D0vk#Ur7iIFCDxad`aM$qIU*-!#(+ZVdt) zc;}S@gU{-Tvpn!9l~vNt9X;G4r#5@tIj3r3o|!&|#C~JOlPh0y7Hn%nzs7 z&Q6gXBvziK`819IleW>;0t%q2h?$}!AAFK~%2eIs3!#{7JW=&wR#9YqM2F3Wury%2 z2fsr@k*CvnyzSYs&DRMh7D@|q(owVFQ1blY1}Ddnp@AH-^mi(C!8#CpCoXTOk?=_g9$PRl z#w*$UbQ`Jp^v~C2!wL1ruf^SDHT(AlymKZ5U)?_JB{HZ;TEeC`lS&R9_`D%T%w;iN=PdkO%N4UJw%Wcz7cU2q6#7 zYQ4U&C$`PIT*mI>zw$KrEJqzT)~@qJ{c0rT{QPqEGKzG=d%ja4&-~ne{YEmnJ;?Jp zWv-js{sflwMhitSEzO|V9GO@cZ}3(Qg$UBHPJd<>J2w9N!Q=@t)RY~cq+LwB?%_eU zpKgK?1OUlIY->>^3QJB3vf2HGV+T7yWsb=#aX%R!i#;I@k9WQvZ*RFd4o#q5ozk;Z zEPs~UL~LqB$vcyal&&_@{xdfSiDFpd`YTm6JpO4a2m3Fibv+olcX375DKYS|*sI82 ziuLj*ilpI!Fop}zoO-$Po@#FNd$tK-d0oT5!0iz9- z5)~@*M253sOXxE3=~6QG@Pm}NdclAV!LU8=sZy91YD4Fvt%JoaPdqL{A|LVg9V>Zw zPlLRKV9NgfdXq)&HC5ak5lbMClBJJuu}5wnD_Jp;^Ub%_m0*Uyzoz%*gj;Jsjj`OKCQUxkR2}1s z&2N#^guf1vf&;D^WHEe<-uLSpq9hdWEf9{Or{n*GLvIkY;sUWzK-R~|4Jmw6zKKmr zPZB|hxx~mShmKF%`27=9J{h>sT7){{Q`n#Z@-+RR4$U=Z*l{zx3%wWm+lmvKF}QHx zmp9)Mt$XUr1Bwq?)7n)BkJ=)Xj>R=U#=Og#HL_i$$zmk(U=!Ym_lM-AwO=_9cKf&w zcEA7S{-R)dTr+EKSXNT);u|6MkeQV zyE=I}_56Y~!mAVJOlu|9s}pgpAZ`86$eLG+%nJdK$9aYLUya6}O5LTgWV_Cd*fcrMnJQ+8L@^TxFC}=lxuLV}HmiJ!vFYPoufs!m{O+`gGg7NxGRm z|1yt=6qC-uRXd^LxX7v3v5;S>65NhcWLtGZ$<|X%T4H9JX2%N`QdBTsYfT-tq6t#e znp10Fn|x`fcnmApB-Qdnqp?^ON&B-tc!J7p9kXB#IWt(rfLopcL&3qO#X~t`Kn^`} zYkI#=9#V}bxBqCBDm)eEJVdGi+N*2#?@^wla@3s22AfVNd z3a5Fvex(tth-fiQr9Mini+p`39W0rBTh6(wXr7w;q7S+Itc&i@6!OLMtlUZU)*D0u zf&2wV>z8e591CNwX6*0Z*G%(a>hB^2`M<%{uOA*PTQ4{H_JULs zUj!LCT4K6H9F2rym*I-*W#6-9Z`DKiPxnY#&jZLX9|7V8iwFz3Aqm2-7ab1viqU<< z3DS!6oklnU^&;GJeMhm4zadQX^f+r6pEC74HsTIq?C@r?ofm27h_d%Dd^8P5pBdrP zv8K#@pTg z9ZHGT&x1IW5;C6$6S!sQy(D=j`|;2B3AXUmfhas%GoD+!3Fx(OpJ@+y<2TsT9klt? zMQy2(QN-(K(vy^(5IEStNSor6`y$JE9qq_(?3gs)%lBWbkYKcWCf+Q0-eX!3TYWO) z*=m(H#qO>p;-p!kNV?PECfXPkwfpL~G7Kc{-pz_DXdYqf$hlwPX3D}Px?}3KciJRg z*KDL&OMZ2rP&~W8RJKD%v91?O3G48-8Et^rW^rCR{>hxK7Vj>2L*LTYxz4NaF3+lE zqsKCL8=Z>%C}4OJxs@4Ley^=FcmXyu1qR4r<6R*O%69!`&w-rJ7bye9Wc}d*0L(w5 zTyG5>O-)ps94&0ke+IjX)!S|7g;1L*PEqJd=tGeLP{}t4=`IoGQObh}qRZv9Fmh`l zzgV9sv^1XN|yQ;iX-k;d6 zSE-W@izp0AiA}&(k{an?FRm8_g`o#SkoStu0h7HL2dp--$zx=T-w>DJG;m5f_9)Zl z+>9R9Q$M^>IKb|6ck`ISNrkJ?xh?Zalsi3aY`Jj)k@*Vpql-y}*a6% zJUsh#`A&6p&}mswmN(7-+v~dR>WFzp!6-mY89#7;9rQCal_lu_T$TVi+@=o-EE3<* zONrltOR#*ve66DDT8|dn@lAqLRq`zSr3o2Z$c!e~zAsOEc$ZIcvwwWC=O-P12DWe9 znG7dLz%PV}GE?%v4~N0+C|V~Zh(JvNoICRiaiVAV%XJC5IkIp3pCTHR8M#xacJa=5 z^04v^ZY*&iau z)!8v?33pH)#1c*nwpd@C=w#xjEx6-h-J{rJcPHC4_nclRBgqgFS}w}lAFapN+ig^* z;^ZjCk;?T;7=FDuxStDLKj~Y$e6!khgqqfr=FUEXYm$YG2RROLBJPs5FObSKYawHV zApABo2e)AjQ&c7c7oyvGMF=wgpA}v48uYPZLx0$6j39|wX8!G=y3|0|p$sygQ9(kE21-|%*cmH2+Svn{jqMyw zf0)Ri%?bDEjjxJ8>^68Zgg%Ncnl10J= z_;)RP=x=HtR7X~qVYwJHANmjmz3c>9@u-_=nNuaB>6pbs!AB*LVYMrD!&RJKeQ)gT zQ%Z)F2vrseHOo+B=Hr)oi#4g-k;_0I%?q=o8LRlRM45fOA@rrX6L>1kC~p9kWbUTe zLN?(>=-7K!Xu>-$9N<_0n%oKWt~w*yVRU#+-@Y(5l8+K1ls&5US{uSit%m>R{)(T( z9Pmtclx|^?=|~`Dykxc^pUy7AS?|5`x32PA2oJuxI!kS5U_}xZRJ_f$3TiHlOMEur z>>dLf^LA(Pw8BBXd)56S!|=e%GBd-n&%*jawjiIhC4*pQ)C_ z%y&8k21EqE*Llq#DFg~rM@Fv8J0+~H_!PTu?~s_K|5gwSu-g3|K!SJz+J{m9DTs#l z_WzSZ(31UmrK-qTEwJFWpj?pz97m+q#G_#*jN4w6R|riktKB-2Z%aui%T-Qt;__{> z>{^shJ_)PiV@sqwLEVxZRxjlp;X^M7-#ogxT{J}*R6O=`Q}N)^SMNg~s^g+6iu5WY zHMXCwZcSJDX!fcNsgz_8$hJe@k55t;n>#`Gye@~NjX#8@*r`O$RS$nNWP`8(&lkdJ ze8j>bS{Nq=&;4!P8gXF!kYzEO#UaBexVDnRP?62W@wzpq0y|gWJ!_&F4Y$!~6~jkA zzEswCj336;sUw>bVWseFIPnS({JGgC^2Li$c3tsiT(#Hm(wWdU@bj2+y;YXm~I7%zs@`msVEOJGgiSJ>9`t^ev zFsr)usj*dfmT*ZED?P?;&)WtP+kluy`OzfxFv>#z_2o3NIfQ2)(W1>@C;35Coi8qq zb+g<7IA4eOON-ZzEbErAr$pNh*^7s9cVLo-&FXa+>+_tJ;md+kyIi3E{ttf$44e^U zhy1=;?k@@X>;9YCIYpU&Gx&E!&tJeF_cV|i{-eIuPMmC!G)ldB?$a?Lh@JWuL+31p*x_|`=8_fM>^tHF26>Y{^lZ! z{gcbD@upuH{OZ#F&43X9x6}CP;Qq?xS0nXrF44q)ti!J+>#rRCZ3X;|2LK$%0D%9n n34VqDd++`y{Ep%u@IQBQMHwiNjQl7eLjd%E%nk literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorTemplate.xlsx index 97e15351dfb889bc579619587b630b0d19c06571..f29467dedc67f708fe3080c8f42c45327151a5ac 100644 GIT binary patch literal 11112 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 Lmo(Kz_&WM8$Y>Wq diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanShockTestTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanShockTestTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ef8c4e062d4ead4e17041240fc566c9f11a1e697 GIT binary patch literal 10868 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..123424bb194d68b7e819651c567965eefc378515 GIT binary patch literal 10771 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 literal 0 HcmV?d00001 diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideTemplate.xlsx index f91bf0f7e07fc76592e99457193d94147a2ef542..fd82d00405a7e1b6e8aef965150893cf60e5ab42 100644 GIT binary patch delta 8076 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 delta 9988 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 Dah+xT diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanStaticMeasurementOutputTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanStaticMeasurementOutputTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c3ea29f7f454127a8c21358dd33d574941a85a23 GIT binary patch literal 10688 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%0A%88}H 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 Date: Sun, 30 Jun 2024 22:01:24 +0500 Subject: [PATCH 69/74] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20"?= =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=82=D0=B8=D0=B2=D0=BE=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D0=B9=D0=BD=D0=BE=D0=B5=20=D0=B2=D1=80=D0=B0=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Functions/ProcessMapPlanAntiCrashRotationDto.cs | 6 ++++++ .../ProcessMapPlanAntiCrashRotationTemplate.cs | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs index 1f38e6e3..32c6e9a6 100644 --- a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAntiCrashRotationDto.cs @@ -24,4 +24,10 @@ public class ProcessMapPlanAntiCrashRotationDto : ProcessMapPlanBaseDto ///

[Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")] public double TopDriveTorqueMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs index c1d33c3f..18cf79a0 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,12 @@ public class ProcessMapPlanAntiCrashRotationTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanAntiCrashRotationDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveRpmMin), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveStartMinFlowRate), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveTorqueMax), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.Note), new Cell(7, typeof(string)) }, }; } \ No newline at end of file From dc7cd5dc233e3cb36c7e0076df542d6c6d21e3b7 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 23:43:11 +0500 Subject: [PATCH 70/74] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Operations/RotorRpmAccelerationDto.cs | 27 ------------------- AsbCloudInfrastructure/DependencyInjection.cs | 14 +++++----- ...ProcessMapPlanAntiCrashRotationTemplate.cs | 2 +- .../ProcessMapPlanLoadCapacityTemplate.cs | 12 +++++++-- .../ProcessMapPlanOscillationTemplate.cs | 14 ++++++++-- .../ProcessMapPlanRotorLoweringBitTemplate.cs | 11 ++++++-- ...cessMapPlanRotorRpmAccelerationTemplate.cs | 8 +++++- ...rocessMapPlanSwitchingToTheModeTemplate.cs | 13 +++++++-- ...apPlanRotorRpmAccelerationExportService.cs | 4 +-- ...rocessMapPlanRotorRpmAccelerationParser.cs | 4 +-- ...pPlanRotorRpmAccelerationControllerTest.cs | 8 +++--- ...ssMapPlanRotorRpmAccelerationController.cs | 4 +-- 12 files changed, 67 insertions(+), 54 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs deleted file mode 100644 index 9f59ab06..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps.Operations; - -/// -/// РТК план выход на обороты перед ротором -/// -public class RotorRpmAccelerationDto : ProcessMapPlanBaseDto -{ - /// - /// Зенитный угол, градусы - /// - [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] - public double ZenithAngle { get; set; } - - /// - /// Складывание, м - /// - [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] - public double Buckling { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 5c72ef65..db254a7b 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -240,11 +240,11 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() + TypeAdapterConfig>.NewConfig() + .Include>() + .Map(dest => dest, src => new ChangeLogDto() { - Item = src.Adapt() + Item = src.Adapt() }); TypeAdapterConfig>.NewConfig() @@ -410,8 +410,8 @@ namespace AsbCloudInfrastructure ProcessMapPlanBaseRepository>(); services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); + IChangeLogRepository, + ProcessMapPlanBaseRepository>(); services.AddTransient< IChangeLogRepository, @@ -498,7 +498,7 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); + services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs index 18cf79a0..48cbfc9c 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAntiCrashRotationTemplate.cs @@ -8,7 +8,7 @@ public class ProcessMapPlanAntiCrashRotationTemplate : ITemplateParameters { public string SheetName => "Противоаварийное вращение"; - public int HeaderRowsCount => 2; + public int HeaderRowsCount => 3; public string FileName => "ProcessMapPlanAntiCrashRotationTemplate.xlsx"; diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs index 386aded1..c7a395ef 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanLoadCapacityTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -6,12 +8,18 @@ public class ProcessMapPlanLoadCapacityTemplate : ITemplateParameters { public string SheetName => "Выработка нагрузки"; - public int HeaderRowsCount => 2; + public int HeaderRowsCount => 3; public string FileName => "ProcessMapPlanLoadCapacityTemplate.xlsx"; public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanLoadCapacityDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanLoadCapacityDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanLoadCapacityDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanLoadCapacityDto.TimeLoadCapacityMin), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanLoadCapacityDto.DifferentialPressureMin), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanLoadCapacityDto.WeightOnBitMin), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanLoadCapacityDto.Note), new Cell(7, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs index 6990aa1a..b6d1e595 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -6,12 +7,21 @@ public class ProcessMapPlanOscillationTemplate : ITemplateParameters { public string SheetName => "Осцилляция"; - public int HeaderRowsCount => 2; + public int HeaderRowsCount => 3; public string FileName => "ProcessMapPlanOscillationTemplate.xlsx"; public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanOscillationDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanOscillationDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.OptimalOscillationAngle), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.RpmRight), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.RpmLeft), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.TorqueMaxRight), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.TorqueMaxLeft), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanOscillationDto.Mode), new Cell(10, typeof(int)) }, + { nameof(ProcessMapPlanOscillationDto.Note), new Cell(11, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs index 043e76f8..ae97f183 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -6,12 +7,18 @@ public class ProcessMapPlanRotorLoweringBitTemplate : ITemplateParameters { public string SheetName => "Подход к забою в роторе"; - public int HeaderRowsCount => 2; + public int HeaderRowsCount => 3; public string FileName => "ProcessMapPlanRotorLoweringBitTemplate.xlsx"; public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanRotorLoweringBitDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.PressureMax), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.DifferentialPressure), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.SlackingOff), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanRotorLoweringBitDto.Note), new Cell(7, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs index d36bd7a6..a0647385 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs @@ -1,3 +1,6 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +15,9 @@ public class ProcessMapPlanRotorRpmAccelerationTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanRotorRpmAccelerationDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanRotorRpmAccelerationDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanRotorRpmAccelerationDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanRotorRpmAccelerationDto.Note), new Cell(11, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs index ca53ad59..938f5872 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingToTheModeTemplate.cs @@ -1,3 +1,6 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -6,12 +9,18 @@ public class ProcessMapPlanSwitchingToTheModeTemplate : ITemplateParameters { public string SheetName => "Выход на плановый расход"; - public int HeaderRowsCount => 2; + public int HeaderRowsCount => 3; public string FileName => "ProcessMapPlanSwitchingToTheModeTemplate.xlsx"; public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanSwitchingToTheModeDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanSwitchingToTheModeDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingToTheModeDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingToTheModeDto.RampTime), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingToTheModeDto.FlowRate), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingToTheModeDto.PressureMax), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanAntiCrashRotationDto.Note), new Cell(7, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs index 11927880..9796994d 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs @@ -10,10 +10,10 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -public class ProcessMapPlanRotorRpmAccelerationExportService : ProcessMapPlanExportService +public class ProcessMapPlanRotorRpmAccelerationExportService : ProcessMapPlanExportService { public ProcessMapPlanRotorRpmAccelerationExportService( - IChangeLogRepository processMapPlanRepository, + IChangeLogRepository processMapPlanRepository, IWellService wellService) : base(processMapPlanRepository, wellService) { diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs index 82667797..4141813f 100644 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs +++ b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs @@ -10,7 +10,7 @@ using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemp namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -public class ProcessMapPlanRotorRpmAccelerationParser : ProcessMapPlanParser +public class ProcessMapPlanRotorRpmAccelerationParser : ProcessMapPlanParser { public ProcessMapPlanRotorRpmAccelerationParser(IWellOperationRepository wellOperationRepository) : base(wellOperationRepository) @@ -19,7 +19,7 @@ public class ProcessMapPlanRotorRpmAccelerationParser : ProcessMapPlanParser new ProcessMapPlanRotorRpmAccelerationTemplate(); - protected override RotorRpmAccelerationDto BuildDto(IDictionary row, int rowNumber) + protected override ProcessMapPlanRotorRpmAccelerationDto BuildDto(IDictionary row, int rowNumber) { var dto = base.BuildDto(row, rowNumber); diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs index 20ae09c9..3e268550 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs @@ -16,12 +16,12 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// РТК план встряхивание бурового инструмента ///
public class ProcessMapPlanRotorRpmAccelerationControllerTest : - ProcessMapPlanBaseControllerTest + ProcessMapPlanBaseControllerTest { public ProcessMapPlanRotorRpmAccelerationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsJarrDrillTool") { } - private readonly RotorRpmAccelerationDto dto = new RotorRpmAccelerationDto() + private readonly ProcessMapPlanRotorRpmAccelerationDto dto = new ProcessMapPlanRotorRpmAccelerationDto() { IdWell = 1, DepthStart = 1, @@ -54,12 +54,12 @@ public class ProcessMapPlanRotorRpmAccelerationControllerTest : await Get(entity, dto); } - protected override ProcessMapPlanRotorRpmAcceleration GetByNote(DbSet dbSet, RotorRpmAccelerationDto dto) + protected override ProcessMapPlanRotorRpmAcceleration GetByNote(DbSet dbSet, ProcessMapPlanRotorRpmAccelerationDto dto) { throw new NotImplementedException(); } - protected override RotorRpmAccelerationDto GetByNote(IEnumerable dtos, RotorRpmAccelerationDto dto) + protected override ProcessMapPlanRotorRpmAccelerationDto GetByNote(IEnumerable dtos, ProcessMapPlanRotorRpmAccelerationDto dto) { throw new NotImplementedException(); } diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs index 3d95708f..0f76ef54 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs @@ -12,10 +12,10 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; /// РТК план выход на обороты перед ротором ///
public class ProcessMapPlanRotorRpmAccelerationController : - ProcessMapPlanBaseController + ProcessMapPlanBaseController { public ProcessMapPlanRotorRpmAccelerationController( - IChangeLogRepository repository, + IChangeLogRepository repository, IWellService wellService, ProcessMapPlanRotorRpmAccelerationParser parserService, ITelemetryService telemetryService, From 8458f04bbe9a19f5d7fafd5ea61a7763ba518d25 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 1 Jul 2024 09:39:41 +0500 Subject: [PATCH 71/74] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=80=D0=BE=D1=82=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessMapPlanReamingRotorTemplate.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs index 2681ec8e..fe763beb 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingRotorTemplate.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using AsbCloudApp.Data.ProcessMaps; +using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -13,6 +14,42 @@ public class ProcessMapPlanReamingRotorTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanReamingRotorDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanReamingRotorDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.PressureMax), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.DifferentialPressure), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Tight), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.SlackingOff), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.TorqueMax), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RepetitionsCount), new Cell(9, typeof(int)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RopUp), new Cell(10, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RopDown), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RpmUp), new Cell(12, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RpmDown), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1FlowRateUp), new Cell(14, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1FlowRateDown), new Cell(15, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1Interval), new Cell(16, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1StopPointOffBottom), new Cell(17, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2RepetitionsCount), new Cell(18, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2RopUp), new Cell(19, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2RopDown), new Cell(20, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2RpmUp), new Cell(21, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2RpmDown), new Cell(22, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2FlowRateUp), new Cell(23, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2FlowRateDown), new Cell(24, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2Interval), new Cell(25, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming2StopPointOffBottom), new Cell(26, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3RepetitionsCount), new Cell(27, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3RopUp), new Cell(28, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming1RopDown), new Cell(29, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3RpmUp), new Cell(30, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3RpmDown), new Cell(31, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3FlowRateUp), new Cell(32, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3FlowRateDown), new Cell(33, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3Interval), new Cell(34, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Reaming3StopPointOffBottom), new Cell(35, typeof(double)) }, + { nameof(ProcessMapPlanReamingRotorDto.Note), new Cell(36, typeof(string)) }, }; } \ No newline at end of file From 679575a49d781922aceafc2789f0ee8a7ce7bb77 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 1 Jul 2024 10:18:19 +0500 Subject: [PATCH 72/74] =?UTF-8?q?=D0=9C=D0=B8=D0=B3=D1=80=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rocessMapPlanStaticMeasurementOutputDto.cs | 6 + .../ProcessMapPlanReamingRotorDto.cs | 2 - .../ProcessMapPlanRotorRpmAccelerationDto.cs | 40 + .../ProcessMapPlanSwitchingOffThePumpDto.cs | 6 + .../ProcessMapPlanTFOrientationDto.cs | 6 + ...ocessMapOperationsAndFunctions.Designer.cs | 12977 ++++++++++++++++ ...Tables_ProcessMapOperationsAndFunctions.cs | 142 + .../AsbCloudDbContextModelSnapshot.cs | 54 +- .../ProcessMapPlanAntiCrashRotation.cs | 3 + .../ProcessMapPlanStaticMeasurementOutput.cs | 3 + .../ProcessMapPlanRotorRpmAcceleration.cs | 22 +- .../ProcessMapPlanSwitchingOffThePump.cs | 3 + .../Operations/ProcessMapPlanTFOrientation.cs | 3 + ...pPlanRotorRpmAccelerationControllerTest.cs | 4 - 14 files changed, 13251 insertions(+), 20 deletions(-) create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs create mode 100644 AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.Designer.cs create mode 100644 AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs index f9aade31..9965e632 100644 --- a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs @@ -12,4 +12,10 @@ public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto ///
[Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")] public double SignalWaitingTime { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs index 98b6fcfc..84bbfc36 100644 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs @@ -204,6 +204,4 @@ public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto ///
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] public string Note { get; set; } = string.Empty; - - } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs new file mode 100644 index 00000000..b4a26197 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs @@ -0,0 +1,40 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выход на обороты перед ротором +/// +public class ProcessMapPlanRotorRpmAccelerationDto : ProcessMapPlanBaseDto +{ + /// + /// Момент на ВСП уставка, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП уставка, кН*м., должно быть в пределах от 0 до 35")] + public double TopDriveTorque { get; set; } + + /// + /// Момент на ВСП ограничение, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП ограничение, кН*м., должно быть в пределах от 0 до 35")] + public double TopDriveTorqueMax { get; set; } + + /// + /// Обороты на ВСП уставка, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП уставка, об/мин., должно быть в пределах от 0 до 270")] + public double Rpm { get; set; } + + /// + /// Обороты на ВСП ограничение, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП ограничение, об/мин., должно быть в пределах от 0 до 270")] + public double RpmMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs index 7e0d54fe..befdce47 100644 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs @@ -18,4 +18,10 @@ public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto ///
[Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] public double ResidualPressureLimit { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs index 992594c1..cc3652a3 100644 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs @@ -90,4 +90,10 @@ public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto ///
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] public double StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; } \ No newline at end of file diff --git a/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.Designer.cs b/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.Designer.cs new file mode 100644 index 00000000..60fdca14 --- /dev/null +++ b/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.Designer.cs @@ -0,0 +1,12977 @@ +// +using System; +using System.Text.Json; +using AsbCloudDb.Model; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + [DbContext(typeof(AsbCloudDbContext))] + [Migration("20240701051003_Update_Tables_ProcessMapOperationsAndFunctions")] + partial class Update_Tables_ProcessMapOperationsAndFunctions + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("Russian_Russia.1251") + .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "adminpack"); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdDeposit") + .HasColumnType("integer") + .HasColumnName("id_deposit"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdDeposit"); + + b.ToTable("t_cluster", t => + { + t.HasComment("Кусты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.ToTable("t_company"); + + b.HasData( + new + { + Id = 1, + Caption = "ООО \"АСБ\"", + IdCompanyType = 3 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IsContact") + .HasColumnType("boolean") + .HasColumnName("is_contact"); + + b.Property("Order") + .HasColumnType("integer") + .HasColumnName("order"); + + b.HasKey("Id"); + + b.ToTable("t_company_type"); + + b.HasData( + new + { + Id = 1, + Caption = "Недропользователь", + IsContact = true, + Order = 3 + }, + new + { + Id = 2, + Caption = "Буровой подрядчик", + IsContact = true, + Order = 2 + }, + new + { + Id = 3, + Caption = "Сервис автоматизации бурения", + IsContact = true, + Order = 0 + }, + new + { + Id = 4, + Caption = "Сервис по ГТИ", + IsContact = true, + Order = 6 + }, + new + { + Id = 5, + Caption = "Растворный сервис", + IsContact = true, + Order = 4 + }, + new + { + Id = 6, + Caption = "Сервис по ННБ", + IsContact = true, + Order = 5 + }, + new + { + Id = 7, + Caption = "Служба супервайзинга", + IsContact = false, + Order = 1 + }, + new + { + Id = 9, + Caption = "Сервис по цементированию", + IsContact = true, + Order = 7 + }, + new + { + Id = 11, + Caption = "Дизельный сервис", + IsContact = false, + Order = 9 + }, + new + { + Id = 12, + Caption = "Сервис по обслуживанию верхних силовых приводов", + IsContact = true, + Order = 8 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Company") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("company") + .HasComment("компания"); + + b.Property("Email") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("email"); + + b.Property("FullName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("full_name") + .HasComment("ФИО"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.Property("IdWell") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ключ скважины"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("должность"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.HasIndex("IdWell"); + + b.ToTable("t_contact", t => + { + t.HasComment("Контакты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date") + .HasColumnName("date") + .HasComment("Дата формирования отчёта"); + + b.Property("DateLastUpdate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("SignBlock") + .HasColumnType("jsonb") + .HasColumnName("sign_block") + .HasComment("Подпись"); + + b.Property("SubsystemBlock") + .HasColumnType("jsonb") + .HasColumnName("subsystem_block") + .HasComment("Наработкой подсистем"); + + b.Property("TimeBalanceBlock") + .HasColumnType("jsonb") + .HasColumnName("time_balance_block") + .HasComment("Баланс времени"); + + b.HasKey("Id"); + + b.HasIndex("IdWell", "Date") + .IsUnique(); + + b.ToTable("t_daily_report", t => + { + t.HasComment("Ежедневные отчёты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialLoad") + .HasColumnType("double precision") + .HasColumnName("axial_load") + .HasComment("Фактическая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("double precision") + .HasColumnName("axial_load_limit_max") + .HasComment("Максимально допустимая нагрузка"); + + b.Property("AxialLoadSp") + .HasColumnType("double precision") + .HasColumnName("axial_load_sp") + .HasComment("Ограничение факт. нагрузки"); + + b.Property("BlockSpeedSp") + .HasColumnType("double precision") + .HasColumnName("block_speed_sp") + .HasComment("Ограничение скорости блока"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата и время окончания"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата и время начала"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина забоя по стволу конечная"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина забоя по стволу начальная"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("Флаги подсистем"); + + b.Property("Flow") + .HasColumnType("double precision") + .HasColumnName("flow") + .HasComment("Фактический расход"); + + b.Property("HasOscillation") + .HasColumnType("boolean") + .HasColumnName("has_oscillation") + .HasComment("Наличие или отсутствие осцилляции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Название автоопределённой операции"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Работа при достижении ограничения"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Ключ телеметрии"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureIdle") + .HasColumnType("double precision") + .HasColumnName("pressure_idle") + .HasComment("Давление холостого хода"); + + b.Property("PressureSp") + .HasColumnType("double precision") + .HasColumnName("pressure_sp") + .HasComment("Ограничение фактического давления"); + + b.Property("RotorSpeed") + .HasColumnType("double precision") + .HasColumnName("rotor_speed") + .HasComment("Фактическая скорость оборотов ВСП"); + + b.Property("RotorTorque") + .HasColumnType("double precision") + .HasColumnName("rotor_torque") + .HasComment("Фактический момент"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Максимально допустимый момент"); + + b.Property("RotorTorqueSp") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_sp") + .HasComment("Ограничение факт. момента"); + + b.Property("Speed") + .HasColumnType("double precision") + .HasColumnName("speed") + .HasComment("Скорость бурения"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_data_saub_stat", t => + { + t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.ToTable("t_deposit", t => + { + t.HasComment("Месторождение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата начала операции"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("флаги включенных подсистем"); + + b.Property("ExtraData") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("extra_data") + .HasComment("доп. инфо по операции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUsersAtStart") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя по телеметрии на момент начала операции"); + + b.Property("Value") + .HasColumnType("double precision") + .HasColumnName("value") + .HasComment("Ключевой показатель операции"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_detected_operation", t => + { + t.HasComment("автоматически определенные операции по телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depthStart") + .HasComment("Глубина начала"); + + b.Property("Params") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("t_drill_test_params") + .HasComment("Параметры записи drill test"); + + b.Property("TimeStampStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp_start") + .HasComment("Время начала"); + + b.HasKey("Id", "IdTelemetry"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_drill_test", t => + { + t.HasComment("Drill_test"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Имя"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("Отчество"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("Фамилия"); + + b.HasKey("Id"); + + b.ToTable("t_driller", t => + { + t.HasComment("Бурильщик"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdFileCategory") + .HasColumnType("integer") + .HasColumnName("id_file_category"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("Id"); + + b.HasIndex("IdFileCategory"); + + b.HasIndex("IdWell", "IdFileCategory") + .IsUnique(); + + b.ToTable("t_drilling_program_part", t => + { + t.HasComment("части программ бурения"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Answer") + .HasColumnType("text") + .HasColumnName("answer") + .HasComment("Текст ответа"); + + b.Property("CounterQuestion") + .HasColumnType("integer") + .HasColumnName("counter_question") + .HasComment("Счетчик повторений вопроса"); + + b.Property("DateAnswer") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_answer") + .HasComment("Дата ответа"); + + b.Property("DateCreatedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created_question") + .HasComment("Дата создания вопроса"); + + b.Property("DateLastEditedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_edited_question") + .HasComment("Дата последнего редактирования вопроса"); + + b.Property("IdAuthorAnswer") + .HasColumnType("integer") + .HasColumnName("id_author_answer") + .HasComment("id автора ответа"); + + b.Property("IdAuthorQuestion") + .HasColumnType("integer") + .HasColumnName("id_author_question") + .HasComment("id автора вопроса"); + + b.Property("IdReplacementQuestion") + .HasColumnType("integer") + .HasColumnName("id_replacement_question") + .HasComment("Ключ заменяющего вопроса"); + + b.Property("IsFrequently") + .HasColumnType("boolean") + .HasColumnName("is_frequently") + .HasComment("Частый вопрос"); + + b.Property("Question") + .IsRequired() + .HasColumnType("text") + .HasColumnName("question") + .HasComment("Текст вопроса"); + + b.Property("State") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("Статус вопроса"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthorAnswer"); + + b.HasIndex("IdAuthorQuestion"); + + b.ToTable("t_faq", t => + { + t.HasComment("вопросы пользователей"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_file_category", t => + { + t.HasComment("Категории файлов"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Растворный сервис", + ShortName = "fluidService" + }, + new + { + Id = 2, + Name = "Цементирование", + ShortName = "cement" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "nnb" + }, + new + { + Id = 4, + Name = "ГТИ", + ShortName = "gti" + }, + new + { + Id = 5, + Name = "Документы по скважине", + ShortName = "wellDocuments" + }, + new + { + Id = 6, + Name = "Супервайзер", + ShortName = "supervisor" + }, + new + { + Id = 7, + Name = "Мастер", + ShortName = "master" + }, + new + { + Id = 8, + Name = "Долотный сервис", + ShortName = "toolService" + }, + new + { + Id = 9, + Name = "Буровой подрядчик", + ShortName = "drillService" + }, + new + { + Id = 10, + Name = "Сервис по заканчиванию скважины", + ShortName = "closingService" + }, + new + { + Id = 12, + Name = "Рапорт", + ShortName = "report" + }, + new + { + Id = 1000, + Name = "Программа бурения" + }, + new + { + Id = 1001, + Name = "Задание от геологов" + }, + new + { + Id = 1002, + Name = "Профиль ствола скважины (ННБ)" + }, + new + { + Id = 1003, + Name = "Технологические расчеты (ННБ)" + }, + new + { + Id = 1004, + Name = "Долотная программа" + }, + new + { + Id = 1005, + Name = "Программа по растворам" + }, + new + { + Id = 1006, + Name = "Программа геофизических исследований" + }, + new + { + Id = 1007, + Name = "Планы спусков обсадных колонн" + }, + new + { + Id = 1008, + Name = "Программы цементирования обсадных колонн" + }, + new + { + Id = 10000, + Name = "Проект на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10001, + Name = "Программа на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10002, + Name = "Акт о начале бурения" + }, + new + { + Id = 10003, + Name = "План работ спуска и цементирования направления" + }, + new + { + Id = 10004, + Name = "Программа цементирования направления" + }, + new + { + Id = 10005, + Name = "Мера обсадных труб (направление)" + }, + new + { + Id = 10006, + Name = "Акт на выполненные работы по цементированию направления" + }, + new + { + Id = 10007, + Name = "Отчет по цементированию направления (график)" + }, + new + { + Id = 10008, + Name = "План работ спуска и цементирования кондуктора" + }, + new + { + Id = 10009, + Name = "Программа цементирования (кондуктор)" + }, + new + { + Id = 10010, + Name = "Мера обсадных труб (кондуктор)" + }, + new + { + Id = 10011, + Name = "Карта крепления кондуктора" + }, + new + { + Id = 10012, + Name = "Акт на выполненные работы по цементированию кондуктора" + }, + new + { + Id = 10013, + Name = "Отчет по цементированию кондуктора (график)" + }, + new + { + Id = 10014, + Name = "Акт о замере расстояния от стола ротора до муфты кондуктора" + }, + new + { + Id = 10015, + Name = "Акт опресовки цементного кольца за кондуктором" + }, + new + { + Id = 10016, + Name = "Акт опресовки ППГ с глухими плашками совместно с кондуктором" + }, + new + { + Id = 10017, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с кондуктором" + }, + new + { + Id = 10018, + Name = "План работ на крепление обсадной колонны (эк. колонна)" + }, + new + { + Id = 10019, + Name = "Программа цементирования (эк. колонна)" + }, + new + { + Id = 10020, + Name = "Мера труб эксплуатационной колонны" + }, + new + { + Id = 10021, + Name = "Карта по креплению скважины (эк. колонна)" + }, + new + { + Id = 10022, + Name = "Акт на установку пружинных центраторов" + }, + new + { + Id = 10023, + Name = "Отчет по цементированию эксплуатационной колонны (график)" + }, + new + { + Id = 10024, + Name = "Акт на выполненные работы по цементированию эксплуатационной колонны" + }, + new + { + Id = 10025, + Name = "Акт об испытании эк. колонны на герметичность (СТОП)" + }, + new + { + Id = 10026, + Name = "Акт опресовки ППГ с глухими плашками совместно с э/колонной" + }, + new + { + Id = 10027, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с э/колонной" + }, + new + { + Id = 10028, + Name = "Акт на вскрытие продуктивного пласта" + }, + new + { + Id = 10029, + Name = "Акт замера параметров раствора при бурении горизонтального участка" + }, + new + { + Id = 10030, + Name = "Разрешение на спуск «хвостовика» (телефонограмма)" + }, + new + { + Id = 10031, + Name = "План работ на спуск «хвостовика»" + }, + new + { + Id = 10032, + Name = "Акт готовности бурового и энергетического оборудования к спуску «хвостовика»" + }, + new + { + Id = 10033, + Name = "Акт шаблонировки ствола скважины перед спуском «хвостовика»" + }, + new + { + Id = 10034, + Name = "Мера обсадных труб (хвостовик)" + }, + new + { + Id = 10035, + Name = "Акт выполненных работ по спуску хвостовика с закачкой (нефти, солевого раствора" + }, + new + { + Id = 10036, + Name = "Акт о переводе скважины на тех. воду" + }, + new + { + Id = 10037, + Name = "Акт об окончании бурения" + }, + new + { + Id = 10038, + Name = "Акт на передачу скважины в освоение (КРС)" + }, + new + { + Id = 10039, + Name = "Акт на опресовку межколонного пространства с КРС" + }, + new + { + Id = 10040, + Name = "Акт на сдачу скважины в ЦДНГ" + }, + new + { + Id = 10041, + Name = "Паспорт ОУС (заполняется геологами)" + }, + new + { + Id = 10042, + Name = "Паспорт скважины (заполняется геологами)" + }, + new + { + Id = 10043, + Name = "Фактические данные бурения (вставляются в паспорт скважины)" + }, + new + { + Id = 20000, + Name = "Справки по страницам" + }, + new + { + Id = 30000, + Name = "Инструкции" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории файла"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Удален ли файл"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_file_info", t => + { + t.HasComment("Файлы всех категорий"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created") + .HasComment("Дата совершенного действия"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла"); + + b.Property("IdMarkType") + .HasColumnType("integer") + .HasColumnName("id_mark_type") + .HasComment("0 - отклонен, 1 - согласован"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("id пользователя"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Помечен ли файл как удаленный"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdUser"); + + b.ToTable("t_file_mark", t => + { + t.HasComment("Действия с файлами."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("real") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_float", t => + { + t.HasComment("таблица данных ГТИ с типом значения float"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("integer") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_int", t => + { + t.HasComment("таблица данных ГТИ с типом значения int"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .IsRequired() + .HasColumnType("text") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_string", t => + { + t.HasComment("таблица данных ГТИ с типом значения string"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UrlPage") + .IsRequired() + .HasColumnType("text") + .HasColumnName("url_page") + .HasComment("Url страницы"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.ToTable("t_help_page", t => + { + t.HasComment("Справки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start"); + + b.Property("DepthEnd") + .HasColumnType("real") + .HasColumnName("depth_end"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depth_start"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_limiting_parameter", t => + { + t.HasComment("Ограничения по параметрам телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateDownload") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_download") + .HasComment("Дата загрузки"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id автора"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("IdDirectory") + .HasColumnType("integer") + .HasColumnName("id_directory") + .HasComment("Id директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdDirectory"); + + b.ToTable("t_manual", t => + { + t.HasComment("Инструкции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("Id родительской директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_manual_directory", t => + { + t.HasComment("Директория для инструкций"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("data") + .HasComment("Данные таблицы последних данных"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Пометка удаленным"); + + b.Property("Timestamp") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp") + .HasComment("время добавления"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_measure", t => + { + t.HasComment("Таблица c данными для вкладки 'Последние данные'"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_measure_category", t => + { + t.HasComment("Категория последних данных"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Показатели бурового раствора", + ShortName = "Раствор" + }, + new + { + Id = 2, + Name = "Шламограмма", + ShortName = "Шламограмма" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "ННБ" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdNotificationCategory") + .HasColumnType("integer") + .HasColumnName("id_notification_category") + .HasComment("Id категории уведомления"); + + b.Property("IdTransportType") + .HasColumnType("integer") + .HasColumnName("id_transport_type") + .HasComment("Id типа доставки уведомления"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id получателя"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message") + .HasComment("Сообщение уведомления"); + + b.Property("ReadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("read_date") + .HasComment("Дата прочтения уведомления"); + + b.Property("RegistrationDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("registration_date") + .HasComment("Дата регистрации уведомления"); + + b.Property("SentDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("sent_date") + .HasComment("Дата отправки уведомления"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title") + .HasComment("Заголовок уведомления"); + + b.HasKey("Id"); + + b.HasIndex("IdNotificationCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_notification", t => + { + t.HasComment("Уведомления"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_notification_category", t => + { + t.HasComment("Категории уведомлений"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Системные уведомления" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Старотовая глубина"); + + b.Property("IdOperationCategory") + .HasColumnType("integer") + .HasColumnName("id_operation_category") + .HasComment("Ид категории операции"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Ид скважины"); + + b.Property("StandardValue") + .HasColumnType("double precision") + .HasColumnName("standard_value") + .HasComment("Нормативный показатель"); + + b.Property("TargetValue") + .HasColumnType("double precision") + .HasColumnName("target_value") + .HasComment("Целевой показатель"); + + b.HasKey("Id"); + + b.HasIndex("IdOperationCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_operationvalue", t => + { + t.HasComment("Целевые/нормативные показатели операции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description") + .HasComment("Краткое описание"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_permission", t => + { + t.HasComment("Разрешения на доступ к данным"); + }); + + b.HasData( + new + { + Id = 100, + Description = "Разрешение удалять админ. Кусты", + Name = "AdminCluster.delete" + }, + new + { + Id = 101, + Description = "Разрешение редактировать админ. Кусты", + Name = "AdminCluster.edit" + }, + new + { + Id = 102, + Description = "Разрешение просматривать админ. Кусты", + Name = "AdminCluster.get" + }, + new + { + Id = 103, + Description = "Разрешение удалять админ. Компании", + Name = "AdminCompany.delete" + }, + new + { + Id = 104, + Description = "Разрешение редактировать админ. Компании", + Name = "AdminCompany.edit" + }, + new + { + Id = 105, + Description = "Разрешение просматривать админ. Компании", + Name = "AdminCompany.get" + }, + new + { + Id = 106, + Description = "Разрешение удалять админ. Типы компаний", + Name = "AdminCompanyType.delete" + }, + new + { + Id = 107, + Description = "Разрешение редактировать админ. Типы компаний", + Name = "AdminCompanyType.edit" + }, + new + { + Id = 108, + Description = "Разрешение просматривать админ. Типы компаний", + Name = "AdminCompanyType.get" + }, + new + { + Id = 109, + Description = "Разрешение удалять админ. Месторождения", + Name = "AdminDeposit.delete" + }, + new + { + Id = 110, + Description = "Разрешение редактировать админ. Месторождения", + Name = "AdminDeposit.edit" + }, + new + { + Id = 111, + Description = "Разрешение просматривать админ. Месторождения", + Name = "AdminDeposit.get" + }, + new + { + Id = 112, + Description = "Разрешение удалять админ. Разрешения", + Name = "AdminPermission.delete" + }, + new + { + Id = 113, + Description = "Разрешение редактировать админ. Разрешения", + Name = "AdminPermission.edit" + }, + new + { + Id = 114, + Description = "Разрешение просматривать админ. Разрешения", + Name = "AdminPermission.get" + }, + new + { + Id = 115, + Description = "Разрешение удалять админ. Телеметрию", + Name = "AdminTelemetry.delete" + }, + new + { + Id = 116, + Description = "Разрешение редактировать админ. Телеметрию", + Name = "AdminTelemetry.edit" + }, + new + { + Id = 117, + Description = "Разрешение просматривать админ. Телеметрию", + Name = "AdminTelemetry.get" + }, + new + { + Id = 118, + Description = "Разрешение удалять админ. Пользователей", + Name = "AdminUser.delete" + }, + new + { + Id = 119, + Description = "Разрешение редактировать админ. Пользователей", + Name = "AdminUser.edit" + }, + new + { + Id = 120, + Description = "Разрешение просматривать админ. Пользователей", + Name = "AdminUser.get" + }, + new + { + Id = 121, + Description = "Разрешение удалять админ. Роли пользователей", + Name = "AdminUserRole.delete" + }, + new + { + Id = 122, + Description = "Разрешение редактировать админ. Роли пользователей", + Name = "AdminUserRole.edit" + }, + new + { + Id = 123, + Description = "Разрешение просматривать админ. Роли пользователей", + Name = "AdminUserRole.get" + }, + new + { + Id = 124, + Description = "Разрешение удалять админ. Скважины", + Name = "AdminWell.delete" + }, + new + { + Id = 125, + Description = "Разрешение редактировать админ. Скважины", + Name = "AdminWell.edit" + }, + new + { + Id = 126, + Description = "Разрешение просматривать админ. Скважины", + Name = "AdminWell.get" + }, + new + { + Id = 127, + Description = "Разрешение удалять админ. Подсистемы", + Name = "AdminSubsytem.delete" + }, + new + { + Id = 128, + Description = "Разрешение редактировать админ. Подсистемы", + Name = "AdminSubsytem.edit" + }, + new + { + Id = 129, + Description = "Разрешение просматривать админ. Подсистемы", + Name = "AdminSubsytem.get" + }, + new + { + Id = 200, + Description = "Разрешение редактировать 0", + Name = "Auth.edit" + }, + new + { + Id = 201, + Description = "Разрешение просматривать 0", + Name = "Auth.get" + }, + new + { + Id = 202, + Description = "Разрешение просматривать Кусты", + Name = "Cluster.get" + }, + new + { + Id = 203, + Description = "Разрешение просматривать Месторождения", + Name = "Deposit.get" + }, + new + { + Id = 204, + Description = "Разрешение удалять РТК", + Name = "DrillFlowChart.delete" + }, + new + { + Id = 205, + Description = "Разрешение редактировать РТК", + Name = "DrillFlowChart.edit" + }, + new + { + Id = 206, + Description = "Разрешение просматривать РТК", + Name = "DrillFlowChart.get" + }, + new + { + Id = 207, + Description = "Разрешение удалять Программу бурения", + Name = "DrillingProgram.delete" + }, + new + { + Id = 208, + Description = "Разрешение редактировать Программу бурения", + Name = "DrillingProgram.edit" + }, + new + { + Id = 209, + Description = "Разрешение просматривать Программу бурения", + Name = "DrillingProgram.get" + }, + new + { + Id = 210, + Description = "Разрешение удалять Режимы бурения", + Name = "DrillParams.delete" + }, + new + { + Id = 211, + Description = "Разрешение редактировать Режимы бурения", + Name = "DrillParams.edit" + }, + new + { + Id = 212, + Description = "Разрешение просматривать Режимы бурения", + Name = "DrillParams.get" + }, + new + { + Id = 213, + Description = "Разрешение удалять Файлы", + Name = "File.delete" + }, + new + { + Id = 214, + Description = "Разрешение редактировать Файлы", + Name = "File.edit" + }, + new + { + Id = 215, + Description = "Разрешение просматривать Файлы", + Name = "File.get" + }, + new + { + Id = 216, + Description = "Разрешение удалять Измерения", + Name = "Measure.delete" + }, + new + { + Id = 217, + Description = "Разрешение редактировать Измерения", + Name = "Measure.edit" + }, + new + { + Id = 218, + Description = "Разрешение просматривать Измерения", + Name = "Measure.get" + }, + new + { + Id = 219, + Description = "Разрешение просматривать Сообщения телеметрии", + Name = "Message.get" + }, + new + { + Id = 220, + Description = "Разрешение просматривать Статистику по операциям", + Name = "OperationStat.get" + }, + new + { + Id = 221, + Description = "Разрешение редактировать Рапорта", + Name = "Report.edit" + }, + new + { + Id = 222, + Description = "Разрешение просматривать Рапорта", + Name = "Report.get" + }, + new + { + Id = 223, + Description = "Разрешение просматривать админ. Системная статистика", + Name = "RequestTracker.get" + }, + new + { + Id = 224, + Description = "Разрешение удалять Рекомендации уставок", + Name = "Setpoints.delete" + }, + new + { + Id = 225, + Description = "Разрешение редактировать Рекомендации уставок", + Name = "Setpoints.edit" + }, + new + { + Id = 226, + Description = "Разрешение просматривать Рекомендации уставок", + Name = "Setpoints.get" + }, + new + { + Id = 227, + Description = "Разрешение редактировать Телеметрии", + Name = "Telemetry.edit" + }, + new + { + Id = 228, + Description = "Разрешение просматривать Анализ телеметрии", + Name = "TelemetryAnalytics.get" + }, + new + { + Id = 229, + Description = "Разрешение редактировать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.edit" + }, + new + { + Id = 230, + Description = "Разрешение просматривать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.get" + }, + new + { + Id = 231, + Description = "Разрешение редактировать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.edit" + }, + new + { + Id = 232, + Description = "Разрешение просматривать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.get" + }, + new + { + Id = 233, + Description = "Разрешение редактировать Скважины", + Name = "Well.edit" + }, + new + { + Id = 234, + Description = "Разрешение просматривать Скважины", + Name = "Well.get" + }, + new + { + Id = 235, + Description = "Разрешение редактировать Композитные скважины", + Name = "WellComposite.edit" + }, + new + { + Id = 236, + Description = "Разрешение просматривать Композитные скважины", + Name = "WellComposite.get" + }, + new + { + Id = 237, + Description = "Разрешение удалять Операции по скважинам", + Name = "WellOperation.delete" + }, + new + { + Id = 238, + Description = "Разрешение редактировать Операции по скважинам", + Name = "WellOperation.edit" + }, + new + { + Id = 239, + Description = "Разрешение просматривать Операции по скважинам", + Name = "WellOperation.get" + }, + new + { + Id = 240, + Description = "Разрешение редактировать Файлы категории 1 (Растворный сервис)", + Name = "File.edit1" + }, + new + { + Id = 241, + Description = "Разрешение редактировать Файлы категории 2 (Цементирование)", + Name = "File.edit2" + }, + new + { + Id = 242, + Description = "Разрешение редактировать Файлы категории 3 (ННБ)", + Name = "File.edit3" + }, + new + { + Id = 243, + Description = "Разрешение редактировать Файлы категории 4 (ГТИ)", + Name = "File.edit4" + }, + new + { + Id = 244, + Description = "Разрешение редактировать Файлы категории 5 (Документы по скважине)", + Name = "File.edit5" + }, + new + { + Id = 245, + Description = "Разрешение редактировать Файлы категории 6 (Супервайзер)", + Name = "File.edit6" + }, + new + { + Id = 246, + Description = "Разрешение редактировать Файлы категории 7 (Мастер)", + Name = "File.edit7" + }, + new + { + Id = 247, + Description = "Разрешение редактировать Файлы категории 8 (Долотный сервис)", + Name = "File.edit8" + }, + new + { + Id = 248, + Description = "Разрешение редактировать Файлы категории 9 (Буровой подрядчик)", + Name = "File.edit9" + }, + new + { + Id = 249, + Description = "Разрешение редактировать Файлы категории 10 (Сервис по заканчиванию скважины)", + Name = "File.edit10" + }, + new + { + Id = 250, + Description = "Разрешение редактировать Файлы категории 11 (Рапорт)", + Name = "File.edit11" + }, + new + { + Id = 251, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit12" + }, + new + { + Id = 252, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit13" + }, + new + { + Id = 253, + Description = "Разрешение редактировать Файлы категории 13", + Name = "File.edit14" + }, + new + { + Id = 254, + Description = "Разрешение редактировать Файлы категории 14", + Name = "File.edit15" + }, + new + { + Id = 255, + Description = "Разрешение редактировать Файлы категории 15", + Name = "File.edit16" + }, + new + { + Id = 256, + Description = "Разрешение редактировать Файлы категории 16", + Name = "File.edit17" + }, + new + { + Id = 257, + Description = "Разрешение редактировать Файлы категории 17", + Name = "File.edit18" + }, + new + { + Id = 258, + Description = "Разрешение редактировать Файлы категории 18", + Name = "File.edit19" + }, + new + { + Id = 259, + Description = "Разрешение редактировать Файлы категории 19", + Name = "File.edit20" + }, + new + { + Id = 260, + Description = "Разрешение редактировать Файлы категории 20", + Name = "File.edit21" + }, + new + { + Id = 261, + Description = "Разрешение редактировать Файлы категории 21", + Name = "File.edit22" + }, + new + { + Id = 262, + Description = "Разрешение редактировать Файлы категории 22", + Name = "File.edit23" + }, + new + { + Id = 263, + Description = "Разрешение редактировать Файлы категории 23", + Name = "File.edit24" + }, + new + { + Id = 264, + Description = "Разрешение редактировать Файлы категории 24", + Name = "File.edit25" + }, + new + { + Id = 265, + Description = "Разрешение редактировать Файлы категории 25", + Name = "File.edit26" + }, + new + { + Id = 266, + Description = "Разрешение редактировать Файлы категории 26", + Name = "File.edit27" + }, + new + { + Id = 267, + Description = "Разрешение редактировать Файлы категории 27", + Name = "File.edit28" + }, + new + { + Id = 268, + Description = "Разрешение редактировать Файлы категории 28", + Name = "File.edit29" + }, + new + { + Id = 269, + Description = "Разрешение редактировать Файлы категории 29", + Name = "File.edit30" + }, + new + { + Id = 380, + Description = "Разрешение просматривать список бурильщиков", + Name = "Driller.get" + }, + new + { + Id = 381, + Description = "Разрешение редактировать бурильщика", + Name = "Driller.edit" + }, + new + { + Id = 382, + Description = "Разрешение удалять бурильщик", + Name = "Driller.delete" + }, + new + { + Id = 383, + Description = "Разрешение просматривать графики бурильщиков", + Name = "Schedule.get" + }, + new + { + Id = 384, + Description = "Разрешение редактировать график бурильщика", + Name = "Schedule.edit" + }, + new + { + Id = 385, + Description = "Разрешение удалять график бурильщика", + Name = "Schedule.delete" + }, + new + { + Id = 386, + Description = "Разрешение просматривать суточный рапорт", + Name = "DailyReport.get" + }, + new + { + Id = 387, + Description = "Разрешение редактировать суточный рапорт", + Name = "DailyReport.edit" + }, + new + { + Id = 388, + Description = "Разрешение просматривать авто. определенные операции", + Name = "DetectedOperation.get" + }, + new + { + Id = 389, + Description = "Разрешение просматривать целевые значения", + Name = "OperationValue.get" + }, + new + { + Id = 390, + Description = "Разрешение редактировать целевые значения", + Name = "OperationValue.edit" + }, + new + { + Id = 391, + Description = "Разрешение удалять целевые значения", + Name = "OperationValue.delete" + }, + new + { + Id = 400, + Description = "Разрешение просматривать инфо по wits параметрам", + Name = "WitsInfo.get" + }, + new + { + Id = 401, + Description = "Разрешение просматривать WITS record 1", + Name = "WitsRecord1.get" + }, + new + { + Id = 407, + Description = "Разрешение просматривать WITS record 7", + Name = "WitsRecord7.get" + }, + new + { + Id = 408, + Description = "Разрешение просматривать WITS record 8", + Name = "WitsRecord8.get" + }, + new + { + Id = 450, + Description = "Разрешение просматривать WITS record 50", + Name = "WitsRecord50.get" + }, + new + { + Id = 460, + Description = "Разрешение просматривать WITS record 60", + Name = "WitsRecord60.get" + }, + new + { + Id = 461, + Description = "Разрешение просматривать WITS record 61", + Name = "WitsRecord61.get" + }, + new + { + Id = 500, + Description = "Разрешение удалять Категорий документов файлов", + Name = "FileCategory.delete" + }, + new + { + Id = 501, + Description = "Разрешение редактировать Категорий документов файлов", + Name = "FileCategory.edit" + }, + new + { + Id = 502, + Description = "Разрешение просматривать Категорий документов файлов", + Name = "FileCategory.get" + }, + new + { + Id = 503, + Description = "Разрешение удалять Дело скважины", + Name = "WellFinalDocuments.delete" + }, + new + { + Id = 504, + Description = "Разрешение редактировать Дело скважины", + Name = "WellFinalDocuments.edit" + }, + new + { + Id = 505, + Description = "Разрешение просматривать Дело скважины", + Name = "WellFinalDocuments.get" + }, + new + { + Id = 506, + Description = "Разрешение редактировать ответственных за загрузку файла Дело скважины", + Name = "WellFinalDocuments.editPublisher" + }, + new + { + Id = 507, + Description = "Разрешение просматривать наработка талевого каната", + Name = "TelemetryWirelineRunOut.get" + }, + new + { + Id = 510, + Description = "Разрешение просматривать плановая траектория", + Name = "PlannedTrajectory.get" + }, + new + { + Id = 511, + Description = "Разрешение редактировать плановая траектория", + Name = "PlannedTrajectory.edit" + }, + new + { + Id = 512, + Description = "Разрешение удалять плановая траектория", + Name = "PlannedTrajectory.delete" + }, + new + { + Id = 516, + Description = "Разрешение просматривать статистику вопросов", + Name = "FaqStatistics.get" + }, + new + { + Id = 517, + Description = "Разрешение редактировать вопрос", + Name = "FaqStatistics.edit" + }, + new + { + Id = 518, + Description = "Разрешение удалять вопрос", + Name = "FaqStatistics.delete" + }, + new + { + Id = 519, + Description = "Разрешение просматривать список контактов", + Name = "WellContact.get" + }, + new + { + Id = 520, + Description = "Разрешение редактировать список контактов", + Name = "WellContact.edit" + }, + new + { + Id = 521, + Description = "Разрешить создание справок по страницам", + Name = "HelpPage.edit" + }, + new + { + Id = 522, + Description = "Разрешить удаление всех настроек пользователя", + Name = "UserSettings.delete" + }, + new + { + Id = 523, + Description = "Разрешить редактирование инструкций", + Name = "Manual.edit" + }, + new + { + Id = 524, + Description = "Разрешить получение инструкций", + Name = "Manual.get" + }, + new + { + Id = 525, + Description = "Разрешение на редактирование РТК у завершенной скважины", + Name = "ProcessMap.editCompletedWell" + }, + new + { + Id = 526, + Description = "Разрешение на редактирование операций у завершенной скважины", + Name = "WellOperation.editCompletedWell" + }, + new + { + Id = 527, + Description = "Разрешение на удаление инструкций", + Name = "Manual.delete" + }, + new + { + Id = 528, + Description = "Разрешение на удаление контакта", + Name = "WellContact.delete" + }, + new + { + Id = 530, + Description = "Разрешение на редактирование плановой конструкции скважины", + Name = "WellSectionPlan.edit" + }, + new + { + Id = 531, + Description = "Разрешение на удаление плановой конструкции скважины", + Name = "WellSectionPlan.delete" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveRpmMin") + .HasColumnType("double precision") + .HasColumnName("top_drive_rpm_min") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("TopDriveStartMinFlowRate") + .HasColumnType("double precision") + .HasColumnName("top_drive_start_min_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_anti_crash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_auto_hold_tf", t => + { + t.HasComment("Автоудержание TF"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("RpmStepsCount") + .HasColumnType("integer") + .HasColumnName("rpm_steps_count") + .HasComment("Количество шагов оборотов на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("WeightOnBitStepsCount") + .HasColumnType("integer") + .HasColumnName("weight_on_bit_steps_count") + .HasComment("Количество шагов по нагрузке"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_drilltest", t => + { + t.HasComment("DrillTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("integer") + .HasColumnName("mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RpmLeft") + .HasColumnType("double precision") + .HasColumnName("Rpm_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RpmRight") + .HasColumnType("double precision") + .HasColumnName("Rpm​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueMaxLeft") + .HasColumnType("double precision") + .HasColumnName("torque_max_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueMaxRight") + .HasColumnType("double precision") + .HasColumnName("torque_max_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("stickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_static_measurement_output", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdDeclineSocketColumn") + .HasColumnType("boolean") + .HasColumnName("id_decline_socket_column") + .HasComment("СПУСК ОК Да/Нет"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_updating_noload_parameters", t => + { + t.HasComment("Обновление холостого хода"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин., Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин., Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м., Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м., Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("RpmUp") + .HasColumnType("double precision") + .HasColumnName("rpm_up") + .HasComment("Обороты вверх, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление, атм"); + + b.Property("Repeats") + .HasColumnType("double precision") + .HasColumnName("repeats") + .HasComment("Количество повторений"); + + b.Property("SetpointDrag") + .HasColumnType("double precision") + .HasColumnName("setpoint_drag") + .HasComment("Уставка зятяжки, т"); + + b.Property("SetpointTight") + .HasColumnType("double precision") + .HasColumnName("setpoint_tight") + .HasComment("Уставка посадки, т"); + + b.Property("SpeedDownward") + .HasColumnType("double precision") + .HasColumnName("speed_downward") + .HasComment("Скорость спуска, м/ч"); + + b.Property("SpeedUpward") + .HasColumnType("double precision") + .HasColumnName("speed_upward") + .HasComment("Скорость подъёма, м/ч"); + + b.Property("SpinDownward") + .HasColumnType("double precision") + .HasColumnName("spin_downward") + .HasComment("Вращение при движении вниз, об/мин"); + + b.Property("SpinUpward") + .HasColumnType("double precision") + .HasColumnName("spin_upward") + .HasComment("Вращение при движении вверх, об/мин"); + + b.Property("Torque") + .HasColumnType("double precision") + .HasColumnName("torque") + .HasComment("Момент, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_ream", t => + { + t.HasComment("РТК проработка скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1. Скорость вниз, м/ч."); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_recording_static_measurement", t => + { + t.HasComment("Запись статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм. Уставка"); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления, атм. Ограничение"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход л/с. Уставка"); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход л/с. Ограничение"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureLimitMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм"); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин. Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин. Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м. Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м. Ограничение"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка, т. Уставка"); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка, т. Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor", t => + { + t.HasComment("РТК план бурение ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor_lowering_bit", t => + { + t.HasComment("РТК подход к забою в роторе"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП уставка, об/мин."); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП ограничение, об/мин."); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП уставка, кН*м."); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП ограничение, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor_rpm_acceleration", t => + { + t.HasComment("Выход на обороты перед ротором"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание инструмента, м."); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления ограничение, атм."); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход уставка, л/с."); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход ограничение, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Расчётная пружина, градус"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка уставка, т."); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка ограничение, т."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide", t => + { + t.HasComment("РТК план бурение слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide_lowering_bit", t => + { + t.HasComment("РТК подход к забою в слайде"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switching_off_the_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход, л/с"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RampTime") + .HasColumnType("double precision") + .HasColumnName("ramp_time") + .HasComment("Время выхода буровых насосов на плановый расход, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_switching_to_the_mode", t => + { + t.HasComment("Выход на плановый расход"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Interval") + .HasColumnType("double precision") + .HasColumnName("interval") + .HasComment("Интервал расхаживания, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимальное давление, атм."); + + b.Property("RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("repetitions_count") + .HasComment("Количество расхаживаний, шт."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град."); + + b.Property("StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("TFSetpoint") + .HasColumnType("double precision") + .HasColumnName("tf_setpoint") + .HasComment("Задание TF, град."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("IdCompany", "IdWell"); + + b.HasIndex("IdWell"); + + b.ToTable("t_relation_company_well", t => + { + t.HasComment("отношение скважин и компаний"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.HasKey("IdWell", "IdUser"); + + b.HasIndex("IdUser"); + + b.ToTable("t_relation_contact_well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdDrillingProgramPart") + .HasColumnType("integer") + .HasColumnName("id_drilling_program_part"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_role") + .HasComment("1 - publisher, 2 - approver"); + + b.HasKey("IdUser", "IdDrillingProgramPart") + .HasName("t_relation_user_drilling_program_part_pk"); + + b.HasIndex("IdDrillingProgramPart"); + + b.ToTable("t_relation_user_drilling_program_part", t => + { + t.HasComment("Отношение пользователей и частей ПБ"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdPermission") + .HasColumnType("integer") + .HasColumnName("id_permission"); + + b.HasKey("IdUserRole", "IdPermission"); + + b.HasIndex("IdPermission"); + + b.ToTable("t_relation_user_role_permission", t => + { + t.HasComment("Отношение ролей пользователей и разрешений доступа"); + }); + + b.HasData( + new + { + IdUserRole = 1100, + IdPermission = 102 + }, + new + { + IdUserRole = 1100, + IdPermission = 111 + }, + new + { + IdUserRole = 1101, + IdPermission = 101 + }, + new + { + IdUserRole = 1101, + IdPermission = 100 + }, + new + { + IdUserRole = 1102, + IdPermission = 105 + }, + new + { + IdUserRole = 1102, + IdPermission = 108 + }, + new + { + IdUserRole = 1103, + IdPermission = 104 + }, + new + { + IdUserRole = 1103, + IdPermission = 103 + }, + new + { + IdUserRole = 1104, + IdPermission = 108 + }, + new + { + IdUserRole = 1105, + IdPermission = 107 + }, + new + { + IdUserRole = 1105, + IdPermission = 106 + }, + new + { + IdUserRole = 1106, + IdPermission = 111 + }, + new + { + IdUserRole = 1107, + IdPermission = 110 + }, + new + { + IdUserRole = 1107, + IdPermission = 109 + }, + new + { + IdUserRole = 1108, + IdPermission = 114 + }, + new + { + IdUserRole = 1109, + IdPermission = 113 + }, + new + { + IdUserRole = 1109, + IdPermission = 112 + }, + new + { + IdUserRole = 1110, + IdPermission = 123 + }, + new + { + IdUserRole = 1110, + IdPermission = 114 + }, + new + { + IdUserRole = 1111, + IdPermission = 122 + }, + new + { + IdUserRole = 1111, + IdPermission = 121 + }, + new + { + IdUserRole = 1112, + IdPermission = 117 + }, + new + { + IdUserRole = 1113, + IdPermission = 105 + }, + new + { + IdUserRole = 1113, + IdPermission = 123 + }, + new + { + IdUserRole = 1113, + IdPermission = 120 + }, + new + { + IdUserRole = 1114, + IdPermission = 119 + }, + new + { + IdUserRole = 1114, + IdPermission = 118 + }, + new + { + IdUserRole = 1114, + IdPermission = 200 + }, + new + { + IdUserRole = 1115, + IdPermission = 223 + }, + new + { + IdUserRole = 1116, + IdPermission = 105 + }, + new + { + IdUserRole = 1116, + IdPermission = 102 + }, + new + { + IdUserRole = 1116, + IdPermission = 117 + }, + new + { + IdUserRole = 1116, + IdPermission = 126 + }, + new + { + IdUserRole = 1117, + IdPermission = 125 + }, + new + { + IdUserRole = 1117, + IdPermission = 124 + }, + new + { + IdUserRole = 1200, + IdPermission = 203 + }, + new + { + IdUserRole = 1200, + IdPermission = 230 + }, + new + { + IdUserRole = 1201, + IdPermission = 202 + }, + new + { + IdUserRole = 1201, + IdPermission = 203 + }, + new + { + IdUserRole = 1201, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 203 + }, + new + { + IdUserRole = 1202, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 236 + }, + new + { + IdUserRole = 1202, + IdPermission = 212 + }, + new + { + IdUserRole = 1203, + IdPermission = 235 + }, + new + { + IdUserRole = 1204, + IdPermission = 202 + }, + new + { + IdUserRole = 1204, + IdPermission = 203 + }, + new + { + IdUserRole = 1205, + IdPermission = 215 + }, + new + { + IdUserRole = 1206, + IdPermission = 203 + }, + new + { + IdUserRole = 1206, + IdPermission = 206 + }, + new + { + IdUserRole = 1207, + IdPermission = 205 + }, + new + { + IdUserRole = 1208, + IdPermission = 218 + }, + new + { + IdUserRole = 1209, + IdPermission = 217 + }, + new + { + IdUserRole = 1210, + IdPermission = 203 + }, + new + { + IdUserRole = 1210, + IdPermission = 230 + }, + new + { + IdUserRole = 1210, + IdPermission = 219 + }, + new + { + IdUserRole = 1211, + IdPermission = 203 + }, + new + { + IdUserRole = 1211, + IdPermission = 220 + }, + new + { + IdUserRole = 1211, + IdPermission = 239 + }, + new + { + IdUserRole = 1212, + IdPermission = 238 + }, + new + { + IdUserRole = 1212, + IdPermission = 237 + }, + new + { + IdUserRole = 1213, + IdPermission = 203 + }, + new + { + IdUserRole = 1213, + IdPermission = 239 + }, + new + { + IdUserRole = 1213, + IdPermission = 212 + }, + new + { + IdUserRole = 1214, + IdPermission = 211 + }, + new + { + IdUserRole = 1214, + IdPermission = 210 + }, + new + { + IdUserRole = 1215, + IdPermission = 203 + }, + new + { + IdUserRole = 1215, + IdPermission = 222 + }, + new + { + IdUserRole = 1216, + IdPermission = 221 + }, + new + { + IdUserRole = 1217, + IdPermission = 226 + }, + new + { + IdUserRole = 1218, + IdPermission = 225 + }, + new + { + IdUserRole = 1218, + IdPermission = 224 + }, + new + { + IdUserRole = 1219, + IdPermission = 203 + }, + new + { + IdUserRole = 1219, + IdPermission = 206 + }, + new + { + IdUserRole = 1219, + IdPermission = 230 + }, + new + { + IdUserRole = 1219, + IdPermission = 232 + }, + new + { + IdUserRole = 1220, + IdPermission = 203 + }, + new + { + IdUserRole = 1220, + IdPermission = 228 + }, + new + { + IdUserRole = 1221, + IdPermission = 202 + }, + new + { + IdUserRole = 1221, + IdPermission = 203 + }, + new + { + IdUserRole = 1221, + IdPermission = 220 + }, + new + { + IdUserRole = 1221, + IdPermission = 234 + }, + new + { + IdUserRole = 1500, + IdPermission = 507 + }, + new + { + IdUserRole = 1500, + IdPermission = 510 + }, + new + { + IdUserRole = 1501, + IdPermission = 214 + }, + new + { + IdUserRole = 1501, + IdPermission = 213 + }, + new + { + IdUserRole = 1502, + IdPermission = 207 + }, + new + { + IdUserRole = 1502, + IdPermission = 208 + }, + new + { + IdUserRole = 2000, + IdPermission = 205 + }, + new + { + IdUserRole = 2000, + IdPermission = 204 + }, + new + { + IdUserRole = 2000, + IdPermission = 245 + }, + new + { + IdUserRole = 2001, + IdPermission = 244 + }, + new + { + IdUserRole = 2001, + IdPermission = 245 + }, + new + { + IdUserRole = 2002, + IdPermission = 244 + }, + new + { + IdUserRole = 2002, + IdPermission = 246 + }, + new + { + IdUserRole = 2002, + IdPermission = 237 + }, + new + { + IdUserRole = 2002, + IdPermission = 238 + }, + new + { + IdUserRole = 2003, + IdPermission = 240 + }, + new + { + IdUserRole = 2003, + IdPermission = 217 + }, + new + { + IdUserRole = 2003, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 242 + }, + new + { + IdUserRole = 2004, + IdPermission = 217 + }, + new + { + IdUserRole = 2004, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 205 + }, + new + { + IdUserRole = 2004, + IdPermission = 204 + }, + new + { + IdUserRole = 2005, + IdPermission = 247 + }, + new + { + IdUserRole = 2005, + IdPermission = 205 + }, + new + { + IdUserRole = 2005, + IdPermission = 204 + }, + new + { + IdUserRole = 2006, + IdPermission = 243 + }, + new + { + IdUserRole = 2006, + IdPermission = 205 + }, + new + { + IdUserRole = 2006, + IdPermission = 204 + }, + new + { + IdUserRole = 2007, + IdPermission = 241 + }, + new + { + IdUserRole = 2007, + IdPermission = 205 + }, + new + { + IdUserRole = 2007, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 100 + }, + new + { + IdUserRole = 1, + IdPermission = 101 + }, + new + { + IdUserRole = 1, + IdPermission = 102 + }, + new + { + IdUserRole = 1, + IdPermission = 103 + }, + new + { + IdUserRole = 1, + IdPermission = 104 + }, + new + { + IdUserRole = 1, + IdPermission = 105 + }, + new + { + IdUserRole = 1, + IdPermission = 106 + }, + new + { + IdUserRole = 1, + IdPermission = 107 + }, + new + { + IdUserRole = 1, + IdPermission = 108 + }, + new + { + IdUserRole = 1, + IdPermission = 109 + }, + new + { + IdUserRole = 1, + IdPermission = 110 + }, + new + { + IdUserRole = 1, + IdPermission = 111 + }, + new + { + IdUserRole = 1, + IdPermission = 112 + }, + new + { + IdUserRole = 1, + IdPermission = 113 + }, + new + { + IdUserRole = 1, + IdPermission = 114 + }, + new + { + IdUserRole = 1, + IdPermission = 115 + }, + new + { + IdUserRole = 1, + IdPermission = 116 + }, + new + { + IdUserRole = 1, + IdPermission = 117 + }, + new + { + IdUserRole = 1, + IdPermission = 118 + }, + new + { + IdUserRole = 1, + IdPermission = 119 + }, + new + { + IdUserRole = 1, + IdPermission = 120 + }, + new + { + IdUserRole = 1, + IdPermission = 121 + }, + new + { + IdUserRole = 1, + IdPermission = 122 + }, + new + { + IdUserRole = 1, + IdPermission = 123 + }, + new + { + IdUserRole = 1, + IdPermission = 124 + }, + new + { + IdUserRole = 1, + IdPermission = 125 + }, + new + { + IdUserRole = 1, + IdPermission = 126 + }, + new + { + IdUserRole = 1, + IdPermission = 127 + }, + new + { + IdUserRole = 1, + IdPermission = 128 + }, + new + { + IdUserRole = 1, + IdPermission = 129 + }, + new + { + IdUserRole = 1, + IdPermission = 200 + }, + new + { + IdUserRole = 1, + IdPermission = 201 + }, + new + { + IdUserRole = 1, + IdPermission = 202 + }, + new + { + IdUserRole = 1, + IdPermission = 203 + }, + new + { + IdUserRole = 1, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 205 + }, + new + { + IdUserRole = 1, + IdPermission = 206 + }, + new + { + IdUserRole = 1, + IdPermission = 207 + }, + new + { + IdUserRole = 1, + IdPermission = 208 + }, + new + { + IdUserRole = 1, + IdPermission = 209 + }, + new + { + IdUserRole = 1, + IdPermission = 210 + }, + new + { + IdUserRole = 1, + IdPermission = 211 + }, + new + { + IdUserRole = 1, + IdPermission = 212 + }, + new + { + IdUserRole = 1, + IdPermission = 213 + }, + new + { + IdUserRole = 1, + IdPermission = 214 + }, + new + { + IdUserRole = 1, + IdPermission = 215 + }, + new + { + IdUserRole = 1, + IdPermission = 216 + }, + new + { + IdUserRole = 1, + IdPermission = 217 + }, + new + { + IdUserRole = 1, + IdPermission = 218 + }, + new + { + IdUserRole = 1, + IdPermission = 219 + }, + new + { + IdUserRole = 1, + IdPermission = 220 + }, + new + { + IdUserRole = 1, + IdPermission = 221 + }, + new + { + IdUserRole = 1, + IdPermission = 222 + }, + new + { + IdUserRole = 1, + IdPermission = 223 + }, + new + { + IdUserRole = 1, + IdPermission = 224 + }, + new + { + IdUserRole = 1, + IdPermission = 225 + }, + new + { + IdUserRole = 1, + IdPermission = 226 + }, + new + { + IdUserRole = 1, + IdPermission = 227 + }, + new + { + IdUserRole = 1, + IdPermission = 228 + }, + new + { + IdUserRole = 1, + IdPermission = 229 + }, + new + { + IdUserRole = 1, + IdPermission = 230 + }, + new + { + IdUserRole = 1, + IdPermission = 231 + }, + new + { + IdUserRole = 1, + IdPermission = 232 + }, + new + { + IdUserRole = 1, + IdPermission = 233 + }, + new + { + IdUserRole = 1, + IdPermission = 234 + }, + new + { + IdUserRole = 1, + IdPermission = 235 + }, + new + { + IdUserRole = 1, + IdPermission = 236 + }, + new + { + IdUserRole = 1, + IdPermission = 237 + }, + new + { + IdUserRole = 1, + IdPermission = 238 + }, + new + { + IdUserRole = 1, + IdPermission = 239 + }, + new + { + IdUserRole = 1, + IdPermission = 240 + }, + new + { + IdUserRole = 1, + IdPermission = 241 + }, + new + { + IdUserRole = 1, + IdPermission = 242 + }, + new + { + IdUserRole = 1, + IdPermission = 243 + }, + new + { + IdUserRole = 1, + IdPermission = 244 + }, + new + { + IdUserRole = 1, + IdPermission = 245 + }, + new + { + IdUserRole = 1, + IdPermission = 246 + }, + new + { + IdUserRole = 1, + IdPermission = 247 + }, + new + { + IdUserRole = 1, + IdPermission = 248 + }, + new + { + IdUserRole = 1, + IdPermission = 249 + }, + new + { + IdUserRole = 1, + IdPermission = 250 + }, + new + { + IdUserRole = 1, + IdPermission = 251 + }, + new + { + IdUserRole = 1, + IdPermission = 252 + }, + new + { + IdUserRole = 1, + IdPermission = 253 + }, + new + { + IdUserRole = 1, + IdPermission = 254 + }, + new + { + IdUserRole = 1, + IdPermission = 255 + }, + new + { + IdUserRole = 1, + IdPermission = 256 + }, + new + { + IdUserRole = 1, + IdPermission = 257 + }, + new + { + IdUserRole = 1, + IdPermission = 258 + }, + new + { + IdUserRole = 1, + IdPermission = 259 + }, + new + { + IdUserRole = 1, + IdPermission = 260 + }, + new + { + IdUserRole = 1, + IdPermission = 261 + }, + new + { + IdUserRole = 1, + IdPermission = 262 + }, + new + { + IdUserRole = 1, + IdPermission = 263 + }, + new + { + IdUserRole = 1, + IdPermission = 264 + }, + new + { + IdUserRole = 1, + IdPermission = 265 + }, + new + { + IdUserRole = 1, + IdPermission = 266 + }, + new + { + IdUserRole = 1, + IdPermission = 267 + }, + new + { + IdUserRole = 1, + IdPermission = 268 + }, + new + { + IdUserRole = 1, + IdPermission = 269 + }, + new + { + IdUserRole = 1, + IdPermission = 380 + }, + new + { + IdUserRole = 1, + IdPermission = 381 + }, + new + { + IdUserRole = 1, + IdPermission = 382 + }, + new + { + IdUserRole = 1, + IdPermission = 383 + }, + new + { + IdUserRole = 1, + IdPermission = 384 + }, + new + { + IdUserRole = 1, + IdPermission = 385 + }, + new + { + IdUserRole = 1, + IdPermission = 386 + }, + new + { + IdUserRole = 1, + IdPermission = 387 + }, + new + { + IdUserRole = 1, + IdPermission = 388 + }, + new + { + IdUserRole = 1, + IdPermission = 389 + }, + new + { + IdUserRole = 1, + IdPermission = 390 + }, + new + { + IdUserRole = 1, + IdPermission = 391 + }, + new + { + IdUserRole = 1, + IdPermission = 400 + }, + new + { + IdUserRole = 1, + IdPermission = 401 + }, + new + { + IdUserRole = 1, + IdPermission = 407 + }, + new + { + IdUserRole = 1, + IdPermission = 408 + }, + new + { + IdUserRole = 1, + IdPermission = 450 + }, + new + { + IdUserRole = 1, + IdPermission = 460 + }, + new + { + IdUserRole = 1, + IdPermission = 461 + }, + new + { + IdUserRole = 1, + IdPermission = 500 + }, + new + { + IdUserRole = 1, + IdPermission = 501 + }, + new + { + IdUserRole = 1, + IdPermission = 502 + }, + new + { + IdUserRole = 1, + IdPermission = 503 + }, + new + { + IdUserRole = 1, + IdPermission = 504 + }, + new + { + IdUserRole = 1, + IdPermission = 505 + }, + new + { + IdUserRole = 1, + IdPermission = 506 + }, + new + { + IdUserRole = 1, + IdPermission = 507 + }, + new + { + IdUserRole = 1, + IdPermission = 510 + }, + new + { + IdUserRole = 1, + IdPermission = 511 + }, + new + { + IdUserRole = 1, + IdPermission = 512 + }, + new + { + IdUserRole = 1, + IdPermission = 516 + }, + new + { + IdUserRole = 1, + IdPermission = 517 + }, + new + { + IdUserRole = 1, + IdPermission = 518 + }, + new + { + IdUserRole = 1, + IdPermission = 519 + }, + new + { + IdUserRole = 1, + IdPermission = 520 + }, + new + { + IdUserRole = 1, + IdPermission = 521 + }, + new + { + IdUserRole = 1, + IdPermission = 522 + }, + new + { + IdUserRole = 1, + IdPermission = 523 + }, + new + { + IdUserRole = 1, + IdPermission = 524 + }, + new + { + IdUserRole = 1, + IdPermission = 525 + }, + new + { + IdUserRole = 1, + IdPermission = 526 + }, + new + { + IdUserRole = 1, + IdPermission = 527 + }, + new + { + IdUserRole = 1, + IdPermission = 528 + }, + new + { + IdUserRole = 1, + IdPermission = 530 + }, + new + { + IdUserRole = 1, + IdPermission = 531 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdInclude") + .HasColumnType("integer") + .HasColumnName("id_include_user_role"); + + b.HasKey("Id", "IdInclude") + .HasName("t_relation_user_role_user_role_pk"); + + b.HasIndex("IdInclude"); + + b.ToTable("t_relation_user_role_user_role", t => + { + t.HasComment("Отношение ролей к ролям"); + }); + + b.HasData( + new + { + Id = 1101, + IdInclude = 1100 + }, + new + { + Id = 1103, + IdInclude = 1102 + }, + new + { + Id = 1105, + IdInclude = 1104 + }, + new + { + Id = 1107, + IdInclude = 1106 + }, + new + { + Id = 1109, + IdInclude = 1108 + }, + new + { + Id = 1111, + IdInclude = 1110 + }, + new + { + Id = 1114, + IdInclude = 1113 + }, + new + { + Id = 1117, + IdInclude = 1116 + }, + new + { + Id = 1203, + IdInclude = 1202 + }, + new + { + Id = 1207, + IdInclude = 1206 + }, + new + { + Id = 1209, + IdInclude = 1208 + }, + new + { + Id = 1212, + IdInclude = 1211 + }, + new + { + Id = 1214, + IdInclude = 1213 + }, + new + { + Id = 1216, + IdInclude = 1215 + }, + new + { + Id = 1218, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1200 + }, + new + { + Id = 2000, + IdInclude = 1201 + }, + new + { + Id = 2000, + IdInclude = 1202 + }, + new + { + Id = 2000, + IdInclude = 1204 + }, + new + { + Id = 2000, + IdInclude = 1205 + }, + new + { + Id = 2000, + IdInclude = 1206 + }, + new + { + Id = 2000, + IdInclude = 1208 + }, + new + { + Id = 2000, + IdInclude = 1210 + }, + new + { + Id = 2000, + IdInclude = 1211 + }, + new + { + Id = 2000, + IdInclude = 1213 + }, + new + { + Id = 2000, + IdInclude = 1215 + }, + new + { + Id = 2000, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1219 + }, + new + { + Id = 2000, + IdInclude = 1220 + }, + new + { + Id = 2000, + IdInclude = 1221 + }, + new + { + Id = 2000, + IdInclude = 1500 + }, + new + { + Id = 2000, + IdInclude = 1501 + }, + new + { + Id = 2000, + IdInclude = 1502 + }, + new + { + Id = 2001, + IdInclude = 1500 + }, + new + { + Id = 2001, + IdInclude = 1501 + }, + new + { + Id = 2001, + IdInclude = 1502 + }, + new + { + Id = 2002, + IdInclude = 1500 + }, + new + { + Id = 2002, + IdInclude = 1501 + }, + new + { + Id = 2002, + IdInclude = 1502 + }, + new + { + Id = 2003, + IdInclude = 1500 + }, + new + { + Id = 2003, + IdInclude = 1501 + }, + new + { + Id = 2003, + IdInclude = 1502 + }, + new + { + Id = 2004, + IdInclude = 1500 + }, + new + { + Id = 2004, + IdInclude = 1501 + }, + new + { + Id = 2004, + IdInclude = 1502 + }, + new + { + Id = 2005, + IdInclude = 1500 + }, + new + { + Id = 2005, + IdInclude = 1501 + }, + new + { + Id = 2005, + IdInclude = 1502 + }, + new + { + Id = 2006, + IdInclude = 1500 + }, + new + { + Id = 2006, + IdInclude = 1501 + }, + new + { + Id = 2006, + IdInclude = 1502 + }, + new + { + Id = 2007, + IdInclude = 1500 + }, + new + { + Id = 2007, + IdInclude = 1501 + }, + new + { + Id = 2007, + IdInclude = 1502 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.HasKey("IdUser", "IdUserRole"); + + b.HasIndex("IdUserRole"); + + b.ToTable("t_relation_user_user_role", t => + { + t.HasComment("Отношение пользователей и ролей"); + }); + + b.HasData( + new + { + IdUser = 1, + IdUserRole = 1 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Begin") + .HasColumnType("timestamp with time zone") + .HasColumnName("begin"); + + b.Property("End") + .HasColumnType("timestamp with time zone") + .HasColumnName("end") + .HasComment("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer") + .HasColumnName("format") + .HasComment("Формат отчета"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла-родителя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("Step") + .HasColumnType("integer") + .HasColumnName("step") + .HasComment("размер шага в секундах"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdWell"); + + b.ToTable("t_report_property", t => + { + t.HasComment("Отчеты с данными по буровым"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DrillEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_end") + .HasComment("Конец вахты"); + + b.Property("DrillStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_start") + .HasComment("Начало вахты"); + + b.Property("IdDriller") + .HasColumnType("integer") + .HasColumnName("id_driller") + .HasComment("Идентификатор бурильщика"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Идентификатор скважины"); + + b.Property("ShiftEnd") + .HasColumnType("time without time zone") + .HasColumnName("shift_end") + .HasComment("Конец смены"); + + b.Property("ShiftStart") + .HasColumnType("time without time zone") + .HasColumnName("shift_start") + .HasComment("Начало смены"); + + b.HasKey("Id"); + + b.HasIndex("IdDriller"); + + b.HasIndex("IdWell"); + + b.ToTable("t_schedule", t => + { + t.HasComment("График работы бурильщика"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("комментарий для оператора"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("ObsolescenceSec") + .HasColumnType("integer") + .HasColumnName("obsolescence") + .HasComment("сек. до устаревания"); + + b.Property("Setpoints") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("setpoint_set") + .HasComment("Набор уставок"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdWell"); + + b.ToTable("t_setpoints_rquest", t => + { + t.HasComment("Запросы на изменение уставок панели оператора"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Subsystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_subsystem", t => + { + t.HasComment("Описание подсистем"); + }); + + b.HasData( + new + { + Id = 1, + Description = "Совместная работа режимов \"Бурение в роторе\" и \"Бурение в слайде\"", + Name = "АПД" + }, + new + { + Id = 11, + Description = "Режим работы \"Бурение в роторе\"", + Name = "АПД ротор" + }, + new + { + Id = 12, + Description = "Режим работы \"Бурение в слайде\"", + Name = "АПД слайд" + }, + new + { + Id = 65536, + Description = "Осцилляция", + Name = "Осцилляция" + }, + new + { + Id = 65537, + Description = "Демпфер", + Name = "Демпфер" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Info") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("info") + .HasComment("Информация с панели о скважине"); + + b.Property("RemoteUid") + .IsRequired() + .HasColumnType("text") + .HasColumnName("remote_uid") + .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв."); + + b.Property("TimeZone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); + + b.ToTable("t_telemetry", t => + { + t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("AxialLoad") + .HasColumnType("real") + .HasColumnName("axial_load") + .HasComment("Осевая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("real") + .HasColumnName("axial_load_limit_max") + .HasComment("Осевая нагрузка. Аварийная макс."); + + b.Property("AxialLoadSp") + .HasColumnType("real") + .HasColumnName("axial_load_sp") + .HasComment("Осевая нагрузка. Задание"); + + b.Property("BitDepth") + .HasColumnType("real") + .HasColumnName("bit_depth") + .HasComment("Положение инструмента"); + + b.Property("BlockPosition") + .HasColumnType("real") + .HasColumnName("block_position") + .HasComment("Высота талевого блока"); + + b.Property("BlockPositionMax") + .HasColumnType("real") + .HasColumnName("block_position_max") + .HasComment("Талевый блок. Макс положение"); + + b.Property("BlockPositionMin") + .HasColumnType("real") + .HasColumnName("block_position_min") + .HasComment("Талевый блок. Мин положение"); + + b.Property("BlockSpeed") + .HasColumnType("real") + .HasColumnName("block_speed") + .HasComment("Скорость талевого блока"); + + b.Property("BlockSpeedSp") + .HasColumnType("real") + .HasColumnName("block_speed_sp") + .HasComment("Скорости талевого блока. Задание"); + + b.Property("BlockSpeedSpDevelop") + .HasColumnType("real") + .HasColumnName("block_speed_sp_develop") + .HasComment("Талевый блок. Задание скорости для проработки"); + + b.Property("BlockSpeedSpRotor") + .HasColumnType("real") + .HasColumnName("block_speed_sp_rotor") + .HasComment("Талевый блок. Задание скорости для роторного бурения"); + + b.Property("BlockSpeedSpSlide") + .HasColumnType("real") + .HasColumnName("block_speed_sp_slide") + .HasComment("Талевый блок. Задание скорости для режима слайда"); + + b.Property("Flow") + .HasColumnType("real") + .HasColumnName("flow") + .HasComment("Расход"); + + b.Property("FlowDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("flow_delta_limit_max") + .HasComment("Расход. Аварийный макс."); + + b.Property("FlowIdle") + .HasColumnType("real") + .HasColumnName("flow_idle") + .HasComment("Расход. Холостой ход"); + + b.Property("HookWeight") + .HasColumnType("real") + .HasColumnName("hook_weight") + .HasComment("Вес на крюке"); + + b.Property("HookWeightIdle") + .HasColumnType("real") + .HasColumnName("hook_weight_idle") + .HasComment("Вес на крюке. Холостой ход"); + + b.Property("HookWeightLimitMax") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_max") + .HasComment("Вес на крюке. Затяжка"); + + b.Property("HookWeightLimitMin") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_min") + .HasComment("Вес на крюке. Посадка"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Текущий критерий бурения"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Пользователь САУБ"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Режим САУБ"); + + b.Property("Mse") + .HasColumnType("real") + .HasColumnName("mse") + .HasComment("MSE"); + + b.Property("MseState") + .HasColumnType("smallint") + .HasColumnName("mse_state") + .HasComment("Текущее состояние работы MSE"); + + b.Property("Pressure") + .HasColumnType("real") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("pressure_delta_limit_max") + .HasComment("Давление дифф. Аварийное макс."); + + b.Property("PressureIdle") + .HasColumnType("real") + .HasColumnName("pressure_idle") + .HasComment("Давление. Холостой ход"); + + b.Property("PressureSp") + .HasColumnType("real") + .HasColumnName("pressure_sp") + .HasComment("Давление. Задание"); + + b.Property("PressureSpDevelop") + .HasColumnType("real") + .HasColumnName("pressure_sp_develop") + .HasComment("Давление. Задание для проработки"); + + b.Property("PressureSpRotor") + .HasColumnType("real") + .HasColumnName("pressure_sp_rotor") + .HasComment("Давление. Задание для роторного бурения"); + + b.Property("PressureSpSlide") + .HasColumnType("real") + .HasColumnName("pressure_sp_slide") + .HasComment("Давление. Задание для режима слайда"); + + b.Property("Pump0Flow") + .HasColumnType("real") + .HasColumnName("pump0_flow") + .HasComment("Расход. Буровой насос 1"); + + b.Property("Pump1Flow") + .HasColumnType("real") + .HasColumnName("pump1_flow") + .HasComment("Расход. Буровой насос 2"); + + b.Property("Pump2Flow") + .HasColumnType("real") + .HasColumnName("pump2_flow") + .HasComment("Расход. Буровой насос 3"); + + b.Property("RotorSpeed") + .HasColumnType("real") + .HasColumnName("rotor_speed") + .HasComment("Обороты ротора"); + + b.Property("RotorTorque") + .HasColumnType("real") + .HasColumnName("rotor_torque") + .HasComment("Момент на роторе"); + + b.Property("RotorTorqueIdle") + .HasColumnType("real") + .HasColumnName("rotor_torque_idle") + .HasComment("Момент на роторе. Холостой ход"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("real") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Момент на роторе. Аварийный макс."); + + b.Property("RotorTorqueSp") + .HasColumnType("real") + .HasColumnName("rotor_torque_sp") + .HasComment("Момент на роторе. Задание"); + + b.Property("WellDepth") + .HasColumnType("real") + .HasColumnName("well_depth") + .HasComment("Глубина забоя"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_saub", t => + { + t.HasComment("набор основных данных по SAUB"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaubStat", b => + { + b.Property("Count") + .HasColumnType("bigint") + .HasColumnName("count_items"); + + b.Property("DateMax") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_max"); + + b.Property("DateMin") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_min"); + + b.Property("DepthMax") + .HasColumnType("real") + .HasColumnName("depth_max"); + + b.Property("DepthMin") + .HasColumnType("real") + .HasColumnName("depth_min"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.ToTable((string)null); + + b.ToView("mw_telemetry_datas_saub_stat", (string)null); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Выбранный режим управления"); + + b.Property("PositionRight") + .HasColumnType("real") + .HasColumnName("position_right") + .HasComment("Крайний правый угол осцилляции"); + + b.Property("PositionZero") + .HasColumnType("real") + .HasColumnName("position_zero") + .HasComment("Нулевая позиция осцилляции"); + + b.Property("RevolsLeftLimit") + .HasColumnType("real") + .HasColumnName("revols_left_limit") + .HasComment("Ограничение числа оборотов влево"); + + b.Property("RevolsLeftTotal") + .HasColumnType("real") + .HasColumnName("revols_left_total") + .HasComment("Суммарное количество оборотов влево"); + + b.Property("RevolsRightLimit") + .HasColumnType("real") + .HasColumnName("revols_right_limit") + .HasComment("Ограничение числа оборотов вправо"); + + b.Property("RevolsRightTotal") + .HasColumnType("real") + .HasColumnName("revols_right_total") + .HasComment("Суммарное количество оборотов вправо"); + + b.Property("SpeedLeftSp") + .HasColumnType("real") + .HasColumnName("speed_left_sp") + .HasComment("Заданная скорость вращения влево"); + + b.Property("SpeedRightSp") + .HasColumnType("real") + .HasColumnName("speed_right_sp") + .HasComment("Заданная скорость вращения вправо"); + + b.Property("State") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("Переменная этапа"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_spin", t => + { + t.HasComment("набор основных данных по SpinMaster"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.Property("MessageTemplate") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message_template"); + + b.HasKey("IdTelemetry", "IdEvent"); + + b.ToTable("t_telemetry_event", t => + { + t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Arg0") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg0") + .HasComment("Аргумент №0 для вставки в шаблон сообщения"); + + b.Property("Arg1") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg1"); + + b.Property("Arg2") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg2"); + + b.Property("Arg3") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg3"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdTelemetryUser") + .HasColumnType("integer") + .HasColumnName("id_telemetry_user") + .HasComment("Пользователь панели отправляющей телеметрию. не пользователь облака."); + + b.Property("WellDepth") + .HasColumnType("double precision") + .HasColumnName("well_depth"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_telemetry_message", t => + { + t.HasComment("Сообщения на буровых"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname"); + + b.HasKey("IdTelemetry", "IdUser"); + + b.ToTable("t_telemetry_user", t => + { + t.HasComment("Пользователи панели САУБ. Для сообщений."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryWirelineRunOut", b => + { + b.Property("IdTelemetry") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdTelemetry")); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_time") + .HasComment("Отметка времени"); + + b.Property("Hauling") + .HasColumnType("real") + .HasColumnName("hauling") + .HasComment("Наработка талевого каната с момента перетяжки каната, т*км"); + + b.Property("HaulingWarnSp") + .HasColumnType("real") + .HasColumnName("hauling_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости перетяжки, т*км"); + + b.Property("Replace") + .HasColumnType("real") + .HasColumnName("replace") + .HasComment("Наработка талевого каната с момента замены каната, т*км"); + + b.Property("ReplaceWarnSp") + .HasColumnType("real") + .HasColumnName("replace_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости замены, т*км"); + + b.HasKey("IdTelemetry"); + + b.ToTable("t_telemetry_wireline_run_out", t => + { + t.HasComment("Наработка талевого каната"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_fact", t => + { + t.HasComment("Загрузка фактической траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("Radius") + .HasColumnType("double precision") + .HasColumnName("radius") + .HasComment("Радиус цели"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_plan", t => + { + t.HasComment("Загрузка плановой траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("должность"); + + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdState") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("login"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("имя"); + + b.Property("PasswordHash") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("password_hash") + .HasComment("соленый хэш пароля.\nпервые 5 символов - соль"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("отчество"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("email"); + + b.Property("Surname") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("фамилия"); + + b.HasKey("Id"); + + b.HasIndex("IdCompany"); + + b.HasIndex("Login") + .IsUnique(); + + b.ToTable("t_user", t => + { + t.HasComment("Пользователи облака"); + }); + + b.HasData( + new + { + Id = 1, + Email = "", + IdCompany = 1, + IdState = (short)1, + Login = "dev", + Name = "Разработчик", + PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0-роль из стандартной матрицы, \n1-специальная роль для какого-либо пользователя"); + + b.HasKey("Id"); + + b.ToTable("t_user_role", t => + { + t.HasComment("Роли пользователей в системе"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "root", + IdType = 1 + }, + new + { + Id = 1100, + Caption = "admin_cluster.view", + IdType = 1 + }, + new + { + Id = 1101, + Caption = "admin_cluster.edit", + IdType = 1 + }, + new + { + Id = 1102, + Caption = "admin_company.view", + IdType = 1 + }, + new + { + Id = 1103, + Caption = "admin_company.edit", + IdType = 1 + }, + new + { + Id = 1104, + Caption = "admin_company_type.view", + IdType = 1 + }, + new + { + Id = 1105, + Caption = "admin_company_type.edit", + IdType = 1 + }, + new + { + Id = 1106, + Caption = "admin_deposit.view", + IdType = 1 + }, + new + { + Id = 1107, + Caption = "admin_deposit.edit", + IdType = 1 + }, + new + { + Id = 1108, + Caption = "admin_permission.view", + IdType = 1 + }, + new + { + Id = 1109, + Caption = "admin_permission.edit", + IdType = 1 + }, + new + { + Id = 1110, + Caption = "admin_role.view", + IdType = 1 + }, + new + { + Id = 1111, + Caption = "admin_role.edit", + IdType = 1 + }, + new + { + Id = 1112, + Caption = "admin_telemetry.view", + IdType = 1 + }, + new + { + Id = 1113, + Caption = "admin_user.view", + IdType = 1 + }, + new + { + Id = 1114, + Caption = "admin_user.edit", + IdType = 1 + }, + new + { + Id = 1115, + Caption = "admin_visit_log.view", + IdType = 1 + }, + new + { + Id = 1116, + Caption = "admin_well.view", + IdType = 1 + }, + new + { + Id = 1117, + Caption = "admin_well.edit", + IdType = 1 + }, + new + { + Id = 1200, + Caption = "archive.view", + IdType = 1 + }, + new + { + Id = 1201, + Caption = "cluster.view", + IdType = 1 + }, + new + { + Id = 1202, + Caption = "composite.view", + IdType = 1 + }, + new + { + Id = 1203, + Caption = "composite.edit", + IdType = 1 + }, + new + { + Id = 1204, + Caption = "deposit.view", + IdType = 1 + }, + new + { + Id = 1205, + Caption = "document.view", + IdType = 1 + }, + new + { + Id = 1206, + Caption = "drillProcessFlow.view", + IdType = 1 + }, + new + { + Id = 1207, + Caption = "drillProcessFlow.edit", + IdType = 1 + }, + new + { + Id = 1208, + Caption = "measure.view", + IdType = 1 + }, + new + { + Id = 1209, + Caption = "measure.edit", + IdType = 1 + }, + new + { + Id = 1210, + Caption = "message.view", + IdType = 1 + }, + new + { + Id = 1211, + Caption = "operations.view", + IdType = 1 + }, + new + { + Id = 1212, + Caption = "operations.edit", + IdType = 1 + }, + new + { + Id = 1213, + Caption = "params.view", + IdType = 1 + }, + new + { + Id = 1214, + Caption = "params.edit", + IdType = 1 + }, + new + { + Id = 1215, + Caption = "report.view", + IdType = 1 + }, + new + { + Id = 1216, + Caption = "report.edit", + IdType = 1 + }, + new + { + Id = 1217, + Caption = "setpoints.view", + IdType = 1 + }, + new + { + Id = 1218, + Caption = "setpoints.edit", + IdType = 1 + }, + new + { + Id = 1219, + Caption = "telemetry.view", + IdType = 1 + }, + new + { + Id = 1220, + Caption = "telemetryAnalysis.view", + IdType = 1 + }, + new + { + Id = 1221, + Caption = "well.view", + IdType = 1 + }, + new + { + Id = 1500, + Caption = "Просмотр всего", + IdType = 1 + }, + new + { + Id = 1501, + Caption = "file.edit", + IdType = 1 + }, + new + { + Id = 1502, + Caption = "drillingProgram.edit", + IdType = 1 + }, + new + { + Id = 2000, + Caption = "Заказчик", + IdType = 0 + }, + new + { + Id = 2001, + Caption = "Супервайзер", + IdType = 0 + }, + new + { + Id = 2002, + Caption = "Буровой подрядчик", + IdType = 0 + }, + new + { + Id = 2003, + Caption = "Растворщик", + IdType = 0 + }, + new + { + Id = 2004, + Caption = "Телеметрист", + IdType = 0 + }, + new + { + Id = 2005, + Caption = "Долотный сервис", + IdType = 0 + }, + new + { + Id = 2006, + Caption = "ГТИ", + IdType = 0 + }, + new + { + Id = 2007, + Caption = "Цементирование", + IdType = 0 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Key") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("key") + .HasComment("Ключ настроек пользователя"); + + b.Property("Value") + .HasColumnType("jsonb") + .HasColumnName("setting_value") + .HasComment("Значение настроек пользователя"); + + b.HasKey("IdUser", "Key"); + + b.ToTable("t_user_settings", t => + { + t.HasComment("настройки интерфейса пользователя"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.RecordBase", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Actcod") + .HasColumnType("smallint") + .HasColumnName("ACTCOD"); + + b.Property("Date") + .HasColumnType("integer") + .HasColumnName("DATE"); + + b.Property("Recid") + .HasColumnType("smallint") + .HasColumnName("RECID"); + + b.Property("Seqid") + .HasColumnType("integer") + .HasColumnName("SEQID"); + + b.Property("Stknum") + .HasColumnType("smallint") + .HasColumnName("STKNUM"); + + b.Property("Time") + .HasColumnType("integer") + .HasColumnName("TIME"); + + b.Property("Wellid") + .HasColumnType("text") + .HasColumnName("WELLID"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_wits_base"); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCluster") + .HasColumnType("integer") + .HasColumnName("id_cluster"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("0 - неизвестно, 1 - в работе, 2 - завершена"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdWellType") + .HasColumnType("integer") + .HasColumnName("id_well_type"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdCluster"); + + b.HasIndex("IdTelemetry") + .IsUnique(); + + b.HasIndex("IdWellType"); + + b.ToTable("t_well", t => + { + t.HasComment("скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины получателя"); + + b.Property("IdWellSrc") + .HasColumnType("integer") + .HasColumnName("id_well_src") + .HasComment("Id скважины композита"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции композита"); + + b.HasKey("IdWell", "IdWellSrc", "IdWellSectionType"); + + b.HasIndex("IdWellSectionType"); + + b.HasIndex("IdWellSrc"); + + b.ToTable("t_well_composite", t => + { + t.HasComment("Композитная скважина"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.HasKey("IdWell", "IdUser", "IdCategory") + .HasName("t_well_final_documents_pk"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_well_final_documents", t => + { + t.HasComment("Дело скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CategoryInfo") + .HasColumnType("text") + .HasColumnName("category_info") + .HasComment("Доп. информация к выбраной категории"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("DurationHours") + .HasColumnType("double precision") + .HasColumnName("duration_hours") + .HasComment("Продолжительность, часы"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdPlan") + .HasColumnType("integer") + .HasColumnName("id_plan") + .HasComment("Id плановой операции"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0 = План или 1 = Факт"); + + b.Property("IdUser") + .HasColumnType("integer"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции скважины"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("DateStart"); + + b.HasIndex("DepthEnd"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdPlan"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_well_operation", t => + { + t.HasComment("Данные по операциям на скважине"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("id родительской категории"); + + b.Property("IsHidden") + .HasColumnType("boolean"); + + b.Property("KeyValueName") + .HasMaxLength(32) + .HasColumnType("character varying(32)") + .HasColumnName("key_value_name") + .HasComment("Название ключевого показателя операции"); + + b.Property("KeyValueUnits") + .HasMaxLength(16) + .HasColumnType("character varying(16)") + .HasColumnName("key_value_units") + .HasComment("Единицы измерения ключевого показателя операции"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории операции"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_well_operation_category", t => + { + t.HasComment("Справочник операций на скважине"); + }); + + b.HasData( + new + { + Id = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "БУРЕНИЕ" + }, + new + { + Id = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КРЕПЛЕНИЕ" + }, + new + { + Id = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГФР" + }, + new + { + Id = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные операции" + }, + new + { + Id = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Непроизводительное время (НПВ)" + }, + new + { + Id = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные работы" + }, + new + { + Id = 4000, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КНБК" + }, + new + { + Id = 4001, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "Механическое. бурение" + }, + new + { + Id = 4002, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Статический замер" + }, + new + { + Id = 4003, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Нормализация диаметра скважины" + }, + new + { + Id = 4004, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 4005, + IdParent = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4006, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск обсадной колонны" + }, + new + { + Id = 4018, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Крепление" + }, + new + { + Id = 4007, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 4008, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы при креплении" + }, + new + { + Id = 4009, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка/разборка приборов ГИС" + }, + new + { + Id = 4010, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4011, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГИС" + }, + new + { + Id = 4012, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка, ОБР" + }, + new + { + Id = 4013, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы" + }, + new + { + Id = 4014, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт оборудования" + }, + new + { + Id = 4015, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Аварийные работы" + }, + new + { + Id = 4016, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Осложнение" + }, + new + { + Id = 4017, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Незаложенные в ГГД операции" + }, + new + { + Id = 4019, + IdParent = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные операции" + }, + new + { + Id = 5000, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка КНБК" + }, + new + { + Id = 5001, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка КНБК" + }, + new + { + Id = 5002, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение слайдом" + }, + new + { + Id = 5003, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение ротором" + }, + new + { + Id = 5004, + IdParent = 4002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Замер ЗТС (запись MWD)" + }, + new + { + Id = 5005, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка перед наращиванием" + }, + new + { + Id = 5006, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка во время бурения" + }, + new + { + Id = 5007, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка" + }, + new + { + Id = 5008, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка во время бурения" + }, + new + { + Id = 5009, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка перед наращиванием" + }, + new + { + Id = 5010, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 5011, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Удержание в клиньях" + }, + new + { + Id = 5012, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем инструмента" + }, + new + { + Id = 5013, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем КНБК" + }, + new + { + Id = 5014, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента" + }, + new + { + Id = 5015, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КНБК" + }, + new + { + Id = 5016, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка при спуске ОК" + }, + new + { + Id = 5017, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск ОК" + }, + new + { + Id = 5018, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ОЗЦ" + }, + new + { + Id = 5019, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 5020, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка БИ" + }, + new + { + Id = 5021, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ОК" + }, + new + { + Id = 5022, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при спуске ОК" + }, + new + { + Id = 5023, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при цементировании" + }, + new + { + Id = 5024, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка комплекса приборов ГИС" + }, + new + { + Id = 5025, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка комплекса приборов ГИС" + }, + new + { + Id = 5026, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем приборов ГИС (на трубах)" + }, + new + { + Id = 5027, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск приборов ГИС (на трубах)" + }, + new + { + Id = 5028, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на жестком кабеле" + }, + new + { + Id = 5029, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на кабеле" + }, + new + { + Id = 5030, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на трубах" + }, + new + { + Id = 5031, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Закачка/прокачка пачки" + }, + new + { + Id = 5032, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка БР" + }, + new + { + Id = 5033, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование ТС при бурении" + }, + new + { + Id = 5034, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перезапись гаммы-каротажа" + }, + new + { + Id = 5035, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Приготовление БР" + }, + new + { + Id = 5036, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка" + }, + new + { + Id = 5037, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разбуривание тех.оснастки" + }, + new + { + Id = 5038, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента с проработкой" + }, + new + { + Id = 5039, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ВМР" + }, + new + { + Id = 5040, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Демонтаж ПВО" + }, + new + { + Id = 5041, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Долив затруба при подъёме" + }, + new + { + Id = 5042, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж ПВО" + }, + new + { + Id = 5043, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наработка жёлоба" + }, + new + { + Id = 5044, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обвязка устья с циркуляционной системой" + }, + new + { + Id = 5045, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Оборудование устья" + }, + new + { + Id = 5046, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ПВО" + }, + new + { + Id = 5047, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перемонтаж ПВО " + }, + new + { + Id = 5048, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перетяжка талевого каната" + }, + new + { + Id = 5049, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при сборке КНБК" + }, + new + { + Id = 5050, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Полная замена талевого каната" + }, + new + { + Id = 5051, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПР перед забуркой направления" + }, + new + { + Id = 5052, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Продувка манифольда" + }, + new + { + Id = 5053, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Срезка" + }, + new + { + Id = 5054, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тайм-дриллинг" + }, + new + { + Id = 5055, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тех.отстой" + }, + new + { + Id = 5056, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Учебная тревога \"Выброс\"" + }, + new + { + Id = 5057, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Чистка ЦСГО/емкостного блока" + }, + new + { + Id = 5058, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт бурового оборудования" + }, + new + { + Id = 5059, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ловильные работы" + }, + new + { + Id = 5060, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ожидание" + }, + new + { + Id = 5061, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Определение места прихвата и ЛМ" + }, + new + { + Id = 5062, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа яссом" + }, + new + { + Id = 5063, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расхаживание" + }, + new + { + Id = 5064, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - колокол" + }, + new + { + Id = 5065, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - метчик" + }, + new + { + Id = 5066, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - овершот" + }, + new + { + Id = 5067, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - труболовка" + }, + new + { + Id = 5068, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (встряхивание)" + }, + new + { + Id = 5069, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (отстрел)" + }, + new + { + Id = 5070, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Установка ванн" + }, + new + { + Id = 5071, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Фрезеровка" + }, + new + { + Id = 5072, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Контролируемое ГНВП" + }, + new + { + Id = 5073, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Поглощение" + }, + new + { + Id = 5074, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сальникообразование" + }, + new + { + Id = 5075, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Утяжеление БР" + }, + new + { + Id = 5076, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "НПВ / прочее" + }, + new + { + Id = 5077, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка раствора (несоответствие параметров)" + }, + new + { + Id = 5078, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "подъем ОК" + }, + new + { + Id = 5079, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ревизия КНБК/инструмента/ЗТС" + }, + new + { + Id = 5082, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка устройства ориентирования КО" + }, + new + { + Id = 5083, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка принудительная" + }, + new + { + Id = 5084, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка подъем БИ, продувка" + }, + new + { + Id = 5085, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск бурильного инструмента со сборкой с мостков" + }, + new + { + Id = 5086, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем БИ с выбросом на мостки" + }, + new + { + Id = 5087, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск БИ со сборкой с мостков" + }, + new + { + Id = 5088, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка и спуск ТБТ" + }, + new + { + Id = 5089, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КО на транспортной колонне" + }, + new + { + Id = 5090, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Отворот допускной трубы" + }, + new + { + Id = 5091, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески, опрессовка" + }, + new + { + Id = 5092, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж, опрессовка ФА" + }, + new + { + Id = 5093, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка хвостовика 114мм (согласно схеме)" + }, + new + { + Id = 5094, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР к спуску УЭЦН" + }, + new + { + Id = 5095, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески (потайной колонны, хвостовика)" + }, + new + { + Id = 5096, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование перед спуском" + }, + new + { + Id = 5097, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка - перевод скважины на новый раствор" + }, + new + { + Id = 5098, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка БИ с мостков на подсвечник" + }, + new + { + Id = 5099, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО." + }, + new + { + Id = 5100, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Смена рабочего переводника ВСП" + }, + new + { + Id = 5101, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт" + }, + new + { + Id = 5102, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск пакера" + }, + new + { + Id = 5103, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Запись гамма-каратожа" + }, + new + { + Id = 5104, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование спуск БИ" + }, + new + { + Id = 5105, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка клин-отклонителя" + }, + new + { + Id = 5106, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и посадка клина-отклонителя" + }, + new + { + Id = 5107, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Протяжка подъемного патрубка подвески" + }, + new + { + Id = 5108, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем клина-отклонителя" + }, + new + { + Id = 5109, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Стыковка стингера с хвостовиком основного ствола" + }, + new + { + Id = 5110, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и установка стыковочного узла хвостовика" + }, + new + { + Id = 5111, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение с отбором керна" + }, + new + { + Id = 5112, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа пакером в обсадной колонне" + }, + new + { + Id = 5113, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение" + }, + new + { + Id = 5114, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ТО оборудования" + }, + new + { + Id = 5115, + IdParent = 4019, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск НКТ" + }, + new + { + Id = 5116, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вырезка окна" + }, + new + { + Id = 5117, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расширение ствола" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("Order") + .HasColumnType("real") + .HasColumnName("order") + .HasComment("Порядок"); + + b.HasKey("Id"); + + b.ToTable("t_well_section_type", t => + { + t.HasComment("конструкция секции скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Пилотный ствол", + Order = 4f + }, + new + { + Id = 2, + Caption = "Направление", + Order = 0f + }, + new + { + Id = 3, + Caption = "Кондуктор", + Order = 1f + }, + new + { + Id = 4, + Caption = "Эксплуатационная колонна", + Order = 3f + }, + new + { + Id = 5, + Caption = "Транспортный ствол", + Order = 5f + }, + new + { + Id = 6, + Caption = "Хвостовик", + Order = 6f + }, + new + { + Id = 7, + Caption = "Пилотный ствол 2", + Order = 4.1f + }, + new + { + Id = 8, + Caption = "Направление 2", + Order = 0.1f + }, + new + { + Id = 9, + Caption = "Кондуктор 2", + Order = 1.1f + }, + new + { + Id = 10, + Caption = "Эксплуатационная колонна 2", + Order = 3.1f + }, + new + { + Id = 11, + Caption = "Транспортный ствол 2", + Order = 5.1f + }, + new + { + Id = 12, + Caption = "Хвостовик 2", + Order = 6.1f + }, + new + { + Id = 13, + Caption = "Пилотный ствол 3", + Order = 4.2f + }, + new + { + Id = 14, + Caption = "Направление 3", + Order = 0.2f + }, + new + { + Id = 15, + Caption = "Кондуктор 3", + Order = 1.2f + }, + new + { + Id = 16, + Caption = "Эксплуатационная колонна 3", + Order = 3.2f + }, + new + { + Id = 17, + Caption = "Транспортный ствол 3", + Order = 5.2f + }, + new + { + Id = 18, + Caption = "Хвостовик 3", + Order = 6.2f + }, + new + { + Id = 19, + Caption = "Пилотный ствол 4", + Order = 4.3f + }, + new + { + Id = 20, + Caption = "Направление 4", + Order = 0.3f + }, + new + { + Id = 21, + Caption = "Кондуктор 4", + Order = 1.3f + }, + new + { + Id = 22, + Caption = "Эксплуатационная колонна 4", + Order = 3.3f + }, + new + { + Id = 23, + Caption = "Транспортный ствол 4", + Order = 5.3f + }, + new + { + Id = 24, + Caption = "Хвостовик 4", + Order = 6.3f + }, + new + { + Id = 25, + Caption = "Пилотный ствол 5", + Order = 4.4f + }, + new + { + Id = 26, + Caption = "Направление 5", + Order = 0.4f + }, + new + { + Id = 27, + Caption = "Кондуктор 5", + Order = 1.4f + }, + new + { + Id = 28, + Caption = "Эксплуатационная колонна 5", + Order = 3.4f + }, + new + { + Id = 29, + Caption = "Транспортный ствол 5", + Order = 5.4f + }, + new + { + Id = 30, + Caption = "Хвостовик 5", + Order = 6.4f + }, + new + { + Id = 31, + Caption = "Техническая колонна", + Order = 2f + }, + new + { + Id = 32, + Caption = "Техническая колонна 2", + Order = 2.1f + }, + new + { + Id = 33, + Caption = "Техническая колонна 3", + Order = 2.2f + }, + new + { + Id = 34, + Caption = "Хвостовик 6", + Order = 6.5f + }, + new + { + Id = 35, + Caption = "Хвостовик 7", + Order = 6.6f + }, + new + { + Id = 36, + Caption = "Хвостовик 8", + Order = 6.7f + }, + new + { + Id = 37, + Caption = "Хвостовик 9", + Order = 6.8f + }, + new + { + Id = 38, + Caption = "Хвостовик 10", + Order = 6.9f + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина бурения, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Начальная глубина бурения, м"); + + b.Property("IdSectionType") + .HasColumnType("integer") + .HasColumnName("id_section_type") + .HasComment("Тип секции"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("InnerDiameter") + .HasColumnType("double precision") + .HasColumnName("inner_diameter") + .HasComment("Внутренний диаметр"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("OuterDiameter") + .HasColumnType("double precision") + .HasColumnName("outer_diameter") + .HasComment("Внешний диаметр"); + + b.HasKey("Id"); + + b.HasIndex("IdSectionType"); + + b.HasIndex("IdWell", "IdSectionType") + .IsUnique(); + + b.ToTable("t_well_section_plan"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_well_type", t => + { + t.HasComment("конструкция скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Наклонно-направленная" + }, + new + { + Id = 2, + Caption = "Горизонтальная" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Blkpos") + .HasColumnType("real") + .HasColumnName("BLKPOS"); + + b.Property("Chkp") + .HasColumnType("real") + .HasColumnName("CHKP"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptretm") + .HasColumnType("real") + .HasColumnName("DEPTRETM"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Gasa") + .HasColumnType("real") + .HasColumnName("GASA"); + + b.Property("Hkla") + .HasColumnType("real") + .HasColumnName("HKLA"); + + b.Property("Hklx") + .HasColumnType("real") + .HasColumnName("HKLX"); + + b.Property("Lagstks") + .HasColumnType("smallint") + .HasColumnName("LAGSTKS"); + + b.Property("Mcia") + .HasColumnType("real") + .HasColumnName("MCIA"); + + b.Property("Mcoa") + .HasColumnType("real") + .HasColumnName("MCOA"); + + b.Property("Mdia") + .HasColumnType("real") + .HasColumnName("MDIA"); + + b.Property("Mdoa") + .HasColumnType("real") + .HasColumnName("MDOA"); + + b.Property("Mfia") + .HasColumnType("real") + .HasColumnName("MFIA"); + + b.Property("Mfoa") + .HasColumnType("real") + .HasColumnName("MFOA"); + + b.Property("Mfop") + .HasColumnType("smallint") + .HasColumnName("MFOP"); + + b.Property("Mtia") + .HasColumnType("real") + .HasColumnName("MTIA"); + + b.Property("Mtoa") + .HasColumnType("real") + .HasColumnName("MTOA"); + + b.Property("Ropa") + .HasColumnType("real") + .HasColumnName("ROPA"); + + b.Property("Rpma") + .HasColumnType("smallint") + .HasColumnName("RPMA"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spm1") + .HasColumnType("smallint") + .HasColumnName("SPM1"); + + b.Property("Spm2") + .HasColumnType("smallint") + .HasColumnName("SPM2"); + + b.Property("Spm3") + .HasColumnType("smallint") + .HasColumnName("SPM3"); + + b.Property("Sppa") + .HasColumnType("real") + .HasColumnName("SPPA"); + + b.Property("Stkc") + .HasColumnType("integer") + .HasColumnName("STKC"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.Property("Torqa") + .HasColumnType("real") + .HasColumnName("TORQA"); + + b.Property("Torqx") + .HasColumnType("real") + .HasColumnName("TORQX"); + + b.Property("Tvolact") + .HasColumnType("real") + .HasColumnName("TVOLACT"); + + b.Property("Tvolcact") + .HasColumnType("real") + .HasColumnName("TVOLCACT"); + + b.Property("Woba") + .HasColumnType("real") + .HasColumnName("WOBA"); + + b.Property("Wobx") + .HasColumnType("real") + .HasColumnName("WOBX"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_1"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("DeptmeasGdpMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_GDP_mc"); + + b.Property("DeptmeasMcrstat") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_MCRSTAT"); + + b.Property("DeptmeasRa33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33_mc"); + + b.Property("DeptmeasRa33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F2_mc"); + + b.Property("DeptmeasRa33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F4_mc"); + + b.Property("DeptmeasRp33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33_mc"); + + b.Property("DeptmeasRp33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F2_mc"); + + b.Property("DeptmeasRp33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F4_mc"); + + b.Property("DeptmeasSlvlMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_SLVL_mc"); + + b.Property("GdpMc") + .HasColumnType("real") + .HasColumnName("GDP_mc"); + + b.Property("Mcrstat") + .HasColumnType("real") + .HasColumnName("MCRSTAT"); + + b.Property("Ra33Mc") + .HasColumnType("real") + .HasColumnName("RA33_mc"); + + b.Property("Ra33f2Mc") + .HasColumnType("real") + .HasColumnName("RA33F2_mc"); + + b.Property("Ra33f4Mc") + .HasColumnType("real") + .HasColumnName("RA33F4_mc"); + + b.Property("Rp33Mc") + .HasColumnType("real") + .HasColumnName("RP33_mc"); + + b.Property("Rp33f2Mc") + .HasColumnType("real") + .HasColumnName("RP33F2_mc"); + + b.Property("Rp33f4Mc") + .HasColumnType("real") + .HasColumnName("RP33F4_mc"); + + b.Property("SlvlMc") + .HasColumnType("real") + .HasColumnName("SLVL_mc"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_50"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Btot") + .HasColumnType("real") + .HasColumnName("Btot"); + + b.Property("Bx") + .HasColumnType("real") + .HasColumnName("Bx"); + + b.Property("By") + .HasColumnType("real") + .HasColumnName("By"); + + b.Property("Bz") + .HasColumnType("real") + .HasColumnName("Bz"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Gtot") + .HasColumnType("real") + .HasColumnName("Gtot"); + + b.Property("Gx") + .HasColumnType("real") + .HasColumnName("Gx"); + + b.Property("Gy") + .HasColumnType("real") + .HasColumnName("Gy"); + + b.Property("Gz") + .HasColumnType("real") + .HasColumnName("Gz"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_60"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Att06h") + .HasColumnType("real") + .HasColumnName("ATT06H"); + + b.Property("Att06l") + .HasColumnType("real") + .HasColumnName("ATT06L"); + + b.Property("Att10h") + .HasColumnType("real") + .HasColumnName("ATT10H"); + + b.Property("Att10l") + .HasColumnType("real") + .HasColumnName("ATT10L"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Phl1f1") + .HasColumnType("real") + .HasColumnName("PHL1F1"); + + b.Property("Phl1f2") + .HasColumnType("real") + .HasColumnName("PHL1F2"); + + b.Property("Phl2f1") + .HasColumnType("real") + .HasColumnName("PHL2F1"); + + b.Property("Phl2f2") + .HasColumnType("real") + .HasColumnName("PHL2F2"); + + b.Property("Status") + .HasColumnType("real") + .HasColumnName("Status"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_61"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptsvym") + .HasColumnType("real") + .HasColumnName("DEPTSVYM"); + + b.Property("Deptsvyv") + .HasColumnType("real") + .HasColumnName("DEPTSVYV"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Svyazc") + .HasColumnType("real") + .HasColumnName("SVYAZC"); + + b.Property("Svyazu") + .HasColumnType("real") + .HasColumnName("SVYAZU"); + + b.Property("Svydls") + .HasColumnType("real") + .HasColumnName("SVYDLS"); + + b.Property("Svyew") + .HasColumnType("real") + .HasColumnName("SVYEW"); + + b.Property("Svygtf") + .HasColumnType("real") + .HasColumnName("SVYGTF"); + + b.Property("Svyinc") + .HasColumnType("real") + .HasColumnName("SVYINC"); + + b.Property("Svymtf") + .HasColumnType("real") + .HasColumnName("SVYMTF"); + + b.Property("Svyns") + .HasColumnType("real") + .HasColumnName("SVYNS"); + + b.Property("Svytype") + .HasColumnType("text") + .HasColumnName("SVYTYPE"); + + b.Property("Svywalk") + .HasColumnType("real") + .HasColumnName("SVYWALK"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_7"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptcalm") + .HasColumnType("real") + .HasColumnName("DEPTCALM"); + + b.Property("Deptcalv") + .HasColumnType("real") + .HasColumnName("DEPTCALV"); + + b.Property("Deptfdm") + .HasColumnType("real") + .HasColumnName("DEPTFDM"); + + b.Property("Deptfdv") + .HasColumnType("real") + .HasColumnName("DEPTFDV"); + + b.Property("Deptgr1m") + .HasColumnType("real") + .HasColumnName("DEPTGR1M"); + + b.Property("Deptgr1v") + .HasColumnType("real") + .HasColumnName("DEPTGR1V"); + + b.Property("Deptgr2m") + .HasColumnType("real") + .HasColumnName("DEPTGR2M"); + + b.Property("Deptgr2v") + .HasColumnType("real") + .HasColumnName("DEPTGR2V"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptp1m") + .HasColumnType("real") + .HasColumnName("DEPTP1M"); + + b.Property("Deptp1v") + .HasColumnType("real") + .HasColumnName("DEPTP1V"); + + b.Property("Deptp2m") + .HasColumnType("real") + .HasColumnName("DEPTP2M"); + + b.Property("Deptp2v") + .HasColumnType("real") + .HasColumnName("DEPTP2V"); + + b.Property("Deptrs1m") + .HasColumnType("real") + .HasColumnName("DEPTRS1M"); + + b.Property("Deptrs1v") + .HasColumnType("real") + .HasColumnName("DEPTRS1V"); + + b.Property("Deptrs2m") + .HasColumnType("real") + .HasColumnName("DEPTRS2M"); + + b.Property("Deptrs2v") + .HasColumnType("real") + .HasColumnName("DEPTRS2V"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Mclp") + .HasColumnType("real") + .HasColumnName("MCLP"); + + b.Property("Mfd") + .HasColumnType("real") + .HasColumnName("MFD"); + + b.Property("Mffp") + .HasColumnType("real") + .HasColumnName("MFFP"); + + b.Property("Mfpp") + .HasColumnType("real") + .HasColumnName("MFPP"); + + b.Property("Mfrann") + .HasColumnType("real") + .HasColumnName("MFRANN"); + + b.Property("Mfrpipe") + .HasColumnType("real") + .HasColumnName("MFRPIPE"); + + b.Property("Mftann") + .HasColumnType("real") + .HasColumnName("MFTANN"); + + b.Property("Mftpipe") + .HasColumnType("real") + .HasColumnName("MFTPIPE"); + + b.Property("Mg1") + .HasColumnType("real") + .HasColumnName("MG1"); + + b.Property("Mg1c") + .HasColumnType("real") + .HasColumnName("MG1C"); + + b.Property("Mg2") + .HasColumnType("real") + .HasColumnName("MG2"); + + b.Property("Mg2c") + .HasColumnType("real") + .HasColumnName("MG2C"); + + b.Property("Mpo1") + .HasColumnType("real") + .HasColumnName("MPO1"); + + b.Property("Mpo2") + .HasColumnType("real") + .HasColumnName("MPO2"); + + b.Property("Mr1") + .HasColumnType("real") + .HasColumnName("MR1"); + + b.Property("Mr1c") + .HasColumnType("real") + .HasColumnName("MR1C"); + + b.Property("Mr2") + .HasColumnType("real") + .HasColumnName("MR2"); + + b.Property("Mr2c") + .HasColumnType("real") + .HasColumnName("MR2C"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spare6") + .HasColumnType("real") + .HasColumnName("SPARE6"); + + b.Property("Spare7") + .HasColumnType("real") + .HasColumnName("SPARE7"); + + b.Property("Spare8") + .HasColumnType("real") + .HasColumnName("SPARE8"); + + b.Property("Spare9") + .HasColumnType("real") + .HasColumnName("SPARE9"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_8"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.HasOne("AsbCloudDb.Model.Deposit", "Deposit") + .WithMany("Clusters") + .HasForeignKey("IdDeposit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_cluster_t_deposit_id_fk"); + + b.Navigation("Deposit"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Companies") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Contacts") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("Contacts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdFileCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("DrillingProgramParts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.HasOne("AsbCloudDb.Model.User", "AuthorAnswer") + .WithMany() + .HasForeignKey("IdAuthorAnswer"); + + b.HasOne("AsbCloudDb.Model.User", "AuthorQuestion") + .WithMany() + .HasForeignKey("IdAuthorQuestion") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuthorAnswer"); + + b.Navigation("AuthorQuestion"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany("Files") + .HasForeignKey("IdAuthor"); + + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "FileInfo") + .WithMany("FileMarks") + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_file_mark_t_file_info_fk"); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("FileMarks") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_user_t_file_mark_fk"); + + b.Navigation("FileInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Directory") + .WithMany("Manuals") + .HasForeignKey("IdDirectory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Category"); + + b.Navigation("Directory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Parent") + .WithMany("Children") + .HasForeignKey("IdParent") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.HasOne("AsbCloudDb.Model.MeasureCategory", "Category") + .WithMany("Measures") + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.HasOne("AsbCloudDb.Model.NotificationCategory", "NotificationCategory") + .WithMany("Notifications") + .HasForeignKey("IdNotificationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("NotificationCategory"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdOperationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_user~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_well~1"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_company_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_well_id_fk"); + + b.Navigation("Company"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationContactsWells") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.DrillingProgramPart", "DrillingProgramPart") + .WithMany("RelatedUsers") + .HasForeignKey("IdDrillingProgramPart") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DrillingProgramPart"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.HasOne("AsbCloudDb.Model.Permission", "Permission") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdPermission") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.HasOne("AsbCloudDb.Model.UserRole", "Role") + .WithMany("RelationUserRoleUserRoles") + .HasForeignKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "IncludeRole") + .WithMany() + .HasForeignKey("IdInclude") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("IncludeRole"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "File") + .WithMany() + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.HasOne("AsbCloudDb.Model.Driller", "Driller") + .WithMany("Schedule") + .HasForeignKey("IdDriller") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_schedule_t_driller_id_driller"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Driller"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSaub") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_saub_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSpin") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_spin_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Events") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_event_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Messages") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_messages_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Users") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_user_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("Users") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("t_user_t_company_id_fk"); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.HasOne("AsbCloudDb.Model.Cluster", "Cluster") + .WithMany("Wells") + .HasForeignKey("IdCluster") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_t_cluster_id_fk"); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithOne("Well") + .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("t_well_t_telemetry_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellType", "WellType") + .WithMany("Wells") + .HasForeignKey("IdWellType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cluster"); + + b.Navigation("Telemetry"); + + b.Navigation("WellType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellComposites") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellComposites") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_section_type_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "WellSrc") + .WithMany("WellCompositeSrcs") + .HasForeignKey("IdWellSrc") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_src_t_well_id_fk"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + + b.Navigation("WellSrc"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellOperation", "OperationPlan") + .WithMany() + .HasForeignKey("IdPlan") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellOperations") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellOperations") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("OperationPlan"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Parent") + .WithMany() + .HasForeignKey("IdParent"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.HasOne("AsbCloudDb.Model.WellSectionType", "SectionType") + .WithMany() + .HasForeignKey("IdSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SectionType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record1", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record50", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record60", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record61", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record7", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record8", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Navigation("Wells"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Navigation("RelationCompaniesWells"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Navigation("Companies"); + + b.Navigation("Contacts"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Navigation("Clusters"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Navigation("Schedule"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Navigation("RelatedUsers"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Navigation("FileMarks"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Navigation("Children"); + + b.Navigation("Manuals"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Navigation("Measures"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Navigation("Notifications"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Navigation("RelationUserRolePermissions"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Navigation("DataSaub"); + + b.Navigation("DataSpin"); + + b.Navigation("Events"); + + b.Navigation("Messages"); + + b.Navigation("Users"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Navigation("FileMarks"); + + b.Navigation("Files"); + + b.Navigation("RelationContactsWells"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Navigation("RelationUserRolePermissions"); + + b.Navigation("RelationUserRoleUserRoles"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Navigation("Contacts"); + + b.Navigation("DrillingProgramParts"); + + b.Navigation("RelationCompaniesWells"); + + b.Navigation("WellCompositeSrcs"); + + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Navigation("Wells"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.cs b/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.cs new file mode 100644 index 00000000..14848042 --- /dev/null +++ b/AsbCloudDb/Migrations/20240701051003_Update_Tables_ProcessMapOperationsAndFunctions.cs @@ -0,0 +1,142 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + /// + public partial class Update_Tables_ProcessMapOperationsAndFunctions : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "buckling", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropColumn( + name: "zenit_angle", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.AddColumn( + name: "note", + table: "t_process_map_plan_tf_orientation", + type: "character varying(1024)", + maxLength: 1024, + nullable: false, + defaultValue: "", + comment: "Примечание"); + + migrationBuilder.AddColumn( + name: "note", + table: "t_process_map_plan_static_measurement_output", + type: "character varying(1024)", + maxLength: 1024, + nullable: false, + defaultValue: "", + comment: "Примечание"); + + migrationBuilder.AddColumn( + name: "rpm", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Обороты на ВСП уставка, об/мин."); + + migrationBuilder.AddColumn( + name: "rpm_max", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Обороты на ВСП ограничение, об/мин."); + + migrationBuilder.AddColumn( + name: "top_drive_torque", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Момент на ВСП уставка, кН*м."); + + migrationBuilder.AddColumn( + name: "top_drive_torque_max", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Момент на ВСП ограничение, кН*м."); + + migrationBuilder.AddColumn( + name: "note", + table: "t_process_map_plan_operation_switching_off_the_pump", + type: "character varying(1024)", + maxLength: 1024, + nullable: false, + defaultValue: "", + comment: "Примечание"); + + migrationBuilder.AddColumn( + name: "note", + table: "t_process_map_plan_anti_crash_rotation", + type: "character varying(1024)", + maxLength: 1024, + nullable: false, + defaultValue: "", + comment: "Примечание"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "note", + table: "t_process_map_plan_tf_orientation"); + + migrationBuilder.DropColumn( + name: "note", + table: "t_process_map_plan_static_measurement_output"); + + migrationBuilder.DropColumn( + name: "rpm", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropColumn( + name: "rpm_max", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropColumn( + name: "top_drive_torque", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropColumn( + name: "top_drive_torque_max", + table: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropColumn( + name: "note", + table: "t_process_map_plan_operation_switching_off_the_pump"); + + migrationBuilder.DropColumn( + name: "note", + table: "t_process_map_plan_anti_crash_rotation"); + + migrationBuilder.AddColumn( + name: "buckling", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Складывание, м"); + + migrationBuilder.AddColumn( + name: "zenit_angle", + table: "t_process_map_plan_rotor_rpm_acceleration", + type: "double precision", + nullable: false, + defaultValue: 0.0, + comment: "Зенитный угол, градусы"); + } + } +} diff --git a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs index f2af7c9e..27444c99 100644 --- a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs +++ b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs @@ -2684,6 +2684,13 @@ namespace AsbCloudDb.Migrations .HasColumnName("id_wellsection_type") .HasComment("Тип секции"); + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + b.Property("Obsolete") .HasColumnType("timestamp with time zone") .HasColumnName("obsolete") @@ -3297,6 +3304,13 @@ namespace AsbCloudDb.Migrations .HasColumnName("id_wellsection_type") .HasComment("Тип секции"); + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + b.Property("Obsolete") .HasColumnType("timestamp with time zone") .HasColumnName("obsolete") @@ -4741,11 +4755,6 @@ namespace AsbCloudDb.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - b.Property("Buckling") - .HasColumnType("double precision") - .HasColumnName("buckling") - .HasComment("Складывание, м"); - b.Property("Creation") .HasColumnType("timestamp with time zone") .HasColumnName("creation") @@ -4803,10 +4812,25 @@ namespace AsbCloudDb.Migrations .HasColumnName("obsolete") .HasComment("дата устаревания"); - b.Property("ZenithAngle") + b.Property("Rpm") .HasColumnType("double precision") - .HasColumnName("zenit_angle") - .HasComment("Зенитный угол, градусы"); + .HasColumnName("rpm") + .HasComment("Обороты на ВСП уставка, об/мин."); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП ограничение, об/мин."); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП уставка, кН*м."); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП ограничение, кН*м."); b.HasKey("Id"); @@ -5126,6 +5150,13 @@ namespace AsbCloudDb.Migrations .HasColumnName("id_wellsection_type") .HasComment("Тип секции"); + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + b.Property("Obsolete") .HasColumnType("timestamp with time zone") .HasColumnName("obsolete") @@ -5329,6 +5360,13 @@ namespace AsbCloudDb.Migrations .HasColumnName("interval") .HasComment("Интервал расхаживания, м."); + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + b.Property("Obsolete") .HasColumnType("timestamp with time zone") .HasColumnName("obsolete") diff --git a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs index 2edc1178..ab4897a2 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotation.cs @@ -23,6 +23,9 @@ public class ProcessMapPlanAntiCrashRotation : ProcessMapPlanBase [Required] public double TopDriveTorqueMax { get; set; } + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanAntiCrashRotation? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs index 3ab6fabc..5b83873f 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutput.cs @@ -13,6 +13,9 @@ public class ProcessMapPlanStaticMeasurementOutput : ProcessMapPlanBase [Required] public double SignalWaitingTime { get; set; } + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanStaticMeasurementOutput? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs index fde0d0c4..d6eb9564 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs @@ -8,15 +8,25 @@ namespace AsbCloudDb.Model.ProcessMapPlan.Operations; [Table("t_process_map_plan_rotor_rpm_acceleration"), Comment("Выход на обороты перед ротором")] public class ProcessMapPlanRotorRpmAcceleration : ProcessMapPlanBase { - [Column("zenit_angle"), Comment("Зенитный угол, градусы")] - [Range(0.0, 100.0)] + [Column("top_drive_torque"), Comment("Момент на ВСП уставка, кН*м.")] + [Range(0.0, 35.0)] [Required] - public double ZenithAngle { get; set; } + public double TopDriveTorque { get; set; } - [Column("buckling"), Comment("Складывание, м")] - [Range(0.0, 20.0)] + [Column("top_drive_torque_max"), Comment("Момент на ВСП ограничение, кН*м.")] + [Range(0.0, 35.0)] [Required] - public double Buckling { get; set; } + public double TopDriveTorqueMax { get; set; } + + [Column("rpm"), Comment("Обороты на ВСП уставка, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double Rpm { get; set; } + + [Column("rpm_max"), Comment("Обороты на ВСП ограничение, об/мин.")] + [Range(0.0, 270.0)] + [Required] + public double RpmMax { get; set; } [Column("note"), Comment("Примечание"), StringLength(1024)] public string Note { get; set; } = string.Empty; diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs index 4a142c49..78a0a91d 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePump.cs @@ -17,6 +17,9 @@ public class ProcessMapPlanSwitchingOffThePump : ProcessMapPlanBase [Range(0.0, 100.0)] public double ResidualPressureLimit { get; set; } + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanSwitchingOffThePump? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs index 12c8b523..79247ad9 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanTFOrientation.cs @@ -78,6 +78,9 @@ public class ProcessMapPlanTFOrientation : ProcessMapPlanBase [Required] public double StopPointOffBottom { get; set; } + [Column("note"), Comment("Примечание"), StringLength(1024)] + public string Note { get; set; } = string.Empty; + [ForeignKey(nameof(IdPrevious))] public virtual ProcessMapPlanTFOrientation? Previous { get; set; } } \ No newline at end of file diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs index 3e268550..2e19ba28 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs @@ -28,9 +28,7 @@ public class ProcessMapPlanRotorRpmAccelerationControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, - Buckling = 1, Note = "1", - ZenithAngle = 1, }; private readonly ProcessMapPlanRotorRpmAcceleration entity = new ProcessMapPlanRotorRpmAcceleration() @@ -43,9 +41,7 @@ public class ProcessMapPlanRotorRpmAccelerationControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, - Buckling = 1, Note = "1", - ZenithAngle = 1, }; [Fact] From 8944591a8711aba609bad2c5b047819d32540af7 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Mon, 1 Jul 2024 12:03:08 +0500 Subject: [PATCH 73/74] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Operations/ProcessMapPlanRotor.cs | 2 +- ...sMapPlanAntiCrashRotationControllerTest.cs | 14 +++++-- .../ProcessMapPlanAutoHoldTFControllerTest.cs | 4 +- .../ProcessMapPlanDamperControllerTest.cs | 6 +-- .../ProcessMapPlanDrillTestControllerTest.cs | 14 +++++-- ...ProcessMapPlanOscillationControllerTest.cs | 16 ++++++-- .../ProcessMapPlanShockTestControllerTest.cs | 10 +++-- ...anStaticMeasurementOutputControllerTest.cs | 6 ++- ...nUpdatingNoloadParametersControllerTest.cs | 6 +-- ...rocessMapPlanLoadCapacityControllerTest.cs | 2 +- ...sMapPlanOscillationAnglesControllerTest.cs | 12 +++++- ...anPositioningOffTheBottomControllerTest.cs | 30 ++++++++++++-- ...rocessMapPlanReamingRotorControllerTest.cs | 40 ++++++++++++++++++- ...rocessMapPlanReamingSlideControllerTest.cs | 2 +- ...ecordingStaticMeasurementControllerTest.cs | 4 +- .../ProcessMapPlanRotorControllerTest.cs | 4 +- ...pPlanRotorRpmAccelerationControllerTest.cs | 21 +++++----- .../ProcessMapPlanSlideControllerTest.cs | 4 +- ...apPlanSwitchingOffThePumpControllerTest.cs | 6 ++- ...MapPlanSwitchingToTheModeControllerTest.cs | 10 ++++- ...ocessMapPlanTFOrientationControllerTest.cs | 32 +++++++++++++-- 21 files changed, 191 insertions(+), 54 deletions(-) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanAntiCrashRotationControllerTest.cs (80%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanAutoHoldTFControllerTest.cs (93%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanDamperControllerTest.cs (92%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanDrillTestControllerTest.cs (84%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanOscillationControllerTest.cs (82%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanShockTestControllerTest.cs (90%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanStaticMeasurementOutputControllerTest.cs (91%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Functions}/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs (92%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Operations}/ProcessMapPlanOscillationAnglesControllerTest.cs (87%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Operations}/ProcessMapPlanRotorControllerTest.cs (99%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Operations}/ProcessMapPlanSlideControllerTest.cs (99%) rename AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/{ => Operations}/ProcessMapPlanSwitchingOffThePumpControllerTest.cs (91%) diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs index 5d6203e0..3f0d5218 100644 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs +++ b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotor.cs @@ -16,7 +16,7 @@ public class ProcessMapPlanRotor : ProcessMapPlanBase [Column("pressure_max"), Comment("Максимально допустимое давление, атм")] [Range(0.0, 400.0)] [Required] - public double PressureLimitMax { get; set; } + public double PressureMax { get; set; } [Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")] [Range(0.0, 60.0)] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotationControllerTest.cs similarity index 80% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotationControllerTest.cs index cb01881b..b2b72f9a 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAntiCrashRotationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAntiCrashRotationControllerTest.cs @@ -5,7 +5,7 @@ using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план противоаварийное вращение @@ -13,7 +13,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanAntiCrashRotationControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanAntiCrashRotationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAnticrashRotation") + public ProcessMapPlanAntiCrashRotationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanAntiCrashRotation") { } private readonly ProcessMapPlanAntiCrashRotationDto dto = new ProcessMapPlanAntiCrashRotationDto() @@ -23,6 +23,10 @@ public class ProcessMapPlanAntiCrashRotationControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, + Note = "1", + TopDriveRpmMin = 1, + TopDriveStartMinFlowRate = 1, + TopDriveTorqueMax = 1, }; private readonly ProcessMapPlanAntiCrashRotation entity = new ProcessMapPlanAntiCrashRotation() @@ -34,7 +38,11 @@ public class ProcessMapPlanAntiCrashRotationControllerTest : IdWellSectionType = 1, IdAuthor = 1, IdEditor = 1, - Creation = DateTimeOffset.UtcNow + Creation = DateTimeOffset.UtcNow, + Note = "1", + TopDriveRpmMin = 1, + TopDriveStartMinFlowRate = 1, + TopDriveTorqueMax = 1 }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTFControllerTest.cs similarity index 93% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTFControllerTest.cs index ec1eb6d7..5ed9a6a9 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanAutoHoldTFControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanAutoHoldTFControllerTest.cs @@ -10,7 +10,7 @@ using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план автоудержание @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanAutoHoldTFControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanAutoHoldTFControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsAutoHold") + public ProcessMapPlanAutoHoldTFControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanAutoHoldTF") { } private readonly ProcessMapPlanAutoHoldTFDto dto = new ProcessMapPlanAutoHoldTFDto() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDamperControllerTest.cs similarity index 92% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDamperControllerTest.cs index 64a6193a..fb174196 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDamperControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDamperControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план демпфер @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanDamperControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanDamperControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDamper") + public ProcessMapPlanDamperControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanDamper") { } private readonly ProcessMapPlanDamperDto dto = new ProcessMapPlanDamperDto() @@ -29,7 +29,7 @@ public class ProcessMapPlanDamperControllerTest : Id = 0, IdWellSectionType = 1, Note = "1", - StickSlip = 1 + StickSlip = 1, }; private readonly ProcessMapPlanDamper entity = new ProcessMapPlanDamper() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDrillTestControllerTest.cs similarity index 84% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDrillTestControllerTest.cs index df61b16f..3d6eb0ff 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanDrillTestControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план дрилтест @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanDrillTestControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanDrillTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsDrillTest") + public ProcessMapPlanDrillTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanDrillTest") { } private readonly ProcessMapPlanDrillTestDto dto = new ProcessMapPlanDrillTestDto() @@ -30,7 +30,10 @@ public class ProcessMapPlanDrillTestControllerTest : IdWellSectionType = 1, LengthStep = 1, Note = "1", - WeightOnBitMin = 1 + WeightOnBitMin = 1, + RpmMin = 1, + RpmStepsCount = 1, + WeightOnBitStepsCount = 1, }; private readonly ProcessMapPlanDrillTest entity = new ProcessMapPlanDrillTest() @@ -45,7 +48,10 @@ public class ProcessMapPlanDrillTestControllerTest : Creation = DateTimeOffset.UtcNow, LengthStep = 1, Note = "1", - WeightOnBitMin = 1 + WeightOnBitMin = 1, + RpmMin = 1, + RpmStepsCount = 1, + WeightOnBitStepsCount = 1 }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanOscillationControllerTest.cs similarity index 82% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanOscillationControllerTest.cs index 5dc42899..860904e1 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanOscillationControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план осцилляция @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanOscillationControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanOscillationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsOscillation") + public ProcessMapPlanOscillationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOscillation") { } private readonly ProcessMapPlanOscillationDto dto = new ProcessMapPlanOscillationDto() @@ -30,7 +30,11 @@ public class ProcessMapPlanOscillationControllerTest : IdWellSectionType = 1, Mode = 1, Note = "1", - OptimalOscillationAngle = 1 + OptimalOscillationAngle = 1, + RpmLeft = 1, + RpmRight = 2, + TorqueMaxLeft = 2, + TorqueMaxRight = 3 }; private readonly ProcessMapPlanOscillation entity = new ProcessMapPlanOscillation() @@ -45,7 +49,11 @@ public class ProcessMapPlanOscillationControllerTest : Creation = DateTimeOffset.UtcNow, Mode = 1, Note = "1", - OptimalOscillationAngle = 1 + OptimalOscillationAngle = 1, + RpmLeft = 1, + RpmRight = 2, + TorqueMaxLeft = 2, + TorqueMaxRight = 3 }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanShockTestControllerTest.cs similarity index 90% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanShockTestControllerTest.cs index 333755f2..3a0f8994 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanShockTestControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanShockTestControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план shock test @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanShockTestControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsShockTest") + public ProcessMapPlanShockTestControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanShockTest") { } private readonly ProcessMapPlanShockTestDto dto = new ProcessMapPlanShockTestDto() @@ -33,7 +33,8 @@ public class ProcessMapPlanShockTestControllerTest : Note = "1", StickSlip = 1, WeightOnBitMin = 1, - Whirl = 1 + Whirl = 1, + RpmMin = 1, }; private readonly ProcessMapPlanShockTest entity = new ProcessMapPlanShockTest() @@ -51,7 +52,8 @@ public class ProcessMapPlanShockTestControllerTest : Note = "1", StickSlip = 1, WeightOnBitMin = 1, - Whirl = 1 + Whirl = 1, + RpmMin = 1, }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutputControllerTest.cs similarity index 91% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutputControllerTest.cs index 961c4e00..589ab64a 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanStaticMeasurementOutputControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanStaticMeasurementOutputControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план выход статического замера @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanStaticMeasurementOutputControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanStaticMeasurementOutputControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsStaticMeasure") + public ProcessMapPlanStaticMeasurementOutputControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanStaticMeasurementOutput") { } private readonly ProcessMapPlanStaticMeasurementOutputDto dto = new ProcessMapPlanStaticMeasurementOutputDto() @@ -29,6 +29,7 @@ public class ProcessMapPlanStaticMeasurementOutputControllerTest : Id = 0, IdWellSectionType = 1, SignalWaitingTime = 1, + Note = "1" }; private readonly ProcessMapPlanStaticMeasurementOutput entity = new ProcessMapPlanStaticMeasurementOutput() @@ -42,6 +43,7 @@ public class ProcessMapPlanStaticMeasurementOutputControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, SignalWaitingTime = 1, + Note = "1" }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs similarity index 92% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs index d7104b92..5e995aef 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParametersControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Functions; using AsbCloudApp.Data.ProcessMaps.Functions; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Functions; /// /// РТК план обновление холостого хода @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanUpdatingNoloadParametersControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanUpdatingNoloadParametersControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsUpgradeNoload") + public ProcessMapPlanUpdatingNoloadParametersControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanUpdatingNoloadParameters") { } private readonly ProcessMapPlanUpdatingNoloadParametersDto dto = new ProcessMapPlanUpdatingNoloadParametersDto() @@ -29,7 +29,7 @@ public class ProcessMapPlanUpdatingNoloadParametersControllerTest : Id = 0, IdWellSectionType = 1, IdDeclineSocketColumn = true, - Note = "1" + Note = "1", }; private readonly ProcessMapPlanUpdatingNoloadParameters entity = new ProcessMapPlanUpdatingNoloadParameters() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs index bf1c6766..fede306e 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanLoadCapacityControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanLoadCapacityControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanLoadCapacityControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationLoadCapacity") + public ProcessMapPlanLoadCapacityControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanLoadCapacity") { } private readonly ProcessMapPlanLoadCapacityDto dto = new ProcessMapPlanLoadCapacityDto() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanOscillationAnglesControllerTest.cs similarity index 87% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanOscillationAnglesControllerTest.cs index 7c47f57c..3cbb7cb7 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanOscillationAnglesControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanOscillationAnglesControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudApp.Data.ProcessMaps.Operations; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план определения углов осцилляции @@ -28,6 +28,11 @@ public class ProcessMapPlanOscillationAnglesControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, + Note = "1", + Rpm = 1, + RpmMax = 2, + TopDriveTorque = 2, + TopDriveTorqueMax = 3, }; private readonly ProcessMapPlanOscillationAngles entity = new ProcessMapPlanOscillationAngles() @@ -40,6 +45,11 @@ public class ProcessMapPlanOscillationAnglesControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, + Note = "1", + Rpm = 1, + RpmMax = 2, + TopDriveTorque = 2, + TopDriveTorqueMax = 3, }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs index 2bbff2f5..c2df1072 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanPositioningOffTheBottomControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanPositioningOffTheBottomControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanPositioningOffTheBottomControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationPositioningOffTheBottom") + public ProcessMapPlanPositioningOffTheBottomControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanPositioningOffTheBottom") { } private readonly ProcessMapPlanPositioningOffTheBottomDto dto = new ProcessMapPlanPositioningOffTheBottomDto() @@ -28,7 +28,19 @@ public class ProcessMapPlanPositioningOffTheBottomControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, - StopOffTheBottom = 1 + StopOffTheBottom = 1, + DifferentialPressure = 1, + FlowRateDown = 1, + FlowRateUp = 1, + Note = "1", + RopDown = 1, + RopUp = 1, + PressureMax = 1, + RpmDown = 1, + RpmUp = 1, + SlackingOff = 1, + Tight = 1, + TorqueMax = 1 }; private readonly ProcessMapPlanPositioningOffTheBottom entity = new ProcessMapPlanPositioningOffTheBottom() @@ -41,7 +53,19 @@ public class ProcessMapPlanPositioningOffTheBottomControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, - StopOffTheBottom = 1 + StopOffTheBottom = 1, + DifferentialPressure = 1, + FlowRateDown = 1, + FlowRateUp = 1, + Note = "1", + RopDown = 1, + RopUp = 1, + PressureMax = 1, + RpmDown = 1, + RpmUp = 1, + SlackingOff = 1, + Tight = 1, + TorqueMax = 1 }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs index 6acd2a1c..c2f884ca 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingRotorControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanReamingRotorControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingRotor") + public ProcessMapPlanReamingRotorControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanReamingRotor") { } private readonly ProcessMapPlanReamingRotorDto dto = new ProcessMapPlanReamingRotorDto() @@ -42,6 +42,25 @@ public class ProcessMapPlanReamingRotorControllerTest : Reaming2StopPointOffBottom = 1, Reaming3Interval = 2, Reaming3StopPointOffBottom = 4, + Reaming3RopDown = 5, + TorqueMax = 6, + Tight = 6, + SlackingOff = 7, + PressureMax = 8, + Reaming1RepetitionsCount = 9, + Reaming1RopDown = 10, + Reaming1RopUp = 11, + Reaming1RpmDown = 12, + Reaming1RpmUp = 13, + Reaming2RpmDown = 14, + Reaming2RepetitionsCount = 15, + Reaming2RopDown = 16, + Reaming2RopUp = 17, + Reaming3RpmDown = 18, + Reaming3RpmUp = 19, + Reaming2RpmUp = 20, + Reaming3RepetitionsCount = 20, + Reaming3RopUp = 21, }; private readonly ProcessMapPlanReamingRotor entity = new ProcessMapPlanReamingRotor() @@ -68,6 +87,25 @@ public class ProcessMapPlanReamingRotorControllerTest : Reaming2StopPointOffBottom = 1, Reaming3Interval = 2, Reaming3StopPointOffBottom = 4, + Reaming3RopDown = 5, + TorqueMax = 6, + Tight = 6, + SlackingOff = 7, + PressureMax = 8, + Reaming1RepetitionsCount = 9, + Reaming1RopDown = 10, + Reaming1RopUp = 11, + Reaming1RpmDown = 12, + Reaming1RpmUp = 13, + Reaming2RpmDown = 14, + Reaming2RepetitionsCount = 15, + Reaming2RopDown = 16, + Reaming2RopUp = 17, + Reaming3RpmDown = 18, + Reaming3RpmUp = 19, + Reaming2RpmUp = 20, + Reaming3RepetitionsCount = 20, + Reaming3RopUp = 21, }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs index 40216e41..d9ab7862 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanReamingSlideControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanReamingSlideControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanReamingSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationReamingSlide") + public ProcessMapPlanReamingSlideControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanReamingSlide") { } private readonly ProcessMapPlanReamingSlideDto dto = new ProcessMapPlanReamingSlideDto() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs index dc5fb7d4..b8f59b6f 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRecordingStaticMeasurementControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanRecordingStaticMeasurementControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanRecordingStaticMeasurementControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSurvey") + public ProcessMapPlanRecordingStaticMeasurementControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanRecordingStaticMeasurement") { } private readonly ProcessMapPlanRecordingStaticMeasurementDto dto = new ProcessMapPlanRecordingStaticMeasurementDto() @@ -29,6 +29,7 @@ public class ProcessMapPlanRecordingStaticMeasurementControllerTest : Id = 0, IdWellSectionType = 1, MeasurementRecordingTime = 1, + Note = "1" }; private readonly ProcessMapPlanRecordingStaticMeasurement entity = new ProcessMapPlanRecordingStaticMeasurement() @@ -42,6 +43,7 @@ public class ProcessMapPlanRecordingStaticMeasurementControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, MeasurementRecordingTime = 1, + Note = "1" }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorControllerTest.cs similarity index 99% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorControllerTest.cs index 0863bd6b..57e80efc 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanRotorControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorControllerTest.cs @@ -5,7 +5,7 @@ using Mapster; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTest { private readonly ProcessMapPlanRotorDto dto = new ProcessMapPlanRotorDto() @@ -42,7 +42,7 @@ public class ProcessMapPlanRotorControllerTest : ProcessMapPlanBaseControllerTes Id = 0, IdWellSectionType = 1, Note = "1", - PressureLimitMax = 2, + PressureMax = 2, Rpm = 3, RpmMax = 4, RopMax = 5, diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs index 2e19ba28..35fc0cf5 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAccelerationControllerTest.cs @@ -1,14 +1,7 @@ -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; -using AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; -using AsbCloudWebApi.IntegrationTests; +using AsbCloudApp.Data.ProcessMaps.Operations; +using AsbCloudDb.Model.ProcessMapPlan.Operations; using Microsoft.EntityFrameworkCore; using Xunit; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using AsbCloudApp.Data.ProcessMaps.Operations; namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; @@ -18,7 +11,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanRotorRpmAccelerationControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanRotorRpmAccelerationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanFunctionsJarrDrillTool") + public ProcessMapPlanRotorRpmAccelerationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanRotorRpmAcceleration") { } private readonly ProcessMapPlanRotorRpmAccelerationDto dto = new ProcessMapPlanRotorRpmAccelerationDto() @@ -29,6 +22,10 @@ public class ProcessMapPlanRotorRpmAccelerationControllerTest : Id = 0, IdWellSectionType = 1, Note = "1", + Rpm = 1, + RpmMax = 2, + TopDriveTorque = 2, + TopDriveTorqueMax = 3, }; private readonly ProcessMapPlanRotorRpmAcceleration entity = new ProcessMapPlanRotorRpmAcceleration() @@ -42,6 +39,10 @@ public class ProcessMapPlanRotorRpmAccelerationControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, Note = "1", + Rpm = 1, + RpmMax = 2, + TopDriveTorque = 2, + TopDriveTorqueMax = 3, }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSlideControllerTest.cs similarity index 99% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSlideControllerTest.cs index d33a1392..5aa98c9c 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSlideControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSlideControllerTest.cs @@ -4,7 +4,7 @@ using Mapster; using Microsoft.EntityFrameworkCore; using Xunit; -namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTest { private readonly ProcessMapPlanSlideDto dto = new ProcessMapPlanSlideDto() @@ -24,7 +24,7 @@ public class ProcessMapPlanSlideControllerTest : ProcessMapPlanBaseControllerTes Buckling = 12, Id = 0, IdWellSectionType = 1, - Note = "13" + Note = "13", }; private readonly ProcessMapPlanSlide entity = new ProcessMapPlanSlide() diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePumpControllerTest.cs similarity index 91% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePumpControllerTest.cs index c84772f9..11768e47 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanSwitchingOffThePumpControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingOffThePumpControllerTest.cs @@ -10,7 +10,7 @@ using Xunit; using AsbCloudDb.Model.ProcessMapPlan.Operations; using AsbCloudApp.Data.ProcessMaps.Operations; -namespace AsbCloudWebApi.Controllers.ProcessMaps; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; /// /// РТК план выключение насоса @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.Controllers.ProcessMaps; public class ProcessMapPlanSwitchingOffThePumpControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanSwitchingOffThePumpControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchPump") + public ProcessMapPlanSwitchingOffThePumpControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSwitchingOffThePump") { } private readonly ProcessMapPlanSwitchingOffThePumpDto dto = new ProcessMapPlanSwitchingOffThePumpDto() @@ -30,6 +30,7 @@ public class ProcessMapPlanSwitchingOffThePumpControllerTest : IdWellSectionType = 1, Duration = 1, ResidualPressureLimit = 1, + Note = "5" }; private readonly ProcessMapPlanSwitchingOffThePump entity = new ProcessMapPlanSwitchingOffThePump() @@ -44,6 +45,7 @@ public class ProcessMapPlanSwitchingOffThePumpControllerTest : Creation = DateTimeOffset.UtcNow, Duration = 1, ResidualPressureLimit = 1, + Note = "5" }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs index 7c665a54..73dcd1c1 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanSwitchingToTheModeControllerTest.cs @@ -13,7 +13,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanSwitchingToTheModeControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationSwitchingToTheMode") + public ProcessMapPlanSwitchingToTheModeControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanSwitchingToTheMode") { } private readonly ProcessMapPlanSwitchingToTheModeDto dto = new ProcessMapPlanSwitchingToTheModeDto() @@ -23,6 +23,10 @@ public class ProcessMapPlanSwitchingToTheModeControllerTest : DepthEnd = 2, Id = 0, IdWellSectionType = 1, + FlowRate = 1, + PressureMax = 1, + RampTime = 1, + Note = "10" }; private readonly ProcessMapPlanSwitchingToTheMode entity = new ProcessMapPlanSwitchingToTheMode() @@ -35,6 +39,10 @@ public class ProcessMapPlanSwitchingToTheModeControllerTest : IdAuthor = 1, IdEditor = 1, Creation = DateTimeOffset.UtcNow, + FlowRate = 1, + PressureMax = 1, + RampTime = 1, + Note = "10" }; [Fact] diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs index 6b379f3d..7bccad24 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Operations/ProcessMapPlanTFOrientationControllerTest.cs @@ -18,7 +18,7 @@ namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan.Operations; public class ProcessMapPlanTFOrientationControllerTest : ProcessMapPlanBaseControllerTest { - public ProcessMapPlanTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanOperationTFOrientation") + public ProcessMapPlanTFOrientationControllerTest(WebAppFactoryFixture factory) : base(factory, "ProcessMapPlanTFOrientation") { } private readonly ProcessMapPlanTFOrientationDto dto = new ProcessMapPlanTFOrientationDto() @@ -29,7 +29,20 @@ public class ProcessMapPlanTFOrientationControllerTest : Id = 0, IdWellSectionType = 1, DifferentialPressure = 1, - Spring = 1 + Spring = 1, + FlowRateDown = 1, + FlowRateUp = 1, + Interval = 1, + Note = "1", + PressureMax = 1, + RepetitionsCount = 1, + RopDown = 1, + RopUp = 1, + SlackingOff = 1, + StopPointOffBottom = 1, + TFSetpoint = 1, + Tight = 1, + TorqueMax = 1, }; private readonly ProcessMapPlanTFOrientation entity = new ProcessMapPlanTFOrientation() @@ -43,7 +56,20 @@ public class ProcessMapPlanTFOrientationControllerTest : IdEditor = 1, Creation = DateTimeOffset.UtcNow, DifferentialPressure = 1, - Spring = 1 + Spring = 1, + FlowRateDown = 1, + FlowRateUp = 1, + Interval = 1, + Note = "1", + PressureMax = 1, + RepetitionsCount = 1, + RopDown = 1, + RopUp = 1, + SlackingOff = 1, + StopPointOffBottom = 1, + TFSetpoint = 1, + Tight = 1, + TorqueMax = 1, }; [Fact] From 7e539ee33555aef92e1c0364d33a8b161250ac94 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Mon, 1 Jul 2024 17:02:18 +0500 Subject: [PATCH 74/74] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D1=85=20=D0=A0?= =?UTF-8?q?=D0=A2=D0=9A-=D0=BF=D0=BB=D0=B0=D0=BD=20=D0=B8=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B0?= =?UTF-8?q?=D0=BF=D0=BF=D0=B8=D0=BD=D0=B3=D0=B0=20=D1=88=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D1=85=20=D0=A0=D0=A2=D0=9A-=D0=BF=D0=BB=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Functions/ProcessMapPlanAutoHoldTFDto.cs | 2 +- .../Functions/ProcessMapPlanDrillTestDto.cs | 2 +- ...ocessMapPlanUpdatingNoloadParametersDto.cs | 20 - .../Operations/ProcessMapPlanReamDto.cs | 82 - .../ProcessMapPlanRotorLoweringBitDto.cs | 60 - .../ProcessMapPlanRotorRpmAccelerationDto.cs | 40 - .../ProcessMapPlanSlideLoweringBitDto.cs | 42 - ...26_Remove_some_processMapsPlan.Designer.cs | 12243 ++++++++++++++++ ...40701104026_Remove_some_processMapsPlan.cs | 438 + .../AsbCloudDbContextModelSnapshot.cs | 736 +- AsbCloudDb/Model/AsbCloudDbContext.cs | 48 +- AsbCloudDb/Model/IAsbCloudDbContext.cs | 5 - .../ProcessMapPlanUpdatingNoloadParameters.cs | 19 - .../Operations/ProcessMapPlanReam.cs | 36 - .../ProcessMapPlanRotorLoweringBit.cs | 51 - .../ProcessMapPlanRotorRpmAcceleration.cs | 36 - .../ProcessMapPlanSlideLoweringBit.cs | 36 - .../AsbCloudInfrastructure.csproj | 8 - AsbCloudInfrastructure/DependencyInjection.cs | 62 - .../ProcessMapPlanAutoHoldTFTemplate.cs | 7 + .../ProcessMapPlanDamperTemplate.cs | 7 + .../ProcessMapPlanDrillTestTemplate.cs | 11 + ...ProcessMapPlanOscillationAnglesTemplate.cs | 11 + ...sMapPlanPositioningOffTheBottomTemplate.cs | 19 + .../ProcessMapPlanReamTemplate.cs | 29 - .../ProcessMapPlanReamingSlideTemplate.cs | 38 +- ...pPlanRecordingStaticMeasurementTemplate.cs | 8 + .../ProcessMapPlanRotorLoweringBitTemplate.cs | 24 - ...cessMapPlanRotorRpmAccelerationTemplate.cs | 23 - .../ProcessMapPlanShockTestTemplate.cs | 12 + .../ProcessMapPlanSlideLoweringBitTemplate.cs | 17 - ...sMapPlanStaticMeasurementOutputTemplate.cs | 7 + ...ocessMapPlanSwitchingOffThePumpTemplate.cs | 9 + .../ProcessMapPlanTFOrientationTemplate.cs | 21 + ...MapPlanUpdatingNoloadParametersTemplate.cs | 17 - .../Export/ProcessMapPlanReamExportService.cs | 30 - ...essMapPlanRotorLoweringBitExportService.cs | 30 - ...apPlanRotorRpmAccelerationExportService.cs | 30 - ...essMapPlanSlideLoweringBitExportService.cs | 30 - ...anUpdatingNoloadParametersExportService.cs | 30 - .../Parser/ProcessMapPlanReamParser.cs | 41 - .../ProcessMapPlanRotorLoweringBitParser.cs | 43 - ...rocessMapPlanRotorRpmAccelerationParser.cs | 43 - .../ProcessMapPlanSlideLoweringBitParser.cs | 43 - ...ssMapPlanUpdatingNoloadParametersParser.cs | 43 - .../Templates/ProcessMapPlanReamTemplate.xlsx | Bin 48997 -> 0 bytes ...rocessMapPlanRotorLoweringBitTemplate.xlsx | Bin 10680 -> 0 bytes ...ssMapPlanRotorRpmAccelerationTemplate.xlsx | Bin 10760 -> 0 bytes ...rocessMapPlanSlideLoweringBitTemplate.xlsx | Bin 10771 -> 0 bytes ...pPlanUpdatingNoloadParametersController.cs | 28 - .../ProcessMapPlanReamController.cs | 26 - ...rocessMapPlanRotorLoweringBitController.cs | 28 - ...ssMapPlanRotorRpmAccelerationController.cs | 28 - ...rocessMapPlanSlideLoweringBitController.cs | 28 - 54 files changed, 12834 insertions(+), 1893 deletions(-) delete mode 100644 AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs delete mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs create mode 100644 AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.Designer.cs create mode 100644 AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs delete mode 100644 AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs delete mode 100644 AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamTemplate.xlsx delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorLoweringBitTemplate.xlsx delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx delete mode 100644 AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs delete mode 100644 AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs index 836573c8..37da8dd5 100644 --- a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanAutoHoldTFDto.cs @@ -3,7 +3,7 @@ namespace AsbCloudApp.Data.ProcessMaps.Functions; /// -/// РТК план автоудержание TF +/// РТК план авто удержание TF /// public class ProcessMapPlanAutoHoldTFDto : ProcessMapPlanBaseDto { diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs index f8e69983..af7139a5 100644 --- a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs @@ -3,7 +3,7 @@ namespace AsbCloudApp.Data.ProcessMaps.Functions; /// -/// РТК план дрилтест +/// РТК план дрил тест /// public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto { diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs deleted file mode 100644 index 693c66d9..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps.Functions; - -/// -/// РТК план обновление холостого хода -/// -public class ProcessMapPlanUpdatingNoloadParametersDto : ProcessMapPlanBaseDto -{ - /// - /// СПУСК ОК Да/Нет - /// - public bool IdDeclineSocketColumn { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs deleted file mode 100644 index 376888dd..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.ProcessMaps.Operations; - -/// -/// РТК план проработка скважины -/// -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 override 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 diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs deleted file mode 100644 index 62b9459e..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps.Operations; - -/// -/// РТК план подход к забою в роторе -/// -public class ProcessMapPlanRotorLoweringBitDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Посадка, т. - /// - [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] - public double SlackingOff { get; set; } - - /// - /// Максимально допустимый момент, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] - public double TorqueMax { get; set; } - - /// - /// Скорость вниз, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] - public double RopDown { get; set; } - - /// - /// Обороты вниз, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] - public double RpmDown { get; set; } - - /// - /// Расход вниз, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateDown { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs deleted file mode 100644 index b4a26197..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationDto.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps.Operations; - -/// -/// РТК план выход на обороты перед ротором -/// -public class ProcessMapPlanRotorRpmAccelerationDto : ProcessMapPlanBaseDto -{ - /// - /// Момент на ВСП уставка, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП уставка, кН*м., должно быть в пределах от 0 до 35")] - public double TopDriveTorque { get; set; } - - /// - /// Момент на ВСП ограничение, кН*м. - /// - [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП ограничение, кН*м., должно быть в пределах от 0 до 35")] - public double TopDriveTorqueMax { get; set; } - - /// - /// Обороты на ВСП уставка, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП уставка, об/мин., должно быть в пределах от 0 до 270")] - public double Rpm { get; set; } - - /// - /// Обороты на ВСП ограничение, об/мин. - /// - [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП ограничение, об/мин., должно быть в пределах от 0 до 270")] - public double RpmMax { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; -} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs deleted file mode 100644 index 560def75..00000000 --- a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace AsbCloudApp.Data.ProcessMaps.Operations; - -/// -/// РТК план подход к забою в слайде -/// -public class ProcessMapPlanSlideLoweringBitDto : ProcessMapPlanBaseDto -{ - /// - /// Максимально допустимое давление, атм. - /// - [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] - public double PressureMax { get; set; } - - /// - /// Перепад давления уставка, атм. - /// - [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] - public double DifferentialPressure { get; set; } - - /// - /// Скорость вниз, м/ч. - /// - [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] - public double RopDown { get; set; } - - /// - /// Расход вниз, л/с. - /// - [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] - public double FlowRateDown { get; set; } - - /// - /// Примечание - /// - [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] - public string Note { get; set; } = string.Empty; - - -} \ No newline at end of file diff --git a/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.Designer.cs b/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.Designer.cs new file mode 100644 index 00000000..f8d84fcc --- /dev/null +++ b/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.Designer.cs @@ -0,0 +1,12243 @@ +// +using System; +using System.Text.Json; +using AsbCloudDb.Model; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + [DbContext(typeof(AsbCloudDbContext))] + [Migration("20240701104026_Remove_some_processMapsPlan")] + partial class Remove_some_processMapsPlan + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("Russian_Russia.1251") + .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "adminpack"); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdDeposit") + .HasColumnType("integer") + .HasColumnName("id_deposit"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdDeposit"); + + b.ToTable("t_cluster", t => + { + t.HasComment("Кусты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.ToTable("t_company"); + + b.HasData( + new + { + Id = 1, + Caption = "ООО \"АСБ\"", + IdCompanyType = 3 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IsContact") + .HasColumnType("boolean") + .HasColumnName("is_contact"); + + b.Property("Order") + .HasColumnType("integer") + .HasColumnName("order"); + + b.HasKey("Id"); + + b.ToTable("t_company_type"); + + b.HasData( + new + { + Id = 1, + Caption = "Недропользователь", + IsContact = true, + Order = 3 + }, + new + { + Id = 2, + Caption = "Буровой подрядчик", + IsContact = true, + Order = 2 + }, + new + { + Id = 3, + Caption = "Сервис автоматизации бурения", + IsContact = true, + Order = 0 + }, + new + { + Id = 4, + Caption = "Сервис по ГТИ", + IsContact = true, + Order = 6 + }, + new + { + Id = 5, + Caption = "Растворный сервис", + IsContact = true, + Order = 4 + }, + new + { + Id = 6, + Caption = "Сервис по ННБ", + IsContact = true, + Order = 5 + }, + new + { + Id = 7, + Caption = "Служба супервайзинга", + IsContact = false, + Order = 1 + }, + new + { + Id = 9, + Caption = "Сервис по цементированию", + IsContact = true, + Order = 7 + }, + new + { + Id = 11, + Caption = "Дизельный сервис", + IsContact = false, + Order = 9 + }, + new + { + Id = 12, + Caption = "Сервис по обслуживанию верхних силовых приводов", + IsContact = true, + Order = 8 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Company") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("company") + .HasComment("компания"); + + b.Property("Email") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("email"); + + b.Property("FullName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("full_name") + .HasComment("ФИО"); + + b.Property("IdCompanyType") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_company_type") + .HasComment("вид деятельности"); + + b.Property("IdWell") + .HasMaxLength(255) + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ключ скважины"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("должность"); + + b.HasKey("Id"); + + b.HasIndex("IdCompanyType"); + + b.HasIndex("IdWell"); + + b.ToTable("t_contact", t => + { + t.HasComment("Контакты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date") + .HasColumnName("date") + .HasComment("Дата формирования отчёта"); + + b.Property("DateLastUpdate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("SignBlock") + .HasColumnType("jsonb") + .HasColumnName("sign_block") + .HasComment("Подпись"); + + b.Property("SubsystemBlock") + .HasColumnType("jsonb") + .HasColumnName("subsystem_block") + .HasComment("Наработкой подсистем"); + + b.Property("TimeBalanceBlock") + .HasColumnType("jsonb") + .HasColumnName("time_balance_block") + .HasComment("Баланс времени"); + + b.HasKey("Id"); + + b.HasIndex("IdWell", "Date") + .IsUnique(); + + b.ToTable("t_daily_report", t => + { + t.HasComment("Ежедневные отчёты"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialLoad") + .HasColumnType("double precision") + .HasColumnName("axial_load") + .HasComment("Фактическая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("double precision") + .HasColumnName("axial_load_limit_max") + .HasComment("Максимально допустимая нагрузка"); + + b.Property("AxialLoadSp") + .HasColumnType("double precision") + .HasColumnName("axial_load_sp") + .HasComment("Ограничение факт. нагрузки"); + + b.Property("BlockSpeedSp") + .HasColumnType("double precision") + .HasColumnName("block_speed_sp") + .HasComment("Ограничение скорости блока"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата и время окончания"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата и время начала"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина забоя по стволу конечная"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина забоя по стволу начальная"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("Флаги подсистем"); + + b.Property("Flow") + .HasColumnType("double precision") + .HasColumnName("flow") + .HasComment("Фактический расход"); + + b.Property("HasOscillation") + .HasColumnType("boolean") + .HasColumnName("has_oscillation") + .HasComment("Наличие или отсутствие осцилляции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Название автоопределённой операции"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Работа при достижении ограничения"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Ключ телеметрии"); + + b.Property("Pressure") + .HasColumnType("double precision") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureIdle") + .HasColumnType("double precision") + .HasColumnName("pressure_idle") + .HasComment("Давление холостого хода"); + + b.Property("PressureSp") + .HasColumnType("double precision") + .HasColumnName("pressure_sp") + .HasComment("Ограничение фактического давления"); + + b.Property("RotorSpeed") + .HasColumnType("double precision") + .HasColumnName("rotor_speed") + .HasComment("Фактическая скорость оборотов ВСП"); + + b.Property("RotorTorque") + .HasColumnType("double precision") + .HasColumnName("rotor_torque") + .HasComment("Фактический момент"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Максимально допустимый момент"); + + b.Property("RotorTorqueSp") + .HasColumnType("double precision") + .HasColumnName("rotor_torque_sp") + .HasComment("Ограничение факт. момента"); + + b.Property("Speed") + .HasColumnType("double precision") + .HasColumnName("speed") + .HasComment("Скорость бурения"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_data_saub_stat", t => + { + t.HasComment("Кеш-таблица для хранения данных для РТК-отчета"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.ToTable("t_deposit", t => + { + t.HasComment("Месторождение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end") + .HasComment("Дата начала операции"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("EnabledSubsystems") + .HasColumnType("integer") + .HasColumnName("enabled_subsystems") + .HasComment("флаги включенных подсистем"); + + b.Property("ExtraData") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("extra_data") + .HasComment("доп. инфо по операции"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUsersAtStart") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя по телеметрии на момент начала операции"); + + b.Property("Value") + .HasColumnType("double precision") + .HasColumnName("value") + .HasComment("Ключевой показатель операции"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_detected_operation", t => + { + t.HasComment("автоматически определенные операции по телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depthStart") + .HasComment("Глубина начала"); + + b.Property("Params") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("t_drill_test_params") + .HasComment("Параметры записи drill test"); + + b.Property("TimeStampStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp_start") + .HasComment("Время начала"); + + b.HasKey("Id", "IdTelemetry"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_drill_test", t => + { + t.HasComment("Drill_test"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Имя"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("Отчество"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("Фамилия"); + + b.HasKey("Id"); + + b.ToTable("t_driller", t => + { + t.HasComment("Бурильщик"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdFileCategory") + .HasColumnType("integer") + .HasColumnName("id_file_category"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("Id"); + + b.HasIndex("IdFileCategory"); + + b.HasIndex("IdWell", "IdFileCategory") + .IsUnique(); + + b.ToTable("t_drilling_program_part", t => + { + t.HasComment("части программ бурения"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Answer") + .HasColumnType("text") + .HasColumnName("answer") + .HasComment("Текст ответа"); + + b.Property("CounterQuestion") + .HasColumnType("integer") + .HasColumnName("counter_question") + .HasComment("Счетчик повторений вопроса"); + + b.Property("DateAnswer") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_answer") + .HasComment("Дата ответа"); + + b.Property("DateCreatedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created_question") + .HasComment("Дата создания вопроса"); + + b.Property("DateLastEditedQuestion") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_edited_question") + .HasComment("Дата последнего редактирования вопроса"); + + b.Property("IdAuthorAnswer") + .HasColumnType("integer") + .HasColumnName("id_author_answer") + .HasComment("id автора ответа"); + + b.Property("IdAuthorQuestion") + .HasColumnType("integer") + .HasColumnName("id_author_question") + .HasComment("id автора вопроса"); + + b.Property("IdReplacementQuestion") + .HasColumnType("integer") + .HasColumnName("id_replacement_question") + .HasComment("Ключ заменяющего вопроса"); + + b.Property("IsFrequently") + .HasColumnType("boolean") + .HasColumnName("is_frequently") + .HasComment("Частый вопрос"); + + b.Property("Question") + .IsRequired() + .HasColumnType("text") + .HasColumnName("question") + .HasComment("Текст вопроса"); + + b.Property("State") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("Статус вопроса"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthorAnswer"); + + b.HasIndex("IdAuthorQuestion"); + + b.ToTable("t_faq", t => + { + t.HasComment("вопросы пользователей"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_file_category", t => + { + t.HasComment("Категории файлов"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Растворный сервис", + ShortName = "fluidService" + }, + new + { + Id = 2, + Name = "Цементирование", + ShortName = "cement" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "nnb" + }, + new + { + Id = 4, + Name = "ГТИ", + ShortName = "gti" + }, + new + { + Id = 5, + Name = "Документы по скважине", + ShortName = "wellDocuments" + }, + new + { + Id = 6, + Name = "Супервайзер", + ShortName = "supervisor" + }, + new + { + Id = 7, + Name = "Мастер", + ShortName = "master" + }, + new + { + Id = 8, + Name = "Долотный сервис", + ShortName = "toolService" + }, + new + { + Id = 9, + Name = "Буровой подрядчик", + ShortName = "drillService" + }, + new + { + Id = 10, + Name = "Сервис по заканчиванию скважины", + ShortName = "closingService" + }, + new + { + Id = 12, + Name = "Рапорт", + ShortName = "report" + }, + new + { + Id = 1000, + Name = "Программа бурения" + }, + new + { + Id = 1001, + Name = "Задание от геологов" + }, + new + { + Id = 1002, + Name = "Профиль ствола скважины (ННБ)" + }, + new + { + Id = 1003, + Name = "Технологические расчеты (ННБ)" + }, + new + { + Id = 1004, + Name = "Долотная программа" + }, + new + { + Id = 1005, + Name = "Программа по растворам" + }, + new + { + Id = 1006, + Name = "Программа геофизических исследований" + }, + new + { + Id = 1007, + Name = "Планы спусков обсадных колонн" + }, + new + { + Id = 1008, + Name = "Программы цементирования обсадных колонн" + }, + new + { + Id = 10000, + Name = "Проект на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10001, + Name = "Программа на бурение транспортного и горизонтального участков скважины" + }, + new + { + Id = 10002, + Name = "Акт о начале бурения" + }, + new + { + Id = 10003, + Name = "План работ спуска и цементирования направления" + }, + new + { + Id = 10004, + Name = "Программа цементирования направления" + }, + new + { + Id = 10005, + Name = "Мера обсадных труб (направление)" + }, + new + { + Id = 10006, + Name = "Акт на выполненные работы по цементированию направления" + }, + new + { + Id = 10007, + Name = "Отчет по цементированию направления (график)" + }, + new + { + Id = 10008, + Name = "План работ спуска и цементирования кондуктора" + }, + new + { + Id = 10009, + Name = "Программа цементирования (кондуктор)" + }, + new + { + Id = 10010, + Name = "Мера обсадных труб (кондуктор)" + }, + new + { + Id = 10011, + Name = "Карта крепления кондуктора" + }, + new + { + Id = 10012, + Name = "Акт на выполненные работы по цементированию кондуктора" + }, + new + { + Id = 10013, + Name = "Отчет по цементированию кондуктора (график)" + }, + new + { + Id = 10014, + Name = "Акт о замере расстояния от стола ротора до муфты кондуктора" + }, + new + { + Id = 10015, + Name = "Акт опресовки цементного кольца за кондуктором" + }, + new + { + Id = 10016, + Name = "Акт опресовки ППГ с глухими плашками совместно с кондуктором" + }, + new + { + Id = 10017, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с кондуктором" + }, + new + { + Id = 10018, + Name = "План работ на крепление обсадной колонны (эк. колонна)" + }, + new + { + Id = 10019, + Name = "Программа цементирования (эк. колонна)" + }, + new + { + Id = 10020, + Name = "Мера труб эксплуатационной колонны" + }, + new + { + Id = 10021, + Name = "Карта по креплению скважины (эк. колонна)" + }, + new + { + Id = 10022, + Name = "Акт на установку пружинных центраторов" + }, + new + { + Id = 10023, + Name = "Отчет по цементированию эксплуатационной колонны (график)" + }, + new + { + Id = 10024, + Name = "Акт на выполненные работы по цементированию эксплуатационной колонны" + }, + new + { + Id = 10025, + Name = "Акт об испытании эк. колонны на герметичность (СТОП)" + }, + new + { + Id = 10026, + Name = "Акт опресовки ППГ с глухими плашками совместно с э/колонной" + }, + new + { + Id = 10027, + Name = "Акт опресовки ПУГ, ППГ с трубными плашками совместно с э/колонной" + }, + new + { + Id = 10028, + Name = "Акт на вскрытие продуктивного пласта" + }, + new + { + Id = 10029, + Name = "Акт замера параметров раствора при бурении горизонтального участка" + }, + new + { + Id = 10030, + Name = "Разрешение на спуск «хвостовика» (телефонограмма)" + }, + new + { + Id = 10031, + Name = "План работ на спуск «хвостовика»" + }, + new + { + Id = 10032, + Name = "Акт готовности бурового и энергетического оборудования к спуску «хвостовика»" + }, + new + { + Id = 10033, + Name = "Акт шаблонировки ствола скважины перед спуском «хвостовика»" + }, + new + { + Id = 10034, + Name = "Мера обсадных труб (хвостовик)" + }, + new + { + Id = 10035, + Name = "Акт выполненных работ по спуску хвостовика с закачкой (нефти, солевого раствора" + }, + new + { + Id = 10036, + Name = "Акт о переводе скважины на тех. воду" + }, + new + { + Id = 10037, + Name = "Акт об окончании бурения" + }, + new + { + Id = 10038, + Name = "Акт на передачу скважины в освоение (КРС)" + }, + new + { + Id = 10039, + Name = "Акт на опресовку межколонного пространства с КРС" + }, + new + { + Id = 10040, + Name = "Акт на сдачу скважины в ЦДНГ" + }, + new + { + Id = 10041, + Name = "Паспорт ОУС (заполняется геологами)" + }, + new + { + Id = 10042, + Name = "Паспорт скважины (заполняется геологами)" + }, + new + { + Id = 10043, + Name = "Фактические данные бурения (вставляются в паспорт скважины)" + }, + new + { + Id = 20000, + Name = "Справки по страницам" + }, + new + { + Id = 30000, + Name = "Инструкции" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории файла"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Удален ли файл"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_file_info", t => + { + t.HasComment("Файлы всех категорий"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateCreated") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_created") + .HasComment("Дата совершенного действия"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла"); + + b.Property("IdMarkType") + .HasColumnType("integer") + .HasColumnName("id_mark_type") + .HasComment("0 - отклонен, 1 - согласован"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("id пользователя"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Помечен ли файл как удаленный"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdUser"); + + b.ToTable("t_file_mark", t => + { + t.HasComment("Действия с файлами."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("real") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_float", t => + { + t.HasComment("таблица данных ГТИ с типом значения float"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .HasColumnType("integer") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_int", t => + { + t.HasComment("таблица данных ГТИ с типом значения int"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdRecord") + .HasColumnType("integer") + .HasColumnName("id_record"); + + b.Property("IdItem") + .HasColumnType("integer") + .HasColumnName("id_item"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Value") + .IsRequired() + .HasColumnType("text") + .HasColumnName("value"); + + b.HasKey("IdTelemetry", "IdRecord", "IdItem", "DateTime"); + + b.ToTable("t_wits_string", t => + { + t.HasComment("таблица данных ГТИ с типом значения string"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название файла"); + + b.Property("Size") + .HasColumnType("bigint") + .HasColumnName("file_size") + .HasComment("Размер файла"); + + b.Property("UrlPage") + .IsRequired() + .HasColumnType("text") + .HasColumnName("url_page") + .HasComment("Url страницы"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.ToTable("t_help_page", t => + { + t.HasComment("Справки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_end"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start"); + + b.Property("DepthEnd") + .HasColumnType("real") + .HasColumnName("depth_end"); + + b.Property("DepthStart") + .HasColumnType("real") + .HasColumnName("depth_start"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_limiting_parameter", t => + { + t.HasComment("Ограничения по параметрам телеметрии"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateDownload") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_download") + .HasComment("Дата загрузки"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id автора"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории файла"); + + b.Property("IdDirectory") + .HasColumnType("integer") + .HasColumnName("id_directory") + .HasComment("Id директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdDirectory"); + + b.ToTable("t_manual", t => + { + t.HasComment("Инструкции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("Id родительской директории"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_manual_directory", t => + { + t.HasComment("Директория для инструкций"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("data") + .HasComment("Данные таблицы последних данных"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("id категории"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("IsDeleted") + .HasColumnType("boolean") + .HasColumnName("is_deleted") + .HasComment("Пометка удаленным"); + + b.Property("Timestamp") + .HasColumnType("timestamp with time zone") + .HasColumnName("timestamp") + .HasComment("время добавления"); + + b.HasKey("Id"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_measure", t => + { + t.HasComment("Таблица c данными для вкладки 'Последние данные'"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории"); + + b.Property("ShortName") + .HasColumnType("text") + .HasColumnName("short_name") + .HasComment("Короткое название категории"); + + b.HasKey("Id"); + + b.ToTable("t_measure_category", t => + { + t.HasComment("Категория последних данных"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Показатели бурового раствора", + ShortName = "Раствор" + }, + new + { + Id = 2, + Name = "Шламограмма", + ShortName = "Шламограмма" + }, + new + { + Id = 3, + Name = "ННБ", + ShortName = "ННБ" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdNotificationCategory") + .HasColumnType("integer") + .HasColumnName("id_notification_category") + .HasComment("Id категории уведомления"); + + b.Property("IdTransportType") + .HasColumnType("integer") + .HasColumnName("id_transport_type") + .HasComment("Id типа доставки уведомления"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id получателя"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message") + .HasComment("Сообщение уведомления"); + + b.Property("ReadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("read_date") + .HasComment("Дата прочтения уведомления"); + + b.Property("RegistrationDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("registration_date") + .HasComment("Дата регистрации уведомления"); + + b.Property("SentDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("sent_date") + .HasComment("Дата отправки уведомления"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title") + .HasComment("Заголовок уведомления"); + + b.HasKey("Id"); + + b.HasIndex("IdNotificationCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_notification", t => + { + t.HasComment("Уведомления"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_notification_category", t => + { + t.HasComment("Категории уведомлений"); + }); + + b.HasData( + new + { + Id = 1, + Name = "Системные уведомления" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Старотовая глубина"); + + b.Property("IdOperationCategory") + .HasColumnType("integer") + .HasColumnName("id_operation_category") + .HasComment("Ид категории операции"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Ид скважины"); + + b.Property("StandardValue") + .HasColumnType("double precision") + .HasColumnName("standard_value") + .HasComment("Нормативный показатель"); + + b.Property("TargetValue") + .HasColumnType("double precision") + .HasColumnName("target_value") + .HasComment("Целевой показатель"); + + b.HasKey("Id"); + + b.HasIndex("IdOperationCategory"); + + b.HasIndex("IdWell"); + + b.ToTable("t_operationvalue", t => + { + t.HasComment("Целевые/нормативные показатели операции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description") + .HasComment("Краткое описание"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_permission", t => + { + t.HasComment("Разрешения на доступ к данным"); + }); + + b.HasData( + new + { + Id = 100, + Description = "Разрешение удалять админ. Кусты", + Name = "AdminCluster.delete" + }, + new + { + Id = 101, + Description = "Разрешение редактировать админ. Кусты", + Name = "AdminCluster.edit" + }, + new + { + Id = 102, + Description = "Разрешение просматривать админ. Кусты", + Name = "AdminCluster.get" + }, + new + { + Id = 103, + Description = "Разрешение удалять админ. Компании", + Name = "AdminCompany.delete" + }, + new + { + Id = 104, + Description = "Разрешение редактировать админ. Компании", + Name = "AdminCompany.edit" + }, + new + { + Id = 105, + Description = "Разрешение просматривать админ. Компании", + Name = "AdminCompany.get" + }, + new + { + Id = 106, + Description = "Разрешение удалять админ. Типы компаний", + Name = "AdminCompanyType.delete" + }, + new + { + Id = 107, + Description = "Разрешение редактировать админ. Типы компаний", + Name = "AdminCompanyType.edit" + }, + new + { + Id = 108, + Description = "Разрешение просматривать админ. Типы компаний", + Name = "AdminCompanyType.get" + }, + new + { + Id = 109, + Description = "Разрешение удалять админ. Месторождения", + Name = "AdminDeposit.delete" + }, + new + { + Id = 110, + Description = "Разрешение редактировать админ. Месторождения", + Name = "AdminDeposit.edit" + }, + new + { + Id = 111, + Description = "Разрешение просматривать админ. Месторождения", + Name = "AdminDeposit.get" + }, + new + { + Id = 112, + Description = "Разрешение удалять админ. Разрешения", + Name = "AdminPermission.delete" + }, + new + { + Id = 113, + Description = "Разрешение редактировать админ. Разрешения", + Name = "AdminPermission.edit" + }, + new + { + Id = 114, + Description = "Разрешение просматривать админ. Разрешения", + Name = "AdminPermission.get" + }, + new + { + Id = 115, + Description = "Разрешение удалять админ. Телеметрию", + Name = "AdminTelemetry.delete" + }, + new + { + Id = 116, + Description = "Разрешение редактировать админ. Телеметрию", + Name = "AdminTelemetry.edit" + }, + new + { + Id = 117, + Description = "Разрешение просматривать админ. Телеметрию", + Name = "AdminTelemetry.get" + }, + new + { + Id = 118, + Description = "Разрешение удалять админ. Пользователей", + Name = "AdminUser.delete" + }, + new + { + Id = 119, + Description = "Разрешение редактировать админ. Пользователей", + Name = "AdminUser.edit" + }, + new + { + Id = 120, + Description = "Разрешение просматривать админ. Пользователей", + Name = "AdminUser.get" + }, + new + { + Id = 121, + Description = "Разрешение удалять админ. Роли пользователей", + Name = "AdminUserRole.delete" + }, + new + { + Id = 122, + Description = "Разрешение редактировать админ. Роли пользователей", + Name = "AdminUserRole.edit" + }, + new + { + Id = 123, + Description = "Разрешение просматривать админ. Роли пользователей", + Name = "AdminUserRole.get" + }, + new + { + Id = 124, + Description = "Разрешение удалять админ. Скважины", + Name = "AdminWell.delete" + }, + new + { + Id = 125, + Description = "Разрешение редактировать админ. Скважины", + Name = "AdminWell.edit" + }, + new + { + Id = 126, + Description = "Разрешение просматривать админ. Скважины", + Name = "AdminWell.get" + }, + new + { + Id = 127, + Description = "Разрешение удалять админ. Подсистемы", + Name = "AdminSubsytem.delete" + }, + new + { + Id = 128, + Description = "Разрешение редактировать админ. Подсистемы", + Name = "AdminSubsytem.edit" + }, + new + { + Id = 129, + Description = "Разрешение просматривать админ. Подсистемы", + Name = "AdminSubsytem.get" + }, + new + { + Id = 200, + Description = "Разрешение редактировать 0", + Name = "Auth.edit" + }, + new + { + Id = 201, + Description = "Разрешение просматривать 0", + Name = "Auth.get" + }, + new + { + Id = 202, + Description = "Разрешение просматривать Кусты", + Name = "Cluster.get" + }, + new + { + Id = 203, + Description = "Разрешение просматривать Месторождения", + Name = "Deposit.get" + }, + new + { + Id = 204, + Description = "Разрешение удалять РТК", + Name = "DrillFlowChart.delete" + }, + new + { + Id = 205, + Description = "Разрешение редактировать РТК", + Name = "DrillFlowChart.edit" + }, + new + { + Id = 206, + Description = "Разрешение просматривать РТК", + Name = "DrillFlowChart.get" + }, + new + { + Id = 207, + Description = "Разрешение удалять Программу бурения", + Name = "DrillingProgram.delete" + }, + new + { + Id = 208, + Description = "Разрешение редактировать Программу бурения", + Name = "DrillingProgram.edit" + }, + new + { + Id = 209, + Description = "Разрешение просматривать Программу бурения", + Name = "DrillingProgram.get" + }, + new + { + Id = 210, + Description = "Разрешение удалять Режимы бурения", + Name = "DrillParams.delete" + }, + new + { + Id = 211, + Description = "Разрешение редактировать Режимы бурения", + Name = "DrillParams.edit" + }, + new + { + Id = 212, + Description = "Разрешение просматривать Режимы бурения", + Name = "DrillParams.get" + }, + new + { + Id = 213, + Description = "Разрешение удалять Файлы", + Name = "File.delete" + }, + new + { + Id = 214, + Description = "Разрешение редактировать Файлы", + Name = "File.edit" + }, + new + { + Id = 215, + Description = "Разрешение просматривать Файлы", + Name = "File.get" + }, + new + { + Id = 216, + Description = "Разрешение удалять Измерения", + Name = "Measure.delete" + }, + new + { + Id = 217, + Description = "Разрешение редактировать Измерения", + Name = "Measure.edit" + }, + new + { + Id = 218, + Description = "Разрешение просматривать Измерения", + Name = "Measure.get" + }, + new + { + Id = 219, + Description = "Разрешение просматривать Сообщения телеметрии", + Name = "Message.get" + }, + new + { + Id = 220, + Description = "Разрешение просматривать Статистику по операциям", + Name = "OperationStat.get" + }, + new + { + Id = 221, + Description = "Разрешение редактировать Рапорта", + Name = "Report.edit" + }, + new + { + Id = 222, + Description = "Разрешение просматривать Рапорта", + Name = "Report.get" + }, + new + { + Id = 223, + Description = "Разрешение просматривать админ. Системная статистика", + Name = "RequestTracker.get" + }, + new + { + Id = 224, + Description = "Разрешение удалять Рекомендации уставок", + Name = "Setpoints.delete" + }, + new + { + Id = 225, + Description = "Разрешение редактировать Рекомендации уставок", + Name = "Setpoints.edit" + }, + new + { + Id = 226, + Description = "Разрешение просматривать Рекомендации уставок", + Name = "Setpoints.get" + }, + new + { + Id = 227, + Description = "Разрешение редактировать Телеметрии", + Name = "Telemetry.edit" + }, + new + { + Id = 228, + Description = "Разрешение просматривать Анализ телеметрии", + Name = "TelemetryAnalytics.get" + }, + new + { + Id = 229, + Description = "Разрешение редактировать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.edit" + }, + new + { + Id = 230, + Description = "Разрешение просматривать Данные телеметрии по САУБ", + Name = "TelemetryDataSaub.get" + }, + new + { + Id = 231, + Description = "Разрешение редактировать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.edit" + }, + new + { + Id = 232, + Description = "Разрешение просматривать Данные телеметрии по SpinMaster", + Name = "TelemetryDataSpin.get" + }, + new + { + Id = 233, + Description = "Разрешение редактировать Скважины", + Name = "Well.edit" + }, + new + { + Id = 234, + Description = "Разрешение просматривать Скважины", + Name = "Well.get" + }, + new + { + Id = 235, + Description = "Разрешение редактировать Композитные скважины", + Name = "WellComposite.edit" + }, + new + { + Id = 236, + Description = "Разрешение просматривать Композитные скважины", + Name = "WellComposite.get" + }, + new + { + Id = 237, + Description = "Разрешение удалять Операции по скважинам", + Name = "WellOperation.delete" + }, + new + { + Id = 238, + Description = "Разрешение редактировать Операции по скважинам", + Name = "WellOperation.edit" + }, + new + { + Id = 239, + Description = "Разрешение просматривать Операции по скважинам", + Name = "WellOperation.get" + }, + new + { + Id = 240, + Description = "Разрешение редактировать Файлы категории 1 (Растворный сервис)", + Name = "File.edit1" + }, + new + { + Id = 241, + Description = "Разрешение редактировать Файлы категории 2 (Цементирование)", + Name = "File.edit2" + }, + new + { + Id = 242, + Description = "Разрешение редактировать Файлы категории 3 (ННБ)", + Name = "File.edit3" + }, + new + { + Id = 243, + Description = "Разрешение редактировать Файлы категории 4 (ГТИ)", + Name = "File.edit4" + }, + new + { + Id = 244, + Description = "Разрешение редактировать Файлы категории 5 (Документы по скважине)", + Name = "File.edit5" + }, + new + { + Id = 245, + Description = "Разрешение редактировать Файлы категории 6 (Супервайзер)", + Name = "File.edit6" + }, + new + { + Id = 246, + Description = "Разрешение редактировать Файлы категории 7 (Мастер)", + Name = "File.edit7" + }, + new + { + Id = 247, + Description = "Разрешение редактировать Файлы категории 8 (Долотный сервис)", + Name = "File.edit8" + }, + new + { + Id = 248, + Description = "Разрешение редактировать Файлы категории 9 (Буровой подрядчик)", + Name = "File.edit9" + }, + new + { + Id = 249, + Description = "Разрешение редактировать Файлы категории 10 (Сервис по заканчиванию скважины)", + Name = "File.edit10" + }, + new + { + Id = 250, + Description = "Разрешение редактировать Файлы категории 11 (Рапорт)", + Name = "File.edit11" + }, + new + { + Id = 251, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit12" + }, + new + { + Id = 252, + Description = "Разрешение редактировать Файлы категории 12", + Name = "File.edit13" + }, + new + { + Id = 253, + Description = "Разрешение редактировать Файлы категории 13", + Name = "File.edit14" + }, + new + { + Id = 254, + Description = "Разрешение редактировать Файлы категории 14", + Name = "File.edit15" + }, + new + { + Id = 255, + Description = "Разрешение редактировать Файлы категории 15", + Name = "File.edit16" + }, + new + { + Id = 256, + Description = "Разрешение редактировать Файлы категории 16", + Name = "File.edit17" + }, + new + { + Id = 257, + Description = "Разрешение редактировать Файлы категории 17", + Name = "File.edit18" + }, + new + { + Id = 258, + Description = "Разрешение редактировать Файлы категории 18", + Name = "File.edit19" + }, + new + { + Id = 259, + Description = "Разрешение редактировать Файлы категории 19", + Name = "File.edit20" + }, + new + { + Id = 260, + Description = "Разрешение редактировать Файлы категории 20", + Name = "File.edit21" + }, + new + { + Id = 261, + Description = "Разрешение редактировать Файлы категории 21", + Name = "File.edit22" + }, + new + { + Id = 262, + Description = "Разрешение редактировать Файлы категории 22", + Name = "File.edit23" + }, + new + { + Id = 263, + Description = "Разрешение редактировать Файлы категории 23", + Name = "File.edit24" + }, + new + { + Id = 264, + Description = "Разрешение редактировать Файлы категории 24", + Name = "File.edit25" + }, + new + { + Id = 265, + Description = "Разрешение редактировать Файлы категории 25", + Name = "File.edit26" + }, + new + { + Id = 266, + Description = "Разрешение редактировать Файлы категории 26", + Name = "File.edit27" + }, + new + { + Id = 267, + Description = "Разрешение редактировать Файлы категории 27", + Name = "File.edit28" + }, + new + { + Id = 268, + Description = "Разрешение редактировать Файлы категории 28", + Name = "File.edit29" + }, + new + { + Id = 269, + Description = "Разрешение редактировать Файлы категории 29", + Name = "File.edit30" + }, + new + { + Id = 380, + Description = "Разрешение просматривать список бурильщиков", + Name = "Driller.get" + }, + new + { + Id = 381, + Description = "Разрешение редактировать бурильщика", + Name = "Driller.edit" + }, + new + { + Id = 382, + Description = "Разрешение удалять бурильщик", + Name = "Driller.delete" + }, + new + { + Id = 383, + Description = "Разрешение просматривать графики бурильщиков", + Name = "Schedule.get" + }, + new + { + Id = 384, + Description = "Разрешение редактировать график бурильщика", + Name = "Schedule.edit" + }, + new + { + Id = 385, + Description = "Разрешение удалять график бурильщика", + Name = "Schedule.delete" + }, + new + { + Id = 386, + Description = "Разрешение просматривать суточный рапорт", + Name = "DailyReport.get" + }, + new + { + Id = 387, + Description = "Разрешение редактировать суточный рапорт", + Name = "DailyReport.edit" + }, + new + { + Id = 388, + Description = "Разрешение просматривать авто. определенные операции", + Name = "DetectedOperation.get" + }, + new + { + Id = 389, + Description = "Разрешение просматривать целевые значения", + Name = "OperationValue.get" + }, + new + { + Id = 390, + Description = "Разрешение редактировать целевые значения", + Name = "OperationValue.edit" + }, + new + { + Id = 391, + Description = "Разрешение удалять целевые значения", + Name = "OperationValue.delete" + }, + new + { + Id = 400, + Description = "Разрешение просматривать инфо по wits параметрам", + Name = "WitsInfo.get" + }, + new + { + Id = 401, + Description = "Разрешение просматривать WITS record 1", + Name = "WitsRecord1.get" + }, + new + { + Id = 407, + Description = "Разрешение просматривать WITS record 7", + Name = "WitsRecord7.get" + }, + new + { + Id = 408, + Description = "Разрешение просматривать WITS record 8", + Name = "WitsRecord8.get" + }, + new + { + Id = 450, + Description = "Разрешение просматривать WITS record 50", + Name = "WitsRecord50.get" + }, + new + { + Id = 460, + Description = "Разрешение просматривать WITS record 60", + Name = "WitsRecord60.get" + }, + new + { + Id = 461, + Description = "Разрешение просматривать WITS record 61", + Name = "WitsRecord61.get" + }, + new + { + Id = 500, + Description = "Разрешение удалять Категорий документов файлов", + Name = "FileCategory.delete" + }, + new + { + Id = 501, + Description = "Разрешение редактировать Категорий документов файлов", + Name = "FileCategory.edit" + }, + new + { + Id = 502, + Description = "Разрешение просматривать Категорий документов файлов", + Name = "FileCategory.get" + }, + new + { + Id = 503, + Description = "Разрешение удалять Дело скважины", + Name = "WellFinalDocuments.delete" + }, + new + { + Id = 504, + Description = "Разрешение редактировать Дело скважины", + Name = "WellFinalDocuments.edit" + }, + new + { + Id = 505, + Description = "Разрешение просматривать Дело скважины", + Name = "WellFinalDocuments.get" + }, + new + { + Id = 506, + Description = "Разрешение редактировать ответственных за загрузку файла Дело скважины", + Name = "WellFinalDocuments.editPublisher" + }, + new + { + Id = 507, + Description = "Разрешение просматривать наработка талевого каната", + Name = "TelemetryWirelineRunOut.get" + }, + new + { + Id = 510, + Description = "Разрешение просматривать плановая траектория", + Name = "PlannedTrajectory.get" + }, + new + { + Id = 511, + Description = "Разрешение редактировать плановая траектория", + Name = "PlannedTrajectory.edit" + }, + new + { + Id = 512, + Description = "Разрешение удалять плановая траектория", + Name = "PlannedTrajectory.delete" + }, + new + { + Id = 516, + Description = "Разрешение просматривать статистику вопросов", + Name = "FaqStatistics.get" + }, + new + { + Id = 517, + Description = "Разрешение редактировать вопрос", + Name = "FaqStatistics.edit" + }, + new + { + Id = 518, + Description = "Разрешение удалять вопрос", + Name = "FaqStatistics.delete" + }, + new + { + Id = 519, + Description = "Разрешение просматривать список контактов", + Name = "WellContact.get" + }, + new + { + Id = 520, + Description = "Разрешение редактировать список контактов", + Name = "WellContact.edit" + }, + new + { + Id = 521, + Description = "Разрешить создание справок по страницам", + Name = "HelpPage.edit" + }, + new + { + Id = 522, + Description = "Разрешить удаление всех настроек пользователя", + Name = "UserSettings.delete" + }, + new + { + Id = 523, + Description = "Разрешить редактирование инструкций", + Name = "Manual.edit" + }, + new + { + Id = 524, + Description = "Разрешить получение инструкций", + Name = "Manual.get" + }, + new + { + Id = 525, + Description = "Разрешение на редактирование РТК у завершенной скважины", + Name = "ProcessMap.editCompletedWell" + }, + new + { + Id = 526, + Description = "Разрешение на редактирование операций у завершенной скважины", + Name = "WellOperation.editCompletedWell" + }, + new + { + Id = 527, + Description = "Разрешение на удаление инструкций", + Name = "Manual.delete" + }, + new + { + Id = 528, + Description = "Разрешение на удаление контакта", + Name = "WellContact.delete" + }, + new + { + Id = 530, + Description = "Разрешение на редактирование плановой конструкции скважины", + Name = "WellSectionPlan.edit" + }, + new + { + Id = 531, + Description = "Разрешение на удаление плановой конструкции скважины", + Name = "WellSectionPlan.delete" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TopDriveRpmMin") + .HasColumnType("double precision") + .HasColumnName("top_drive_rpm_min") + .HasComment("Минимальные обороты ВСП, об/мин"); + + b.Property("TopDriveStartMinFlowRate") + .HasColumnType("double precision") + .HasColumnName("top_drive_start_min_flow_rate") + .HasComment("Минимальный расход для запуска оборотов ВСП, л/сек"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_anti_crash_rotation", t => + { + t.HasComment("Противоаварийное вращение"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenit_angle") + .HasComment("Зенитный угол, градусы"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_auto_hold_tf", t => + { + t.HasComment("Автоудержание TF"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("StickSlip"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_functions_damper", t => + { + t.HasComment("Демпфер"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("LengthStep") + .HasColumnType("double precision") + .HasColumnName("length_step") + .HasComment("Величина проходки шага, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("RpmStepsCount") + .HasColumnType("integer") + .HasColumnName("rpm_steps_count") + .HasComment("Количество шагов оборотов на ВСП, об/мин."); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("WeightOnBitStepsCount") + .HasColumnType("integer") + .HasColumnName("weight_on_bit_steps_count") + .HasComment("Количество шагов по нагрузке"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_drilltest", t => + { + t.HasComment("DrillTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Mode") + .HasColumnType("integer") + .HasColumnName("mode") + .HasComment("Режим Авто/Руч"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("OptimalOscillationAngle") + .HasColumnType("double precision") + .HasColumnName("optimal_oscillation_angle") + .HasComment("Оптимальный угол осцилляции, градусы"); + + b.Property("RpmLeft") + .HasColumnType("double precision") + .HasColumnName("Rpm_left") + .HasComment("Скорость влево, об/мин"); + + b.Property("RpmRight") + .HasColumnType("double precision") + .HasColumnName("Rpm​_right") + .HasComment("Скорость вправо, об/мин"); + + b.Property("TorqueMaxLeft") + .HasColumnType("double precision") + .HasColumnName("torque_max_left") + .HasComment("Ограничение момента влево, кН*м"); + + b.Property("TorqueMaxRight") + .HasColumnType("double precision") + .HasColumnName("torque_max_right") + .HasComment("Ограничение момента вправо, кН*м"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_oscillation", t => + { + t.HasComment("Осцилляция"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AxialVibrations") + .HasColumnType("double precision") + .HasColumnName("axial_vibrations") + .HasComment("Осевые вибрации"); + + b.Property("CombinedVibrations") + .HasColumnType("double precision") + .HasColumnName("combined_vibrations") + .HasComment("Комбинированные вибрации"); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("RpmMin") + .HasColumnType("double precision") + .HasColumnName("rpm_min") + .HasComment("Минимальные обороты на ВСП, об/мин."); + + b.Property("StickSlip") + .HasColumnType("double precision") + .HasColumnName("stick_slip") + .HasComment("stickSlip"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.Property("Whirl") + .HasColumnType("double precision") + .HasColumnName("whirl") + .HasComment("Whirl"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_shock_test", t => + { + t.HasComment("ShockTest"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("SignalWaitingTime") + .HasColumnType("double precision") + .HasColumnName("signal_waiting_time") + .HasComment("Время ожидания выхода сигнала с ТМС, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_static_measurement_output", t => + { + t.HasComment("Выход статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressureMin") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_min") + .HasComment("Перепад давления минимальный, атм"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("TimeLoadCapacityMin") + .HasColumnType("double precision") + .HasColumnName("time_load_capacity_min") + .HasComment("Время выработки минимальное, сек"); + + b.Property("WeightOnBitMin") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_min") + .HasComment("Нагрузка минимальная, т"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_load_capacity", t => + { + t.HasComment("РТК выработка нагрузки"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин., Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин., Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м., Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м., Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_oscillation_angels", t => + { + t.HasComment("Определение углов осцилляции"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("RpmDown") + .HasColumnType("double precision") + .HasColumnName("rpm_down") + .HasComment("Обороты вниз, об/мин."); + + b.Property("RpmUp") + .HasColumnType("double precision") + .HasColumnName("rpm_up") + .HasComment("Обороты вверх, об/мин."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("StopOffTheBottom") + .HasColumnType("double precision") + .HasColumnName("stop_off_the_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_positioning_off_the_bottom", t => + { + t.HasComment("Позиционирование над забоем"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1, Скорость, м/ч., Вниз"); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_reaming_rotor", t => + { + t.HasComment("РТК проработка ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("Reaming1FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_down") + .HasComment("Проработка 1, Расход, л/с., Вниз"); + + b.Property("Reaming1FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_flow_rate_up") + .HasComment("Проработка 1, Расход, л/с., Вверх"); + + b.Property("Reaming1Interval") + .HasColumnType("double precision") + .HasColumnName("reaming1_interval") + .HasComment("Проработка 1, Интервал проработки, м."); + + b.Property("Reaming1RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming1_repetitions_count") + .HasComment("Проработка 1. Количество повторений, шт."); + + b.Property("Reaming1RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_down") + .HasComment("Проработка 1. Скорость вниз, м/ч."); + + b.Property("Reaming1RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rop_up") + .HasComment("Проработка 1. Скорость вверх, м/ч."); + + b.Property("Reaming1RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_down") + .HasComment("Проработка 1, Обороты, об/мин., Вниз"); + + b.Property("Reaming1RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming1_rpm_up") + .HasComment("Проработка 1, Обороты, об/мин., Вверх"); + + b.Property("Reaming1StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming1_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming2FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_down") + .HasComment("Проработка 2, Расход, л/с., Вниз"); + + b.Property("Reaming2FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_flow_rate_up") + .HasComment("Проработка 2, Расход, л/с., Вверх"); + + b.Property("Reaming2Interval") + .HasColumnType("double precision") + .HasColumnName("reaming2_interval") + .HasComment("Проработка 2, Интервал проработки, м."); + + b.Property("Reaming2RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming2_repetitions_count") + .HasComment("Проработка 2, Количество повторений, шт."); + + b.Property("Reaming2RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_down") + .HasComment("Проработка 2, Скорость, м/ч., Вниз"); + + b.Property("Reaming2RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rop_up") + .HasComment("Проработка 2, Скорость, м/ч., Вверх"); + + b.Property("Reaming2RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_down") + .HasComment("Проработка 2, Обороты, об/мин., Вниз"); + + b.Property("Reaming2RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming2_rpm_up") + .HasComment("Проработка 2, Обороты, об/мин., Вверх"); + + b.Property("Reaming2StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming2_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("Reaming3FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_down") + .HasComment("Проработка 3, Расход, л/с., Вниз"); + + b.Property("Reaming3FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_flow_rate_up") + .HasComment("Проработка 3, Расход, л/с., Вверх"); + + b.Property("Reaming3Interval") + .HasColumnType("double precision") + .HasColumnName("reaming3_interval") + .HasComment("Проработка 3, Интервал проработки, м."); + + b.Property("Reaming3RepetitionsCount") + .HasColumnType("double precision") + .HasColumnName("reaming3_repetitions_count") + .HasComment("Проработка 3, Количество повторений, шт."); + + b.Property("Reaming3RopDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_down") + .HasComment("Проработка 3, Скорость, м/ч., Вниз"); + + b.Property("Reaming3RopUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rop_up") + .HasComment("Проработка 3, Скорость, м/ч., Вверх"); + + b.Property("Reaming3RpmDown") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_down") + .HasComment("Проработка 3, Обороты, об/мин., Вниз"); + + b.Property("Reaming3RpmUp") + .HasColumnType("double precision") + .HasColumnName("reaming3_rpm_up") + .HasComment("Проработка 3, Обороты, об/мин., Вверх"); + + b.Property("Reaming3StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("reaming3_stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_reaming_slide", t => + { + t.HasComment("РТК проработка слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("MeasurementRecordingTime") + .HasColumnType("double precision") + .HasColumnName("measurement_recording_time") + .HasComment("Время записи замера, сек"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_recording_static_measurement", t => + { + t.HasComment("Запись статического замера"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм. Уставка"); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления, атм. Ограничение"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход л/с. Уставка"); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход л/с. Ограничение"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм"); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч"); + + b.Property("Rpm") + .HasColumnType("double precision") + .HasColumnName("rpm") + .HasComment("Обороты на ВСП, об/мин. Уставка"); + + b.Property("RpmMax") + .HasColumnType("double precision") + .HasColumnName("rpm_max") + .HasComment("Обороты на ВСП, об/мин. Ограничение"); + + b.Property("TopDriveTorque") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque") + .HasComment("Момент на ВСП, кН*м. Уставка"); + + b.Property("TopDriveTorqueMax") + .HasColumnType("double precision") + .HasColumnName("top_drive_torque_max") + .HasComment("Момент на ВСП, кН*м. Ограничение"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка, т. Уставка"); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка, т. Ограничение"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_rotor", t => + { + t.HasComment("РТК план бурение ротор"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Buckling") + .HasColumnType("double precision") + .HasColumnName("buckling") + .HasComment("Складывание инструмента, м."); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления уставка, атм."); + + b.Property("DifferentialPressureMax") + .HasColumnType("double precision") + .HasColumnName("differential_pressure_max") + .HasComment("Перепад давления ограничение, атм."); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход уставка, л/с."); + + b.Property("FlowRateMax") + .HasColumnType("double precision") + .HasColumnName("flow_rate_max") + .HasComment("Расход ограничение, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RopMax") + .HasColumnType("double precision") + .HasColumnName("rop_max") + .HasComment("Максимально допустимая скорость, м/ч."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Расчётная пружина, градус"); + + b.Property("WeightOnBit") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit") + .HasComment("Нагрузка уставка, т."); + + b.Property("WeightOnBitMax") + .HasColumnType("double precision") + .HasColumnName("weight_on_bit_max") + .HasComment("Нагрузка ограничение, т."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_slide", t => + { + t.HasComment("РТК план бурение слайд"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("Duration") + .HasColumnType("double precision") + .HasColumnName("duration") + .HasComment("Продолжительность, сек."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("ResidualPressureLimit") + .HasColumnType("double precision") + .HasColumnName("residual_pressure_limit") + .HasComment("Лимит остаточного давления, атм."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_operation_switching_off_the_pump", t => + { + t.HasComment("Выключение насоса"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("FlowRate") + .HasColumnType("double precision") + .HasColumnName("flow_rate") + .HasComment("Расход, л/с"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_limit") + .HasComment("Максимально допустимое давление, атм."); + + b.Property("RampTime") + .HasColumnType("double precision") + .HasColumnName("ramp_time") + .HasComment("Время выхода буровых насосов на плановый расход, сек."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_switching_to_the_mode", t => + { + t.HasComment("Выход на плановый расход"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Creation") + .HasColumnType("timestamp with time zone") + .HasColumnName("creation") + .HasComment("дата создания"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина по стволу до, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина по стволу от, м"); + + b.Property("DifferentialPressure") + .HasColumnType("double precision") + .HasColumnName("differential_pressure") + .HasComment("Перепад давления, атм."); + + b.Property("FlowRateDown") + .HasColumnType("double precision") + .HasColumnName("flow_rate_down") + .HasComment("Расход вниз, л/с."); + + b.Property("FlowRateUp") + .HasColumnType("double precision") + .HasColumnName("flow_rate_up") + .HasComment("Расход вверх, л/с."); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Автор"); + + b.Property("IdEditor") + .HasColumnType("integer") + .HasColumnName("id_editor") + .HasComment("Редактор"); + + b.Property("IdPrevious") + .HasColumnType("integer") + .HasColumnName("id_previous") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_wellsection_type") + .HasComment("Тип секции"); + + b.Property("Interval") + .HasColumnType("double precision") + .HasColumnName("interval") + .HasComment("Интервал расхаживания, м."); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)") + .HasColumnName("note") + .HasComment("Примечание"); + + b.Property("Obsolete") + .HasColumnType("timestamp with time zone") + .HasColumnName("obsolete") + .HasComment("дата устаревания"); + + b.Property("PressureMax") + .HasColumnType("double precision") + .HasColumnName("pressure_max") + .HasComment("Максимальное давление, атм."); + + b.Property("RepetitionsCount") + .HasColumnType("integer") + .HasColumnName("repetitions_count") + .HasComment("Количество расхаживаний, шт."); + + b.Property("RopDown") + .HasColumnType("double precision") + .HasColumnName("rop_down") + .HasComment("Скорость вниз, м/ч."); + + b.Property("RopUp") + .HasColumnType("double precision") + .HasColumnName("rop_up") + .HasComment("Скорость вверх, м/ч."); + + b.Property("SlackingOff") + .HasColumnType("double precision") + .HasColumnName("slacking_off") + .HasComment("Посадка, т."); + + b.Property("Spring") + .HasColumnType("double precision") + .HasColumnName("spring") + .HasComment("Пружина, град."); + + b.Property("StopPointOffBottom") + .HasColumnType("double precision") + .HasColumnName("stop_point_off_bottom") + .HasComment("Остановка над забоем, м."); + + b.Property("TFSetpoint") + .HasColumnType("double precision") + .HasColumnName("tf_setpoint") + .HasComment("Задание TF, град."); + + b.Property("Tight") + .HasColumnType("double precision") + .HasColumnName("tight") + .HasComment("Затяжка, т."); + + b.Property("TorqueMax") + .HasColumnType("double precision") + .HasColumnName("torque_max") + .HasComment("Максимально допустимый момент, кН*м."); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdEditor"); + + b.HasIndex("IdPrevious"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_process_map_plan_tf_orientation", t => + { + t.HasComment("Выставление"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.HasKey("IdCompany", "IdWell"); + + b.HasIndex("IdWell"); + + b.ToTable("t_relation_company_well", t => + { + t.HasComment("отношение скважин и компаний"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.HasKey("IdWell", "IdUser"); + + b.HasIndex("IdUser"); + + b.ToTable("t_relation_contact_well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdDrillingProgramPart") + .HasColumnType("integer") + .HasColumnName("id_drilling_program_part"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_role") + .HasComment("1 - publisher, 2 - approver"); + + b.HasKey("IdUser", "IdDrillingProgramPart") + .HasName("t_relation_user_drilling_program_part_pk"); + + b.HasIndex("IdDrillingProgramPart"); + + b.ToTable("t_relation_user_drilling_program_part", t => + { + t.HasComment("Отношение пользователей и частей ПБ"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdPermission") + .HasColumnType("integer") + .HasColumnName("id_permission"); + + b.HasKey("IdUserRole", "IdPermission"); + + b.HasIndex("IdPermission"); + + b.ToTable("t_relation_user_role_permission", t => + { + t.HasComment("Отношение ролей пользователей и разрешений доступа"); + }); + + b.HasData( + new + { + IdUserRole = 1100, + IdPermission = 102 + }, + new + { + IdUserRole = 1100, + IdPermission = 111 + }, + new + { + IdUserRole = 1101, + IdPermission = 101 + }, + new + { + IdUserRole = 1101, + IdPermission = 100 + }, + new + { + IdUserRole = 1102, + IdPermission = 105 + }, + new + { + IdUserRole = 1102, + IdPermission = 108 + }, + new + { + IdUserRole = 1103, + IdPermission = 104 + }, + new + { + IdUserRole = 1103, + IdPermission = 103 + }, + new + { + IdUserRole = 1104, + IdPermission = 108 + }, + new + { + IdUserRole = 1105, + IdPermission = 107 + }, + new + { + IdUserRole = 1105, + IdPermission = 106 + }, + new + { + IdUserRole = 1106, + IdPermission = 111 + }, + new + { + IdUserRole = 1107, + IdPermission = 110 + }, + new + { + IdUserRole = 1107, + IdPermission = 109 + }, + new + { + IdUserRole = 1108, + IdPermission = 114 + }, + new + { + IdUserRole = 1109, + IdPermission = 113 + }, + new + { + IdUserRole = 1109, + IdPermission = 112 + }, + new + { + IdUserRole = 1110, + IdPermission = 123 + }, + new + { + IdUserRole = 1110, + IdPermission = 114 + }, + new + { + IdUserRole = 1111, + IdPermission = 122 + }, + new + { + IdUserRole = 1111, + IdPermission = 121 + }, + new + { + IdUserRole = 1112, + IdPermission = 117 + }, + new + { + IdUserRole = 1113, + IdPermission = 105 + }, + new + { + IdUserRole = 1113, + IdPermission = 123 + }, + new + { + IdUserRole = 1113, + IdPermission = 120 + }, + new + { + IdUserRole = 1114, + IdPermission = 119 + }, + new + { + IdUserRole = 1114, + IdPermission = 118 + }, + new + { + IdUserRole = 1114, + IdPermission = 200 + }, + new + { + IdUserRole = 1115, + IdPermission = 223 + }, + new + { + IdUserRole = 1116, + IdPermission = 105 + }, + new + { + IdUserRole = 1116, + IdPermission = 102 + }, + new + { + IdUserRole = 1116, + IdPermission = 117 + }, + new + { + IdUserRole = 1116, + IdPermission = 126 + }, + new + { + IdUserRole = 1117, + IdPermission = 125 + }, + new + { + IdUserRole = 1117, + IdPermission = 124 + }, + new + { + IdUserRole = 1200, + IdPermission = 203 + }, + new + { + IdUserRole = 1200, + IdPermission = 230 + }, + new + { + IdUserRole = 1201, + IdPermission = 202 + }, + new + { + IdUserRole = 1201, + IdPermission = 203 + }, + new + { + IdUserRole = 1201, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 203 + }, + new + { + IdUserRole = 1202, + IdPermission = 220 + }, + new + { + IdUserRole = 1202, + IdPermission = 236 + }, + new + { + IdUserRole = 1202, + IdPermission = 212 + }, + new + { + IdUserRole = 1203, + IdPermission = 235 + }, + new + { + IdUserRole = 1204, + IdPermission = 202 + }, + new + { + IdUserRole = 1204, + IdPermission = 203 + }, + new + { + IdUserRole = 1205, + IdPermission = 215 + }, + new + { + IdUserRole = 1206, + IdPermission = 203 + }, + new + { + IdUserRole = 1206, + IdPermission = 206 + }, + new + { + IdUserRole = 1207, + IdPermission = 205 + }, + new + { + IdUserRole = 1208, + IdPermission = 218 + }, + new + { + IdUserRole = 1209, + IdPermission = 217 + }, + new + { + IdUserRole = 1210, + IdPermission = 203 + }, + new + { + IdUserRole = 1210, + IdPermission = 230 + }, + new + { + IdUserRole = 1210, + IdPermission = 219 + }, + new + { + IdUserRole = 1211, + IdPermission = 203 + }, + new + { + IdUserRole = 1211, + IdPermission = 220 + }, + new + { + IdUserRole = 1211, + IdPermission = 239 + }, + new + { + IdUserRole = 1212, + IdPermission = 238 + }, + new + { + IdUserRole = 1212, + IdPermission = 237 + }, + new + { + IdUserRole = 1213, + IdPermission = 203 + }, + new + { + IdUserRole = 1213, + IdPermission = 239 + }, + new + { + IdUserRole = 1213, + IdPermission = 212 + }, + new + { + IdUserRole = 1214, + IdPermission = 211 + }, + new + { + IdUserRole = 1214, + IdPermission = 210 + }, + new + { + IdUserRole = 1215, + IdPermission = 203 + }, + new + { + IdUserRole = 1215, + IdPermission = 222 + }, + new + { + IdUserRole = 1216, + IdPermission = 221 + }, + new + { + IdUserRole = 1217, + IdPermission = 226 + }, + new + { + IdUserRole = 1218, + IdPermission = 225 + }, + new + { + IdUserRole = 1218, + IdPermission = 224 + }, + new + { + IdUserRole = 1219, + IdPermission = 203 + }, + new + { + IdUserRole = 1219, + IdPermission = 206 + }, + new + { + IdUserRole = 1219, + IdPermission = 230 + }, + new + { + IdUserRole = 1219, + IdPermission = 232 + }, + new + { + IdUserRole = 1220, + IdPermission = 203 + }, + new + { + IdUserRole = 1220, + IdPermission = 228 + }, + new + { + IdUserRole = 1221, + IdPermission = 202 + }, + new + { + IdUserRole = 1221, + IdPermission = 203 + }, + new + { + IdUserRole = 1221, + IdPermission = 220 + }, + new + { + IdUserRole = 1221, + IdPermission = 234 + }, + new + { + IdUserRole = 1500, + IdPermission = 507 + }, + new + { + IdUserRole = 1500, + IdPermission = 510 + }, + new + { + IdUserRole = 1501, + IdPermission = 214 + }, + new + { + IdUserRole = 1501, + IdPermission = 213 + }, + new + { + IdUserRole = 1502, + IdPermission = 207 + }, + new + { + IdUserRole = 1502, + IdPermission = 208 + }, + new + { + IdUserRole = 2000, + IdPermission = 205 + }, + new + { + IdUserRole = 2000, + IdPermission = 204 + }, + new + { + IdUserRole = 2000, + IdPermission = 245 + }, + new + { + IdUserRole = 2001, + IdPermission = 244 + }, + new + { + IdUserRole = 2001, + IdPermission = 245 + }, + new + { + IdUserRole = 2002, + IdPermission = 244 + }, + new + { + IdUserRole = 2002, + IdPermission = 246 + }, + new + { + IdUserRole = 2002, + IdPermission = 237 + }, + new + { + IdUserRole = 2002, + IdPermission = 238 + }, + new + { + IdUserRole = 2003, + IdPermission = 240 + }, + new + { + IdUserRole = 2003, + IdPermission = 217 + }, + new + { + IdUserRole = 2003, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 242 + }, + new + { + IdUserRole = 2004, + IdPermission = 217 + }, + new + { + IdUserRole = 2004, + IdPermission = 216 + }, + new + { + IdUserRole = 2004, + IdPermission = 205 + }, + new + { + IdUserRole = 2004, + IdPermission = 204 + }, + new + { + IdUserRole = 2005, + IdPermission = 247 + }, + new + { + IdUserRole = 2005, + IdPermission = 205 + }, + new + { + IdUserRole = 2005, + IdPermission = 204 + }, + new + { + IdUserRole = 2006, + IdPermission = 243 + }, + new + { + IdUserRole = 2006, + IdPermission = 205 + }, + new + { + IdUserRole = 2006, + IdPermission = 204 + }, + new + { + IdUserRole = 2007, + IdPermission = 241 + }, + new + { + IdUserRole = 2007, + IdPermission = 205 + }, + new + { + IdUserRole = 2007, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 100 + }, + new + { + IdUserRole = 1, + IdPermission = 101 + }, + new + { + IdUserRole = 1, + IdPermission = 102 + }, + new + { + IdUserRole = 1, + IdPermission = 103 + }, + new + { + IdUserRole = 1, + IdPermission = 104 + }, + new + { + IdUserRole = 1, + IdPermission = 105 + }, + new + { + IdUserRole = 1, + IdPermission = 106 + }, + new + { + IdUserRole = 1, + IdPermission = 107 + }, + new + { + IdUserRole = 1, + IdPermission = 108 + }, + new + { + IdUserRole = 1, + IdPermission = 109 + }, + new + { + IdUserRole = 1, + IdPermission = 110 + }, + new + { + IdUserRole = 1, + IdPermission = 111 + }, + new + { + IdUserRole = 1, + IdPermission = 112 + }, + new + { + IdUserRole = 1, + IdPermission = 113 + }, + new + { + IdUserRole = 1, + IdPermission = 114 + }, + new + { + IdUserRole = 1, + IdPermission = 115 + }, + new + { + IdUserRole = 1, + IdPermission = 116 + }, + new + { + IdUserRole = 1, + IdPermission = 117 + }, + new + { + IdUserRole = 1, + IdPermission = 118 + }, + new + { + IdUserRole = 1, + IdPermission = 119 + }, + new + { + IdUserRole = 1, + IdPermission = 120 + }, + new + { + IdUserRole = 1, + IdPermission = 121 + }, + new + { + IdUserRole = 1, + IdPermission = 122 + }, + new + { + IdUserRole = 1, + IdPermission = 123 + }, + new + { + IdUserRole = 1, + IdPermission = 124 + }, + new + { + IdUserRole = 1, + IdPermission = 125 + }, + new + { + IdUserRole = 1, + IdPermission = 126 + }, + new + { + IdUserRole = 1, + IdPermission = 127 + }, + new + { + IdUserRole = 1, + IdPermission = 128 + }, + new + { + IdUserRole = 1, + IdPermission = 129 + }, + new + { + IdUserRole = 1, + IdPermission = 200 + }, + new + { + IdUserRole = 1, + IdPermission = 201 + }, + new + { + IdUserRole = 1, + IdPermission = 202 + }, + new + { + IdUserRole = 1, + IdPermission = 203 + }, + new + { + IdUserRole = 1, + IdPermission = 204 + }, + new + { + IdUserRole = 1, + IdPermission = 205 + }, + new + { + IdUserRole = 1, + IdPermission = 206 + }, + new + { + IdUserRole = 1, + IdPermission = 207 + }, + new + { + IdUserRole = 1, + IdPermission = 208 + }, + new + { + IdUserRole = 1, + IdPermission = 209 + }, + new + { + IdUserRole = 1, + IdPermission = 210 + }, + new + { + IdUserRole = 1, + IdPermission = 211 + }, + new + { + IdUserRole = 1, + IdPermission = 212 + }, + new + { + IdUserRole = 1, + IdPermission = 213 + }, + new + { + IdUserRole = 1, + IdPermission = 214 + }, + new + { + IdUserRole = 1, + IdPermission = 215 + }, + new + { + IdUserRole = 1, + IdPermission = 216 + }, + new + { + IdUserRole = 1, + IdPermission = 217 + }, + new + { + IdUserRole = 1, + IdPermission = 218 + }, + new + { + IdUserRole = 1, + IdPermission = 219 + }, + new + { + IdUserRole = 1, + IdPermission = 220 + }, + new + { + IdUserRole = 1, + IdPermission = 221 + }, + new + { + IdUserRole = 1, + IdPermission = 222 + }, + new + { + IdUserRole = 1, + IdPermission = 223 + }, + new + { + IdUserRole = 1, + IdPermission = 224 + }, + new + { + IdUserRole = 1, + IdPermission = 225 + }, + new + { + IdUserRole = 1, + IdPermission = 226 + }, + new + { + IdUserRole = 1, + IdPermission = 227 + }, + new + { + IdUserRole = 1, + IdPermission = 228 + }, + new + { + IdUserRole = 1, + IdPermission = 229 + }, + new + { + IdUserRole = 1, + IdPermission = 230 + }, + new + { + IdUserRole = 1, + IdPermission = 231 + }, + new + { + IdUserRole = 1, + IdPermission = 232 + }, + new + { + IdUserRole = 1, + IdPermission = 233 + }, + new + { + IdUserRole = 1, + IdPermission = 234 + }, + new + { + IdUserRole = 1, + IdPermission = 235 + }, + new + { + IdUserRole = 1, + IdPermission = 236 + }, + new + { + IdUserRole = 1, + IdPermission = 237 + }, + new + { + IdUserRole = 1, + IdPermission = 238 + }, + new + { + IdUserRole = 1, + IdPermission = 239 + }, + new + { + IdUserRole = 1, + IdPermission = 240 + }, + new + { + IdUserRole = 1, + IdPermission = 241 + }, + new + { + IdUserRole = 1, + IdPermission = 242 + }, + new + { + IdUserRole = 1, + IdPermission = 243 + }, + new + { + IdUserRole = 1, + IdPermission = 244 + }, + new + { + IdUserRole = 1, + IdPermission = 245 + }, + new + { + IdUserRole = 1, + IdPermission = 246 + }, + new + { + IdUserRole = 1, + IdPermission = 247 + }, + new + { + IdUserRole = 1, + IdPermission = 248 + }, + new + { + IdUserRole = 1, + IdPermission = 249 + }, + new + { + IdUserRole = 1, + IdPermission = 250 + }, + new + { + IdUserRole = 1, + IdPermission = 251 + }, + new + { + IdUserRole = 1, + IdPermission = 252 + }, + new + { + IdUserRole = 1, + IdPermission = 253 + }, + new + { + IdUserRole = 1, + IdPermission = 254 + }, + new + { + IdUserRole = 1, + IdPermission = 255 + }, + new + { + IdUserRole = 1, + IdPermission = 256 + }, + new + { + IdUserRole = 1, + IdPermission = 257 + }, + new + { + IdUserRole = 1, + IdPermission = 258 + }, + new + { + IdUserRole = 1, + IdPermission = 259 + }, + new + { + IdUserRole = 1, + IdPermission = 260 + }, + new + { + IdUserRole = 1, + IdPermission = 261 + }, + new + { + IdUserRole = 1, + IdPermission = 262 + }, + new + { + IdUserRole = 1, + IdPermission = 263 + }, + new + { + IdUserRole = 1, + IdPermission = 264 + }, + new + { + IdUserRole = 1, + IdPermission = 265 + }, + new + { + IdUserRole = 1, + IdPermission = 266 + }, + new + { + IdUserRole = 1, + IdPermission = 267 + }, + new + { + IdUserRole = 1, + IdPermission = 268 + }, + new + { + IdUserRole = 1, + IdPermission = 269 + }, + new + { + IdUserRole = 1, + IdPermission = 380 + }, + new + { + IdUserRole = 1, + IdPermission = 381 + }, + new + { + IdUserRole = 1, + IdPermission = 382 + }, + new + { + IdUserRole = 1, + IdPermission = 383 + }, + new + { + IdUserRole = 1, + IdPermission = 384 + }, + new + { + IdUserRole = 1, + IdPermission = 385 + }, + new + { + IdUserRole = 1, + IdPermission = 386 + }, + new + { + IdUserRole = 1, + IdPermission = 387 + }, + new + { + IdUserRole = 1, + IdPermission = 388 + }, + new + { + IdUserRole = 1, + IdPermission = 389 + }, + new + { + IdUserRole = 1, + IdPermission = 390 + }, + new + { + IdUserRole = 1, + IdPermission = 391 + }, + new + { + IdUserRole = 1, + IdPermission = 400 + }, + new + { + IdUserRole = 1, + IdPermission = 401 + }, + new + { + IdUserRole = 1, + IdPermission = 407 + }, + new + { + IdUserRole = 1, + IdPermission = 408 + }, + new + { + IdUserRole = 1, + IdPermission = 450 + }, + new + { + IdUserRole = 1, + IdPermission = 460 + }, + new + { + IdUserRole = 1, + IdPermission = 461 + }, + new + { + IdUserRole = 1, + IdPermission = 500 + }, + new + { + IdUserRole = 1, + IdPermission = 501 + }, + new + { + IdUserRole = 1, + IdPermission = 502 + }, + new + { + IdUserRole = 1, + IdPermission = 503 + }, + new + { + IdUserRole = 1, + IdPermission = 504 + }, + new + { + IdUserRole = 1, + IdPermission = 505 + }, + new + { + IdUserRole = 1, + IdPermission = 506 + }, + new + { + IdUserRole = 1, + IdPermission = 507 + }, + new + { + IdUserRole = 1, + IdPermission = 510 + }, + new + { + IdUserRole = 1, + IdPermission = 511 + }, + new + { + IdUserRole = 1, + IdPermission = 512 + }, + new + { + IdUserRole = 1, + IdPermission = 516 + }, + new + { + IdUserRole = 1, + IdPermission = 517 + }, + new + { + IdUserRole = 1, + IdPermission = 518 + }, + new + { + IdUserRole = 1, + IdPermission = 519 + }, + new + { + IdUserRole = 1, + IdPermission = 520 + }, + new + { + IdUserRole = 1, + IdPermission = 521 + }, + new + { + IdUserRole = 1, + IdPermission = 522 + }, + new + { + IdUserRole = 1, + IdPermission = 523 + }, + new + { + IdUserRole = 1, + IdPermission = 524 + }, + new + { + IdUserRole = 1, + IdPermission = 525 + }, + new + { + IdUserRole = 1, + IdPermission = 526 + }, + new + { + IdUserRole = 1, + IdPermission = 527 + }, + new + { + IdUserRole = 1, + IdPermission = 528 + }, + new + { + IdUserRole = 1, + IdPermission = 530 + }, + new + { + IdUserRole = 1, + IdPermission = 531 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.Property("IdInclude") + .HasColumnType("integer") + .HasColumnName("id_include_user_role"); + + b.HasKey("Id", "IdInclude") + .HasName("t_relation_user_role_user_role_pk"); + + b.HasIndex("IdInclude"); + + b.ToTable("t_relation_user_role_user_role", t => + { + t.HasComment("Отношение ролей к ролям"); + }); + + b.HasData( + new + { + Id = 1101, + IdInclude = 1100 + }, + new + { + Id = 1103, + IdInclude = 1102 + }, + new + { + Id = 1105, + IdInclude = 1104 + }, + new + { + Id = 1107, + IdInclude = 1106 + }, + new + { + Id = 1109, + IdInclude = 1108 + }, + new + { + Id = 1111, + IdInclude = 1110 + }, + new + { + Id = 1114, + IdInclude = 1113 + }, + new + { + Id = 1117, + IdInclude = 1116 + }, + new + { + Id = 1203, + IdInclude = 1202 + }, + new + { + Id = 1207, + IdInclude = 1206 + }, + new + { + Id = 1209, + IdInclude = 1208 + }, + new + { + Id = 1212, + IdInclude = 1211 + }, + new + { + Id = 1214, + IdInclude = 1213 + }, + new + { + Id = 1216, + IdInclude = 1215 + }, + new + { + Id = 1218, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1200 + }, + new + { + Id = 2000, + IdInclude = 1201 + }, + new + { + Id = 2000, + IdInclude = 1202 + }, + new + { + Id = 2000, + IdInclude = 1204 + }, + new + { + Id = 2000, + IdInclude = 1205 + }, + new + { + Id = 2000, + IdInclude = 1206 + }, + new + { + Id = 2000, + IdInclude = 1208 + }, + new + { + Id = 2000, + IdInclude = 1210 + }, + new + { + Id = 2000, + IdInclude = 1211 + }, + new + { + Id = 2000, + IdInclude = 1213 + }, + new + { + Id = 2000, + IdInclude = 1215 + }, + new + { + Id = 2000, + IdInclude = 1217 + }, + new + { + Id = 2000, + IdInclude = 1219 + }, + new + { + Id = 2000, + IdInclude = 1220 + }, + new + { + Id = 2000, + IdInclude = 1221 + }, + new + { + Id = 2000, + IdInclude = 1500 + }, + new + { + Id = 2000, + IdInclude = 1501 + }, + new + { + Id = 2000, + IdInclude = 1502 + }, + new + { + Id = 2001, + IdInclude = 1500 + }, + new + { + Id = 2001, + IdInclude = 1501 + }, + new + { + Id = 2001, + IdInclude = 1502 + }, + new + { + Id = 2002, + IdInclude = 1500 + }, + new + { + Id = 2002, + IdInclude = 1501 + }, + new + { + Id = 2002, + IdInclude = 1502 + }, + new + { + Id = 2003, + IdInclude = 1500 + }, + new + { + Id = 2003, + IdInclude = 1501 + }, + new + { + Id = 2003, + IdInclude = 1502 + }, + new + { + Id = 2004, + IdInclude = 1500 + }, + new + { + Id = 2004, + IdInclude = 1501 + }, + new + { + Id = 2004, + IdInclude = 1502 + }, + new + { + Id = 2005, + IdInclude = 1500 + }, + new + { + Id = 2005, + IdInclude = 1501 + }, + new + { + Id = 2005, + IdInclude = 1502 + }, + new + { + Id = 2006, + IdInclude = 1500 + }, + new + { + Id = 2006, + IdInclude = 1501 + }, + new + { + Id = 2006, + IdInclude = 1502 + }, + new + { + Id = 2007, + IdInclude = 1500 + }, + new + { + Id = 2007, + IdInclude = 1501 + }, + new + { + Id = 2007, + IdInclude = 1502 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdUserRole") + .HasColumnType("integer") + .HasColumnName("id_user_role"); + + b.HasKey("IdUser", "IdUserRole"); + + b.HasIndex("IdUserRole"); + + b.ToTable("t_relation_user_user_role", t => + { + t.HasComment("Отношение пользователей и ролей"); + }); + + b.HasData( + new + { + IdUser = 1, + IdUserRole = 1 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Begin") + .HasColumnType("timestamp with time zone") + .HasColumnName("begin"); + + b.Property("End") + .HasColumnType("timestamp with time zone") + .HasColumnName("end") + .HasComment("timestamp with time zone"); + + b.Property("Format") + .HasColumnType("integer") + .HasColumnName("format") + .HasComment("Формат отчета"); + + b.Property("IdFile") + .HasColumnType("integer") + .HasColumnName("id_file") + .HasComment("id файла-родителя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("Step") + .HasColumnType("integer") + .HasColumnName("step") + .HasComment("размер шага в секундах"); + + b.HasKey("Id"); + + b.HasIndex("IdFile"); + + b.HasIndex("IdWell"); + + b.ToTable("t_report_property", t => + { + t.HasComment("Отчеты с данными по буровым"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id") + .HasComment("Идентификатор"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DrillEnd") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_end") + .HasComment("Конец вахты"); + + b.Property("DrillStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("drill_start") + .HasComment("Начало вахты"); + + b.Property("IdDriller") + .HasColumnType("integer") + .HasColumnName("id_driller") + .HasComment("Идентификатор бурильщика"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Идентификатор скважины"); + + b.Property("ShiftEnd") + .HasColumnType("time without time zone") + .HasColumnName("shift_end") + .HasComment("Конец смены"); + + b.Property("ShiftStart") + .HasColumnType("time without time zone") + .HasColumnName("shift_start") + .HasComment("Начало смены"); + + b.HasKey("Id"); + + b.HasIndex("IdDriller"); + + b.HasIndex("IdWell"); + + b.ToTable("t_schedule", t => + { + t.HasComment("График работы бурильщика"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("комментарий для оператора"); + + b.Property("IdAuthor") + .HasColumnType("integer") + .HasColumnName("id_author") + .HasComment("Id пользователя, загрузившего файл"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("id_state") + .HasComment("0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("id скважины"); + + b.Property("ObsolescenceSec") + .HasColumnType("integer") + .HasColumnName("obsolescence") + .HasComment("сек. до устаревания"); + + b.Property("Setpoints") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("setpoint_set") + .HasComment("Набор уставок"); + + b.Property("UploadDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.HasKey("Id"); + + b.HasIndex("IdAuthor"); + + b.HasIndex("IdWell"); + + b.ToTable("t_setpoints_rquest", t => + { + t.HasComment("Запросы на изменение уставок панели оператора"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Subsystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("description"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.HasKey("Id"); + + b.ToTable("t_subsystem", t => + { + t.HasComment("Описание подсистем"); + }); + + b.HasData( + new + { + Id = 1, + Description = "Совместная работа режимов \"Бурение в роторе\" и \"Бурение в слайде\"", + Name = "АПД" + }, + new + { + Id = 11, + Description = "Режим работы \"Бурение в роторе\"", + Name = "АПД ротор" + }, + new + { + Id = 12, + Description = "Режим работы \"Бурение в слайде\"", + Name = "АПД слайд" + }, + new + { + Id = 65536, + Description = "Осцилляция", + Name = "Осцилляция" + }, + new + { + Id = 65537, + Description = "Демпфер", + Name = "Демпфер" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Info") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("info") + .HasComment("Информация с панели о скважине"); + + b.Property("RemoteUid") + .IsRequired() + .HasColumnType("text") + .HasColumnName("remote_uid") + .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв."); + + b.Property("TimeZone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index"); + + b.ToTable("t_telemetry", t => + { + t.HasComment("таблица привязки телеметрии от комплектов к конкретной скважине."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("AxialLoad") + .HasColumnType("real") + .HasColumnName("axial_load") + .HasComment("Осевая нагрузка"); + + b.Property("AxialLoadLimitMax") + .HasColumnType("real") + .HasColumnName("axial_load_limit_max") + .HasComment("Осевая нагрузка. Аварийная макс."); + + b.Property("AxialLoadSp") + .HasColumnType("real") + .HasColumnName("axial_load_sp") + .HasComment("Осевая нагрузка. Задание"); + + b.Property("BitDepth") + .HasColumnType("real") + .HasColumnName("bit_depth") + .HasComment("Положение инструмента"); + + b.Property("BlockPosition") + .HasColumnType("real") + .HasColumnName("block_position") + .HasComment("Высота талевого блока"); + + b.Property("BlockPositionMax") + .HasColumnType("real") + .HasColumnName("block_position_max") + .HasComment("Талевый блок. Макс положение"); + + b.Property("BlockPositionMin") + .HasColumnType("real") + .HasColumnName("block_position_min") + .HasComment("Талевый блок. Мин положение"); + + b.Property("BlockSpeed") + .HasColumnType("real") + .HasColumnName("block_speed") + .HasComment("Скорость талевого блока"); + + b.Property("BlockSpeedSp") + .HasColumnType("real") + .HasColumnName("block_speed_sp") + .HasComment("Скорости талевого блока. Задание"); + + b.Property("BlockSpeedSpDevelop") + .HasColumnType("real") + .HasColumnName("block_speed_sp_develop") + .HasComment("Талевый блок. Задание скорости для проработки"); + + b.Property("BlockSpeedSpRotor") + .HasColumnType("real") + .HasColumnName("block_speed_sp_rotor") + .HasComment("Талевый блок. Задание скорости для роторного бурения"); + + b.Property("BlockSpeedSpSlide") + .HasColumnType("real") + .HasColumnName("block_speed_sp_slide") + .HasComment("Талевый блок. Задание скорости для режима слайда"); + + b.Property("Flow") + .HasColumnType("real") + .HasColumnName("flow") + .HasComment("Расход"); + + b.Property("FlowDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("flow_delta_limit_max") + .HasComment("Расход. Аварийный макс."); + + b.Property("FlowIdle") + .HasColumnType("real") + .HasColumnName("flow_idle") + .HasComment("Расход. Холостой ход"); + + b.Property("HookWeight") + .HasColumnType("real") + .HasColumnName("hook_weight") + .HasComment("Вес на крюке"); + + b.Property("HookWeightIdle") + .HasColumnType("real") + .HasColumnName("hook_weight_idle") + .HasComment("Вес на крюке. Холостой ход"); + + b.Property("HookWeightLimitMax") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_max") + .HasComment("Вес на крюке. Затяжка"); + + b.Property("HookWeightLimitMin") + .HasColumnType("real") + .HasColumnName("hook_weight_limit_min") + .HasComment("Вес на крюке. Посадка"); + + b.Property("IdFeedRegulator") + .HasColumnType("smallint") + .HasColumnName("id_feed_regulator") + .HasComment("Текущий критерий бурения"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Пользователь САУБ"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Режим САУБ"); + + b.Property("Mse") + .HasColumnType("real") + .HasColumnName("mse") + .HasComment("MSE"); + + b.Property("MseState") + .HasColumnType("smallint") + .HasColumnName("mse_state") + .HasComment("Текущее состояние работы MSE"); + + b.Property("Pressure") + .HasColumnType("real") + .HasColumnName("pressure") + .HasComment("Давление"); + + b.Property("PressureDeltaLimitMax") + .HasColumnType("real") + .HasColumnName("pressure_delta_limit_max") + .HasComment("Давление дифф. Аварийное макс."); + + b.Property("PressureIdle") + .HasColumnType("real") + .HasColumnName("pressure_idle") + .HasComment("Давление. Холостой ход"); + + b.Property("PressureSp") + .HasColumnType("real") + .HasColumnName("pressure_sp") + .HasComment("Давление. Задание"); + + b.Property("PressureSpDevelop") + .HasColumnType("real") + .HasColumnName("pressure_sp_develop") + .HasComment("Давление. Задание для проработки"); + + b.Property("PressureSpRotor") + .HasColumnType("real") + .HasColumnName("pressure_sp_rotor") + .HasComment("Давление. Задание для роторного бурения"); + + b.Property("PressureSpSlide") + .HasColumnType("real") + .HasColumnName("pressure_sp_slide") + .HasComment("Давление. Задание для режима слайда"); + + b.Property("Pump0Flow") + .HasColumnType("real") + .HasColumnName("pump0_flow") + .HasComment("Расход. Буровой насос 1"); + + b.Property("Pump1Flow") + .HasColumnType("real") + .HasColumnName("pump1_flow") + .HasComment("Расход. Буровой насос 2"); + + b.Property("Pump2Flow") + .HasColumnType("real") + .HasColumnName("pump2_flow") + .HasComment("Расход. Буровой насос 3"); + + b.Property("RotorSpeed") + .HasColumnType("real") + .HasColumnName("rotor_speed") + .HasComment("Обороты ротора"); + + b.Property("RotorTorque") + .HasColumnType("real") + .HasColumnName("rotor_torque") + .HasComment("Момент на роторе"); + + b.Property("RotorTorqueIdle") + .HasColumnType("real") + .HasColumnName("rotor_torque_idle") + .HasComment("Момент на роторе. Холостой ход"); + + b.Property("RotorTorqueLimitMax") + .HasColumnType("real") + .HasColumnName("rotor_torque_limit_max") + .HasComment("Момент на роторе. Аварийный макс."); + + b.Property("RotorTorqueSp") + .HasColumnType("real") + .HasColumnName("rotor_torque_sp") + .HasComment("Момент на роторе. Задание"); + + b.Property("WellDepth") + .HasColumnType("real") + .HasColumnName("well_depth") + .HasComment("Глубина забоя"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_saub", t => + { + t.HasComment("набор основных данных по SAUB"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaubStat", b => + { + b.Property("Count") + .HasColumnType("bigint") + .HasColumnName("count_items"); + + b.Property("DateMax") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_max"); + + b.Property("DateMin") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_min"); + + b.Property("DepthMax") + .HasColumnType("real") + .HasColumnName("depth_max"); + + b.Property("DepthMin") + .HasColumnType("real") + .HasColumnName("depth_min"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.ToTable((string)null); + + b.ToView("mw_telemetry_datas_saub_stat", (string)null); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date") + .HasComment("'2021-10-19 18:23:54+05'"); + + b.Property("Mode") + .HasColumnType("smallint") + .HasColumnName("mode") + .HasComment("Выбранный режим управления"); + + b.Property("PositionRight") + .HasColumnType("real") + .HasColumnName("position_right") + .HasComment("Крайний правый угол осцилляции"); + + b.Property("PositionZero") + .HasColumnType("real") + .HasColumnName("position_zero") + .HasComment("Нулевая позиция осцилляции"); + + b.Property("RevolsLeftLimit") + .HasColumnType("real") + .HasColumnName("revols_left_limit") + .HasComment("Ограничение числа оборотов влево"); + + b.Property("RevolsLeftTotal") + .HasColumnType("real") + .HasColumnName("revols_left_total") + .HasComment("Суммарное количество оборотов влево"); + + b.Property("RevolsRightLimit") + .HasColumnType("real") + .HasColumnName("revols_right_limit") + .HasComment("Ограничение числа оборотов вправо"); + + b.Property("RevolsRightTotal") + .HasColumnType("real") + .HasColumnName("revols_right_total") + .HasComment("Суммарное количество оборотов вправо"); + + b.Property("SpeedLeftSp") + .HasColumnType("real") + .HasColumnName("speed_left_sp") + .HasComment("Заданная скорость вращения влево"); + + b.Property("SpeedRightSp") + .HasColumnType("real") + .HasColumnName("speed_right_sp") + .HasComment("Заданная скорость вращения вправо"); + + b.Property("State") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("Переменная этапа"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_data_spin", t => + { + t.HasComment("набор основных данных по SpinMaster"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.Property("MessageTemplate") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message_template"); + + b.HasKey("IdTelemetry", "IdEvent"); + + b.ToTable("t_telemetry_event", t => + { + t.HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Arg0") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg0") + .HasComment("Аргумент №0 для вставки в шаблон сообщения"); + + b.Property("Arg1") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg1"); + + b.Property("Arg2") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg2"); + + b.Property("Arg3") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("arg3"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("IdEvent") + .HasColumnType("integer") + .HasColumnName("id_event"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdTelemetryUser") + .HasColumnType("integer") + .HasColumnName("id_telemetry_user") + .HasComment("Пользователь панели отправляющей телеметрию. не пользователь облака."); + + b.Property("WellDepth") + .HasColumnType("double precision") + .HasColumnName("well_depth"); + + b.HasKey("Id"); + + b.HasIndex("IdTelemetry"); + + b.ToTable("t_telemetry_message", t => + { + t.HasComment("Сообщения на буровых"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Level") + .HasColumnType("integer") + .HasColumnName("level"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname"); + + b.HasKey("IdTelemetry", "IdUser"); + + b.ToTable("t_telemetry_user", t => + { + t.HasComment("Пользователи панели САУБ. Для сообщений."); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryWirelineRunOut", b => + { + b.Property("IdTelemetry") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id_telemetry") + .HasComment("Идентификатор телеметрии"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdTelemetry")); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_time") + .HasComment("Отметка времени"); + + b.Property("Hauling") + .HasColumnType("real") + .HasColumnName("hauling") + .HasComment("Наработка талевого каната с момента перетяжки каната, т*км"); + + b.Property("HaulingWarnSp") + .HasColumnType("real") + .HasColumnName("hauling_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости перетяжки, т*км"); + + b.Property("Replace") + .HasColumnType("real") + .HasColumnName("replace") + .HasComment("Наработка талевого каната с момента замены каната, т*км"); + + b.Property("ReplaceWarnSp") + .HasColumnType("real") + .HasColumnName("replace_warn_sp") + .HasComment("Наработка талевого каната до сигнализации о необходимости замены, т*км"); + + b.HasKey("IdTelemetry"); + + b.ToTable("t_telemetry_wireline_run_out", t => + { + t.HasComment("Наработка талевого каната"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_fact", t => + { + t.HasComment("Загрузка фактической траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AzimuthGeo") + .HasColumnType("double precision") + .HasColumnName("azimuth_geo") + .HasComment("Азимут Географ."); + + b.Property("AzimuthMagnetic") + .HasColumnType("double precision") + .HasColumnName("azimuth_magnetic") + .HasComment("Азимут Магнитный"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарии"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("ID пользователя который внес/изменил запись"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("ID скважины"); + + b.Property("Radius") + .HasColumnType("double precision") + .HasColumnName("radius") + .HasComment("Радиус цели"); + + b.Property("UpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("update_date") + .HasComment("Дата загрузки траектории"); + + b.Property("VerticalDepth") + .HasColumnType("double precision") + .HasColumnName("vertical_depth") + .HasComment("Глубина вертикальная"); + + b.Property("WellboreDepth") + .HasColumnType("double precision") + .HasColumnName("wellbore_depth") + .HasComment("Глубина по стволу"); + + b.Property("ZenithAngle") + .HasColumnType("double precision") + .HasColumnName("zenith_angle") + .HasComment("Угол зенитный"); + + b.HasKey("Id"); + + b.HasIndex("IdUser"); + + b.HasIndex("IdWell"); + + b.ToTable("t_trajectory_plan", t => + { + t.HasComment("Загрузка плановой траектории"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("email") + .HasComment("должность"); + + b.Property("IdCompany") + .HasColumnType("integer") + .HasColumnName("id_company"); + + b.Property("IdState") + .HasColumnType("smallint") + .HasColumnName("state") + .HasComment("состояние:\n0 - не активен, \n1 - активен, \n2 - заблокирован"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("login"); + + b.Property("Name") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("name") + .HasComment("имя"); + + b.Property("PasswordHash") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("password_hash") + .HasComment("соленый хэш пароля.\nпервые 5 символов - соль"); + + b.Property("Patronymic") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("patronymic") + .HasComment("отчество"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("character varying(50)") + .HasColumnName("phone") + .HasComment("номер телефона"); + + b.Property("Position") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("position") + .HasComment("email"); + + b.Property("Surname") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("surname") + .HasComment("фамилия"); + + b.HasKey("Id"); + + b.HasIndex("IdCompany"); + + b.HasIndex("Login") + .IsUnique(); + + b.ToTable("t_user", t => + { + t.HasComment("Пользователи облака"); + }); + + b.HasData( + new + { + Id = 1, + Email = "", + IdCompany = 1, + IdState = (short)1, + Login = "dev", + Name = "Разработчик", + PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0-роль из стандартной матрицы, \n1-специальная роль для какого-либо пользователя"); + + b.HasKey("Id"); + + b.ToTable("t_user_role", t => + { + t.HasComment("Роли пользователей в системе"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "root", + IdType = 1 + }, + new + { + Id = 1100, + Caption = "admin_cluster.view", + IdType = 1 + }, + new + { + Id = 1101, + Caption = "admin_cluster.edit", + IdType = 1 + }, + new + { + Id = 1102, + Caption = "admin_company.view", + IdType = 1 + }, + new + { + Id = 1103, + Caption = "admin_company.edit", + IdType = 1 + }, + new + { + Id = 1104, + Caption = "admin_company_type.view", + IdType = 1 + }, + new + { + Id = 1105, + Caption = "admin_company_type.edit", + IdType = 1 + }, + new + { + Id = 1106, + Caption = "admin_deposit.view", + IdType = 1 + }, + new + { + Id = 1107, + Caption = "admin_deposit.edit", + IdType = 1 + }, + new + { + Id = 1108, + Caption = "admin_permission.view", + IdType = 1 + }, + new + { + Id = 1109, + Caption = "admin_permission.edit", + IdType = 1 + }, + new + { + Id = 1110, + Caption = "admin_role.view", + IdType = 1 + }, + new + { + Id = 1111, + Caption = "admin_role.edit", + IdType = 1 + }, + new + { + Id = 1112, + Caption = "admin_telemetry.view", + IdType = 1 + }, + new + { + Id = 1113, + Caption = "admin_user.view", + IdType = 1 + }, + new + { + Id = 1114, + Caption = "admin_user.edit", + IdType = 1 + }, + new + { + Id = 1115, + Caption = "admin_visit_log.view", + IdType = 1 + }, + new + { + Id = 1116, + Caption = "admin_well.view", + IdType = 1 + }, + new + { + Id = 1117, + Caption = "admin_well.edit", + IdType = 1 + }, + new + { + Id = 1200, + Caption = "archive.view", + IdType = 1 + }, + new + { + Id = 1201, + Caption = "cluster.view", + IdType = 1 + }, + new + { + Id = 1202, + Caption = "composite.view", + IdType = 1 + }, + new + { + Id = 1203, + Caption = "composite.edit", + IdType = 1 + }, + new + { + Id = 1204, + Caption = "deposit.view", + IdType = 1 + }, + new + { + Id = 1205, + Caption = "document.view", + IdType = 1 + }, + new + { + Id = 1206, + Caption = "drillProcessFlow.view", + IdType = 1 + }, + new + { + Id = 1207, + Caption = "drillProcessFlow.edit", + IdType = 1 + }, + new + { + Id = 1208, + Caption = "measure.view", + IdType = 1 + }, + new + { + Id = 1209, + Caption = "measure.edit", + IdType = 1 + }, + new + { + Id = 1210, + Caption = "message.view", + IdType = 1 + }, + new + { + Id = 1211, + Caption = "operations.view", + IdType = 1 + }, + new + { + Id = 1212, + Caption = "operations.edit", + IdType = 1 + }, + new + { + Id = 1213, + Caption = "params.view", + IdType = 1 + }, + new + { + Id = 1214, + Caption = "params.edit", + IdType = 1 + }, + new + { + Id = 1215, + Caption = "report.view", + IdType = 1 + }, + new + { + Id = 1216, + Caption = "report.edit", + IdType = 1 + }, + new + { + Id = 1217, + Caption = "setpoints.view", + IdType = 1 + }, + new + { + Id = 1218, + Caption = "setpoints.edit", + IdType = 1 + }, + new + { + Id = 1219, + Caption = "telemetry.view", + IdType = 1 + }, + new + { + Id = 1220, + Caption = "telemetryAnalysis.view", + IdType = 1 + }, + new + { + Id = 1221, + Caption = "well.view", + IdType = 1 + }, + new + { + Id = 1500, + Caption = "Просмотр всего", + IdType = 1 + }, + new + { + Id = 1501, + Caption = "file.edit", + IdType = 1 + }, + new + { + Id = 1502, + Caption = "drillingProgram.edit", + IdType = 1 + }, + new + { + Id = 2000, + Caption = "Заказчик", + IdType = 0 + }, + new + { + Id = 2001, + Caption = "Супервайзер", + IdType = 0 + }, + new + { + Id = 2002, + Caption = "Буровой подрядчик", + IdType = 0 + }, + new + { + Id = 2003, + Caption = "Растворщик", + IdType = 0 + }, + new + { + Id = 2004, + Caption = "Телеметрист", + IdType = 0 + }, + new + { + Id = 2005, + Caption = "Долотный сервис", + IdType = 0 + }, + new + { + Id = 2006, + Caption = "ГТИ", + IdType = 0 + }, + new + { + Id = 2007, + Caption = "Цементирование", + IdType = 0 + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("Key") + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("key") + .HasComment("Ключ настроек пользователя"); + + b.Property("Value") + .HasColumnType("jsonb") + .HasColumnName("setting_value") + .HasComment("Значение настроек пользователя"); + + b.HasKey("IdUser", "Key"); + + b.ToTable("t_user_settings", t => + { + t.HasComment("настройки интерфейса пользователя"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.RecordBase", b => + { + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("DateTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Actcod") + .HasColumnType("smallint") + .HasColumnName("ACTCOD"); + + b.Property("Date") + .HasColumnType("integer") + .HasColumnName("DATE"); + + b.Property("Recid") + .HasColumnType("smallint") + .HasColumnName("RECID"); + + b.Property("Seqid") + .HasColumnType("integer") + .HasColumnName("SEQID"); + + b.Property("Stknum") + .HasColumnType("smallint") + .HasColumnName("STKNUM"); + + b.Property("Time") + .HasColumnType("integer") + .HasColumnName("TIME"); + + b.Property("Wellid") + .HasColumnType("text") + .HasColumnName("WELLID"); + + b.HasKey("IdTelemetry", "DateTime"); + + b.ToTable("t_telemetry_wits_base"); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption"); + + b.Property("IdCluster") + .HasColumnType("integer") + .HasColumnName("id_cluster"); + + b.Property("IdState") + .HasColumnType("integer") + .HasColumnName("state") + .HasComment("0 - неизвестно, 1 - в работе, 2 - завершена"); + + b.Property("IdTelemetry") + .HasColumnType("integer") + .HasColumnName("id_telemetry"); + + b.Property("IdWellType") + .HasColumnType("integer") + .HasColumnName("id_well_type"); + + b.Property("Latitude") + .HasColumnType("double precision") + .HasColumnName("latitude"); + + b.Property("Longitude") + .HasColumnType("double precision") + .HasColumnName("longitude"); + + b.Property("Timezone") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("timezone") + .HasComment("Смещение часового пояса от UTC"); + + b.HasKey("Id"); + + b.HasIndex("IdCluster"); + + b.HasIndex("IdTelemetry") + .IsUnique(); + + b.HasIndex("IdWellType"); + + b.ToTable("t_well", t => + { + t.HasComment("скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины получателя"); + + b.Property("IdWellSrc") + .HasColumnType("integer") + .HasColumnName("id_well_src") + .HasComment("Id скважины композита"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции композита"); + + b.HasKey("IdWell", "IdWellSrc", "IdWellSectionType"); + + b.HasIndex("IdWellSectionType"); + + b.HasIndex("IdWellSrc"); + + b.ToTable("t_well_composite", t => + { + t.HasComment("Композитная скважина"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category"); + + b.HasKey("IdWell", "IdUser", "IdCategory") + .HasName("t_well_final_documents_pk"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdUser"); + + b.ToTable("t_well_final_documents", t => + { + t.HasComment("Дело скважины"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CategoryInfo") + .HasColumnType("text") + .HasColumnName("category_info") + .HasComment("Доп. информация к выбраной категории"); + + b.Property("Comment") + .HasColumnType("text") + .HasColumnName("comment") + .HasComment("Комментарий"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_start") + .HasComment("Дата начала операции"); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Глубина после завершения операции, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Глубина на начало операции, м"); + + b.Property("DurationHours") + .HasColumnType("double precision") + .HasColumnName("duration_hours") + .HasComment("Продолжительность, часы"); + + b.Property("IdCategory") + .HasColumnType("integer") + .HasColumnName("id_category") + .HasComment("Id категории операции"); + + b.Property("IdPlan") + .HasColumnType("integer") + .HasColumnName("id_plan") + .HasComment("Id плановой операции"); + + b.Property("IdType") + .HasColumnType("integer") + .HasColumnName("id_type") + .HasComment("0 = План или 1 = Факт"); + + b.Property("IdUser") + .HasColumnType("integer"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("IdWellSectionType") + .HasColumnType("integer") + .HasColumnName("id_well_section_type") + .HasComment("Id тип секции скважины"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.HasIndex("DateStart"); + + b.HasIndex("DepthEnd"); + + b.HasIndex("IdCategory"); + + b.HasIndex("IdPlan"); + + b.HasIndex("IdWell"); + + b.HasIndex("IdWellSectionType"); + + b.ToTable("t_well_operation", t => + { + t.HasComment("Данные по операциям на скважине"); + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("IdParent") + .HasColumnType("integer") + .HasColumnName("id_parent") + .HasComment("id родительской категории"); + + b.Property("IsHidden") + .HasColumnType("boolean"); + + b.Property("KeyValueName") + .HasMaxLength(32) + .HasColumnType("character varying(32)") + .HasColumnName("key_value_name") + .HasComment("Название ключевого показателя операции"); + + b.Property("KeyValueUnits") + .HasMaxLength(16) + .HasColumnType("character varying(16)") + .HasColumnName("key_value_units") + .HasComment("Единицы измерения ключевого показателя операции"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name") + .HasComment("Название категории операции"); + + b.HasKey("Id"); + + b.HasIndex("IdParent"); + + b.ToTable("t_well_operation_category", t => + { + t.HasComment("Справочник операций на скважине"); + }); + + b.HasData( + new + { + Id = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "БУРЕНИЕ" + }, + new + { + Id = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КРЕПЛЕНИЕ" + }, + new + { + Id = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГФР" + }, + new + { + Id = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные операции" + }, + new + { + Id = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Непроизводительное время (НПВ)" + }, + new + { + Id = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные работы" + }, + new + { + Id = 4000, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "КНБК" + }, + new + { + Id = 4001, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "м/ч", + Name = "Механическое. бурение" + }, + new + { + Id = 4002, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Статический замер" + }, + new + { + Id = 4003, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Нормализация диаметра скважины" + }, + new + { + Id = 4004, + IdParent = 3000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 4005, + IdParent = 3001, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4006, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск обсадной колонны" + }, + new + { + Id = 4018, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Крепление" + }, + new + { + Id = 4007, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 4008, + IdParent = 3002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы при креплении" + }, + new + { + Id = 4009, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка/разборка приборов ГИС" + }, + new + { + Id = 4010, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО" + }, + new + { + Id = 4011, + IdParent = 3003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ГИС" + }, + new + { + Id = 4012, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка, ОБР" + }, + new + { + Id = 4013, + IdParent = 3004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вспомогательные работы" + }, + new + { + Id = 4014, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт оборудования" + }, + new + { + Id = 4015, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Аварийные работы" + }, + new + { + Id = 4016, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Осложнение" + }, + new + { + Id = 4017, + IdParent = 3005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Незаложенные в ГГД операции" + }, + new + { + Id = 4019, + IdParent = 3006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Заключительные операции" + }, + new + { + Id = 5000, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка КНБК" + }, + new + { + Id = 5001, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка КНБК" + }, + new + { + Id = 5002, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение слайдом" + }, + new + { + Id = 5003, + IdParent = 4001, + IsHidden = true, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение ротором" + }, + new + { + Id = 5004, + IdParent = 4002, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Замер ЗТС (запись MWD)" + }, + new + { + Id = 5005, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка перед наращиванием" + }, + new + { + Id = 5006, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка во время бурения" + }, + new + { + Id = 5007, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка" + }, + new + { + Id = 5008, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка во время бурения" + }, + new + { + Id = 5009, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка перед наращиванием" + }, + new + { + Id = 5010, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наращивание" + }, + new + { + Id = 5011, + IdParent = 4004, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Удержание в клиньях" + }, + new + { + Id = 5012, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем инструмента" + }, + new + { + Id = 5013, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем КНБК" + }, + new + { + Id = 5014, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента" + }, + new + { + Id = 5015, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КНБК" + }, + new + { + Id = 5016, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка при спуске ОК" + }, + new + { + Id = 5017, + IdParent = 4006, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск ОК" + }, + new + { + Id = 5018, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ОЗЦ" + }, + new + { + Id = 5019, + IdParent = 4007, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Цементирование" + }, + new + { + Id = 5020, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка БИ" + }, + new + { + Id = 5021, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ОК" + }, + new + { + Id = 5022, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при спуске ОК" + }, + new + { + Id = 5023, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при цементировании" + }, + new + { + Id = 5024, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разборка комплекса приборов ГИС" + }, + new + { + Id = 5025, + IdParent = 4009, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка комплекса приборов ГИС" + }, + new + { + Id = 5026, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем приборов ГИС (на трубах)" + }, + new + { + Id = 5027, + IdParent = 4010, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск приборов ГИС (на трубах)" + }, + new + { + Id = 5028, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на жестком кабеле" + }, + new + { + Id = 5029, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на кабеле" + }, + new + { + Id = 5030, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Комплекс ГИС на трубах" + }, + new + { + Id = 5031, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Закачка/прокачка пачки" + }, + new + { + Id = 5032, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка БР" + }, + new + { + Id = 5033, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование ТС при бурении" + }, + new + { + Id = 5034, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перезапись гаммы-каротажа" + }, + new + { + Id = 5035, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Приготовление БР" + }, + new + { + Id = 5036, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка" + }, + new + { + Id = 5037, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Разбуривание тех.оснастки" + }, + new + { + Id = 5038, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск инструмента с проработкой" + }, + new + { + Id = 5039, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ВМР" + }, + new + { + Id = 5040, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Демонтаж ПВО" + }, + new + { + Id = 5041, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Долив затруба при подъёме" + }, + new + { + Id = 5042, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж ПВО" + }, + new + { + Id = 5043, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Наработка жёлоба" + }, + new + { + Id = 5044, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обвязка устья с циркуляционной системой" + }, + new + { + Id = 5045, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Оборудование устья" + }, + new + { + Id = 5046, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Опрессовка ПВО" + }, + new + { + Id = 5047, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перемонтаж ПВО " + }, + new + { + Id = 5048, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Перетяжка талевого каната" + }, + new + { + Id = 5049, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР при сборке КНБК" + }, + new + { + Id = 5050, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Полная замена талевого каната" + }, + new + { + Id = 5051, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПР перед забуркой направления" + }, + new + { + Id = 5052, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Продувка манифольда" + }, + new + { + Id = 5053, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Срезка" + }, + new + { + Id = 5054, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тайм-дриллинг" + }, + new + { + Id = 5055, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Тех.отстой" + }, + new + { + Id = 5056, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Учебная тревога \"Выброс\"" + }, + new + { + Id = 5057, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Чистка ЦСГО/емкостного блока" + }, + new + { + Id = 5058, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт бурового оборудования" + }, + new + { + Id = 5059, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ловильные работы" + }, + new + { + Id = 5060, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ожидание" + }, + new + { + Id = 5061, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Определение места прихвата и ЛМ" + }, + new + { + Id = 5062, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа яссом" + }, + new + { + Id = 5063, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расхаживание" + }, + new + { + Id = 5064, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - колокол" + }, + new + { + Id = 5065, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - метчик" + }, + new + { + Id = 5066, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - овершот" + }, + new + { + Id = 5067, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "СПО - труболовка" + }, + new + { + Id = 5068, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (встряхивание)" + }, + new + { + Id = 5069, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Торпедирование (отстрел)" + }, + new + { + Id = 5070, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Установка ванн" + }, + new + { + Id = 5071, + IdParent = 4015, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Фрезеровка" + }, + new + { + Id = 5072, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Контролируемое ГНВП" + }, + new + { + Id = 5073, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Поглощение" + }, + new + { + Id = 5074, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сальникообразование" + }, + new + { + Id = 5075, + IdParent = 4016, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Утяжеление БР" + }, + new + { + Id = 5076, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "НПВ / прочее" + }, + new + { + Id = 5077, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Обработка раствора (несоответствие параметров)" + }, + new + { + Id = 5078, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "подъем ОК" + }, + new + { + Id = 5079, + IdParent = 4017, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ревизия КНБК/инструмента/ЗТС" + }, + new + { + Id = 5082, + IdParent = 4000, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка устройства ориентирования КО" + }, + new + { + Id = 5083, + IdParent = 4003, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Проработка принудительная" + }, + new + { + Id = 5084, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонировка подъем БИ, продувка" + }, + new + { + Id = 5085, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск бурильного инструмента со сборкой с мостков" + }, + new + { + Id = 5086, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем БИ с выбросом на мостки" + }, + new + { + Id = 5087, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск БИ со сборкой с мостков" + }, + new + { + Id = 5088, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка и спуск ТБТ" + }, + new + { + Id = 5089, + IdParent = 4005, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск КО на транспортной колонне" + }, + new + { + Id = 5090, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Отворот допускной трубы" + }, + new + { + Id = 5091, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески, опрессовка" + }, + new + { + Id = 5092, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Монтаж, опрессовка ФА" + }, + new + { + Id = 5093, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка хвостовика 114мм (согласно схеме)" + }, + new + { + Id = 5094, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ПЗР к спуску УЭЦН" + }, + new + { + Id = 5095, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Активация подвески (потайной колонны, хвостовика)" + }, + new + { + Id = 5096, + IdParent = 4008, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование перед спуском" + }, + new + { + Id = 5097, + IdParent = 4012, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Промывка - перевод скважины на новый раствор" + }, + new + { + Id = 5098, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка БИ с мостков на подсвечник" + }, + new + { + Id = 5099, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подготовка ствола скважины. Перезапись ГК в интервале установки КО." + }, + new + { + Id = 5100, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Смена рабочего переводника ВСП" + }, + new + { + Id = 5101, + IdParent = 4014, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ремонт" + }, + new + { + Id = 5102, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск пакера" + }, + new + { + Id = 5103, + IdParent = 4011, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Запись гамма-каратожа" + }, + new + { + Id = 5104, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Шаблонирование спуск БИ" + }, + new + { + Id = 5105, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Сборка клин-отклонителя" + }, + new + { + Id = 5106, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и посадка клина-отклонителя" + }, + new + { + Id = 5107, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Протяжка подъемного патрубка подвески" + }, + new + { + Id = 5108, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Подъем клина-отклонителя" + }, + new + { + Id = 5109, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Стыковка стингера с хвостовиком основного ствола" + }, + new + { + Id = 5110, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Ориентирование и установка стыковочного узла хвостовика" + }, + new + { + Id = 5111, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение с отбором керна" + }, + new + { + Id = 5112, + IdParent = 4018, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Работа пакером в обсадной колонне" + }, + new + { + Id = 5113, + IdParent = 4001, + IsHidden = false, + KeyValueName = "МСП", + KeyValueUnits = "м/ч", + Name = "Бурение" + }, + new + { + Id = 5114, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "ТО оборудования" + }, + new + { + Id = 5115, + IdParent = 4019, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Спуск НКТ" + }, + new + { + Id = 5116, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Вырезка окна" + }, + new + { + Id = 5117, + IdParent = 4013, + IsHidden = false, + KeyValueName = "dT", + KeyValueUnits = "мин", + Name = "Расширение ствола" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.Property("Order") + .HasColumnType("real") + .HasColumnName("order") + .HasComment("Порядок"); + + b.HasKey("Id"); + + b.ToTable("t_well_section_type", t => + { + t.HasComment("конструкция секции скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Пилотный ствол", + Order = 4f + }, + new + { + Id = 2, + Caption = "Направление", + Order = 0f + }, + new + { + Id = 3, + Caption = "Кондуктор", + Order = 1f + }, + new + { + Id = 4, + Caption = "Эксплуатационная колонна", + Order = 3f + }, + new + { + Id = 5, + Caption = "Транспортный ствол", + Order = 5f + }, + new + { + Id = 6, + Caption = "Хвостовик", + Order = 6f + }, + new + { + Id = 7, + Caption = "Пилотный ствол 2", + Order = 4.1f + }, + new + { + Id = 8, + Caption = "Направление 2", + Order = 0.1f + }, + new + { + Id = 9, + Caption = "Кондуктор 2", + Order = 1.1f + }, + new + { + Id = 10, + Caption = "Эксплуатационная колонна 2", + Order = 3.1f + }, + new + { + Id = 11, + Caption = "Транспортный ствол 2", + Order = 5.1f + }, + new + { + Id = 12, + Caption = "Хвостовик 2", + Order = 6.1f + }, + new + { + Id = 13, + Caption = "Пилотный ствол 3", + Order = 4.2f + }, + new + { + Id = 14, + Caption = "Направление 3", + Order = 0.2f + }, + new + { + Id = 15, + Caption = "Кондуктор 3", + Order = 1.2f + }, + new + { + Id = 16, + Caption = "Эксплуатационная колонна 3", + Order = 3.2f + }, + new + { + Id = 17, + Caption = "Транспортный ствол 3", + Order = 5.2f + }, + new + { + Id = 18, + Caption = "Хвостовик 3", + Order = 6.2f + }, + new + { + Id = 19, + Caption = "Пилотный ствол 4", + Order = 4.3f + }, + new + { + Id = 20, + Caption = "Направление 4", + Order = 0.3f + }, + new + { + Id = 21, + Caption = "Кондуктор 4", + Order = 1.3f + }, + new + { + Id = 22, + Caption = "Эксплуатационная колонна 4", + Order = 3.3f + }, + new + { + Id = 23, + Caption = "Транспортный ствол 4", + Order = 5.3f + }, + new + { + Id = 24, + Caption = "Хвостовик 4", + Order = 6.3f + }, + new + { + Id = 25, + Caption = "Пилотный ствол 5", + Order = 4.4f + }, + new + { + Id = 26, + Caption = "Направление 5", + Order = 0.4f + }, + new + { + Id = 27, + Caption = "Кондуктор 5", + Order = 1.4f + }, + new + { + Id = 28, + Caption = "Эксплуатационная колонна 5", + Order = 3.4f + }, + new + { + Id = 29, + Caption = "Транспортный ствол 5", + Order = 5.4f + }, + new + { + Id = 30, + Caption = "Хвостовик 5", + Order = 6.4f + }, + new + { + Id = 31, + Caption = "Техническая колонна", + Order = 2f + }, + new + { + Id = 32, + Caption = "Техническая колонна 2", + Order = 2.1f + }, + new + { + Id = 33, + Caption = "Техническая колонна 3", + Order = 2.2f + }, + new + { + Id = 34, + Caption = "Хвостовик 6", + Order = 6.5f + }, + new + { + Id = 35, + Caption = "Хвостовик 7", + Order = 6.6f + }, + new + { + Id = 36, + Caption = "Хвостовик 8", + Order = 6.7f + }, + new + { + Id = 37, + Caption = "Хвостовик 9", + Order = 6.8f + }, + new + { + Id = 38, + Caption = "Хвостовик 10", + Order = 6.9f + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DepthEnd") + .HasColumnType("double precision") + .HasColumnName("depth_end") + .HasComment("Конечная глубина бурения, м"); + + b.Property("DepthStart") + .HasColumnType("double precision") + .HasColumnName("depth_start") + .HasComment("Начальная глубина бурения, м"); + + b.Property("IdSectionType") + .HasColumnType("integer") + .HasColumnName("id_section_type") + .HasComment("Тип секции"); + + b.Property("IdUser") + .HasColumnType("integer") + .HasColumnName("id_user") + .HasComment("Id пользователя"); + + b.Property("IdWell") + .HasColumnType("integer") + .HasColumnName("id_well") + .HasComment("Id скважины"); + + b.Property("InnerDiameter") + .HasColumnType("double precision") + .HasColumnName("inner_diameter") + .HasComment("Внутренний диаметр"); + + b.Property("LastUpdateDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("date_last_update") + .HasComment("Дата последнего обновления"); + + b.Property("OuterDiameter") + .HasColumnType("double precision") + .HasColumnName("outer_diameter") + .HasComment("Внешний диаметр"); + + b.HasKey("Id"); + + b.HasIndex("IdSectionType"); + + b.HasIndex("IdWell", "IdSectionType") + .IsUnique(); + + b.ToTable("t_well_section_plan"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Caption") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("character varying(255)") + .HasColumnName("caption") + .HasComment("Название"); + + b.HasKey("Id"); + + b.ToTable("t_well_type", t => + { + t.HasComment("конструкция скважины"); + }); + + b.HasData( + new + { + Id = 1, + Caption = "Наклонно-направленная" + }, + new + { + Id = 2, + Caption = "Горизонтальная" + }); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Blkpos") + .HasColumnType("real") + .HasColumnName("BLKPOS"); + + b.Property("Chkp") + .HasColumnType("real") + .HasColumnName("CHKP"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptretm") + .HasColumnType("real") + .HasColumnName("DEPTRETM"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Gasa") + .HasColumnType("real") + .HasColumnName("GASA"); + + b.Property("Hkla") + .HasColumnType("real") + .HasColumnName("HKLA"); + + b.Property("Hklx") + .HasColumnType("real") + .HasColumnName("HKLX"); + + b.Property("Lagstks") + .HasColumnType("smallint") + .HasColumnName("LAGSTKS"); + + b.Property("Mcia") + .HasColumnType("real") + .HasColumnName("MCIA"); + + b.Property("Mcoa") + .HasColumnType("real") + .HasColumnName("MCOA"); + + b.Property("Mdia") + .HasColumnType("real") + .HasColumnName("MDIA"); + + b.Property("Mdoa") + .HasColumnType("real") + .HasColumnName("MDOA"); + + b.Property("Mfia") + .HasColumnType("real") + .HasColumnName("MFIA"); + + b.Property("Mfoa") + .HasColumnType("real") + .HasColumnName("MFOA"); + + b.Property("Mfop") + .HasColumnType("smallint") + .HasColumnName("MFOP"); + + b.Property("Mtia") + .HasColumnType("real") + .HasColumnName("MTIA"); + + b.Property("Mtoa") + .HasColumnType("real") + .HasColumnName("MTOA"); + + b.Property("Ropa") + .HasColumnType("real") + .HasColumnName("ROPA"); + + b.Property("Rpma") + .HasColumnType("smallint") + .HasColumnName("RPMA"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spm1") + .HasColumnType("smallint") + .HasColumnName("SPM1"); + + b.Property("Spm2") + .HasColumnType("smallint") + .HasColumnName("SPM2"); + + b.Property("Spm3") + .HasColumnType("smallint") + .HasColumnName("SPM3"); + + b.Property("Sppa") + .HasColumnType("real") + .HasColumnName("SPPA"); + + b.Property("Stkc") + .HasColumnType("integer") + .HasColumnName("STKC"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.Property("Torqa") + .HasColumnType("real") + .HasColumnName("TORQA"); + + b.Property("Torqx") + .HasColumnType("real") + .HasColumnName("TORQX"); + + b.Property("Tvolact") + .HasColumnType("real") + .HasColumnName("TVOLACT"); + + b.Property("Tvolcact") + .HasColumnType("real") + .HasColumnName("TVOLCACT"); + + b.Property("Woba") + .HasColumnType("real") + .HasColumnName("WOBA"); + + b.Property("Wobx") + .HasColumnType("real") + .HasColumnName("WOBX"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_1"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("DeptmeasGdpMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_GDP_mc"); + + b.Property("DeptmeasMcrstat") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_MCRSTAT"); + + b.Property("DeptmeasRa33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33_mc"); + + b.Property("DeptmeasRa33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F2_mc"); + + b.Property("DeptmeasRa33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RA33F4_mc"); + + b.Property("DeptmeasRp33Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33_mc"); + + b.Property("DeptmeasRp33f2Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F2_mc"); + + b.Property("DeptmeasRp33f4Mc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_RP33F4_mc"); + + b.Property("DeptmeasSlvlMc") + .HasColumnType("real") + .HasColumnName("DEPTMEAS_SLVL_mc"); + + b.Property("GdpMc") + .HasColumnType("real") + .HasColumnName("GDP_mc"); + + b.Property("Mcrstat") + .HasColumnType("real") + .HasColumnName("MCRSTAT"); + + b.Property("Ra33Mc") + .HasColumnType("real") + .HasColumnName("RA33_mc"); + + b.Property("Ra33f2Mc") + .HasColumnType("real") + .HasColumnName("RA33F2_mc"); + + b.Property("Ra33f4Mc") + .HasColumnType("real") + .HasColumnName("RA33F4_mc"); + + b.Property("Rp33Mc") + .HasColumnType("real") + .HasColumnName("RP33_mc"); + + b.Property("Rp33f2Mc") + .HasColumnType("real") + .HasColumnName("RP33F2_mc"); + + b.Property("Rp33f4Mc") + .HasColumnType("real") + .HasColumnName("RP33F4_mc"); + + b.Property("SlvlMc") + .HasColumnType("real") + .HasColumnName("SLVL_mc"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_50"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Btot") + .HasColumnType("real") + .HasColumnName("Btot"); + + b.Property("Bx") + .HasColumnType("real") + .HasColumnName("Bx"); + + b.Property("By") + .HasColumnType("real") + .HasColumnName("By"); + + b.Property("Bz") + .HasColumnType("real") + .HasColumnName("Bz"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Gtot") + .HasColumnType("real") + .HasColumnName("Gtot"); + + b.Property("Gx") + .HasColumnType("real") + .HasColumnName("Gx"); + + b.Property("Gy") + .HasColumnType("real") + .HasColumnName("Gy"); + + b.Property("Gz") + .HasColumnType("real") + .HasColumnName("Gz"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_60"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Att06h") + .HasColumnType("real") + .HasColumnName("ATT06H"); + + b.Property("Att06l") + .HasColumnType("real") + .HasColumnName("ATT06L"); + + b.Property("Att10h") + .HasColumnType("real") + .HasColumnName("ATT10H"); + + b.Property("Att10l") + .HasColumnType("real") + .HasColumnName("ATT10L"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Phl1f1") + .HasColumnType("real") + .HasColumnName("PHL1F1"); + + b.Property("Phl1f2") + .HasColumnType("real") + .HasColumnName("PHL1F2"); + + b.Property("Phl2f1") + .HasColumnType("real") + .HasColumnName("PHL2F1"); + + b.Property("Phl2f2") + .HasColumnType("real") + .HasColumnName("PHL2F2"); + + b.Property("Status") + .HasColumnType("real") + .HasColumnName("Status"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_61"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptsvym") + .HasColumnType("real") + .HasColumnName("DEPTSVYM"); + + b.Property("Deptsvyv") + .HasColumnType("real") + .HasColumnName("DEPTSVYV"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Svyazc") + .HasColumnType("real") + .HasColumnName("SVYAZC"); + + b.Property("Svyazu") + .HasColumnType("real") + .HasColumnName("SVYAZU"); + + b.Property("Svydls") + .HasColumnType("real") + .HasColumnName("SVYDLS"); + + b.Property("Svyew") + .HasColumnType("real") + .HasColumnName("SVYEW"); + + b.Property("Svygtf") + .HasColumnType("real") + .HasColumnName("SVYGTF"); + + b.Property("Svyinc") + .HasColumnType("real") + .HasColumnName("SVYINC"); + + b.Property("Svymtf") + .HasColumnType("real") + .HasColumnName("SVYMTF"); + + b.Property("Svyns") + .HasColumnType("real") + .HasColumnName("SVYNS"); + + b.Property("Svytype") + .HasColumnType("text") + .HasColumnName("SVYTYPE"); + + b.Property("Svywalk") + .HasColumnType("real") + .HasColumnName("SVYWALK"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_7"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasBaseType("AsbCloudDb.Model.WITS.RecordBase"); + + b.Property("Deptbitm") + .HasColumnType("real") + .HasColumnName("DEPTBITM"); + + b.Property("Deptbitv") + .HasColumnType("real") + .HasColumnName("DEPTBITV"); + + b.Property("Deptcalm") + .HasColumnType("real") + .HasColumnName("DEPTCALM"); + + b.Property("Deptcalv") + .HasColumnType("real") + .HasColumnName("DEPTCALV"); + + b.Property("Deptfdm") + .HasColumnType("real") + .HasColumnName("DEPTFDM"); + + b.Property("Deptfdv") + .HasColumnType("real") + .HasColumnName("DEPTFDV"); + + b.Property("Deptgr1m") + .HasColumnType("real") + .HasColumnName("DEPTGR1M"); + + b.Property("Deptgr1v") + .HasColumnType("real") + .HasColumnName("DEPTGR1V"); + + b.Property("Deptgr2m") + .HasColumnType("real") + .HasColumnName("DEPTGR2M"); + + b.Property("Deptgr2v") + .HasColumnType("real") + .HasColumnName("DEPTGR2V"); + + b.Property("Deptmeas") + .HasColumnType("real") + .HasColumnName("DEPTMEAS"); + + b.Property("Deptp1m") + .HasColumnType("real") + .HasColumnName("DEPTP1M"); + + b.Property("Deptp1v") + .HasColumnType("real") + .HasColumnName("DEPTP1V"); + + b.Property("Deptp2m") + .HasColumnType("real") + .HasColumnName("DEPTP2M"); + + b.Property("Deptp2v") + .HasColumnType("real") + .HasColumnName("DEPTP2V"); + + b.Property("Deptrs1m") + .HasColumnType("real") + .HasColumnName("DEPTRS1M"); + + b.Property("Deptrs1v") + .HasColumnType("real") + .HasColumnName("DEPTRS1V"); + + b.Property("Deptrs2m") + .HasColumnType("real") + .HasColumnName("DEPTRS2M"); + + b.Property("Deptrs2v") + .HasColumnType("real") + .HasColumnName("DEPTRS2V"); + + b.Property("Deptvert") + .HasColumnType("real") + .HasColumnName("DEPTVERT"); + + b.Property("Mclp") + .HasColumnType("real") + .HasColumnName("MCLP"); + + b.Property("Mfd") + .HasColumnType("real") + .HasColumnName("MFD"); + + b.Property("Mffp") + .HasColumnType("real") + .HasColumnName("MFFP"); + + b.Property("Mfpp") + .HasColumnType("real") + .HasColumnName("MFPP"); + + b.Property("Mfrann") + .HasColumnType("real") + .HasColumnName("MFRANN"); + + b.Property("Mfrpipe") + .HasColumnType("real") + .HasColumnName("MFRPIPE"); + + b.Property("Mftann") + .HasColumnType("real") + .HasColumnName("MFTANN"); + + b.Property("Mftpipe") + .HasColumnType("real") + .HasColumnName("MFTPIPE"); + + b.Property("Mg1") + .HasColumnType("real") + .HasColumnName("MG1"); + + b.Property("Mg1c") + .HasColumnType("real") + .HasColumnName("MG1C"); + + b.Property("Mg2") + .HasColumnType("real") + .HasColumnName("MG2"); + + b.Property("Mg2c") + .HasColumnType("real") + .HasColumnName("MG2C"); + + b.Property("Mpo1") + .HasColumnType("real") + .HasColumnName("MPO1"); + + b.Property("Mpo2") + .HasColumnType("real") + .HasColumnName("MPO2"); + + b.Property("Mr1") + .HasColumnType("real") + .HasColumnName("MR1"); + + b.Property("Mr1c") + .HasColumnType("real") + .HasColumnName("MR1C"); + + b.Property("Mr2") + .HasColumnType("real") + .HasColumnName("MR2"); + + b.Property("Mr2c") + .HasColumnType("real") + .HasColumnName("MR2C"); + + b.Property("Passnum") + .HasColumnType("smallint") + .HasColumnName("PASSNUM"); + + b.Property("Spare1") + .HasColumnType("real") + .HasColumnName("SPARE1"); + + b.Property("Spare2") + .HasColumnType("real") + .HasColumnName("SPARE2"); + + b.Property("Spare3") + .HasColumnType("real") + .HasColumnName("SPARE3"); + + b.Property("Spare4") + .HasColumnType("real") + .HasColumnName("SPARE4"); + + b.Property("Spare5") + .HasColumnType("real") + .HasColumnName("SPARE5"); + + b.Property("Spare6") + .HasColumnType("real") + .HasColumnName("SPARE6"); + + b.Property("Spare7") + .HasColumnType("real") + .HasColumnName("SPARE7"); + + b.Property("Spare8") + .HasColumnType("real") + .HasColumnName("SPARE8"); + + b.Property("Spare9") + .HasColumnType("real") + .HasColumnName("SPARE9"); + + b.Property("TelemetryId") + .HasColumnType("integer"); + + b.HasIndex("TelemetryId"); + + b.ToTable("t_telemetry_wits_8"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.HasOne("AsbCloudDb.Model.Deposit", "Deposit") + .WithMany("Clusters") + .HasForeignKey("IdDeposit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_cluster_t_deposit_id_fk"); + + b.Navigation("Deposit"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Companies") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Contact", b => + { + b.HasOne("AsbCloudDb.Model.CompanyType", "CompanyType") + .WithMany("Contacts") + .HasForeignKey("IdCompanyType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("Contacts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CompanyType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DailyReports.DailyReport", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DataSaubStat", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillTest", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdFileCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("DrillingProgramParts") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Faq", b => + { + b.HasOne("AsbCloudDb.Model.User", "AuthorAnswer") + .WithMany() + .HasForeignKey("IdAuthorAnswer"); + + b.HasOne("AsbCloudDb.Model.User", "AuthorQuestion") + .WithMany() + .HasForeignKey("IdAuthorQuestion") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuthorAnswer"); + + b.Navigation("AuthorQuestion"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany("Files") + .HasForeignKey("IdAuthor"); + + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("FileCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileMark", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "FileInfo") + .WithMany("FileMarks") + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_file_mark_t_file_info_fk"); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("FileMarks") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_user_t_file_mark_fk"); + + b.Navigation("FileInfo"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemFloat", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemInt", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.GTR.WitsItemString", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.HelpPage", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "FileCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileCategory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.LimitingParameter", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.Manual", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Directory") + .WithMany("Manuals") + .HasForeignKey("IdDirectory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Category"); + + b.Navigation("Directory"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.HasOne("AsbCloudDb.Model.Manuals.ManualDirectory", "Parent") + .WithMany("Children") + .HasForeignKey("IdParent") + .OnDelete(DeleteBehavior.Cascade); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Measure", b => + { + b.HasOne("AsbCloudDb.Model.MeasureCategory", "Category") + .WithMany("Measures") + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Notification", b => + { + b.HasOne("AsbCloudDb.Model.NotificationCategory", "NotificationCategory") + .WithMany("Notifications") + .HasForeignKey("IdNotificationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("NotificationCategory"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.OperationValue", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdOperationCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAntiCrashRotation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanAutoHoldTF", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDamper", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanDrillTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanOscillation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanShockTest", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanStaticMeasurementOutput", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanOscillationAngles", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanPositioningOffTheBottom", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRecordingStaticMeasurement", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotor", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_user~1"); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_t_process_map_plan_operation_switching_off_the_pump_t_well~1"); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingToTheMode", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "Editor") + .WithMany() + .HasForeignKey("IdEditor") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanTFOrientation", "Previous") + .WithMany() + .HasForeignKey("IdPrevious"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany() + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Editor"); + + b.Navigation("Previous"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationCompanyWell", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_company_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("RelationCompaniesWells") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_relation_company_well_t_well_id_fk"); + + b.Navigation("Company"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationContactWell", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationContactsWells") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserDrillingProgramPart", b => + { + b.HasOne("AsbCloudDb.Model.DrillingProgramPart", "DrillingProgramPart") + .WithMany("RelatedUsers") + .HasForeignKey("IdDrillingProgramPart") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DrillingProgramPart"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRolePermission", b => + { + b.HasOne("AsbCloudDb.Model.Permission", "Permission") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdPermission") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUserRolePermissions") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Permission"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserRoleUserRole", b => + { + b.HasOne("AsbCloudDb.Model.UserRole", "Role") + .WithMany("RelationUserRoleUserRoles") + .HasForeignKey("Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "IncludeRole") + .WithMany() + .HasForeignKey("IdInclude") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("IncludeRole"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.RelationUserUserRole", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.UserRole", "UserRole") + .WithMany("RelationUsersUserRoles") + .HasForeignKey("IdUserRole") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.ReportProperty", b => + { + b.HasOne("AsbCloudDb.Model.FileInfo", "File") + .WithMany() + .HasForeignKey("IdFile") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Schedule", b => + { + b.HasOne("AsbCloudDb.Model.Driller", "Driller") + .WithMany("Schedule") + .HasForeignKey("IdDriller") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_schedule_t_driller_id_driller"); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Driller"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.SetpointsRequest", b => + { + b.HasOne("AsbCloudDb.Model.User", "Author") + .WithMany() + .HasForeignKey("IdAuthor") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Author"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSaub", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSaub") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_saub_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryDataSpin", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("DataSpin") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_data_spin_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Events") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_event_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Messages") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_messages_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany("Users") + .HasForeignKey("IdTelemetry") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_telemetry_user_t_telemetry_id_fk"); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryFact", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Trajectory.TrajectoryPlan", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.HasOne("AsbCloudDb.Model.Company", "Company") + .WithMany("Users") + .HasForeignKey("IdCompany") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("t_user_t_company_id_fk"); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserSetting", b => + { + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.HasOne("AsbCloudDb.Model.Cluster", "Cluster") + .WithMany("Wells") + .HasForeignKey("IdCluster") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_t_cluster_id_fk"); + + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithOne("Well") + .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("t_well_t_telemetry_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellType", "WellType") + .WithMany("Wells") + .HasForeignKey("IdWellType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cluster"); + + b.Navigation("Telemetry"); + + b.Navigation("WellType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellComposite", b => + { + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellComposites") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_id_fk"); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellComposites") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_t_well_section_type_id_fk"); + + b.HasOne("AsbCloudDb.Model.Well", "WellSrc") + .WithMany("WellCompositeSrcs") + .HasForeignKey("IdWellSrc") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("t_well_сomposite_src_t_well_id_fk"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + + b.Navigation("WellSrc"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellFinalDocument", b => + { + b.HasOne("AsbCloudDb.Model.FileCategory", "Category") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.User", "User") + .WithMany() + .HasForeignKey("IdUser") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Category"); + + b.Navigation("User"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory") + .WithMany() + .HasForeignKey("IdCategory") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellOperation", "OperationPlan") + .WithMany() + .HasForeignKey("IdPlan") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany("WellOperations") + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") + .WithMany("WellOperations") + .HasForeignKey("IdWellSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationCategory"); + + b.Navigation("OperationPlan"); + + b.Navigation("Well"); + + b.Navigation("WellSectionType"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b => + { + b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Parent") + .WithMany() + .HasForeignKey("IdParent"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSections.WellSectionPlan", b => + { + b.HasOne("AsbCloudDb.Model.WellSectionType", "SectionType") + .WithMany() + .HasForeignKey("IdSectionType") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AsbCloudDb.Model.Well", "Well") + .WithMany() + .HasForeignKey("IdWell") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SectionType"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record1", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record1", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record50", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record50", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record60", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record60", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record61", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record61", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record7", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record7", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WITS.Record8", b => + { + b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry") + .WithMany() + .HasForeignKey("TelemetryId"); + + b.HasOne("AsbCloudDb.Model.WITS.RecordBase", null) + .WithOne() + .HasForeignKey("AsbCloudDb.Model.WITS.Record8", "IdTelemetry", "DateTime") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Telemetry"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Cluster", b => + { + b.Navigation("Wells"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Company", b => + { + b.Navigation("RelationCompaniesWells"); + + b.Navigation("Users"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.CompanyType", b => + { + b.Navigation("Companies"); + + b.Navigation("Contacts"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Deposit", b => + { + b.Navigation("Clusters"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Driller", b => + { + b.Navigation("Schedule"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.DrillingProgramPart", b => + { + b.Navigation("RelatedUsers"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b => + { + b.Navigation("FileMarks"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Manuals.ManualDirectory", b => + { + b.Navigation("Children"); + + b.Navigation("Manuals"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b => + { + b.Navigation("Measures"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.NotificationCategory", b => + { + b.Navigation("Notifications"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Permission", b => + { + b.Navigation("RelationUserRolePermissions"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b => + { + b.Navigation("DataSaub"); + + b.Navigation("DataSpin"); + + b.Navigation("Events"); + + b.Navigation("Messages"); + + b.Navigation("Users"); + + b.Navigation("Well"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.User", b => + { + b.Navigation("FileMarks"); + + b.Navigation("Files"); + + b.Navigation("RelationContactsWells"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.UserRole", b => + { + b.Navigation("RelationUserRolePermissions"); + + b.Navigation("RelationUserRoleUserRoles"); + + b.Navigation("RelationUsersUserRoles"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.Well", b => + { + b.Navigation("Contacts"); + + b.Navigation("DrillingProgramParts"); + + b.Navigation("RelationCompaniesWells"); + + b.Navigation("WellCompositeSrcs"); + + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b => + { + b.Navigation("WellComposites"); + + b.Navigation("WellOperations"); + }); + + modelBuilder.Entity("AsbCloudDb.Model.WellType", b => + { + b.Navigation("Wells"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.cs b/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.cs new file mode 100644 index 00000000..a80b396b --- /dev/null +++ b/AsbCloudDb/Migrations/20240701104026_Remove_some_processMapsPlan.cs @@ -0,0 +1,438 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace AsbCloudDb.Migrations +{ + /// + public partial class Remove_some_processMapsPlan : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "t_process_map_plan_ream"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_rotor_lowering_bit"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_rotor_rpm_acceleration"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_slide_lowering_bit"); + + migrationBuilder.DropTable( + name: "t_process_map_plan_updating_noload_parameters"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "t_process_map_plan_ream", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + pressure = table.Column(type: "double precision", nullable: false, comment: "Давление, атм"), + repeats = table.Column(type: "double precision", nullable: false, comment: "Количество повторений"), + setpoint_drag = table.Column(type: "double precision", nullable: false, comment: "Уставка зятяжки, т"), + setpoint_tight = table.Column(type: "double precision", nullable: false, comment: "Уставка посадки, т"), + speed_downward = table.Column(type: "double precision", nullable: false, comment: "Скорость спуска, м/ч"), + speed_upward = table.Column(type: "double precision", nullable: false, comment: "Скорость подъёма, м/ч"), + spin_downward = table.Column(type: "double precision", nullable: false, comment: "Вращение при движении вниз, об/мин"), + spin_upward = table.Column(type: "double precision", nullable: false, comment: "Вращение при движении вверх, об/мин"), + torque = table.Column(type: "double precision", nullable: false, comment: "Момент, кН*м") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_ream", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_ream_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_ream_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_ream_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_ream_t_well_section_type_id_wellsection_~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК проработка скважины"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_rotor_lowering_bit", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."), + rpm_down = table.Column(type: "double precision", nullable: false, comment: "Обороты вниз, об/мин."), + slacking_off = table.Column(type: "double precision", nullable: false, comment: "Посадка, т."), + torque_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м.") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_rotor_lowering_bit", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_process_map_plan_ro~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_rotor_lowering_bit", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_section_type_i~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК подход к забою в роторе"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_rotor_rpm_acceleration", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + rpm = table.Column(type: "double precision", nullable: false, comment: "Обороты на ВСП уставка, об/мин."), + rpm_max = table.Column(type: "double precision", nullable: false, comment: "Обороты на ВСП ограничение, об/мин."), + top_drive_torque = table.Column(type: "double precision", nullable: false, comment: "Момент на ВСП уставка, кН*м."), + top_drive_torque_max = table.Column(type: "double precision", nullable: false, comment: "Момент на ВСП ограничение, кН*м.") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_rotor_rpm_acceleration", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_process_map_pla~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_rotor_rpm_acceleration", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_section_ty~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Выход на обороты перед ротором"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_slide_lowering_bit", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + differential_pressure = table.Column(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."), + flow_rate_down = table.Column(type: "double precision", nullable: false, comment: "Расход вниз, л/с."), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"), + pressure_max = table.Column(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."), + rop_down = table.Column(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч.") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_slide_lowering_bit", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_process_map_plan_sl~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_slide_lowering_bit", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_author", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_editor", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_slide_lowering_bit_t_well_section_type_i~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "РТК подход к забою в слайде"); + + migrationBuilder.CreateTable( + name: "t_process_map_plan_updating_noload_parameters", + columns: table => new + { + id = table.Column(type: "integer", nullable: false, comment: "Идентификатор") + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + id_author = table.Column(type: "integer", nullable: false, comment: "Автор"), + id_editor = table.Column(type: "integer", nullable: true, comment: "Редактор"), + id_previous = table.Column(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + id_well = table.Column(type: "integer", nullable: false, comment: "Id скважины"), + id_wellsection_type = table.Column(type: "integer", nullable: false, comment: "Тип секции"), + creation = table.Column(type: "timestamp with time zone", nullable: false, comment: "дата создания"), + depth_end = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"), + depth_start = table.Column(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"), + id_decline_socket_column = table.Column(type: "boolean", nullable: false, comment: "СПУСК ОК Да/Нет"), + id_state = table.Column(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"), + note = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"), + obsolete = table.Column(type: "timestamp with time zone", nullable: true, comment: "дата устаревания") + }, + constraints: table => + { + table.PrimaryKey("PK_t_process_map_plan_updating_noload_parameters", x => x.id); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_process_map~", + column: x => x.id_previous, + principalTable: "t_process_map_plan_updating_noload_parameters", + principalColumn: "id"); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_aut~", + column: x => x.id_author, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_edi~", + column: x => x.id_editor, + principalTable: "t_user", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_well_id_well", + column: x => x.id_well, + principalTable: "t_well", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_t_process_map_plan_updating_noload_parameters_t_well_sectio~", + column: x => x.id_wellsection_type, + principalTable: "t_well_section_type", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }, + comment: "Обновление холостого хода"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_ream_id_author", + table: "t_process_map_plan_ream", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_ream_id_editor", + table: "t_process_map_plan_ream", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_ream_id_well", + table: "t_process_map_plan_ream", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_ream_id_wellsection_type", + table: "t_process_map_plan_ream", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_author", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_editor", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_previous", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_well", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_lowering_bit_id_wellsection_type", + table: "t_process_map_plan_rotor_lowering_bit", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_author", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_editor", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_previous", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_well", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_wellsection_ty~", + table: "t_process_map_plan_rotor_rpm_acceleration", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_author", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_editor", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_previous", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_well", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_slide_lowering_bit_id_wellsection_type", + table: "t_process_map_plan_slide_lowering_bit", + column: "id_wellsection_type"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_author", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_author"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_editor", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_editor"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_previous", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_previous"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_well", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_well"); + + migrationBuilder.CreateIndex( + name: "IX_t_process_map_plan_updating_noload_parameters_id_wellsectio~", + table: "t_process_map_plan_updating_noload_parameters", + column: "id_wellsection_type"); + } + } +} diff --git a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs index 27444c99..44edc939 100644 --- a/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs +++ b/AsbCloudDb/Migrations/AsbCloudDbContextModelSnapshot.cs @@ -3339,96 +3339,6 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdDeclineSocketColumn") - .HasColumnType("boolean") - .HasColumnName("id_decline_socket_column") - .HasComment("СПУСК ОК Да/Нет"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_updating_noload_parameters", t => - { - t.HasComment("Обновление холостого хода"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => { b.Property("Id") @@ -3779,127 +3689,6 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Pressure") - .HasColumnType("double precision") - .HasColumnName("pressure") - .HasComment("Давление, атм"); - - b.Property("Repeats") - .HasColumnType("double precision") - .HasColumnName("repeats") - .HasComment("Количество повторений"); - - b.Property("SetpointDrag") - .HasColumnType("double precision") - .HasColumnName("setpoint_drag") - .HasComment("Уставка зятяжки, т"); - - b.Property("SetpointTight") - .HasColumnType("double precision") - .HasColumnName("setpoint_tight") - .HasComment("Уставка посадки, т"); - - b.Property("SpeedDownward") - .HasColumnType("double precision") - .HasColumnName("speed_downward") - .HasComment("Скорость спуска, м/ч"); - - b.Property("SpeedUpward") - .HasColumnType("double precision") - .HasColumnName("speed_upward") - .HasComment("Скорость подъёма, м/ч"); - - b.Property("SpinDownward") - .HasColumnType("double precision") - .HasColumnName("spin_downward") - .HasComment("Вращение при движении вниз, об/мин"); - - b.Property("SpinUpward") - .HasColumnType("double precision") - .HasColumnName("spin_upward") - .HasComment("Вращение при движении вверх, об/мин"); - - b.Property("Torque") - .HasColumnType("double precision") - .HasColumnName("torque") - .HasComment("Момент, кН*м"); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_ream", t => - { - t.HasComment("РТК проработка скважины"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => { b.Property("Id") @@ -4567,7 +4356,7 @@ namespace AsbCloudDb.Migrations .HasColumnName("obsolete") .HasComment("дата устаревания"); - b.Property("PressureLimitMax") + b.Property("PressureMax") .HasColumnType("double precision") .HasColumnName("pressure_max") .HasComment("Максимально допустимое давление, атм"); @@ -4625,231 +4414,6 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления уставка, атм."); - - b.Property("FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("flow_rate_down") - .HasComment("Расход вниз, л/с."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureMax") - .HasColumnType("double precision") - .HasColumnName("pressure_max") - .HasComment("Максимально допустимое давление, атм."); - - b.Property("RopDown") - .HasColumnType("double precision") - .HasColumnName("rop_down") - .HasComment("Скорость вниз, м/ч."); - - b.Property("RpmDown") - .HasColumnType("double precision") - .HasColumnName("rpm_down") - .HasComment("Обороты вниз, об/мин."); - - b.Property("SlackingOff") - .HasColumnType("double precision") - .HasColumnName("slacking_off") - .HasComment("Посадка, т."); - - b.Property("TorqueMax") - .HasColumnType("double precision") - .HasColumnName("torque_max") - .HasComment("Максимально допустимый момент, кН*м."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_rotor_lowering_bit", t => - { - t.HasComment("РТК подход к забою в роторе"); - }); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("Rpm") - .HasColumnType("double precision") - .HasColumnName("rpm") - .HasComment("Обороты на ВСП уставка, об/мин."); - - b.Property("RpmMax") - .HasColumnType("double precision") - .HasColumnName("rpm_max") - .HasComment("Обороты на ВСП ограничение, об/мин."); - - b.Property("TopDriveTorque") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque") - .HasComment("Момент на ВСП уставка, кН*м."); - - b.Property("TopDriveTorqueMax") - .HasColumnType("double precision") - .HasColumnName("top_drive_torque_max") - .HasComment("Момент на ВСП ограничение, кН*м."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_rotor_rpm_acceleration", t => - { - t.HasComment("Выход на обороты перед ротором"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => { b.Property("Id") @@ -4985,111 +4549,6 @@ namespace AsbCloudDb.Migrations }); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .HasColumnName("id") - .HasComment("Идентификатор"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Creation") - .HasColumnType("timestamp with time zone") - .HasColumnName("creation") - .HasComment("дата создания"); - - b.Property("DepthEnd") - .HasColumnType("double precision") - .HasColumnName("depth_end") - .HasComment("Глубина по стволу до, м"); - - b.Property("DepthStart") - .HasColumnType("double precision") - .HasColumnName("depth_start") - .HasComment("Глубина по стволу от, м"); - - b.Property("DifferentialPressure") - .HasColumnType("double precision") - .HasColumnName("differential_pressure") - .HasComment("Перепад давления уставка, атм."); - - b.Property("FlowRateDown") - .HasColumnType("double precision") - .HasColumnName("flow_rate_down") - .HasComment("Расход вниз, л/с."); - - b.Property("IdAuthor") - .HasColumnType("integer") - .HasColumnName("id_author") - .HasComment("Автор"); - - b.Property("IdEditor") - .HasColumnType("integer") - .HasColumnName("id_editor") - .HasComment("Редактор"); - - b.Property("IdPrevious") - .HasColumnType("integer") - .HasColumnName("id_previous") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdState") - .HasColumnType("integer") - .HasColumnName("id_state") - .HasComment("ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"); - - b.Property("IdWell") - .HasColumnType("integer") - .HasColumnName("id_well") - .HasComment("Id скважины"); - - b.Property("IdWellSectionType") - .HasColumnType("integer") - .HasColumnName("id_wellsection_type") - .HasComment("Тип секции"); - - b.Property("Note") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)") - .HasColumnName("note") - .HasComment("Примечание"); - - b.Property("Obsolete") - .HasColumnType("timestamp with time zone") - .HasColumnName("obsolete") - .HasComment("дата устаревания"); - - b.Property("PressureMax") - .HasColumnType("double precision") - .HasColumnName("pressure_max") - .HasComment("Максимально допустимое давление, атм."); - - b.Property("RopDown") - .HasColumnType("double precision") - .HasColumnName("rop_down") - .HasComment("Скорость вниз, м/ч."); - - b.HasKey("Id"); - - b.HasIndex("IdAuthor"); - - b.HasIndex("IdEditor"); - - b.HasIndex("IdPrevious"); - - b.HasIndex("IdWell"); - - b.HasIndex("IdWellSectionType"); - - b.ToTable("t_process_map_plan_slide_lowering_bit", t => - { - t.HasComment("РТК подход к забою в слайде"); - }); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => { b.Property("Id") @@ -11679,46 +11138,6 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Functions.ProcessMapPlanUpdatingNoloadParameters", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanLoadCapacity", b => { b.HasOne("AsbCloudDb.Model.User", "Author") @@ -11839,39 +11258,6 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReam", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanReamingRotor", b => { b.HasOne("AsbCloudDb.Model.User", "Author") @@ -12032,86 +11418,6 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorLoweringBit", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanRotorRpmAcceleration", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlide", b => { b.HasOne("AsbCloudDb.Model.User", "Author") @@ -12152,46 +11458,6 @@ namespace AsbCloudDb.Migrations b.Navigation("WellSectionType"); }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", b => - { - b.HasOne("AsbCloudDb.Model.User", "Author") - .WithMany() - .HasForeignKey("IdAuthor") - .OnDelete(DeleteBehavior.Restrict) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.User", "Editor") - .WithMany() - .HasForeignKey("IdEditor") - .OnDelete(DeleteBehavior.Restrict); - - b.HasOne("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSlideLoweringBit", "Previous") - .WithMany() - .HasForeignKey("IdPrevious"); - - b.HasOne("AsbCloudDb.Model.Well", "Well") - .WithMany() - .HasForeignKey("IdWell") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AsbCloudDb.Model.WellSectionType", "WellSectionType") - .WithMany() - .HasForeignKey("IdWellSectionType") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Author"); - - b.Navigation("Editor"); - - b.Navigation("Previous"); - - b.Navigation("Well"); - - b.Navigation("WellSectionType"); - }); - modelBuilder.Entity("AsbCloudDb.Model.ProcessMapPlan.Operations.ProcessMapPlanSwitchingOffThePump", b => { b.HasOne("AsbCloudDb.Model.User", "Author") diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index d947def6..95b3a292 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -22,7 +22,6 @@ namespace AsbCloudDb.Model public virtual DbSet TrajectoriesPlan => Set(); public virtual DbSet ProcessMapPlanRotor => Set(); public virtual DbSet ProcessMapPlanSlide => Set(); - public virtual DbSet ProcessMapPlanReams => Set(); public virtual DbSet ProcessMapPlanReamingRotor => Set(); public virtual DbSet ProcessMapPlanReamingSlide => Set(); public virtual DbSet ProcessMapPlanLoadCapacity => Set(); @@ -35,15 +34,10 @@ namespace AsbCloudDb.Model public virtual DbSet ProcessMapPlanDrillTest => Set(); public virtual DbSet ProcessMapPlanShockTest => Set(); public virtual DbSet ProcessMapPlanDamper => Set(); - public virtual DbSet ProcessMapPlanAutoHoldTF => Set(); - public virtual DbSet ProcessMapPlanRotorRpmAcceleration => Set(); - public virtual DbSet ProcessMapPlanUpdatingNoloadParameters => Set(); + public virtual DbSet ProcessMapPlanAutoHoldTF => Set(); public virtual DbSet ProcessMapPlanOscillation => Set(); public virtual DbSet ProcessMapPlanAntiCrashRotation => Set(); public virtual DbSet ProcessMapPlanStaticMeasurementOutput => Set(); - public virtual DbSet ProcessMapPlanRotorLoweringBit => Set(); - public virtual DbSet ProcessMapPlanSlideLoweringBit => Set(); - public virtual DbSet DrillingProgramParts => Set(); public virtual DbSet FileCategories => Set(); public virtual DbSet Files => Set(); @@ -541,16 +535,6 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - - modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() .HasOne(p => p.Author) .WithMany() @@ -566,16 +550,6 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - - modelBuilder.Entity() - .HasOne(p => p.Author) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -651,16 +625,6 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() - .HasOne(p => p.Editor) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - - modelBuilder.Entity() - .HasOne(p => p.Editor) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() .HasOne(p => p.Editor) .WithMany() @@ -676,16 +640,6 @@ namespace AsbCloudDb.Model .WithMany() .OnDelete(DeleteBehavior.Restrict); - modelBuilder.Entity() - .HasOne(p => p.Editor) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - - modelBuilder.Entity() - .HasOne(p => p.Editor) - .WithMany() - .OnDelete(DeleteBehavior.Restrict); - DefaultData.DefaultContextData.Fill(modelBuilder); } diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 2157467f..f7860f18 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -81,7 +81,6 @@ namespace AsbCloudDb.Model DbSet WellSectionsPlan { get; } DbSet DataSaubStat { get; } DatabaseFacade Database { get; } - DbSet ProcessMapPlanReams { get; } DbSet ProcessMapPlanRotor { get; } DbSet ProcessMapPlanSlide { get; } DbSet ProcessMapPlanReamingRotor { get; } @@ -97,13 +96,9 @@ namespace AsbCloudDb.Model DbSet ProcessMapPlanShockTest { get; } DbSet ProcessMapPlanDamper { get; } DbSet ProcessMapPlanAutoHoldTF { get; } - DbSet ProcessMapPlanRotorRpmAcceleration { get; } - DbSet ProcessMapPlanUpdatingNoloadParameters { get; } DbSet ProcessMapPlanOscillation { get; } DbSet ProcessMapPlanAntiCrashRotation { get; } DbSet ProcessMapPlanStaticMeasurementOutput { get; } - DbSet ProcessMapPlanRotorLoweringBit { get; } - DbSet ProcessMapPlanSlideLoweringBit { get; } Task RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task RefreshMaterializedViewAsync(CancellationToken token) where TEntity : class; diff --git a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs b/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs deleted file mode 100644 index 4ab45fee..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/Functions/ProcessMapPlanUpdatingNoloadParameters.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMapPlan.Functions; - -[Table("t_process_map_plan_updating_noload_parameters"), Comment("Обновление холостого хода")] -public class ProcessMapPlanUpdatingNoloadParameters : ProcessMapPlanBase -{ - [Column("id_decline_socket_column"), Comment("СПУСК ОК Да/Нет")] - public bool IdDeclineSocketColumn { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanUpdatingNoloadParameters? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs deleted file mode 100644 index 930775b1..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanReam.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMapPlan.Operations; - -[Table("t_process_map_plan_ream"), Comment("РТК проработка скважины")] -public class ProcessMapPlanReam : ProcessMapPlanBase -{ - [Column("repeats"), Comment("Количество повторений")] - public double Repeats { get; set; } - - [Column("spin_upward"), Comment("Вращение при движении вверх, об/мин")] - public double SpinUpward { get; set; } - - [Column("spin_downward"), Comment("Вращение при движении вниз, об/мин")] - public double SpinDownward { get; set; } - - [Column("speed_upward"), Comment("Скорость подъёма, м/ч")] - public double SpeedUpward { get; set; } - - [Column("speed_downward"), Comment("Скорость спуска, м/ч")] - public double SpeedDownward { get; set; } - - [Column("setpoint_drag"), Comment("Уставка зятяжки, т")] - public double SetpointDrag { get; set; } - - [Column("setpoint_tight"), Comment("Уставка посадки, т")] - public double SetpointTight { get; set; } - - [Column("pressure"), Comment("Давление, атм")] - public double Pressure { get; set; } - - [Column("torque"), Comment("Момент, кН*м")] - public double Torque { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs deleted file mode 100644 index ff24fb5e..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorLoweringBit.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMapPlan.Operations; - -[Table("t_process_map_plan_rotor_lowering_bit"), Comment("РТК подход к забою в роторе")] -public class ProcessMapPlanRotorLoweringBit : ProcessMapPlanBase -{ - [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] - [Range(0.0, 400.0)] - [Required] - public double PressureMax { get; set; } - - [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] - [Range(0.0, 60.0)] - [Required] - public double DifferentialPressure { get; set; } - - [Column("slacking_off"), Comment("Посадка, т.")] - [Range(0.0, 20.0)] - [Required] - public double SlackingOff { get; set; } - - [Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")] - [Range(0.0, 35.0)] - [Required] - public double TorqueMax { get; set; } - - [Column("rop_down"), Comment("Скорость вниз, м/ч.")] - [Range(0.0, 999.0)] - [Required] - public double RopDown { get; set; } - - [Column("rpm_down"), Comment("Обороты вниз, об/мин.")] - [Range(0.0, 270.0)] - [Required] - public double RpmDown { get; set; } - - [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] - [Range(0.0, 100.0)] - [Required] - public double FlowRateDown { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanRotorLoweringBit? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs deleted file mode 100644 index d6eb9564..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanRotorRpmAcceleration.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMapPlan.Operations; - -[Table("t_process_map_plan_rotor_rpm_acceleration"), Comment("Выход на обороты перед ротором")] -public class ProcessMapPlanRotorRpmAcceleration : ProcessMapPlanBase -{ - [Column("top_drive_torque"), Comment("Момент на ВСП уставка, кН*м.")] - [Range(0.0, 35.0)] - [Required] - public double TopDriveTorque { get; set; } - - [Column("top_drive_torque_max"), Comment("Момент на ВСП ограничение, кН*м.")] - [Range(0.0, 35.0)] - [Required] - public double TopDriveTorqueMax { get; set; } - - [Column("rpm"), Comment("Обороты на ВСП уставка, об/мин.")] - [Range(0.0, 270.0)] - [Required] - public double Rpm { get; set; } - - [Column("rpm_max"), Comment("Обороты на ВСП ограничение, об/мин.")] - [Range(0.0, 270.0)] - [Required] - public double RpmMax { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanRotorRpmAcceleration? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs b/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs deleted file mode 100644 index 9e4a6324..00000000 --- a/AsbCloudDb/Model/ProcessMapPlan/Operations/ProcessMapPlanSlideLoweringBit.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using AsbCloudDb.Model.ProcessMapPlan; -using Microsoft.EntityFrameworkCore; - -namespace AsbCloudDb.Model.ProcessMapPlan.Operations; - -[Table("t_process_map_plan_slide_lowering_bit"), Comment("РТК подход к забою в слайде")] -public class ProcessMapPlanSlideLoweringBit : ProcessMapPlanBase -{ - [Column("pressure_max"), Comment("Максимально допустимое давление, атм.")] - [Range(0.0, 400.0)] - [Required] - public double PressureMax { get; set; } - - [Column("differential_pressure"), Comment("Перепад давления уставка, атм.")] - [Range(0.0, 60.0)] - [Required] - public double DifferentialPressure { get; set; } - - [Column("rop_down"), Comment("Скорость вниз, м/ч.")] - [Range(0.0, 999.0)] - [Required] - public double RopDown { get; set; } - - [Column("flow_rate_down"), Comment("Расход вниз, л/с.")] - [Range(0.0, 100.0)] - [Required] - public double FlowRateDown { get; set; } - - [Column("note"), Comment("Примечание"), StringLength(1024)] - public string Note { get; set; } = string.Empty; - - [ForeignKey(nameof(IdPrevious))] - public virtual ProcessMapPlanSlideLoweringBit? Previous { get; set; } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj index 079abac9..280ea6cc 100644 --- a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj +++ b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj @@ -24,13 +24,9 @@ - - - - @@ -69,13 +65,9 @@ - - - - diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index db254a7b..3bd0bbc0 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -240,20 +240,6 @@ namespace AsbCloudInfrastructure Item = src.Adapt() }); - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() - { - Item = src.Adapt() - }); - - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() - { - Item = src.Adapt() - }); - TypeAdapterConfig>.NewConfig() .Include>() .Map(dest => dest, src => new ChangeLogDto() @@ -274,20 +260,6 @@ namespace AsbCloudInfrastructure { Item = src.Adapt() }); - - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() - { - Item = src.Adapt() - }); - - TypeAdapterConfig>.NewConfig() - .Include>() - .Map(dest => dest, src => new ChangeLogDto() - { - Item = src.Adapt() - }); } public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) @@ -353,10 +325,6 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - services.AddTransient< IChangeLogRepository, ProcessMapPlanBaseRepository>(); @@ -409,14 +377,6 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - services.AddTransient< IChangeLogRepository, ProcessMapPlanBaseRepository>(); @@ -429,14 +389,6 @@ namespace AsbCloudInfrastructure IChangeLogRepository, ProcessMapPlanBaseRepository>(); - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - - services.AddTransient< - IChangeLogRepository, - ProcessMapPlanBaseRepository>(); - services.AddTransient(); services.AddTransient(); @@ -498,13 +450,9 @@ namespace AsbCloudInfrastructure services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); services.AddTransient>(); - services.AddTransient>(); - services.AddTransient>(); services.AddTransient(); services.AddTransient(); @@ -561,7 +509,6 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -575,13 +522,9 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -589,7 +532,6 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -603,13 +545,9 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs index 3ddfe81c..3b2f4c4f 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanAutoHoldTFTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,12 @@ public class ProcessMapPlanAutoHoldTFTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanAutoHoldTFDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanAutoHoldTFDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanAutoHoldTFDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanAutoHoldTFDto.ZenithAngle), new Cell(4, typeof(double)) }, + + { nameof(ProcessMapPlanAutoHoldTFDto.Note), new Cell(5, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs index 6f74c38f..018d574e 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDamperTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,12 @@ public class ProcessMapPlanDamperTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanDamperDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanDamperDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanDamperDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanDamperDto.StickSlip), new Cell(4, typeof(double)) }, + + { nameof(ProcessMapPlanDamperDto.Note), new Cell(5, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs index ffaa5413..aac137ce 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanDrillTestTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,16 @@ public class ProcessMapPlanDrillTestTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanDrillTestDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanDrillTestDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.WeightOnBitMin), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.WeightOnBitStepsCount), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.RpmMin), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.RpmStepsCount), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanDrillTestDto.LengthStep), new Cell(8, typeof(double)) }, + + { nameof(ProcessMapPlanDrillTestDto.Note), new Cell(9, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs index cffb099a..0478663a 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanOscillationAnglesTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,15 @@ public class ProcessMapPlanOscillationAnglesTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanOscillationAnglesDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.TopDriveTorque), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.TopDriveTorqueMax), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.Rpm), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanOscillationAnglesDto.RpmMax), new Cell(7, typeof(double)) }, + + { nameof(ProcessMapPlanOscillationAnglesDto.Note), new Cell(8, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs index 1766a5e0..4f6e8121 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanPositioningOffTheBottomTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,23 @@ public class ProcessMapPlanPositioningOffTheBottomTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanPositioningOffTheBottomDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.StopOffTheBottom), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.PressureMax), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.DifferentialPressure), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.Tight), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.SlackingOff), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.TorqueMax), new Cell(9, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.RopUp), new Cell(10, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.RopDown), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.RpmUp), new Cell(12, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.RpmDown), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.FlowRateUp), new Cell(14, typeof(double)) }, + { nameof(ProcessMapPlanPositioningOffTheBottomDto.FlowRateDown), new Cell(15, typeof(double)) }, + + { nameof(ProcessMapPlanPositioningOffTheBottomDto.Note), new Cell(16, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs deleted file mode 100644 index b9e118a5..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamTemplate.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Collections.Generic; -using AsbCloudApp.Data.ProcessMaps.Operations; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanReamTemplate : ITemplateParameters -{ - public string SheetName => "План"; - - public int HeaderRowsCount => 1; - - public string FileName => "ProcessMapPlanReamTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - { nameof(ProcessMapPlanReamDto.Section), new Cell(1, typeof(string)) }, - { nameof(ProcessMapPlanReamDto.DepthStart), new Cell(2, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.DepthEnd), new Cell(3, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.Repeats), new Cell(4, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SpinUpward), new Cell(5, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SpinDownward), new Cell(6, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SpeedUpward), new Cell(7, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SpeedDownward), new Cell(8, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SetpointDrag), new Cell(9, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.SetpointTight), new Cell(10, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.Pressure), new Cell(11, typeof(double)) }, - { nameof(ProcessMapPlanReamDto.Torque), new Cell(12, typeof(double)) }, - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs index 627ce9aa..ccdf0e41 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanReamingSlideTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,41 @@ public class ProcessMapPlanReamingSlideTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { - + { nameof(ProcessMapPlanReamingSlideDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanReamingSlideDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.PressureMax), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.DifferentialPressure), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Tight), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.SlackingOff), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.TorqueMax), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RepetitionsCount), new Cell(9, typeof(int)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RopUp), new Cell(10, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RopDown), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RpmUp), new Cell(12, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RpmDown), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1FlowRateUp), new Cell(14, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1FlowRateDown), new Cell(15, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1Interval), new Cell(16, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1StopPointOffBottom), new Cell(17, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2RepetitionsCount), new Cell(18, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2RopUp), new Cell(19, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2RopDown), new Cell(20, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2RpmUp), new Cell(21, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2RpmDown), new Cell(22, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2FlowRateUp), new Cell(23, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2FlowRateDown), new Cell(24, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2Interval), new Cell(25, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming2StopPointOffBottom), new Cell(26, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3RepetitionsCount), new Cell(27, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3RopUp), new Cell(28, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming1RopDown), new Cell(29, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3RpmUp), new Cell(30, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3RpmDown), new Cell(31, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3FlowRateUp), new Cell(32, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3FlowRateDown), new Cell(33, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3Interval), new Cell(34, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Reaming3StopPointOffBottom), new Cell(35, typeof(double)) }, + { nameof(ProcessMapPlanReamingSlideDto.Note), new Cell(36, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs index ca9e1d10..b0bf3f48 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRecordingStaticMeasurementTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,12 @@ public class ProcessMapPlanRecordingStaticMeasurementTemplate : ITemplateParamet public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanRecordingStaticMeasurementDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanRecordingStaticMeasurementDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanRecordingStaticMeasurementDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanRecordingStaticMeasurementDto.MeasurementRecordingTime), new Cell(4, typeof(double)) }, + + { nameof(ProcessMapPlanRecordingStaticMeasurementDto.Note), new Cell(5, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs deleted file mode 100644 index ae97f183..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorLoweringBitTemplate.cs +++ /dev/null @@ -1,24 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using System.Collections.Generic; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanRotorLoweringBitTemplate : ITemplateParameters -{ - public string SheetName => "Подход к забою в роторе"; - - public int HeaderRowsCount => 3; - - public string FileName => "ProcessMapPlanRotorLoweringBitTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - { nameof(ProcessMapPlanRotorLoweringBitDto.Section), new Cell(1, typeof(string)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.DepthStart), new Cell(2, typeof(double)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.DepthEnd), new Cell(3, typeof(double)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.PressureMax), new Cell(4, typeof(double)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.DifferentialPressure), new Cell(5, typeof(double)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.SlackingOff), new Cell(6, typeof(double)) }, - { nameof(ProcessMapPlanRotorLoweringBitDto.Note), new Cell(7, typeof(string)) }, - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs deleted file mode 100644 index a0647385..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanRotorRpmAccelerationTemplate.cs +++ /dev/null @@ -1,23 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Functions; -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using System.Collections.Generic; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanRotorRpmAccelerationTemplate : ITemplateParameters -{ - public string SheetName => "Выход на обороты перед ротором"; - - public int HeaderRowsCount => 2; - - public string FileName => "ProcessMapPlanRotorRpmAccelerationTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - { nameof(ProcessMapPlanRotorRpmAccelerationDto.Section), new Cell(1, typeof(string)) }, - { nameof(ProcessMapPlanRotorRpmAccelerationDto.DepthStart), new Cell(2, typeof(double)) }, - { nameof(ProcessMapPlanRotorRpmAccelerationDto.DepthEnd), new Cell(3, typeof(double)) }, - { nameof(ProcessMapPlanRotorRpmAccelerationDto.Note), new Cell(11, typeof(string)) }, - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs index 013a6105..0646a377 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanShockTestTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,17 @@ public class ProcessMapPlanShockTestTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanShockTestDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanShockTestDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.StickSlip), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.Whirl), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.AxialVibrations), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.CombinedVibrations), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.WeightOnBitMin), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanShockTestDto.RpmMin), new Cell(9, typeof(double)) }, + + { nameof(ProcessMapPlanShockTestDto.Note), new Cell(10, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs deleted file mode 100644 index 3ee25be6..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSlideLoweringBitTemplate.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanSlideLoweringBitTemplate : ITemplateParameters -{ - public string SheetName => "Подход к забою в слайде"; - - public int HeaderRowsCount => 2; - - public string FileName => "ProcessMapPlanSlideLoweringBitTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs index 3866a839..f62676e7 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanStaticMeasurementOutputTemplate.cs @@ -1,3 +1,4 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +13,12 @@ public class ProcessMapPlanStaticMeasurementOutputTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanStaticMeasurementOutputDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanStaticMeasurementOutputDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanStaticMeasurementOutputDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanStaticMeasurementOutputDto.SignalWaitingTime), new Cell(4, typeof(double)) }, + + { nameof(ProcessMapPlanStaticMeasurementOutputDto.Note), new Cell(5, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs index 5ab5c14f..3046ec55 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanSwitchingOffThePumpTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,13 @@ public class ProcessMapPlanSwitchingOffThePumpTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanSwitchingOffThePumpDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanSwitchingOffThePumpDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingOffThePumpDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingOffThePumpDto.Duration), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanSwitchingOffThePumpDto.ResidualPressureLimit), new Cell(5, typeof(double)) }, + + { nameof(ProcessMapPlanSwitchingOffThePumpDto.Note), new Cell(6, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs index 776d0c0e..c2e0ed90 100644 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs +++ b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanTFOrientationTemplate.cs @@ -1,3 +1,5 @@ +using AsbCloudApp.Data.ProcessMaps.Functions; +using AsbCloudApp.Data.ProcessMaps.Operations; using System.Collections.Generic; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; @@ -12,6 +14,25 @@ public class ProcessMapPlanTFOrientationTemplate : ITemplateParameters public IDictionary Cells => new Dictionary { + { nameof(ProcessMapPlanTFOrientationDto.Section), new Cell(1, typeof(string)) }, + { nameof(ProcessMapPlanTFOrientationDto.DepthStart), new Cell(2, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.DepthEnd), new Cell(3, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.TFSetpoint), new Cell(4, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.Spring), new Cell(5, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.PressureMax), new Cell(6, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.DifferentialPressure), new Cell(7, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.Tight), new Cell(8, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.SlackingOff), new Cell(9, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.TorqueMax), new Cell(10, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.RepetitionsCount), new Cell(11, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.RopUp), new Cell(12, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.RopDown), new Cell(13, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.FlowRateUp), new Cell(14, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.FlowRateDown), new Cell(15, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.Interval), new Cell(16, typeof(double)) }, + { nameof(ProcessMapPlanTFOrientationDto.StopPointOffBottom), new Cell(17, typeof(double)) }, + + { nameof(ProcessMapPlanTFOrientationDto.Note), new Cell(18, typeof(string)) }, }; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs b/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs deleted file mode 100644 index 5082629c..00000000 --- a/AsbCloudInfrastructure/Services/ExcelServices/Templates/ProcessMapPlanTemplates/ProcessMapPlanUpdatingNoloadParametersTemplate.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -public class ProcessMapPlanUpdatingNoloadParametersTemplate : ITemplateParameters -{ - public string SheetName => "Обновление холостого хода"; - - public int HeaderRowsCount => 2; - - public string FileName => "ProcessMapPlanUpdatingNoloadParametersTemplate.xlsx"; - - public IDictionary Cells => new Dictionary - { - - }; -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs deleted file mode 100644 index a08a3dc4..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanReamExportService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Requests.ExportOptions; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; - -public class ProcessMapPlanReamExportService : ProcessMapPlanExportService -{ - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamTemplate(); - - public ProcessMapPlanReamExportService( - IChangeLogRepository processMapPlanRepository, - IWellService wellService) - : base(processMapPlanRepository, wellService) - { - } - - protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) - { - var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - - return $"{caption}_РТК_План_проработка.xlsx"; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs deleted file mode 100644 index b0ae30f2..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorLoweringBitExportService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Requests.ExportOptions; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; - -public class ProcessMapPlanRotorLoweringBitExportService : ProcessMapPlanExportService -{ - public ProcessMapPlanRotorLoweringBitExportService( - IChangeLogRepository processMapPlanRepository, - IWellService wellService) - : base(processMapPlanRepository, wellService) - { - } - - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRotorLoweringBitTemplate(); - - protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) - { - var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - - return $"{caption}_РТК_План_подход_к_забою_в_роторе.xlsx"; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs deleted file mode 100644 index 9796994d..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanRotorRpmAccelerationExportService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Requests.ExportOptions; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; - -public class ProcessMapPlanRotorRpmAccelerationExportService : ProcessMapPlanExportService -{ - public ProcessMapPlanRotorRpmAccelerationExportService( - IChangeLogRepository processMapPlanRepository, - IWellService wellService) - : base(processMapPlanRepository, wellService) - { - } - - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRotorRpmAccelerationTemplate(); - - protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) - { - var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - - return $"{caption}_РТК_План_выход_на_обороты_перед_ротором.xlsx"; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs deleted file mode 100644 index d2b763b7..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanSlideLoweringBitExportService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Requests.ExportOptions; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; - -public class ProcessMapPlanSlideLoweringBitExportService : ProcessMapPlanExportService -{ - public ProcessMapPlanSlideLoweringBitExportService( - IChangeLogRepository processMapPlanRepository, - IWellService wellService) - : base(processMapPlanRepository, wellService) - { - } - - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSlideLoweringBitTemplate(); - - protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) - { - var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - - return $"{caption}_РТК_План_подход_к_забою_в_слайде.xlsx"; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs deleted file mode 100644 index 566ffae9..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Export/ProcessMapPlanUpdatingNoloadParametersExportService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Functions; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Requests.ExportOptions; -using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; - -public class ProcessMapPlanUpdatingNoloadParametersExportService : ProcessMapPlanExportService -{ - public ProcessMapPlanUpdatingNoloadParametersExportService( - IChangeLogRepository processMapPlanRepository, - IWellService wellService) - : base(processMapPlanRepository, wellService) - { - } - - protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanUpdatingNoloadParametersTemplate(); - - protected override async Task BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) - { - var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); - - return $"{caption}_РТК_План_обновление_холостого_хода.xlsx"; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs deleted file mode 100644 index 13882b53..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanReamParser.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -public class ProcessMapPlanReamParser : ProcessMapPlanParser -{ - public ProcessMapPlanReamParser(IWellOperationRepository wellOperationRepository) - : base(wellOperationRepository) - { - } - - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamTemplate(); - - protected override ProcessMapPlanReamDto BuildDto(IDictionary row, int rowNumber) - { - var dto = base.BuildDto(row, rowNumber); - - var section = sections.FirstOrDefault(s => - string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); - - if (section is null) - { - var message = string.Format(XLExtentions.ProblemDetailsTemplate, - TemplateParameters.SheetName, rowNumber, - TemplateParameters.Cells[nameof(ProcessMapPlanReamDto.Section)], - "Указана некорректная секция"); - throw new FileFormatException(message); - } - - dto.IdWellSectionType = section.Id; - - return dto; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs deleted file mode 100644 index a2eb33cc..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorLoweringBitParser.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -public class ProcessMapPlanRotorLoweringBitParser : ProcessMapPlanParser -{ - public ProcessMapPlanRotorLoweringBitParser(IWellOperationRepository wellOperationRepository) - : base(wellOperationRepository) - { - } - - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRotorLoweringBitTemplate(); - - protected override ProcessMapPlanRotorLoweringBitDto BuildDto(IDictionary row, int rowNumber) - { - var dto = base.BuildDto(row, rowNumber); - - var section = sections.FirstOrDefault(s => - string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); - - if (section is null) - { - var message = string.Format(XLExtentions.ProblemDetailsTemplate, - TemplateParameters.SheetName, - rowNumber, - TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], - "Указана некорректная секция"); - throw new FileFormatException(message); - } - - dto.IdWellSectionType = section.Id; - - return dto; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs deleted file mode 100644 index 4141813f..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanRotorRpmAccelerationParser.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -public class ProcessMapPlanRotorRpmAccelerationParser : ProcessMapPlanParser -{ - public ProcessMapPlanRotorRpmAccelerationParser(IWellOperationRepository wellOperationRepository) - : base(wellOperationRepository) - { - } - - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRotorRpmAccelerationTemplate(); - - protected override ProcessMapPlanRotorRpmAccelerationDto BuildDto(IDictionary row, int rowNumber) - { - var dto = base.BuildDto(row, rowNumber); - - var section = sections.FirstOrDefault(s => - string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); - - if (section is null) - { - var message = string.Format(XLExtentions.ProblemDetailsTemplate, - TemplateParameters.SheetName, - rowNumber, - TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], - "Указана некорректная секция"); - throw new FileFormatException(message); - } - - dto.IdWellSectionType = section.Id; - - return dto; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs deleted file mode 100644 index 373e98cc..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanSlideLoweringBitParser.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -public class ProcessMapPlanSlideLoweringBitParser : ProcessMapPlanParser -{ - public ProcessMapPlanSlideLoweringBitParser(IWellOperationRepository wellOperationRepository) - : base(wellOperationRepository) - { - } - - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSlideLoweringBitTemplate(); - - protected override ProcessMapPlanSlideLoweringBitDto BuildDto(IDictionary row, int rowNumber) - { - var dto = base.BuildDto(row, rowNumber); - - var section = sections.FirstOrDefault(s => - string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); - - if (section is null) - { - var message = string.Format(XLExtentions.ProblemDetailsTemplate, - TemplateParameters.SheetName, - rowNumber, - TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], - "Указана некорректная секция"); - throw new FileFormatException(message); - } - - dto.IdWellSectionType = section.Id; - - return dto; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs b/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs deleted file mode 100644 index e5453b6a..00000000 --- a/AsbCloudInfrastructure/Services/ProcessMapPlan/Parser/ProcessMapPlanUpdatingNoloadParametersParser.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AsbCloudApp.Data.ProcessMaps; -using AsbCloudApp.Data.ProcessMaps.Functions; -using AsbCloudApp.Repositories; -using AsbCloudInfrastructure.Services.ExcelServices.Templates; -using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; - -namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -public class ProcessMapPlanUpdatingNoloadParametersParser : ProcessMapPlanParser -{ - public ProcessMapPlanUpdatingNoloadParametersParser(IWellOperationRepository wellOperationRepository) - : base(wellOperationRepository) - { - } - - protected override ITemplateParameters TemplateParameters => new ProcessMapPlanUpdatingNoloadParametersTemplate(); - - protected override ProcessMapPlanUpdatingNoloadParametersDto BuildDto(IDictionary row, int rowNumber) - { - var dto = base.BuildDto(row, rowNumber); - - var section = sections.FirstOrDefault(s => - string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase)); - - if (section is null) - { - var message = string.Format(XLExtentions.ProblemDetailsTemplate, - TemplateParameters.SheetName, - rowNumber, - TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)], - "Указана некорректная секция"); - throw new FileFormatException(message); - } - - dto.IdWellSectionType = section.Id; - - return dto; - } -} \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanReamTemplate.xlsx deleted file mode 100644 index 5f5be35bfd62215272aeead11ffc54df97cc49c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48997 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 NGPV%qAENQM{{v`ry1W1Y diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorLoweringBitTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorLoweringBitTemplate.xlsx deleted file mode 100644 index e2c24b7f5653f40a7cd4fd838b82e3bae900e95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10680 zcmeHN^;=cj*4}hTY&xa8OF%j|-6`EIu<0(55~L*rM7pKBySuwvLFxXsC!TYT_uRkW zyX%Lwo;But-xbdobBYk3~&iX7KukFaPV4>+U0nm{7|2zI4|AFp=G5bz7l-`s0OEir#HKKJk1+2GSkHkDV z6$t%=;*^tA5vXtKJ`owE=Ai|PEas{Z-QD?tP0{;~dMy~kteP1m+xEjz^mb~%XR6Ig zpU(JW$?5YGFVJKwps=?lE@m7Xkpc)T`I#gYu)pPY7lnX~H(+>IQ*P$zHs^SgL^Ynh zKzO--VQ;?kJTN;=2bG;rs8gPq*<8u?v6(vDNW~0&seQH>n*r9AK~kPUOYzBRz#R?F zG7rB*p`EA~SUL511r@H93;-I5^JE|h41uwCqMcf`Uzf-aV(mw@W&M7>MtKq zwKCg*qShr)1r?Gy??41~dqV4iQy{f%QTePpgB-ggLtfouFR2cCZPal^51C|@(J z=lc6&3hwF^Bi=?)xbOEs`Pq1JIrwNqcg$AqWJLG&gDM2ZPPot zEqqSrBy<^N+# z{M)CO#3?9sv7v;VNZ*I{U(Kw<0LA3oMWvg_)%^lwmeFgXvZ;tx+GvS^>V$7#r2Jd_ z?gy7v1fmZ6$uBp#O5R~&^HbKkmxd(Wf?W|9Xq-NPz$F{q7;ZBcGnXk+vYvEqEzu0c z^#z~h2G%G+Q{N>jfMYCLgh*Jq#38tXDSj{M?=P(#h?rFFSUh7%u!r=gi$`xPLGMTlRw4V;e;SEwVV?0VK-NDJ$#KFP#=N|T_%|JmmG6>86@1r?x#HO1KCHUlR>zj!daNMKvAfGq= z+m_lT1hxvyPz5{FLSfIl)P!%`3Wl(u1m~iE|e*k)Y~WOOlZpZ zrVPDN^40E5dSu&+%v9@$bQPfcE@8JH%D|1o>oqR@sOVNdqVewp&j!Mu#b>@}t_-ri zH^6-b4dV1ltq zH^pU(Uz+!~hPi{|;T#bx3#K`SjtNj0hMM}G9x9fP$En!^6lfMB5$iLK+$mC(2W^XY zKIe?Z^qf~PKx6?HZ!{4M)Yf5>ISye-2}%#-j^lM4VJpuyrmBN8RgB2Q3DFIt(%XP1 z=dSA*e*=|or!`e!Hu!=p1Zgv%mD$4@&nj*eUJ;X%FzHBr2$Sqq&(U4=jR}=?GmrXW zOlv^3<-{&D!7z^1K;eWY`ZBx-9O^)#Pc~av7R^pI=X%id7nPK%AI8E9l`u3zc6S%= z*p5LEN~w@ULPBgzpXg;43%#zwstO-U4R^8@*tHrmXz&d>2jT=v zlcGJpA;I)N$+LV;o)wKaUYgD@tL4EAl3Vp5;_^9eI%QKWH0X z)1>@?*YAI3`B>GK)+Y5xJfhU$1+!N8gp6L{#qX_gz|O&r&~?1ynm`ox>0XJ~e|KzS zmH(;B{|ZmeJ#gz{MRUYal+hBVOxxgsB1Z2=S;46A`t%dr{i=?8DNdK;lQFG!BmCrA zaPZ)i@0+5+!7Te#qwkb5{{Om+T|El=uS1qFcPsz^^><}-cJZ_`cmBD29cy>kFYy9f zSj(TtPRpd7m}a=CaKOY+aEIU*B<%aUV)=cJdUUdP5yq)7y5t=( zKjY9(99>_nb*h%)H|PPgm;%<#gK=eXDEsKA;0C~+6v&+$ax`Y|aa?wm>7U7*mQ2Sx z?VjuLI6BF{EW!YJHlj>(l+d0@DNqZKak5Zs%K$@?)16Mg` z!y#?15+R=sD4?v2%-a^4`^@R$*eD7;-xVXU2KK(_++xGhOVniepeIQOa8d9& z4}2FbF!8CKwtxgDbcgnckTa&fKfFtwjhy-AClH;C-dTPR@m>yz8x6gMj+wwDqBHX4 zgqW1AAL6S(qK=4F&OrMO*U(ONtd+`k(mXK2e95lLP`W87Kkgg%)Mqw}9%}7$j@nBv zC4PKZFd|fG*fx?&NuF;FLpu`jrNKyVq_^3*-e%(589x?rHXB;L*r?H$y6>0BTyt5x zW>jkH&@y|^9*QNPp7O=$=P|*&*&Zys7JQD21S=^qlw{8(q?wKQPa+kh7_D87Uv{0c zyIiILy8RhW7P*yZtM(!nH=~J~U1u(p!F4Z-th@TJaI$?9nV&@1f(=d1``e;9z?X7mNDf^BfDg8H zX}R}f!-1Lxq>F7Src|)tGx>T)jgPGHtl77%`Ze6_T^@~Gy|>Pj8^qqxl|^mO(D=C7 zv%H+>_leDXM2CoKlwjaAuCVx`5ApS)e++^C?s~4p^rv$jIv9-43U{Tg&7Og+*BvPr zwZToe_d0Sil;?9j*E5bzvFFEu{3P=aYMV>q{sI*bk2fA1G9mV3f=|nybT@&Pm}dnr ziNSNEi6|s$W>xbc_d6im&x-kZ4rQexO+&u(&z3pYoWE{QUmW`dAY791UVQDo@`}$C zZau|n>sk>$HSTp4_~M&fDBz!CrHH>%`b7ubHFuqAU#J{0|01}`ll|S(zq6#z z@Bn}?6C^JGYhQA>JFn;wHX+>Cm6DIVA;Ohb;Hp zS6WSdxmSCnq-*A@IY;kS8Vg1gSzEMLJWsTQpQ=6BzpB;EG=2)`D%15^YF!(%tSVbR z%-hei_~L##&|9rA(PeSRdvsaKGD~N3_-g%bpoG3CeUEteD>I2jRiW%dM?xs*#LIH> zuyLRK$zJzsQ?{vMo*D2$tGOiI4CX%AYL&J&bk6b(VXIrDyJ>sZGk9k>H0$y9a ziN0!yr3b@#pMq9~sl8fueLjq}Ti3Loo#yH@4}bnroc=he*eDKz)bf~RdscbAuG;+d zT1U{{yUDaxXIQb(6)wNspiZWkNA5&%5({vgb8S1SCcl#|bdPgUZGGc0)u z>It1O0t?xpG)y1)p$A#M$oH!!1QgNn zNYs~+l3y*0%|sJX=n3Zs%hw`lh%x4iVUMbmBcTX65b5O_gvY?o6DOFWBa$#mMl+Ys zKCY|_v`#>!a9k5KlMj7=aMtv~Ewdx$AL>ZXNV+B;2C?A z7yK!*s{cZDT7wVDk9MnV*NOTOx{Op_aY4T z-<$b#6O;ZXy&1R;dnsf>KuSk>7XKZ?*{Ay_WGAWrT7=+$c8e0cc35_!VCItp%r3Zh`uQafWIRUmq=GqD&HkA067TPjotPI&F2fJgz}kqGM`g_Y<5A0J%YIKE%rP!-57RflAkq&5kNK{a z!+r?0d9gueJ|y+7_VuB-sU?zw>cKZuoH>V@X9T{R*7}~; zr|J~d)#p~3?c_ajN|MhG0)pvUwgAIcT0Y~`)t8Z^h7%b{4|(l@gF*kCNnyd8`-5aA z4bZd04lkA@vmHxWjiCu?kP*#~%o4iLr#Mw?iH>4vsS2{I^*W>MuJ0b)4AP^%(ecpB z_MEbb=SqZiNhm(f)HUQLCdKKKLfoxLTw)RDHY36AQuBkPTVtf@#L@kg@N6@EuTQnM zY(#vVuM>n}A-7+z#R1_IVOecg=Z+-yc^9j={Q{T1h8YU9@#7u3kFtQL)#jq<-+xT_e8~(nSy_@y}lGX())_h zpBrhT5g2Q;Lra!=s;xfGAD7=MrHy9Uxg z`*4bGCA@*`J##a*QvK1xg zrc-BCjYjC|DBJ9Jt~=d0LTr-?HVmn;nA1#JBr-rOksrR?E=|XHlj3o(9qQVoUyLB( z{H5D8U@hoUO4rjBbrTGwwXd6((;y&BC%Qgq$+A&uw>}x)_OJHr=w(LD21#o$Lqf^_ z;zIsr)FoO=_FLRQU)FJd;CXA~!gtA->M&D&)Nwf6cW!s`L)FZ|m>O~K)XAux3l9G5wmu&*d2Z=PIG&o%6aq_IpsS=t#4lyvrdjrI?mGk<5~1he)ww{$%q%m z&6yPspxlR-Hy26!?LAe?Dn(4%bY^xZ2@K+Mi3jg@CHR_i;9BhCsvy3Tt6PL)RYCx55??5R3ZBZoRU>LN2!;tKP_Ry5>@Q#GQ$&eELm|U{9 zIg^@0Z^7#w>+5RfdNRh4dcy~D8KR}#TuY%b)eh=4I)vTj2rJ>;LVj0c`fz!Y)(9$9 zvx{~DybtqbCf*I_0uQ!LGTm1Z=5P-TObuhA7q3AC!rj~v>d#uum(nMpGgoFe`NW-E zB$-8dDtu2uqhX@h0!|17`{OO;w48cwsvb|PXM0Z*IZ_YPbYO>``DRA;aF=NRa4@an z&~BKHh`Lidl2h|8H=IIU;CxH>G&pM$D)cOE!fHP%h`;IPI*QaUTZ8K{owGO8g%xK^ zmptx^EwF5DS3QqTD4CBfpk8$pi1Dc7nb(BhL;1x*Q2j9|5bHWVdm;o>s#geCLpZDR znytDNC($OQgP=q+l7)eivzK-jL_oe=fWiYJu+0`|eMMj&$uUc#v+W>2f`Xt0O)`_J zZL8q#BAy{K!rQ&bd!Dv2{^jUKF^)|xl4h1h@o66Mgig^`vIKRif-@zuSL@wj-AF*F zjywLne}estoJIa{IE4(=bw{UFP$N?~iHl!YKkF4msZmi;i zN}aq_x$qY_s|ItdHRTlVBS)Rar6QZcJfrYyU+J7v4P|V9PmrUf5Zq84ED1d_Iy4Gx zHgqh-UFuUEA?#p(8(%eEMzM>tS-m(_Wpjn`_$r&3Rb-TKME+vF_w;4$W<_byvHF|V zMc_*uU1u_B#vO0LP${eLnmXw(qj{a>`9`;S-+f~pu=EQH>0=V^8hZdze;dN{3lqEA zkrS3^xUlxfNs+KU-aZL7*S-+kNN~T3&s~*GyJU(VtVQgy<~PmpD64&XPnr?o^rcmq zegK!PMTJZcu|rZyJ3aOaW?RxQ;4<=hpzTS*{tmN2zikiOmc%yI;-xWZJ_k`S`g3lp zc*>Mpdg;7t@VHs&Iw&Lbx#js5)5LdLq$YXr{_`EEK_4{|f6TTX)O(Py$Vq-8LDPc` z^czyLg8ky#bX?tUyY0r!qBZ6FEZSJS8W`8z ztSWJ~Wzb?hocDG0`_u#QiudF3LAIb$Ka*^9)|4jUT#Hu4Ia=36O=?0)z-xx1RhbVp z=st$riknn%A4}cROm-xT<0S}4`1@Mz+&A~7GrGYa(r#zS<}cz4QoOPz4)b2EEG_(y z;CbD8+^h81Qs8B*z}=O)uq{%X4bP46E|TA}0&mii;XqNpp!Kj2Dr$y^un=8Le>}O2 zKHre5^9R4mSylP2ErmGlByICIwa;Gg+!*KLsHe)~=``~|mm&Gq00)#^jFnCMtW_9Y z!}sQ+FS%H-x!@ixI^_GWi z(J?+=HYqylg?<4V;IW%;(dKoy;B^$m`q=xtw9Q0H} zPpN`bw8TVTiOWah%vTQBM`L z(hG&;@zfWS2ReZt$X=>L;Mtee<&o(O&Ua$AJ7L_2f{ZhS+>?;gsFFQ&Zg*OrCq$8NUu&}X~e2cHCF z$R*gF`OEN>R-GA>nuGC4Z;bmK-gcG8S4YRY`6O+w1(f*h?vYx2`d6=RHKgRt4MY() zA(0yJ?}}*b==eW9g#5BUjx@Cq8zOdKE8Z=d$;tP!cwoc?LqZO9=m)~%?J^t7*Aq3> z(h(KjvM{-!BF@a`%D3?LVTDLhXUK~@hsXAtc7$qH=#!&keZxF!@Ato%CB(AhGuA}B zabrYAr2C9j2oH9g_iy;lL^cafJe6k*dqY2OlqBdY)&$x!N`sXv53U5Wxv-oBf5s8V z2QPJ2cgh!ygz>wKkWE`Nz#ZFy1)z62N9Y!jj5kH7W9+tzgGBW!INhFfxhAr$~U|Z0RFw`CPYqBt$@67I73!Bw?nMD+!WZc8%4v9`N4U$+-emB3*X? zL4ZNT?9QY%sIQC@exsUPvsG%L7UstXUAlwrj%1>NL~$MJ5;q3^p;FFa|BH8<;$WS$ z2_TefImgHOJm$Iu3pkOjFYQb4hWD((S95*`toJBwb3G}au>243_E*<$!s$^S#h)&3 zA9nyXK>8xbun0MC_!C!eFJ_FgZSM& zfr4g+xFY}F-S($?{CWMCUN>dAe-iw&1LsfR&ucp5k$>yQ`4#xju7tk>J0Y3<|K6kU zE6=Yr>c5!oAq{-LRIGmm|5{W03mgvF=pf*~DvZBEf2~3M1x z`ilht_cxYblT5!7{2IspMKDM3udnf2RQoH-uYT%ZEP^Dz|A$|_)?XR^=>q(P2LPzZ r0f7H-2!4hCbK(9wyp-~9@IRJuWjQ#Aj{I!-dIso)_#DeLKkxnzfx7Vo diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanRotorRpmAccelerationTemplate.xlsx deleted file mode 100644 index d4db9ff76ece54b2d288dd7e5fe9f77eca087126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10760 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%0D%9n n34VqDd++`y{Ep%u@IQBQMHwiNjQl7eLjd%E%nk diff --git a/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx b/AsbCloudInfrastructure/Services/ProcessMapPlan/Templates/ProcessMapPlanSlideLoweringBitTemplate.xlsx deleted file mode 100644 index 123424bb194d68b7e819651c567965eefc378515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10771 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 diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs deleted file mode 100644 index 3c8bb70b..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Functions; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMapPlan.Functions; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps.Functions; - -///

-/// РТК план обновление холостого хода -/// -public class ProcessMapPlanUpdatingNoloadParametersController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanUpdatingNoloadParametersController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanUpdatingNoloadParametersParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanUpdatingNoloadParametersExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_обновление_холостого_хода.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs deleted file mode 100644 index 1fc1bc22..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanReamController.cs +++ /dev/null @@ -1,26 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; - -/// -/// РТК план проработка -/// -public class ProcessMapPlanReamController : ProcessMapPlanBaseController -{ - public ProcessMapPlanReamController(IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanReamParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanReamExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_проработка.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs deleted file mode 100644 index 670ba243..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; - -/// -/// РТК план подход к забою в роторе -/// -public class ProcessMapPlanRotorLoweringBitController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanRotorLoweringBitController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanRotorLoweringBitParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanRotorLoweringBitExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_подход_к_забою_в_роторе.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs deleted file mode 100644 index 0f76ef54..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanRotorRpmAccelerationController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; - -/// -/// РТК план выход на обороты перед ротором -/// -public class ProcessMapPlanRotorRpmAccelerationController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanRotorRpmAccelerationController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanRotorRpmAccelerationParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanRotorRpmAccelerationExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_выход_на_обороты_перед_ротором.xlsx"; -} \ No newline at end of file diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs deleted file mode 100644 index b8f82d7c..00000000 --- a/AsbCloudWebApi/Controllers/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using AsbCloudApp.Data.ProcessMaps.Operations; -using AsbCloudApp.Repositories; -using AsbCloudApp.Requests; -using AsbCloudApp.Services; -using AsbCloudDb.Model.ProcessMapPlan.Operations; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Export; -using AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; - -namespace AsbCloudWebApi.Controllers.ProcessMaps.Operations; - -/// -/// РТК план подход к забою в слайде -/// -public class ProcessMapPlanSlideLoweringBitController : - ProcessMapPlanBaseController -{ - public ProcessMapPlanSlideLoweringBitController( - IChangeLogRepository repository, - IWellService wellService, - ProcessMapPlanSlideLoweringBitParser parserService, - ITelemetryService telemetryService, - ProcessMapPlanSlideLoweringBitExportService processMapPlanExportService) - : base(repository, wellService, parserService, processMapPlanExportService, telemetryService) - { - } - - protected override string TemplateFileName => "ЕЦП_шаблон_файла_РТК_план_подход_к_забою_в_слайде.xlsx"; -} \ No newline at end of file