diff --git a/AsbCloudDb/AsbCloudDb.csproj b/AsbCloudDb/AsbCloudDb.csproj
index 2c9282b5..42a6436b 100644
--- a/AsbCloudDb/AsbCloudDb.csproj
+++ b/AsbCloudDb/AsbCloudDb.csproj
@@ -2,6 +2,7 @@
net6.0
+ enable
diff --git a/AsbCloudDb/EFExtentionOrderBy.cs b/AsbCloudDb/EFExtentionOrderBy.cs
index 8178bb33..0b46c29b 100644
--- a/AsbCloudDb/EFExtentionOrderBy.cs
+++ b/AsbCloudDb/EFExtentionOrderBy.cs
@@ -1,21 +1,15 @@
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Metadata;
-using System;
+using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
namespace AsbCloudDb
{
-#nullable enable
public static class EFExtentionsSortBy
{
- class TypeAcessor
+ struct TypeAcessor
{
public LambdaExpression KeySelector { get; set; }
public MethodInfo OrderBy { get; set; }
@@ -24,26 +18,26 @@ namespace AsbCloudDb
public MethodInfo ThenByDescending { get; set; }
}
- static ConcurrentDictionary> TypePropSelectors { get; set; } = new();
+ private static ConcurrentDictionary> TypePropSelectors { get; set; } = new();
- static MethodInfo methodOrderBy = GetExtOrderMethod("OrderBy");
+ private static readonly MethodInfo methodOrderBy = GetExtOrderMethod("OrderBy");
- static MethodInfo methodOrderByDescending = GetExtOrderMethod("OrderByDescending");
+ private static readonly MethodInfo methodOrderByDescending = GetExtOrderMethod("OrderByDescending");
- static MethodInfo methodThenBy = GetExtOrderMethod("ThenBy");
+ private static readonly MethodInfo methodThenBy = GetExtOrderMethod("ThenBy");
- static MethodInfo methodThenByDescending = GetExtOrderMethod("ThenByDescending");
+ private static readonly MethodInfo methodThenByDescending = GetExtOrderMethod("ThenByDescending");
- static MethodInfo GetExtOrderMethod(string methodName)
+ private static MethodInfo GetExtOrderMethod(string methodName)
=> typeof(System.Linq.Queryable)
.GetMethods()
.Where(m => m.Name == methodName &&
- m.IsGenericMethodDefinition &&
+ m.IsGenericMethodDefinition &&
m.GetParameters().Length == 2 &&
m.GetParameters()[1].ParameterType.IsAssignableTo(typeof(LambdaExpression)))
.Single();
- private static Dictionary MakeTypeAcessors (Type type)
+ private static Dictionary MakeTypeAcessors(Type type)
{
var propContainer = new Dictionary();
var properties = type.GetProperties();
@@ -61,7 +55,7 @@ namespace AsbCloudDb
ThenBy = methodThenBy.MakeGenericMethod(type, propertyInfo.PropertyType),
ThenByDescending = methodThenByDescending.MakeGenericMethod(type, propertyInfo.PropertyType),
};
-
+
propContainer.Add(name, typeAccessor);
}
return propContainer;
@@ -92,7 +86,7 @@ namespace AsbCloudDb
sortEnum.MoveNext();
var orderedQuery = query.SortBy(sortEnum.Current);
- while(sortEnum.MoveNext())
+ while (sortEnum.MoveNext())
orderedQuery = orderedQuery.ThenSortBy(sortEnum.Current);
return orderedQuery;
@@ -120,7 +114,7 @@ namespace AsbCloudDb
var parts = propertySort.Split(" ", 2, StringSplitOptions.RemoveEmptyEntries);
var isDesc = parts.Length >= 2 && parts[1].ToLower().Trim() == "desc";
var propertyName = parts[0];
-
+
var newQuery = query.SortBy(propertyName, isDesc);
return newQuery;
}
@@ -202,5 +196,4 @@ namespace AsbCloudDb
return newQuery;
}
}
-#nullable disable
}
diff --git a/AsbCloudDb/EFExtentions.cs b/AsbCloudDb/EFExtentions.cs
index 8d26b468..7c0e588a 100644
--- a/AsbCloudDb/EFExtentions.cs
+++ b/AsbCloudDb/EFExtentions.cs
@@ -12,12 +12,12 @@ namespace AsbCloudDb
public static class EFExtentions
{
static Dictionary QueryFactories { get; set; } = new();
-
+
static QueryStringFactory GetQueryStringFactory(DbSet dbSet)
where T : class
{
var t = typeof(T);
- var factory = (QueryStringFactory)QueryFactories.GetValueOrDefault(t);
+ var factory = (QueryStringFactory?)QueryFactories.GetValueOrDefault(t);
if (factory is null)
{
factory = new QueryStringFactory(dbSet);
@@ -70,7 +70,7 @@ namespace AsbCloudDb
var pkColsNames = dbset.EntityType.FindPrimaryKey()?.Properties.Select(p => p.GetColumnBaseName());
pk = pkColsNames is null ? string.Empty : $"({string.Join(", ", pkColsNames)})";
- TableName = dbset.EntityType.GetTableName();
+ TableName = dbset.EntityType.GetTableName()!;
getters = properties.Select(p => p.GetGetter());
Columns = properties.Select(p => $"\"{p.GetColumnBaseName()}\"");
var colunmsString = $"({string.Join(", ", Columns)})";
@@ -113,7 +113,7 @@ namespace AsbCloudDb
return builder;
}
- private static string FormatValue(object v)
+ private static string FormatValue(object? v)
=> v switch
{
string vStr => $"'{vStr}'",
diff --git a/AsbCloudDb/Migrations/20210907085527_Init.cs b/AsbCloudDb/Migrations/20210907085527_Init.cs
index 4588fca2..a84a4072 100644
--- a/AsbCloudDb/Migrations/20210907085527_Init.cs
+++ b/AsbCloudDb/Migrations/20210907085527_Init.cs
@@ -6,6 +6,7 @@ using System.Collections.Generic;
namespace AsbCloudDb.Migrations
{
+#nullable disable
public partial class Init : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
diff --git a/AsbCloudDb/Migrations/20220420124920_Add_DailyReport_Table.cs b/AsbCloudDb/Migrations/20220420124920_Add_DailyReport_Table.cs
index 54247ce2..5fa8d22c 100644
--- a/AsbCloudDb/Migrations/20220420124920_Add_DailyReport_Table.cs
+++ b/AsbCloudDb/Migrations/20220420124920_Add_DailyReport_Table.cs
@@ -1,6 +1,6 @@
-using System;
-using AsbCloudDb.Model;
+using AsbCloudDb.Model;
using Microsoft.EntityFrameworkCore.Migrations;
+using System;
#nullable disable
diff --git a/AsbCloudDb/Migrations/20220425110530_Add_DetectedOperations.cs b/AsbCloudDb/Migrations/20220425110530_Add_DetectedOperations.cs
index b671ec9a..b25e20d9 100644
--- a/AsbCloudDb/Migrations/20220425110530_Add_DetectedOperations.cs
+++ b/AsbCloudDb/Migrations/20220425110530_Add_DetectedOperations.cs
@@ -1,6 +1,6 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using System;
#nullable disable
diff --git a/AsbCloudDb/Migrations/20220506041015_Add_mw_telemetry_datas_saub_stat.Designer.cs b/AsbCloudDb/Migrations/20220506041015_Add_mw_telemetry_datas_saub_stat.Designer.cs
new file mode 100644
index 00000000..81bee21d
--- /dev/null
+++ b/AsbCloudDb/Migrations/20220506041015_Add_mw_telemetry_datas_saub_stat.Designer.cs
@@ -0,0 +1,5768 @@
+//
+using System;
+using System.Collections.Generic;
+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("20220506041015_Add_mw_telemetry_datas_saub_stat")]
+ partial class Add_mw_telemetry_datas_saub_stat
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseCollation("Russian_Russia.1251")
+ .HasAnnotation("ProductVersion", "6.0.1")
+ .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")
+ .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")
+ .HasColumnType("jsonb")
+ .HasColumnName("timezone")
+ .HasComment("Смещение часового пояса от UTC");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdDeposit");
+
+ b.ToTable("t_cluster");
+
+ b.HasComment("Кусты");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.Company", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Caption")
+ .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")
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("caption");
+
+ b.HasKey("Id");
+
+ b.ToTable("t_company_type");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Caption = "Недрапользователь"
+ },
+ new
+ {
+ Id = 2,
+ Caption = "Буровой подрядчик"
+ },
+ new
+ {
+ Id = 3,
+ Caption = "Сервис автоматизации бурения"
+ });
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.DailyReport", b =>
+ {
+ b.Property("IdWell")
+ .HasColumnType("integer")
+ .HasColumnName("id_well")
+ .HasComment("ID скважины");
+
+ b.Property("StartDate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("start_date")
+ .HasComment("Дата отчёта");
+
+ b.Property("Info")
+ .HasColumnType("jsonb")
+ .HasColumnName("info")
+ .HasComment("Список параметров для отчёта");
+
+ b.HasKey("IdWell", "StartDate")
+ .HasName("t_id_well_date_start_pk");
+
+ b.ToTable("t_daily_report");
+
+ b.HasComment("Ежедневные отчёты");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.Deposit", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Caption")
+ .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")
+ .HasColumnType("jsonb")
+ .HasColumnName("timezone")
+ .HasComment("Смещение часового пояса от UTC");
+
+ b.HasKey("Id");
+
+ b.ToTable("t_deposit");
+
+ b.HasComment("Месторождение");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.DetectedOperation", 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")
+ .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("IdCategory")
+ .HasColumnType("integer")
+ .HasColumnName("id_category")
+ .HasComment("Id категории операции");
+
+ b.Property("IdTelemetry")
+ .HasColumnType("integer")
+ .HasColumnName("id_telemetry");
+
+ b.Property("IdUsersAtStart")
+ .HasColumnType("integer")
+ .HasColumnName("id_user")
+ .HasComment("Id пользователя по телеметрии на момент начала операции");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdCategory");
+
+ b.HasIndex("IdTelemetry");
+
+ b.ToTable("t_detected_operation");
+
+ b.HasComment("автоматически определенные операции по телеметрии");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.DrillFlowChart", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AxialLoadMax")
+ .HasColumnType("double precision")
+ .HasColumnName("axial_load_max")
+ .HasComment("Максимальная нагрузка");
+
+ b.Property("AxialLoadMin")
+ .HasColumnType("double precision")
+ .HasColumnName("axial_load_min")
+ .HasComment("Минимальная нагрузка");
+
+ b.Property("DepthEnd")
+ .HasColumnType("double precision")
+ .HasColumnName("depth_end")
+ .HasComment("Глубина окончания интервала");
+
+ b.Property("DepthStart")
+ .HasColumnType("double precision")
+ .HasColumnName("depth_start")
+ .HasComment("Стартовая глубина");
+
+ b.Property("FlowMax")
+ .HasColumnType("double precision")
+ .HasColumnName("flow_max")
+ .HasComment("Максимальный расход");
+
+ b.Property("FlowMin")
+ .HasColumnType("double precision")
+ .HasColumnName("flow_min")
+ .HasComment("Минимальный расход");
+
+ b.Property("IdWell")
+ .HasColumnType("integer")
+ .HasColumnName("well_id")
+ .HasComment("Id скважины");
+
+ b.Property("IdWellOperationCategory")
+ .HasColumnType("integer")
+ .HasColumnName("id_operation_category")
+ .HasComment("Id типа операции");
+
+ b.Property("LastUpdate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_update")
+ .HasComment("Дата последнего изменения");
+
+ b.Property("PressureMax")
+ .HasColumnType("double precision")
+ .HasColumnName("pressure_max")
+ .HasComment("Максимальное давление");
+
+ b.Property("PressureMin")
+ .HasColumnType("double precision")
+ .HasColumnName("pressure_min")
+ .HasComment("Минимальное давление");
+
+ b.Property("RotorSpeedMax")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_speed_max")
+ .HasComment("Максимальные обороты на ВСП");
+
+ b.Property("RotorSpeedMin")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_speed_min")
+ .HasComment("Минимальные обороты на ВСП");
+
+ b.Property("RotorTorqueMax")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_torque_max")
+ .HasComment("Максимальный момент на ВСП");
+
+ b.Property("RotorTorqueMin")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_torque_min")
+ .HasComment("Минимальный момент на ВСП");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdWell");
+
+ b.HasIndex("IdWellOperationCategory");
+
+ b.ToTable("t_drill_flow_chart");
+
+ b.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");
+
+ b.HasComment("части программ бурения");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.DrillParams", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AxialLoadAvg")
+ .HasColumnType("double precision")
+ .HasColumnName("axial_load_avg")
+ .HasComment("Средняя нагрузка");
+
+ b.Property("AxialLoadMax")
+ .HasColumnType("double precision")
+ .HasColumnName("axial_load_max")
+ .HasComment("Максимальная нагрузка");
+
+ b.Property("AxialLoadMin")
+ .HasColumnType("double precision")
+ .HasColumnName("axial_load_min")
+ .HasComment("Минимальная нагрузка");
+
+ b.Property("DepthEnd")
+ .HasColumnType("double precision")
+ .HasColumnName("depth_end")
+ .HasComment("Глубина окончания интервала");
+
+ b.Property("DepthStart")
+ .HasColumnType("double precision")
+ .HasColumnName("depth_start")
+ .HasComment("Стартовая глубина");
+
+ b.Property("FlowAvg")
+ .HasColumnType("double precision")
+ .HasColumnName("flow_avg")
+ .HasComment("Средний расход");
+
+ b.Property("FlowMax")
+ .HasColumnType("double precision")
+ .HasColumnName("flow_max")
+ .HasComment("Максимальный расход");
+
+ b.Property("FlowMin")
+ .HasColumnType("double precision")
+ .HasColumnName("flow_min")
+ .HasComment("Минимальный расход");
+
+ b.Property("IdWell")
+ .HasColumnType("integer")
+ .HasColumnName("well_id")
+ .HasComment("Id скважины");
+
+ b.Property("IdWellSectionType")
+ .HasColumnType("integer")
+ .HasColumnName("id_wellsection_type")
+ .HasComment("Id с типом секции скважины");
+
+ b.Property("PressureAvg")
+ .HasColumnType("double precision")
+ .HasColumnName("pressure_avg")
+ .HasComment("Среднее давление");
+
+ b.Property("PressureMax")
+ .HasColumnType("double precision")
+ .HasColumnName("pressure_max")
+ .HasComment("Максимальное давление");
+
+ b.Property("PressureMin")
+ .HasColumnType("double precision")
+ .HasColumnName("pressure_min")
+ .HasComment("Минимальное давление");
+
+ b.Property("RotorSpeedAvg")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_speed_avg")
+ .HasComment("Средние обороты на ВСП");
+
+ b.Property("RotorSpeedMax")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_speed_max")
+ .HasComment("Максимальные обороты на ВСП");
+
+ b.Property("RotorSpeedMin")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_speed_min")
+ .HasComment("Минимальные обороты на ВСП");
+
+ b.Property("RotorTorqueAvg")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_torque_avg")
+ .HasComment("Средний момент на ВСП");
+
+ b.Property("RotorTorqueMax")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_torque_max")
+ .HasComment("Максимальный момент на ВСП");
+
+ b.Property("RotorTorqueMin")
+ .HasColumnType("double precision")
+ .HasColumnName("rotor_torque_min")
+ .HasComment("Минимальный момент на ВСП");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdWell");
+
+ b.HasIndex("IdWellSectionType");
+
+ b.ToTable("t_drill_params");
+
+ b.HasComment("Режим бурения в секции (диапазоны параметров бурения)");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .HasColumnType("text")
+ .HasColumnName("name")
+ .HasComment("Название категории");
+
+ b.Property("ShortName")
+ .HasColumnType("text")
+ .HasColumnName("short_name")
+ .HasComment("Короткое название категории");
+
+ b.HasKey("Id");
+
+ b.ToTable("t_file_category");
+
+ b.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 = "Программы цементирования обсадных колонн"
+ });
+ });
+
+ 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")
+ .HasColumnType("text")
+ .HasColumnName("name")
+ .HasComment("Название файла");
+
+ b.Property("PublishInfo")
+ .HasColumnType("jsonb")
+ .HasColumnName("publish_info")
+ .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");
+
+ b.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");
+
+ b.HasComment("Действия с файлами.");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.Measure", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Data")
+ .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");
+
+ b.HasComment("Таблица c данными для вкладки 'Последние данные'");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .HasColumnType("text")
+ .HasColumnName("name")
+ .HasComment("Название категории");
+
+ b.Property("ShortName")
+ .HasColumnType("text")
+ .HasColumnName("short_name")
+ .HasComment("Короткое название категории");
+
+ b.HasKey("Id");
+
+ b.ToTable("t_measure_category");
+
+ b.HasComment("Категория последних данных");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Name = "Показатели бурового раствора",
+ ShortName = "Раствор"
+ },
+ new
+ {
+ Id = 2,
+ Name = "Шламограмма",
+ ShortName = "Шламограмма"
+ },
+ new
+ {
+ Id = 3,
+ Name = "ННБ",
+ ShortName = "ННБ"
+ });
+ });
+
+ 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")
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("name")
+ .HasComment("Название");
+
+ b.HasKey("Id");
+
+ b.ToTable("t_permission");
+
+ b.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 = 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"
+ });
+ });
+
+ 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");
+
+ b.HasComment("отношение скважин и компаний");
+ });
+
+ 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");
+
+ b.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");
+
+ b.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 = 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
+ });
+ });
+
+ 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");
+
+ b.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");
+
+ b.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");
+
+ b.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")
+ .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");
+
+ b.HasComment("Запросы на изменение уставок панели оператора");
+ });
+
+ modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Info")
+ .HasColumnType("jsonb")
+ .HasColumnName("info")
+ .HasComment("Информация с панели о скважине");
+
+ b.Property("RemoteUid")
+ .HasColumnType("text")
+ .HasColumnName("remote_uid")
+ .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.");
+
+ b.Property("TimeZone")
+ .HasColumnType("jsonb")
+ .HasColumnName("timezone")
+ .HasComment("Смещение часового пояса от UTC");
+
+ b.HasKey("Id");
+
+ b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index");
+
+ b.ToTable("t_telemetry");
+
+ b.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("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");
+
+ b.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.ToView("mw_telemetry_datas_saub_stat");
+ });
+
+ 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("BreakAngleK")
+ .HasColumnType("real")
+ .HasColumnName("break_angle_k")
+ .HasComment("Коэффициент для расчёта за какой угол нужно тормозить");
+
+ b.Property("BreakAngleLeft")
+ .HasColumnType("real")
+ .HasColumnName("break_angle_left")
+ .HasComment("Угол торможения влево при работе по моменту");
+
+ b.Property("EncoderResolution")
+ .HasColumnType("real")
+ .HasColumnName("encoder_resolution")
+ .HasComment("Разрешение энкодера");
+
+ b.Property("Mode")
+ .HasColumnType("smallint")
+ .HasColumnName("mode")
+ .HasComment("Выбранный режим управления");
+
+ b.Property("PidMuxTorqueLeftLimit")
+ .HasColumnType("real")
+ .HasColumnName("pid_mux_torque_left_limit")
+ .HasComment(" Момент при котором определяется ехать назад по моменту или по скорости");
+
+ b.Property("PositionRight")
+ .HasColumnType("real")
+ .HasColumnName("position_right")
+ .HasComment("Крайний правый угол осцилляции");
+
+ b.Property("PositionZero")
+ .HasColumnType("real")
+ .HasColumnName("position_zero")
+ .HasComment("Нулевая позиция осцилляции");
+
+ b.Property("Ratio")
+ .HasColumnType("real")
+ .HasColumnName("ratio")
+ .HasComment(" Коэффициент редукции редуктора");
+
+ b.Property("ReverseKTorque")
+ .HasColumnType("real")
+ .HasColumnName("reverse_k_torque")
+ .HasComment("Коэффициент на который умножается момент, для того чтобы система поняла что мы движемся в обратную сторону");
+
+ b.Property("ReverseSpeedSpZeroTime")
+ .HasColumnType("smallint")
+ .HasColumnName("reverse_speed_sp_zero_time")
+ .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("RotorTorqueAvg")
+ .HasColumnType("real")
+ .HasColumnName("rotor_torque_avg")
+ .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.Property("TopDriveSpeed")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed")
+ .HasComment("Скорость СВП");
+
+ b.Property("TopDriveSpeedErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_speed_err");
+
+ b.Property("TopDriveSpeedMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_max")
+ .HasComment("верхний предел");
+
+ b.Property("TopDriveSpeedMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_min")
+ .HasComment("нижний предел");
+
+ b.Property("TopDriveSpeedOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_offset")
+ .HasComment("смещение");
+
+ b.Property("TopDriveSpeedSpFrom")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_from")
+ .HasComment("Заданная скорость c СВП");
+
+ b.Property("TopDriveSpeedSpFromErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_speed_sp_from_err");
+
+ b.Property("TopDriveSpeedSpFromMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_from_max");
+
+ b.Property("TopDriveSpeedSpFromMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_from_min");
+
+ b.Property("TopDriveSpeedSpFromOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_from_offset");
+
+ b.Property("TopDriveSpeedSpTo")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_to")
+ .HasComment("Задание скорости на СВП");
+
+ b.Property("TopDriveSpeedSpToErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_speed_sp_to_err");
+
+ b.Property("TopDriveSpeedSpToMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_to_max");
+
+ b.Property("TopDriveSpeedSpToMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_to_min");
+
+ b.Property("TopDriveSpeedSpToOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_speed_sp_to_offset");
+
+ b.Property("TopDriveTorque")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque")
+ .HasComment("Момент СВП");
+
+ b.Property("TopDriveTorqueErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_torque_err");
+
+ b.Property("TopDriveTorqueMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_max");
+
+ b.Property("TopDriveTorqueMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_min");
+
+ b.Property("TopDriveTorqueOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_offset");
+
+ b.Property("TopDriveTorqueSpFrom")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_from")
+ .HasComment("Заданный момент c СВП");
+
+ b.Property("TopDriveTorqueSpFromErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_torque_sp_from_err");
+
+ b.Property("TopDriveTorqueSpFromMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_from_max");
+
+ b.Property("TopDriveTorqueSpFromMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_from_min");
+
+ b.Property("TopDriveTorqueSpFromOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_from_offset");
+
+ b.Property("TopDriveTorqueSpTo")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_to")
+ .HasComment("Задание момента на СВП");
+
+ b.Property("TopDriveTorqueSpToErr")
+ .HasColumnType("smallint")
+ .HasColumnName("top_drive_torque_sp_to_err");
+
+ b.Property("TopDriveTorqueSpToMax")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_to_max");
+
+ b.Property("TopDriveTorqueSpToMin")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_to_min");
+
+ b.Property("TopDriveTorqueSpToOffset")
+ .HasColumnType("real")
+ .HasColumnName("top_drive_torque_sp_to_offset");
+
+ b.Property("TorqueLeftLimit")
+ .HasColumnType("real")
+ .HasColumnName("torque_left_limit")
+ .HasComment("Ограничение крутящего момента влево");
+
+ b.Property("TorqueRampTime")
+ .HasColumnType("real")
+ .HasColumnName("torque_ramp_time")
+ .HasComment("Время нарастания момента");
+
+ b.Property