diff --git a/AsbCloudApp/Data/ClusterDto.cs b/AsbCloudApp/Data/ClusterDto.cs
index 17a182ce..d73bffb6 100644
--- a/AsbCloudApp/Data/ClusterDto.cs
+++ b/AsbCloudApp/Data/ClusterDto.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
@@ -6,29 +7,12 @@ namespace AsbCloudApp.Data
///
/// DTO кустов
///
- public class ClusterDto : IMapPoint, IId
+ public class ClusterDto : MapPointBaseDto
{
- ///
- public int Id { get; set; }
-
- ///
- /// Название
- ///
- public string Caption { get; set; } = null!;
-
- ///
- public double? Latitude { get; set; }
-
- ///
- public double? Longitude { get; set; }
-
- ///
- public SimpleTimezoneDto? Timezone { get; set; }
-
///
/// ИД месторождения, необязательный
///
- public int? IdDeposit { get; set; }
+ public int IdDeposit { get; set; }
///
/// DTO месторождения
@@ -38,7 +22,17 @@ namespace AsbCloudApp.Data
///
/// Список скважин куста
///
- public IEnumerable? Wells { get; set; } = null!;
+ public IEnumerable Wells { get; set; } = Enumerable.Empty();
+ }
+
+ ///
+ /// DTO кустов
+ ///
+ public class ClusterBranchDto : MapPointBaseDto
+ {
+ ///
+ /// Список скважин куста
+ ///
+ public IEnumerable Wells { get; set; } = Enumerable.Empty();
}
-#nullable disable
}
diff --git a/AsbCloudApp/Data/CompanyDto.cs b/AsbCloudApp/Data/CompanyDto.cs
index b7698e36..99e1fc47 100644
--- a/AsbCloudApp/Data/CompanyDto.cs
+++ b/AsbCloudApp/Data/CompanyDto.cs
@@ -1,5 +1,8 @@
-namespace AsbCloudApp.Data
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data
{
+#nullable enable
///
/// DTO компании
///
@@ -11,7 +14,8 @@
///
/// Название
///
- public string Caption { get; set; }
+ [Required]
+ public string Caption { get; set; } = null!;
///
/// ИД типа компании
@@ -21,6 +25,6 @@
///
/// Название типа компании
///
- public string CompanyTypeCaption { get; set; }
+ public string CompanyTypeCaption { get; set; } = null!;
}
}
diff --git a/AsbCloudApp/Data/DepositDto.cs b/AsbCloudApp/Data/DepositDto.cs
index d15c2048..55c9e816 100644
--- a/AsbCloudApp/Data/DepositDto.cs
+++ b/AsbCloudApp/Data/DepositDto.cs
@@ -1,38 +1,37 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+
+#nullable enable
+
///
/// DTO Месторождения
///
- public class DepositBaseDto : IMapPoint, IId
+ public class DepositBaseDto : MapPointBaseDto
{
- ///
- public int Id { get; set; }
-
- ///
- /// Название
- ///
- public string Caption { get; set; }
-
- ///
- public double? Latitude { get; set; }
-
- ///
- public double? Longitude { get; set; }
-
- ///
- public SimpleTimezoneDto Timezone { get; set; }
}
///
/// DTO Месторождения с кустами
///
- public class DepositDto : DepositBaseDto
+ public class DepositDto : MapPointBaseDto
{
///
/// Кусты месторождения
///
- public IEnumerable Clusters { get; set; }
+ public IEnumerable Clusters { get; set; } = Enumerable.Empty();
+ }
+
+ ///
+ /// DTO Месторождения с кустами
+ ///
+ public class DepositBranchDto : MapPointBaseDto
+ {
+ ///
+ /// Кусты месторождения
+ ///
+ public IEnumerable Clusters { get; set; } = Enumerable.Empty();
}
}
diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs
index c52b2860..ad9ff5c3 100644
--- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs
+++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs
@@ -1,8 +1,10 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data.DetectedOperation
{
+#nullable enable
///
/// Автоматически определяемая операция
///
@@ -11,12 +13,12 @@ namespace AsbCloudApp.Data.DetectedOperation
///
/// Список всех операций
///
- public IEnumerable Operations { get; set; }
+ public IEnumerable Operations { get; set; } = Enumerable.Empty();
///
/// Статистика по бурильщикам
///
- public IEnumerable Stats { get; set; }
+ public IEnumerable Stats { get; set; } = Enumerable.Empty();
}
#nullable disable
}
diff --git a/AsbCloudApp/Data/DrillingProgramPartDto.cs b/AsbCloudApp/Data/DrillingProgramPartDto.cs
index 9800bad4..131b328b 100644
--- a/AsbCloudApp/Data/DrillingProgramPartDto.cs
+++ b/AsbCloudApp/Data/DrillingProgramPartDto.cs
@@ -1,7 +1,9 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Часть программы бурения
///
@@ -10,7 +12,7 @@ namespace AsbCloudApp.Data
///
/// Название
///
- public string Name { get; set; }
+ public string Name { get; set; } = string.Empty;
///
/// ИД категории файла
@@ -27,12 +29,12 @@ namespace AsbCloudApp.Data
///
/// Публикаторы. Могут загружать файл этой категории
///
- public IEnumerable Publishers { get; set; }
+ public IEnumerable Publishers { get; set; } = Enumerable.Empty();
///
/// Согласованты. Могут согласовывать загруженные файлы этой категории
///
- public IEnumerable Approvers { get; set; }
+ public IEnumerable Approvers { get; set; } = Enumerable.Empty();
///
/// Разрешение для текущего пользователя согласовывать документ
@@ -47,6 +49,6 @@ namespace AsbCloudApp.Data
///
/// Ссылка на документ.
///
- public FileInfoDto File { get; set; }
+ public FileInfoDto? File { get; set; }
}
}
diff --git a/AsbCloudApp/Data/DrillingProgramStateDto.cs b/AsbCloudApp/Data/DrillingProgramStateDto.cs
index 9a4efb2d..9752786d 100644
--- a/AsbCloudApp/Data/DrillingProgramStateDto.cs
+++ b/AsbCloudApp/Data/DrillingProgramStateDto.cs
@@ -1,7 +1,9 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// DTO состояния формирования программы бурения
///
@@ -18,12 +20,12 @@ namespace AsbCloudApp.Data
///
/// Ошибка при формировании
///
- public DrillingProgramCreateError Error { get; set; }
+ public DrillingProgramCreateError? Error { get; set; }
///
/// Файл сформированной программы бурения
///
- public FileInfoDto Program { get; set; }
+ public FileInfoDto? Program { get; set; }
///
/// Разрешение редактировать части программы бурения
@@ -33,7 +35,7 @@ namespace AsbCloudApp.Data
///
/// Список частей программы бурения
///
- public IEnumerable Parts { get; set; }
+ public IEnumerable Parts { get; set; } = Enumerable.Empty();
}
///
@@ -44,11 +46,11 @@ namespace AsbCloudApp.Data
///
/// Текст ошибки для отображения пользователю
///
- public string Message { get; set; }
+ public string Message { get; set; } = string.Empty;
///
/// Текст ошибки для разработчика
///
- public string Exception { get; set; }
+ public string Exception { get; set; } = string.Empty;
}
}
diff --git a/AsbCloudApp/Data/FileInfoDto.cs b/AsbCloudApp/Data/FileInfoDto.cs
index badcd5a4..1dde4735 100644
--- a/AsbCloudApp/Data/FileInfoDto.cs
+++ b/AsbCloudApp/Data/FileInfoDto.cs
@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// DTO информации о файле. Используется для загрузки файла.
///
@@ -27,7 +29,7 @@ namespace AsbCloudApp.Data
///
/// имя файла
///
- public string Name { get; set; }
+ public string Name { get; set; } = null!;
///
/// дата загрузки
@@ -47,11 +49,11 @@ namespace AsbCloudApp.Data
///
/// DTO автора
///
- public UserDto Author { get; set; }
+ public UserDto? Author { get; set; }
///
/// список отметок файла
///
- public IEnumerable FileMarks { get; set; }
+ public IEnumerable FileMarks { get; set; } = Enumerable.Empty();
}
}
diff --git a/AsbCloudApp/Data/FileMarkDto.cs b/AsbCloudApp/Data/FileMarkDto.cs
index 5e1504f2..a92ccfc9 100644
--- a/AsbCloudApp/Data/FileMarkDto.cs
+++ b/AsbCloudApp/Data/FileMarkDto.cs
@@ -2,6 +2,7 @@ using System;
namespace AsbCloudApp.Data
{
+#nullable enable
///
///
///
@@ -30,17 +31,17 @@ namespace AsbCloudApp.Data
///
///
///
- public string Comment { get; set; }
+ public string? Comment { get; set; }
///
///
///
public bool IsDeleted { get; set; }
-
+
///
/// .
/// .
///
- public UserDto User { get; set; }
+ public UserDto? User { get; set; }
}
}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/IId.cs b/AsbCloudApp/Data/IId.cs
index e5ad455e..1e60b9b9 100644
--- a/AsbCloudApp/Data/IId.cs
+++ b/AsbCloudApp/Data/IId.cs
@@ -1,5 +1,6 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Интерфейс данных с Id
///
diff --git a/AsbCloudApp/Data/IMapPoint.cs b/AsbCloudApp/Data/IMapPoint.cs
index f71bd7fa..c5a18cef 100644
--- a/AsbCloudApp/Data/IMapPoint.cs
+++ b/AsbCloudApp/Data/IMapPoint.cs
@@ -1,5 +1,6 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// точка на карте
///
diff --git a/AsbCloudApp/Data/IWellRelated.cs b/AsbCloudApp/Data/IWellRelated.cs
index f79a03a9..7771766b 100644
--- a/AsbCloudApp/Data/IWellRelated.cs
+++ b/AsbCloudApp/Data/IWellRelated.cs
@@ -1,5 +1,6 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Well related DTO
///
diff --git a/AsbCloudApp/Data/MapPointBaseDto.cs b/AsbCloudApp/Data/MapPointBaseDto.cs
new file mode 100644
index 00000000..f23f0299
--- /dev/null
+++ b/AsbCloudApp/Data/MapPointBaseDto.cs
@@ -0,0 +1,25 @@
+namespace AsbCloudApp.Data
+{
+ ///
+ /// Точка на карте с названием
+ ///
+ public class MapPointBaseDto : IMapPoint, IId
+ {
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// Название
+ ///
+ public string Caption { get; set; }
+
+ ///
+ public double? Latitude { get; set; }
+
+ ///
+ public double? Longitude { get; set; }
+
+ ///
+ public SimpleTimezoneDto Timezone { get; set; }
+ }
+}
diff --git a/AsbCloudApp/Data/MeasureDto.cs b/AsbCloudApp/Data/MeasureDto.cs
index 24418630..9f3bb2e0 100644
--- a/AsbCloudApp/Data/MeasureDto.cs
+++ b/AsbCloudApp/Data/MeasureDto.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// инфо о результатах замера
///
@@ -22,7 +23,7 @@ namespace AsbCloudApp.Data
///
/// название категории замера
///
- public string CategoryName { get; set; }
+ public string CategoryName { get; set; } = string.Empty;
///
/// отметка времени замера
@@ -32,6 +33,6 @@ namespace AsbCloudApp.Data
///
/// данные замера
///
- public Dictionary Data { get; set; }
+ public Dictionary Data { get; set; } = new();
}
}
diff --git a/AsbCloudApp/Data/PermissionDto.cs b/AsbCloudApp/Data/PermissionDto.cs
index ee4235ae..b4a07de3 100644
--- a/AsbCloudApp/Data/PermissionDto.cs
+++ b/AsbCloudApp/Data/PermissionDto.cs
@@ -1,5 +1,6 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Разрешение для группы пользователей сделать что-либо через web-api.
/// применяется как возможность доступа к Endpoint.
@@ -12,11 +13,11 @@
///
/// Название
///
- public string Name { get; set; }
+ public string Name { get; set; } = string.Empty;
///
/// Описание
///
- public string Description { get; set; }
+ public string? Description { get; set; }
}
}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/SimpleTimezoneDto.cs b/AsbCloudApp/Data/SimpleTimezoneDto.cs
index c2db8338..100ede09 100644
--- a/AsbCloudApp/Data/SimpleTimezoneDto.cs
+++ b/AsbCloudApp/Data/SimpleTimezoneDto.cs
@@ -1,5 +1,6 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
///
///
@@ -13,7 +14,7 @@ namespace AsbCloudApp.Data
///
///
///
- public string TimezoneId { get; set; }
+ public string? TimezoneId { get; set; }
///
///
@@ -21,7 +22,7 @@ namespace AsbCloudApp.Data
public bool IsOverride { get; set; }
///
- public override bool Equals(object obj)
+ public override bool Equals(object? obj)
{
if (obj is SimpleTimezoneDto tTimeZone
&& tTimeZone.Hours == Hours
@@ -34,7 +35,7 @@ namespace AsbCloudApp.Data
///
public override int GetHashCode()
=> Hours.GetHashCode()
- | TimezoneId.GetHashCode()
+ | TimezoneId?.GetHashCode()??-1
| IsOverride.GetHashCode();
///
diff --git a/AsbCloudApp/Data/UserDto.cs b/AsbCloudApp/Data/UserDto.cs
index ed065f60..455e6110 100644
--- a/AsbCloudApp/Data/UserDto.cs
+++ b/AsbCloudApp/Data/UserDto.cs
@@ -1,5 +1,8 @@
-namespace AsbCloudApp.Data
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data
{
+#nullable enable
///
/// DTO пользователя платформы
///
@@ -11,43 +14,47 @@
///
/// логин
///
- public string Login { get; set; }
-
+ [Required]
+ [StringLength(255, MinimumLength = 2)]
+ public string Login { get; set; } = null!;
///
/// Имя
///
- public string Name { get; set; }
+ public string? Name { get; set; }
///
/// Фамилия
///
- public string Surname { get; set; }
+ public string? Surname { get; set; }
///
/// Отчество
///
- public string Patronymic { get; set; }
+ public string? Patronymic { get; set; }
///
/// Email
///
- public string Email { get; set; }
+ [Required]
+ [StringLength(255, MinimumLength = 6)]
+ public string Email { get; set; } = null!;
///
/// Phone
///
- public string Phone { get; set; }
+ public string? Phone { get; set; }
///
/// Должность
///
- public string Position { get; set; }
+ public string? Position { get; set; }
///
/// Id компании
///
- public int? IdCompany { get; set; }
+ [Required]
+ public int IdCompany { get; set; }
///
/// Id состояния пользователя
@@ -57,7 +64,7 @@
///
/// DTO компании
///
- public CompanyDto Company { get; set; }
+ public CompanyDto? Company { get; set; }
///
/// Получение отображаемого имени
diff --git a/AsbCloudApp/Data/UserExtendedDto.cs b/AsbCloudApp/Data/UserExtendedDto.cs
index 5a8adea5..80361a45 100644
--- a/AsbCloudApp/Data/UserExtendedDto.cs
+++ b/AsbCloudApp/Data/UserExtendedDto.cs
@@ -1,13 +1,15 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
public class UserExtendedDto : UserDto
{
///
/// Роли пользователя
///
- public IEnumerable RoleNames { get; set; }
+ public IEnumerable RoleNames { get; set; } = Enumerable.Empty();
}
}
diff --git a/AsbCloudApp/Data/UserRegistrationDto.cs b/AsbCloudApp/Data/UserRegistrationDto.cs
index a1d9033f..cf68b147 100644
--- a/AsbCloudApp/Data/UserRegistrationDto.cs
+++ b/AsbCloudApp/Data/UserRegistrationDto.cs
@@ -1,11 +1,12 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
public class UserRegistrationDto : UserDto
{
///
/// пароль, используется только при регистрации.
///
- public string Password { get; set; }
+ public string Password { get; set; } = null!;
}
}
diff --git a/AsbCloudApp/Data/UserRoleDto.cs b/AsbCloudApp/Data/UserRoleDto.cs
index 8d761a85..3d0816bf 100644
--- a/AsbCloudApp/Data/UserRoleDto.cs
+++ b/AsbCloudApp/Data/UserRoleDto.cs
@@ -1,8 +1,10 @@
using System.Collections.Generic;
-using System.Text.Json.Serialization;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Роль пользователя платформы
///
@@ -14,7 +16,8 @@ namespace AsbCloudApp.Data
///
/// название
///
- public string Caption { get; set; }
+ [Required]
+ public string Caption { get; set; } = null!;
///
/// id типа роли
@@ -24,18 +27,11 @@ namespace AsbCloudApp.Data
///
/// список разрешений
///
- public IEnumerable Permissions { get; set; }
+ public IEnumerable Permissions { get; set; } = Enumerable.Empty();
///
/// Включенные роли
///
- public virtual IEnumerable Roles { get; set; }
-
- ///
- /// Пользователи в роли
- ///
- [JsonIgnore]
- public virtual ICollection Users { get; set; }
-
+ public virtual IEnumerable Roles { get; set; } = Enumerable.Empty();
}
}
diff --git a/AsbCloudApp/Data/UserTokenDto.cs b/AsbCloudApp/Data/UserTokenDto.cs
index a561a77a..d63436a1 100644
--- a/AsbCloudApp/Data/UserTokenDto.cs
+++ b/AsbCloudApp/Data/UserTokenDto.cs
@@ -1,18 +1,20 @@
using System.Collections.Generic;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
public class UserTokenDto : UserExtendedDto
{
///
/// все разрешения пользователя
///
- public IEnumerable Permissions { get; set; }
+ public IEnumerable Permissions { get; set; } = Enumerable.Empty();
///
/// bearer token (для работы с web-api)
///
- public string Token { get; set; }
+ public string Token { get; set; } = null!;
}
}
diff --git a/AsbCloudApp/Data/WellDto.cs b/AsbCloudApp/Data/WellDto.cs
index e7dd9d65..95fb2e82 100644
--- a/AsbCloudApp/Data/WellDto.cs
+++ b/AsbCloudApp/Data/WellDto.cs
@@ -1,8 +1,11 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// Скважина
///
@@ -15,22 +18,23 @@ namespace AsbCloudApp.Data
public double? Longitude { get; set; }
///
- public SimpleTimezoneDto Timezone { get; set; }
+ [Required]
+ public SimpleTimezoneDto Timezone { get; set; } = null!;
///
/// Название типа скважины
///
- public string WellType { get; set; }
+ public string WellType { get; set; } = null!;
///
/// ID типа скважины
///
- public int? IdWellType { get; set; }
+ public int IdWellType { get; set; }
///
/// ID куста
///
- public int? IdCluster { get; set; }
+ public int IdCluster { get; set; }
///
/// 0 - неизвестно,
@@ -57,11 +61,11 @@ namespace AsbCloudApp.Data
///
/// Объект телеметрии (инфо от панели оператора)
///
- public TelemetryBaseDto Telemetry { get; set; }
+ public TelemetryBaseDto? Telemetry { get; set; }
///
/// Компании участвующие в работах на скважине
///
- public IEnumerable Companies { get; set; }
+ public IEnumerable Companies { get; set; } = Enumerable.Empty();
}
}
diff --git a/AsbCloudApp/Data/WellInfoDto.cs b/AsbCloudApp/Data/WellInfoDto.cs
index 16b0b25c..ff245604 100644
--- a/AsbCloudApp/Data/WellInfoDto.cs
+++ b/AsbCloudApp/Data/WellInfoDto.cs
@@ -1,5 +1,8 @@
-namespace AsbCloudApp.Data
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data
{
+#nullable enable
///
/// базовая информация о скважине
///
@@ -11,16 +14,17 @@
///
/// Название
///
- public string Caption { get; set; }
+ [Required]
+ public string Caption { get; set; } = null!;
///
/// Название куста
///
- public string Cluster { get; set; }
+ public string Cluster { get; set; } = null!;
///
/// Название месторождения
///
- public string Deposit { get; set; }
+ public string Deposit { get; set; } = null!;
}
}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/WellMapInfoDto.cs b/AsbCloudApp/Data/WellMapInfoDto.cs
new file mode 100644
index 00000000..392d1877
--- /dev/null
+++ b/AsbCloudApp/Data/WellMapInfoDto.cs
@@ -0,0 +1,54 @@
+using System;
+
+namespace AsbCloudApp.Data
+{
+#nullable enable
+ ///
+ /// Инфо о скважине для отображения на карте
+ ///
+ public class WellMapInfoDto: MapPointBaseDto
+ {
+ ///
+ /// 0 - неизвестно,
+ /// 1 - в работе,
+ /// 2 - завершена
+ ///
+ public int IdState { get; set; }
+
+ ///
+ /// Дата/время кода приходили данные последний раз
+ ///
+ public DateTime LastTelemetryDate { get; set; }
+
+ ///
+ /// Плановая и текущая глубина
+ ///
+ public PlanFactBase WellDepth { get; set; } = null!;
+
+ ///
+ /// Отставание от ГГД, %
+ ///
+ public double TvdLagPercent { get; set; }
+
+ ///
+ /// Механическая скорость проходки, последней операции бурения
+ ///
+ public PlanFactBase ROP { get; set; } = null!;
+
+ ///
+ /// Рейсовая скорость проходки, последнего рейса
+ ///
+ public PlanFactBase RaceSpeed { get; set; } = null!;
+
+ ///
+ /// Процент использования АКБ
+ ///
+ public double SaubUsage { get; set; }
+
+ ///
+ /// Процент использования Спин мастера
+ ///
+ public double SpinUsage { get; set; }
+ }
+#nullable disable
+}
diff --git a/AsbCloudApp/Data/WellOperationCategoryDto.cs b/AsbCloudApp/Data/WellOperationCategoryDto.cs
index 220b3ee4..fe8212bc 100644
--- a/AsbCloudApp/Data/WellOperationCategoryDto.cs
+++ b/AsbCloudApp/Data/WellOperationCategoryDto.cs
@@ -2,6 +2,7 @@
namespace AsbCloudApp.Data
{
+#nullable enable
///
/// DTO категория операции
///
@@ -13,7 +14,9 @@ namespace AsbCloudApp.Data
///
/// название
///
- public string Name { get; set; }
+ [Required]
+ [StringLength(512)]
+ public string Name { get; set; } = null!;
///
/// Идентификатор родительской категории
@@ -24,12 +27,12 @@ namespace AsbCloudApp.Data
/// Название ключевого показателя операции
///
[StringLength(32)]
- public string KeyValueName { get; set; }
+ public string? KeyValueName { get; set; }
///
/// Единицы измерения ключевого показателя операции
///
[StringLength(16)]
- public string KeyValueUnits { get; set; }
+ public string? KeyValueUnits { get; set; }
}
}
diff --git a/AsbCloudApp/Data/WellOperationDto.cs b/AsbCloudApp/Data/WellOperationDto.cs
index f5caebef..4bed0b54 100644
--- a/AsbCloudApp/Data/WellOperationDto.cs
+++ b/AsbCloudApp/Data/WellOperationDto.cs
@@ -1,9 +1,9 @@
using System;
+using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data
{
- //todo: добавить валидацию
-
+#nullable enable
///
/// Операции на скважине (заведенные пользователем)
///
@@ -13,46 +13,58 @@ namespace AsbCloudApp.Data
public int Id { get; set; }
///
+ [Required]
public int IdWell { get; set; }
///
/// id секции скважины
///
+ [Required]
public int IdWellSectionType { get; set; }
///
/// название секции скважины
///
- public string WellSectionTypeName { get; set; }
+ public string WellSectionTypeName { get; set; } = null!;
///
/// id категории операции
///
+ [Required]
public int IdCategory { get; set; }
+ ///
+ /// id плановой операции для сопоставления
+ ///
+ public int? IdPlan { get; set; }
+
///
/// название категории операции
///
- public string CategoryName { get; set; }
+ public string CategoryName { get; set; } = null!;
///
/// дополнительная информация по операции
///
- public string CategoryInfo { get; set; }
+ [StringLength(8192)]
+ public string? CategoryInfo { get; set; }
///
/// 0 = план или 1 = факт или прогноз = 2
///
+ [Required]
public int IdType { get; set; }
///
/// Глубина на начало операции, м
///
+ [Range(0, 50_000)]
public double DepthStart { get; set; }
///
/// Глубина после завершения операции, м
///
+ [Range(0, 50_000)]
public double DepthEnd { get; set; }
///
@@ -73,11 +85,14 @@ namespace AsbCloudApp.Data
///
/// Продолжительность, часы
///
+ [Range(0, 50)]
public double DurationHours { get; set; }
///
/// Полезный комментарий
///
- public string Comment { get; set; }
+ [StringLength(8192)]
+ public string? Comment { get; set; }
}
+#nullable disable
}
diff --git a/AsbCloudApp/Repositories/IWellOperationRepository.cs b/AsbCloudApp/Repositories/IWellOperationRepository.cs
index 4075445f..d7a99b54 100644
--- a/AsbCloudApp/Repositories/IWellOperationRepository.cs
+++ b/AsbCloudApp/Repositories/IWellOperationRepository.cs
@@ -17,7 +17,7 @@ namespace AsbCloudApp.Repositories
/// список названий операций
///
///
- IEnumerable GetCategories();
+ IEnumerable GetCategories(bool includeParents);
///
/// Список секций
@@ -25,6 +25,14 @@ namespace AsbCloudApp.Repositories
///
IDictionary GetSectionTypes();
+ ///
+ /// список плановых операций для сопоставления
+ ///
+ ///
+ ///
+ ///
+ Task> GetOperationsPlanAsync(int idWell, CancellationToken token);
+
///
/// дата/время первой операции по скважине
///
diff --git a/AsbCloudApp/Requests/WellRequest.cs b/AsbCloudApp/Requests/WellRequest.cs
new file mode 100644
index 00000000..0d7d6e85
--- /dev/null
+++ b/AsbCloudApp/Requests/WellRequest.cs
@@ -0,0 +1,27 @@
+using System.Collections.Generic;
+
+namespace AsbCloudApp.Requests
+{
+#nullable enable
+ ///
+ /// Запрос на получение скважин
+ ///
+ public class WellRequest
+ {
+ ///
+ /// id компании
+ ///
+ public int? IdCompany { get; set; }
+
+ ///
+ /// id состояния
+ ///
+ public int? IdState { get; set; }
+
+ ///
+ /// Идентификаторы скважин
+ ///
+ public IEnumerable? Ids { get; set; }
+ }
+#nullable disable
+}
diff --git a/AsbCloudApp/Services/IRepositoryWellRelated.cs b/AsbCloudApp/Services/IRepositoryWellRelated.cs
index f608fd04..112cff89 100644
--- a/AsbCloudApp/Services/IRepositoryWellRelated.cs
+++ b/AsbCloudApp/Services/IRepositoryWellRelated.cs
@@ -20,7 +20,7 @@ namespace AsbCloudApp.Services
/// id скважины
///
/// emptyList if nothing found
- Task?> GetByIdWellAsync(int idWell, CancellationToken token);
+ Task> GetByIdWellAsync(int idWell, CancellationToken token);
///
/// Получение всех записей по нескольким скважинам
@@ -28,7 +28,7 @@ namespace AsbCloudApp.Services
/// id скважин
///
/// emptyList if nothing found
- Task?> GetByIdWellAsync(IEnumerable idsWells, CancellationToken token);
+ Task> GetByIdWellAsync(IEnumerable idsWells, CancellationToken token);
}
#nullable disable
}
\ No newline at end of file
diff --git a/AsbCloudApp/Services/IWellService.cs b/AsbCloudApp/Services/IWellService.cs
index 7eef310e..23873015 100644
--- a/AsbCloudApp/Services/IWellService.cs
+++ b/AsbCloudApp/Services/IWellService.cs
@@ -1,4 +1,5 @@
using AsbCloudApp.Data;
+using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
@@ -6,6 +7,7 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
+#nullable enable
///
/// сервис скважин
///
@@ -19,10 +21,10 @@ namespace AsbCloudApp.Services
///
/// Список скважин доступных компании
///
- ///
+ ///
///
///
- Task> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
+ Task> GetAsync(WellRequest request, CancellationToken token);
///
/// проверяет доступ к скважине для компании
@@ -33,14 +35,6 @@ namespace AsbCloudApp.Services
///
Task IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
- ///
- /// проверяет доступ к скважине для компании
- ///
- ///
- ///
- ///
- bool IsCompanyInvolvedInWell(int idCompany, int idWell);
-
///
/// получить название скважины по id
///
@@ -101,5 +95,14 @@ namespace AsbCloudApp.Services
///
///
Task EnshureTimezonesIsSetAsync(CancellationToken token);
+
+ ///
+ /// ВРЕМЕННЫЙ метод
+ ///
+ ///
+ ///
+ ///
+ Task> GetWellTreeAsync(int idCompany, CancellationToken token);
}
+#nullable disable
}
diff --git a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
index 91b78023..8df7ee07 100644
--- a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
+++ b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
@@ -47,6 +47,7 @@ namespace AsbCloudApp.Services.Subsystems
///
///
Task GetDateRangeOperationTimeAsync(SubsystemOperationTimeRequest request, CancellationToken token);
+
///
/// Получение статистики по наработке подсистем по активным скважинам
///
@@ -56,6 +57,14 @@ namespace AsbCloudApp.Services.Subsystems
///
///
Task> GetStatByActiveWells(int idCompany, DateTime? gtDate, DateTime? ltDate, CancellationToken token);
+
+ ///
+ /// Получение статистики по наработке подсистем по активным скважинам
+ ///
+ ///
+ ///
+ ///
+ Task> GetStatByActiveWells(IEnumerable wellIds, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudDb/Migrations/20210907085527_Init.Designer.cs b/AsbCloudDb/Migrations/20210907085527_Init.Designer.cs
deleted file mode 100644
index 295737f7..00000000
--- a/AsbCloudDb/Migrations/20210907085527_Init.Designer.cs
+++ /dev/null
@@ -1,2010 +0,0 @@
-//
-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;
-
-namespace AsbCloudDb.Migrations
-{
- [DbContext(typeof(AsbCloudDbContext))]
- [Migration("20210907085527_Init")]
- partial class Init
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasPostgresExtension("adminpack")
- .UseIdentityByDefaultColumns()
- .HasAnnotation("Relational:Collation", "Russian_Russia.1251")
- .HasAnnotation("Relational:MaxIdentifierLength", 63)
- .HasAnnotation("ProductVersion", "5.0.2");
-
- modelBuilder.Entity("AsbCloudDb.Model.Cluster", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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.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")
- .UseIdentityByDefaultColumn();
-
- 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")
- .UseIdentityByDefaultColumn();
-
- 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.DataSaubBase", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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("BitDepth")
- .HasColumnType("double precision")
- .HasColumnName("bit_depth")
- .HasComment("Положение инструмента");
-
- b.Property("BlockPosition")
- .HasColumnType("double precision")
- .HasColumnName("block_position")
- .HasComment("Высота талевого блока");
-
- b.Property("BlockPositionMax")
- .HasColumnType("double precision")
- .HasColumnName("block_position_max")
- .HasComment("Талевый блок. Макс положение");
-
- b.Property("BlockPositionMin")
- .HasColumnType("double precision")
- .HasColumnName("block_position_min")
- .HasComment("Талевый блок. Мин положение");
-
- b.Property("BlockSpeed")
- .HasColumnType("double precision")
- .HasColumnName("block_speed")
- .HasComment("Скорость талевого блока");
-
- b.Property("BlockSpeedSp")
- .HasColumnType("double precision")
- .HasColumnName("block_speed_sp")
- .HasComment("Скорости талевого блока. Задание");
-
- b.Property("BlockSpeedSpDevelop")
- .HasColumnType("double precision")
- .HasColumnName("block_speed_sp_develop")
- .HasComment("Талевый блок. Задание скорости для проработки");
-
- b.Property("BlockSpeedSpRotor")
- .HasColumnType("double precision")
- .HasColumnName("block_speed_sp_rotor")
- .HasComment("Талевый блок. Задание скорости для роторного бурения");
-
- b.Property("BlockSpeedSpSlide")
- .HasColumnType("double precision")
- .HasColumnName("block_speed_sp_slide")
- .HasComment("Талевый блок. Задание скорости для режима слайда");
-
- b.Property("Date")
- .HasColumnType("timestamp with time zone")
- .HasColumnName("date")
- .HasComment("'2021-10-19 18:23:54+05'");
-
- b.Property("Flow")
- .HasColumnType("double precision")
- .HasColumnName("flow")
- .HasComment("Расход");
-
- b.Property("FlowDeltaLimitMax")
- .HasColumnType("double precision")
- .HasColumnName("flow_delta_limit_max")
- .HasComment("Расход. Аварийный макс.");
-
- b.Property("FlowIdle")
- .HasColumnType("double precision")
- .HasColumnName("flow_idle")
- .HasComment("Расход. Холостой ход");
-
- b.Property("HookWeight")
- .HasColumnType("double precision")
- .HasColumnName("hook_weight")
- .HasComment("Вес на крюке");
-
- b.Property("HookWeightIdle")
- .HasColumnType("double precision")
- .HasColumnName("hook_weight_idle")
- .HasComment("Вес на крюке. Холостой ход");
-
- b.Property("HookWeightLimitMax")
- .HasColumnType("double precision")
- .HasColumnName("hook_weight_limit_max")
- .HasComment("Вес на крюке. Затяжка");
-
- b.Property("HookWeightLimitMin")
- .HasColumnType("double precision")
- .HasColumnName("hook_weight_limit_min")
- .HasComment("Вес на крюке. Посадка");
-
- b.Property("IdFeedRegulator")
- .HasColumnType("double precision")
- .HasColumnName("id_feed_regulator")
- .HasComment("Текущий критерий бурения");
-
- b.Property("IdTelemetry")
- .HasColumnType("integer")
- .HasColumnName("id_telemetry");
-
- b.Property("IdUser")
- .HasColumnType("integer")
- .HasColumnName("id_user")
- .HasComment("Пользователь САУБ");
-
- b.Property("Mode")
- .HasColumnType("integer")
- .HasColumnName("mode")
- .HasComment("Режим САУБ");
-
- b.Property("MseState")
- .HasColumnType("double precision")
- .HasColumnName("mse_state")
- .HasComment("Текущее состояние работы MSE");
-
- b.Property("Pressure")
- .HasColumnType("double precision")
- .HasColumnName("pressure")
- .HasComment("Давление");
-
- b.Property("PressureDeltaLimitMax")
- .HasColumnType("double precision")
- .HasColumnName("pressure_delta_limit_max")
- .HasComment("Давление дифф. Аварийное макс.");
-
- b.Property("PressureIdle")
- .HasColumnType("double precision")
- .HasColumnName("pressure_idle")
- .HasComment("Давление. Холостой ход");
-
- b.Property("PressureSp")
- .HasColumnType("double precision")
- .HasColumnName("pressure_sp")
- .HasComment("Давление. Задание");
-
- b.Property("PressureSpDevelop")
- .HasColumnType("double precision")
- .HasColumnName("pressure_sp_develop")
- .HasComment("Давление. Задание для проработки");
-
- b.Property("PressureSpRotor")
- .HasColumnType("double precision")
- .HasColumnName("pressure_sp_rotor")
- .HasComment("Давление. Задание для роторного бурения");
-
- b.Property("PressureSpSlide")
- .HasColumnType("double precision")
- .HasColumnName("pressure_sp_slide")
- .HasComment("Давление. Задание для режима слайда");
-
- b.Property("RotorSpeed")
- .HasColumnType("double precision")
- .HasColumnName("rotor_speed")
- .HasComment("Обороты ротора");
-
- b.Property("RotorTorque")
- .HasColumnType("double precision")
- .HasColumnName("rotor_torque")
- .HasComment("Момент на роторе");
-
- b.Property("RotorTorqueIdle")
- .HasColumnType("double precision")
- .HasColumnName("rotor_torque_idle")
- .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("WellDepth")
- .HasColumnType("double precision")
- .HasColumnName("well_depth")
- .HasComment("Глубина забоя");
-
- b.HasKey("Id");
-
- b.HasIndex("IdTelemetry");
-
- b.ToTable("t_data_saub_base");
-
- b
- .HasComment("набор основных данных по SAUB");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Deposit", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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.HasKey("Id");
-
- b.ToTable("t_deposit");
-
- b
- .HasComment("Месторождение");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.FileCategory", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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 = "fluidPlanLastData"
- },
- new
- {
- Id = 9,
- Name = "Последний замер бурового раствора ФАКТ",
- ShortName = "fluidFactLastData"
- },
- new
- {
- Id = 10,
- Name = "Последние данные Шламограммы",
- ShortName = "mudLastData"
- },
- new
- {
- Id = 11,
- Name = "Последние данные ННБ",
- ShortName = "nnbLastData"
- },
- new
- {
- Id = 12,
- Name = "Рапорт",
- ShortName = "report"
- },
- new
- {
- Id = 13,
- Name = "Программа бурения, части",
- ShortName = "ПБч"
- },
- new
- {
- Id = 14,
- Name = "Программа бурения",
- ShortName = "ПБ"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.FileInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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("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.Measure", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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 without 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")
- .UseIdentityByDefaultColumn();
-
- 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.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.ReportProperty", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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.Telemetry", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Info")
- .HasColumnType("jsonb")
- .HasColumnName("info")
- .HasComment("Информация с панели о скважине");
-
- b.Property("RemoteUid")
- .HasColumnType("text")
- .HasColumnName("remote_uid")
- .HasComment("Идентификатор передающего устройства. Может повторяться в списке, так как комплекты оборудования переезжают от скв. к скв.");
-
- b.HasKey("Id");
-
- b.HasIndex(new[] { "RemoteUid" }, "t_telemetry_remote_uid_index");
-
- b.ToTable("t_telemetry");
-
- b
- .HasComment("таблица привязки телеметрии от комплектов к конкретной скважине.");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.TelemetryAnalysis", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("DurationSec")
- .HasColumnType("integer")
- .HasColumnName("duration_sec")
- .HasComment("Кол-во секунд после предыдущей операции");
-
- b.Property("IdOperation")
- .HasColumnType("integer")
- .HasColumnName("id_operation");
-
- b.Property("IdTelemetry")
- .HasColumnType("integer")
- .HasColumnName("id_telemetry");
-
- b.Property("IsBitPositionDecreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_bit_position_decreasing")
- .HasComment("Долото поднимается");
-
- b.Property("IsBitPositionIncreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_bit_position_increasing")
- .HasComment("Долото спускается");
-
- b.Property("IsBitPositionLt20")
- .HasColumnType("boolean")
- .HasColumnName("is_bit_posision_lt_20")
- .HasComment("Положение долота меньше 20м");
-
- b.Property("IsBlockPositionDecreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_block_posision_decresing")
- .HasComment("Талевый блок поднимается");
-
- b.Property("IsBlockPositionIncreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_block_posision_incresing")
- .HasComment("Талевый блок спускается");
-
- b.Property("IsHookWeightLt3")
- .HasColumnType("boolean")
- .HasColumnName("is_hook_weight_lt_3")
- .HasComment("Вес на крюке менее 3т");
-
- b.Property("IsHookWeightNotChanges")
- .HasColumnType("boolean")
- .HasColumnName("is_hook_weight_not_changes")
- .HasComment("Вес на крюке не меняется");
-
- b.Property("IsPressureGt20")
- .HasColumnType("boolean")
- .HasColumnName("is_pressure_gt_20")
- .HasComment("Давоение более 20");
-
- b.Property("IsPressureLt20")
- .HasColumnType("boolean")
- .HasColumnName("is_pressure_lt_20")
- .HasComment("Давление менее 20");
-
- b.Property("IsRotorSpeedGt3")
- .HasColumnType("boolean")
- .HasColumnName("is_rotor_speed_gt_3")
- .HasComment("Обороты ротора выше 3");
-
- b.Property("IsRotorSpeedLt3")
- .HasColumnType("boolean")
- .HasColumnName("is_rotor_speed_lt_3")
- .HasComment("Обороты ротора ниже 3");
-
- b.Property("IsWellDepthDecreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_well_depth_decreasing")
- .HasComment("Глубина забоя не увеличивается");
-
- b.Property("IsWellDepthIncreasing")
- .HasColumnType("boolean")
- .HasColumnName("is_well_depth_increasing")
- .HasComment("Глубина забоя увеличивается");
-
- b.Property("OperationEndDepth")
- .HasColumnType("double precision")
- .HasColumnName("operation_end_depth")
- .HasComment("Глубина, на которой закончилась операция");
-
- b.Property("OperationStartDepth")
- .HasColumnType("double precision")
- .HasColumnName("operation_start_depth")
- .HasComment("Глубина, на которой началась операция");
-
- b.Property("UnixDate")
- .HasColumnType("bigint")
- .HasColumnName("unix_date")
- .HasComment("Unix timestamp для Linq запросов с вычислением дат");
-
- b.HasKey("Id");
-
- b.HasIndex("IdOperation");
-
- b.HasIndex("IdTelemetry");
-
- b.ToTable("t_telemetry_analysis");
-
- b
- .HasComment("События на скважине");
- });
-
- 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")
- .HasColumnType("text")
- .HasColumnName("message_template");
-
- b.HasKey("IdTelemetry", "IdEvent");
-
- b.ToTable("t_telemetry_event");
-
- b
- .HasComment("Справочник событий. События формируют сообщения. Разделено по версиям посылок от телеметрии.");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- 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("Date")
- .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.HasKey("Id");
-
- b.HasIndex("IdTelemetry");
-
- b.ToTable("t_telemetry_message");
-
- b
- .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")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("surname");
-
- b.HasKey("IdTelemetry", "IdUser");
-
- b.ToTable("t_telemetry_user");
-
- b
- .HasComment("Пользователи панели САУБ. Для сообщений.");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("IdCompany")
- .HasColumnType("integer")
- .HasColumnName("id_company");
-
- b.Property("IdRole")
- .HasColumnType("integer")
- .HasColumnName("id_role");
-
- b.Property("Level")
- .HasColumnType("integer")
- .HasColumnName("level");
-
- b.Property("Login")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("login");
-
- b.Property("Name")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("name")
- .HasComment("имя");
-
- b.Property("PasswordHash")
- .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("State")
- .HasColumnType("smallint")
- .HasColumnName("state")
- .HasComment("состояние:\n100 - удален");
-
- b.Property("Surname")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("surname")
- .HasComment("фамилия");
-
- b.HasKey("Id");
-
- b.HasIndex("IdCompany");
-
- b.HasIndex("IdRole");
-
- b.HasIndex("Login")
- .IsUnique();
-
- b.ToTable("t_user");
-
- b
- .HasComment("Пользователи облака");
-
- b.HasData(
- new
- {
- Id = 1,
- IdCompany = 1,
- IdRole = 1,
- Level = 2147483647,
- Login = "dev",
- Name = "Разработчик",
- PasswordHash = "Vlcj|4fa529103dde7ff72cfe76185f344d4aa87931f8e1b2044e8a7739947c3d18923464eaad93843e4f809c5e126d013072"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.UserRole", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Caption")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("caption")
- .HasComment("Название");
-
- b.HasKey("Id");
-
- b.ToTable("t_user_role");
-
- b
- .HasComment("Роли пользователей в системе");
-
- b.HasData(
- new
- {
- Id = 1,
- Caption = "Администратор"
- },
- new
- {
- Id = 2,
- Caption = "Пользователь"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Well", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Caption")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("caption");
-
- b.Property("IdCluster")
- .HasColumnType("integer")
- .HasColumnName("id_cluster");
-
- 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.HasKey("Id");
-
- b.HasIndex("IdCluster");
-
- b.HasIndex("IdTelemetry")
- .IsUnique();
-
- b.HasIndex("IdWellType");
-
- b.ToTable("t_well");
-
- b
- .HasComment("скважины");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("CategoryInfo")
- .HasColumnType("text")
- .HasColumnName("category_info")
- .HasComment("Доп. информация к выбраной категории");
-
- b.Property("Comment")
- .HasColumnType("text")
- .HasColumnName("comment")
- .HasComment("Комментарий");
-
- b.Property("DurationHours")
- .HasColumnType("double precision")
- .HasColumnName("duration_hours")
- .HasComment("Продолжительность в часах");
-
- b.Property("IdCategory")
- .HasColumnType("integer")
- .HasColumnName("id_category")
- .HasComment("Id категории операции");
-
- b.Property("IdType")
- .HasColumnType("integer")
- .HasColumnName("id_type")
- .HasComment("0 = План или 1 = Факт");
-
- b.Property("IdWell")
- .HasColumnType("integer")
- .HasColumnName("id_well")
- .HasComment("Id скважины");
-
- b.Property("IdWellSectionType")
- .HasColumnType("integer")
- .HasColumnName("id_well_section_type")
- .HasComment("Id тип секции скважины");
-
- b.Property("StartDate")
- .HasColumnType("timestamp without time zone")
- .HasColumnName("date")
- .HasComment("Дата начала операции");
-
- b.Property("WellDepth")
- .HasColumnType("double precision")
- .HasColumnName("depth")
- .HasComment("Глубина, на которой производилась операция");
-
- b.HasKey("Id");
-
- b.HasIndex("IdCategory");
-
- b.HasIndex("IdWell");
-
- b.HasIndex("IdWellSectionType");
-
- b.HasIndex("StartDate");
-
- b.HasIndex("WellDepth");
-
- b.ToTable("t_well_operation");
-
- b
- .HasComment("Данные по операциям на скважине");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Code")
- .HasColumnType("integer")
- .HasColumnName("code")
- .HasComment("Код операции");
-
- b.Property("Name")
- .HasColumnType("text")
- .HasColumnName("name")
- .HasComment("Название категории операции");
-
- b.HasKey("Id");
-
- b.ToTable("t_well_operation_category");
-
- b
- .HasComment("Справочник операций на скважине");
-
- b.HasData(
- new
- {
- Id = 1,
- Code = 0,
- Name = "Невозможно определить операцию"
- },
- new
- {
- Id = 2,
- Code = 0,
- Name = "Роторное бурение"
- },
- new
- {
- Id = 3,
- Code = 0,
- Name = "Слайдирование"
- },
- new
- {
- Id = 4,
- Code = 0,
- Name = "Подъем с проработкой"
- },
- new
- {
- Id = 5,
- Code = 0,
- Name = "Спуск с проработкой"
- },
- new
- {
- Id = 6,
- Code = 0,
- Name = "Подъем с промывкой"
- },
- new
- {
- Id = 7,
- Code = 0,
- Name = "Спуск с промывкой"
- },
- new
- {
- Id = 8,
- Code = 0,
- Name = "Спуск в скважину"
- },
- new
- {
- Id = 9,
- Code = 0,
- Name = "Спуск с вращением"
- },
- new
- {
- Id = 10,
- Code = 0,
- Name = "Подъем из скважины"
- },
- new
- {
- Id = 11,
- Code = 0,
- Name = "Подъем с вращением"
- },
- new
- {
- Id = 12,
- Code = 0,
- Name = "Промывка в покое"
- },
- new
- {
- Id = 13,
- Code = 0,
- Name = "Промывка с вращением"
- },
- new
- {
- Id = 14,
- Code = 0,
- Name = "Удержание в клиньях"
- },
- new
- {
- Id = 15,
- Code = 0,
- Name = "Неподвижное состояние"
- },
- new
- {
- Id = 16,
- Code = 0,
- Name = "Вращение без циркуляции"
- },
- new
- {
- Id = 17,
- Code = 0,
- Name = "На поверхности"
- },
- new
- {
- Id = 1001,
- Code = 0,
- Name = "Бурение в интервале"
- },
- new
- {
- Id = 1002,
- Code = 0,
- Name = "ГИС"
- },
- new
- {
- Id = 1003,
- Code = 0,
- Name = "ГФР"
- },
- new
- {
- Id = 1004,
- Code = 0,
- Name = "Монтаж ПВО"
- },
- new
- {
- Id = 1005,
- Code = 0,
- Name = "Демонтаж ПВО"
- },
- new
- {
- Id = 1006,
- Code = 0,
- Name = "Установка ФА"
- },
- new
- {
- Id = 1007,
- Code = 0,
- Name = "Оборудование устья"
- },
- new
- {
- Id = 1008,
- Code = 0,
- Name = "ОЗЦ"
- },
- new
- {
- Id = 1009,
- Code = 0,
- Name = "Оборудование устья"
- },
- new
- {
- Id = 1010,
- Code = 0,
- Name = "ОЗЦ"
- },
- new
- {
- Id = 1011,
- Code = 0,
- Name = "Начало цикла строительства скважины"
- },
- new
- {
- Id = 1012,
- Code = 0,
- Name = "Окончание цикла строительства скважины"
- },
- new
- {
- Id = 1013,
- Code = 0,
- Name = "Опрессовка ПВО"
- },
- new
- {
- Id = 1014,
- Code = 0,
- Name = "Опресовка Ц.К."
- },
- new
- {
- Id = 1015,
- Code = 0,
- Name = "Опрессовка ВЗД"
- },
- new
- {
- Id = 1016,
- Code = 0,
- Name = "Перевод скв на другой тип промывочной жидкости"
- },
- new
- {
- Id = 1017,
- Code = 0,
- Name = "Перезапись каротажа"
- },
- new
- {
- Id = 1018,
- Code = 0,
- Name = "Перетяжка талевого каната"
- },
- new
- {
- Id = 1019,
- Code = 0,
- Name = "Перетяжка тальканата"
- },
- new
- {
- Id = 1020,
- Code = 0,
- Name = "Подъем инструмента"
- },
- new
- {
- Id = 1021,
- Code = 0,
- Name = "Подъем инструмента с промывкой"
- },
- new
- {
- Id = 1022,
- Code = 0,
- Name = "Обратная проработка"
- },
- new
- {
- Id = 1023,
- Code = 0,
- Name = "Сборка инструмента"
- },
- new
- {
- Id = 1024,
- Code = 0,
- Name = "Подготовительные работы"
- },
- new
- {
- Id = 1025,
- Code = 0,
- Name = "Сборка КНБК"
- },
- new
- {
- Id = 1026,
- Code = 0,
- Name = "Разборка КНБК"
- },
- new
- {
- Id = 1027,
- Code = 0,
- Name = "Промывка"
- },
- new
- {
- Id = 1028,
- Code = 0,
- Name = "Промежуточная промывка"
- },
- new
- {
- Id = 1029,
- Code = 0,
- Name = "Прокачка пачек"
- },
- new
- {
- Id = 1030,
- Code = 0,
- Name = "Разбуривание тех.оснастки"
- },
- new
- {
- Id = 1031,
- Code = 0,
- Name = "Ремонт"
- },
- new
- {
- Id = 1032,
- Code = 0,
- Name = "Спуск инструмента"
- },
- new
- {
- Id = 1033,
- Code = 0,
- Name = "Спуск инструмента с промывкой"
- },
- new
- {
- Id = 1034,
- Code = 0,
- Name = "Прямая проработка"
- },
- new
- {
- Id = 1035,
- Code = 0,
- Name = "Принудительная проработка"
- },
- new
- {
- Id = 1036,
- Code = 0,
- Name = "Спуск обсадной колонны"
- },
- new
- {
- Id = 1037,
- Code = 0,
- Name = "Тех СПО-подъем"
- },
- new
- {
- Id = 1038,
- Code = 0,
- Name = "Тех СПО-спуск"
- },
- new
- {
- Id = 1039,
- Code = 0,
- Name = "Техническое обслуживание"
- },
- new
- {
- Id = 1040,
- Code = 0,
- Name = "Цементаж"
- },
- new
- {
- Id = 1041,
- Code = 0,
- Name = "Шаблонировка ствола"
- },
- new
- {
- Id = 1042,
- Code = 0,
- Name = "Геологическое осложнение"
- },
- new
- {
- Id = 1043,
- Code = 0,
- Name = "НПВ"
- },
- new
- {
- Id = 1044,
- Code = 0,
- Name = "ВМР"
- },
- new
- {
- Id = 1045,
- Code = 0,
- Name = "Прочее"
- },
- new
- {
- Id = 1046,
- Code = 0,
- Name = "Спуск КНБК"
- },
- new
- {
- Id = 1047,
- Code = 0,
- Name = "Подъем КНБК"
- },
- new
- {
- Id = 1048,
- Code = 0,
- Name = "Спуск ОК"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Caption")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("caption")
- .HasComment("Название");
-
- b.HasKey("Id");
-
- b.ToTable("t_well_section_type");
-
- b
- .HasComment("конструкция секции скважины");
-
- b.HasData(
- new
- {
- Id = 1,
- Caption = "Пилотный ствол"
- },
- new
- {
- Id = 2,
- Caption = "Направление"
- },
- new
- {
- Id = 3,
- Caption = "Кондуктор"
- },
- new
- {
- Id = 4,
- Caption = "Эксплуатационная колонна"
- },
- new
- {
- Id = 5,
- Caption = "Транспортный ствол"
- },
- new
- {
- Id = 6,
- Caption = "Хвостовик"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellType", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("integer")
- .HasColumnName("id")
- .UseIdentityByDefaultColumn();
-
- b.Property("Caption")
- .HasMaxLength(255)
- .HasColumnType("character varying(255)")
- .HasColumnName("caption")
- .HasComment("Название");
-
- b.HasKey("Id");
-
- b.ToTable("t_well_type");
-
- b
- .HasComment("конструкция скважины");
-
- b.HasData(
- new
- {
- Id = 1,
- Caption = "Наклонно-направленная"
- },
- new
- {
- Id = 2,
- Caption = "Горизонтальная"
- });
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Cluster", b =>
- {
- b.HasOne("AsbCloudDb.Model.Deposit", "Deposit")
- .WithMany("Clusters")
- .HasForeignKey("IdDeposit")
- .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.DataSaubBase", b =>
- {
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithMany("DataSaubBases")
- .HasForeignKey("IdTelemetry")
- .HasConstraintName("t_data_saub_base_t_telemetry_id_fk")
- .IsRequired();
-
- b.Navigation("Telemetry");
- });
-
- 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.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.RelationCompanyWell", b =>
- {
- b.HasOne("AsbCloudDb.Model.Company", "Company")
- .WithMany("RelationCompaniesWells")
- .HasForeignKey("IdCompany")
- .HasConstraintName("t_relation_company_well_t_company_id_fk")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("AsbCloudDb.Model.Well", "Well")
- .WithMany("RelationCompaniesWells")
- .HasForeignKey("IdWell")
- .HasConstraintName("t_relation_company_well_t_well_id_fk")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Company");
-
- b.Navigation("Well");
- });
-
- 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.TelemetryAnalysis", b =>
- {
- b.HasOne("AsbCloudDb.Model.WellOperationCategory", "Operation")
- .WithMany("Analysis")
- .HasForeignKey("IdOperation")
- .HasConstraintName("t_analysis_t_operation_id_fk")
- .OnDelete(DeleteBehavior.SetNull)
- .IsRequired();
-
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithMany("Analysis")
- .HasForeignKey("IdTelemetry")
- .HasConstraintName("t_analysis_t_telemetry_id_fk")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Operation");
-
- b.Navigation("Telemetry");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.TelemetryEvent", b =>
- {
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithMany("Events")
- .HasForeignKey("IdTelemetry")
- .HasConstraintName("t_event_t_telemetry_id_fk")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Telemetry");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.TelemetryMessage", b =>
- {
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithMany("Messages")
- .HasForeignKey("IdTelemetry")
- .HasConstraintName("t_messages_t_telemetry_id_fk")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Telemetry");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.TelemetryUser", b =>
- {
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithMany("Users")
- .HasForeignKey("IdTelemetry")
- .HasConstraintName("t_telemetry_user_t_telemetry_id_fk")
- .IsRequired();
-
- b.Navigation("Telemetry");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.User", b =>
- {
- b.HasOne("AsbCloudDb.Model.Company", "Company")
- .WithMany("Users")
- .HasForeignKey("IdCompany")
- .HasConstraintName("t_user_t_company_id_fk");
-
- b.HasOne("AsbCloudDb.Model.UserRole", "Role")
- .WithMany("Users")
- .HasForeignKey("IdRole");
-
- b.Navigation("Company");
-
- b.Navigation("Role");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Well", b =>
- {
- b.HasOne("AsbCloudDb.Model.Cluster", "Cluster")
- .WithMany("Wells")
- .HasForeignKey("IdCluster")
- .HasConstraintName("t_well_t_cluster_id_fk");
-
- b.HasOne("AsbCloudDb.Model.Telemetry", "Telemetry")
- .WithOne("Well")
- .HasForeignKey("AsbCloudDb.Model.Well", "IdTelemetry")
- .HasConstraintName("t_well_t_telemetry_id_fk");
-
- b.HasOne("AsbCloudDb.Model.WellType", "WellType")
- .WithMany("Wells")
- .HasForeignKey("IdWellType");
-
- b.Navigation("Cluster");
-
- b.Navigation("Telemetry");
-
- b.Navigation("WellType");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellOperation", b =>
- {
- b.HasOne("AsbCloudDb.Model.WellOperationCategory", "OperationCategory")
- .WithMany()
- .HasForeignKey("IdCategory")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- 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("Well");
-
- b.Navigation("WellSectionType");
- });
-
- 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");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Deposit", b =>
- {
- b.Navigation("Clusters");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.MeasureCategory", b =>
- {
- b.Navigation("Measures");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Telemetry", b =>
- {
- b.Navigation("Analysis");
-
- b.Navigation("DataSaubBases");
-
- b.Navigation("Events");
-
- b.Navigation("Messages");
-
- b.Navigation("Users");
-
- b.Navigation("Well");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.User", b =>
- {
- b.Navigation("Files");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.UserRole", b =>
- {
- b.Navigation("Users");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.Well", b =>
- {
- b.Navigation("RelationCompaniesWells");
-
- b.Navigation("WellOperations");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellOperationCategory", b =>
- {
- b.Navigation("Analysis");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellSectionType", b =>
- {
- b.Navigation("WellOperations");
- });
-
- modelBuilder.Entity("AsbCloudDb.Model.WellType", b =>
- {
- b.Navigation("Wells");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/AsbCloudDb/Migrations/20210907085527_Init.cs b/AsbCloudDb/Migrations/20210907085527_Init.cs
deleted file mode 100644
index a84a4072..00000000
--- a/AsbCloudDb/Migrations/20210907085527_Init.cs
+++ /dev/null
@@ -1,957 +0,0 @@
-using AsbCloudDb.Model;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using System;
-using System.Collections.Generic;
-
-namespace AsbCloudDb.Migrations
-{
-#nullable disable
- public partial class Init : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.AlterDatabase()
- .Annotation("Npgsql:PostgresExtension:adminpack", ",,");
-
- migrationBuilder.CreateTable(
- name: "t_company_type",
- columns: table => new
- {
- id = table.Column(type: "integer", nullable: false)
- .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
- caption = table.Column(type: "character varying(255)", maxLength: 255, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_t_company_type", x => x.id);
- });
-
- migrationBuilder.CreateTable(
- name: "t_deposit",
- columns: table => new
- {
- id = table.Column(type: "integer", nullable: false)
- .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
- caption = table.Column(type: "character varying(255)", maxLength: 255, nullable: true),
- latitude = table.Column(type: "double precision", nullable: true),
- longitude = table.Column(type: "double precision", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_t_deposit", x => x.id);
- },
- comment: "Месторождение");
-
- migrationBuilder.CreateTable(
- name: "t_file_category",
- columns: table => new
- {
- id = table.Column(type: "integer", nullable: false)
- .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
- name = table.Column(type: "text", nullable: true, comment: "Название категории"),
- short_name = table.Column(type: "text", nullable: true, comment: "Короткое название категории")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_t_file_category", x => x.id);
- },
- comment: "Категории файлов");
-
- migrationBuilder.CreateTable(
- name: "t_measure_category",
- columns: table => new
- {
- id = table.Column