diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs
index cc114b48..85a74f1c 100644
--- a/PARR.API/Contracts/V1/ApiRoutes.cs
+++ b/PARR.API/Contracts/V1/ApiRoutes.cs
@@ -97,6 +97,14 @@
public const string GetAll = Base + "/robot-history-levels/";
}
+ public static class RobotTask
+ {
+ public const string GetByRobotAndStatusTask = Base + "/robot-tasks/" + robotCode + "/statuses/" + taskStatusCode;
+
+ public const string robotCode = "{robotCode}";
+ public const string taskStatusCode = "{taskStatusCode}";
+ }
+
//public static class Layer
//{
diff --git a/PARR.API/Contracts/V1/Responses/RobotConfigurationResponse.cs b/PARR.API/Contracts/V1/Responses/RobotConfigurationResponse.cs
new file mode 100644
index 00000000..166d30cc
--- /dev/null
+++ b/PARR.API/Contracts/V1/Responses/RobotConfigurationResponse.cs
@@ -0,0 +1,7 @@
+namespace PARR.API.Contracts.V1.Responses
+{
+ public class RobotConfigurationResponse
+ {
+
+ }
+}
diff --git a/PARR.API/Contracts/V1/Responses/RobotTaskScheduleResponse.cs b/PARR.API/Contracts/V1/Responses/RobotTaskScheduleResponse.cs
new file mode 100644
index 00000000..50619a56
--- /dev/null
+++ b/PARR.API/Contracts/V1/Responses/RobotTaskScheduleResponse.cs
@@ -0,0 +1,7 @@
+namespace PARR.API.Contracts.V1.Responses
+{
+ public class RobotTaskScheduleResponse
+ {
+ //TODO:
+ }
+}
diff --git a/PARR.API/Contracts/V1/Responses/RobotTaskTemplateResponse.cs b/PARR.API/Contracts/V1/Responses/RobotTaskTemplateResponse.cs
new file mode 100644
index 00000000..d85f86c4
--- /dev/null
+++ b/PARR.API/Contracts/V1/Responses/RobotTaskTemplateResponse.cs
@@ -0,0 +1,31 @@
+namespace PARR.API.Contracts.V1.Responses
+{
+ public class RobotTaskTemplateResponse
+ {
+ public bool IsActive { get; set; }
+ public required string ClosingCode { get; set; }
+ public required string FullDescription { get; set; }
+ public required string ShortDescription { get; set; }
+ public required string Solution { get; set; }
+ public required string ResponseArea { get; set; }
+ public required string TemplateDuration { get; set; }
+ public required string Initiator { get; set; }
+ public required string WorkGroup { get; set; }
+ public required string Ek { get; set; }
+ public required string Name { get; set; }
+ public required string Category { get; set; }
+
+
+ public required string ProcessName { get; set; }
+ public required string ProcessEsppId { get; set; }
+
+ public required string SubprocessName { get; set; }
+ public required string SubprocessEsppId { get; set; }
+
+ public required string TnkName { get; set; }
+ public required string TnkEsppId { get; set; }
+
+ public required string WorkName { get; set; }
+ public required string WorkEsppId { get; set; }
+ }
+}
diff --git a/PARR.API/Controllers/V1/RobotTaskController.cs b/PARR.API/Controllers/V1/RobotTaskController.cs
new file mode 100644
index 00000000..e94214c9
--- /dev/null
+++ b/PARR.API/Controllers/V1/RobotTaskController.cs
@@ -0,0 +1,109 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using PARR.API.Contracts.V1;
+using PARR.API.Contracts.V1.Responses;
+using PARR.API.Contracts.V1.Responses.Base;
+using PARR.API.Controllers.V1.Base;
+using PARR.DAL.Contracts;
+using PARR.DAL.Models;
+using PARR.DAL.Services.Interfaces;
+
+namespace PARR.API.Controllers.V1
+{
+ public class RobotTaskController : BaseApiController
+ {
+ private readonly IMapper mapper;
+ private readonly SettingsFromDb settingsFromDb;
+ private readonly IRobotConfigurationService robotConfigurationService;
+
+ public RobotTaskController(
+ IMapper mapper,
+ SettingsFromDb settingsFromDb,
+ IRobotConfigurationService robotConfigurationService
+ )
+ {
+ this.mapper = mapper;
+ this.settingsFromDb = settingsFromDb;
+ this.robotConfigurationService = robotConfigurationService;
+ }
+
+
+ ///
+ /// Получить задание для робота по коду робота и по статусу задания
+ ///
+ ///
+ ///
+ ///
+ [HttpGet(ApiRoutes.RobotTask.GetByRobotAndStatusTask)]
+ public async Task GetByRobotAndStatusTask([FromRoute] RobotsEnum robotCode, [FromRoute] TaskStatusEnum taskStatusCode)
+ {
+ //Ищем все задания с превышенным кол-вом попыток и с просроченным временем и ставим им статус ошибки
+ await robotConfigurationService.FindUnfulfilledTaskAndSetRobotErrorStatusAsync(settingsFromDb.RobotAttemptsNumber, settingsFromDb.RobotWaitTime);
+
+ var query = robotConfigurationService.Get()
+ .Where(t => t.RobotCode == (int)robotCode && t.TaskStatusCode == (int)taskStatusCode)
+ .AsSplitQuery();
+
+ switch (robotCode)
+ {
+ case RobotsEnum.TemplateOrder:
+ query = query.Include(t => t.Template)
+ .ThenInclude(t => t!.Host).ThenInclude(t => t!.ResponseArea)
+ .Include(t => t.Template)
+ .ThenInclude(t => t!.Host)
+ .Include(t => t.Template)
+ .ThenInclude(a => a!.ApplicationsInWork)
+ .ThenInclude(w => w!.Work)
+ .ThenInclude(t => t!.Tnk)
+ .ThenInclude(s => s!.Subprocess)
+ .ThenInclude(p => p!.Process);
+ break;
+ case RobotsEnum.ScheduleOrder:
+ //todo: include
+ break;
+ default:
+ break;
+ }
+
+ RobotConfiguration? task = null;
+
+ //ищем задание в ожидании, если нашли, выбираем ее
+ task = await query.FirstOrDefaultAsync(t => t.RobotStatusCode == (int)RobotStatusEnum.Wait);
+
+ if (task == null)
+ {
+ //ищем задания в работе, которые можно перезапустить
+ //Поиск пои `RobotStatusCode` = 22.
+ //Далее проверяется `LastStatusUpdated`, что время последнего смены статуса не превышает допустимого(берется из настроек, поле `RobotWaitTime`)
+ //и что текущая попытка не больше разрешенной(берется из настроек, поле `RobotAttemptsNumber`) - если это так, берется эта запись.
+
+ var endDate = DateTimeOffset.UtcNow.Add(-settingsFromDb.RobotWaitTime);
+ task = await query.FirstOrDefaultAsync(t =>
+ t.RobotStatusCode == (int)RobotStatusEnum.InProgress
+ && t.AttemptsNumber < settingsFromDb.RobotAttemptsNumber
+ && t.LastStatusUpdated < endDate
+ );
+ }
+
+ if (task == null)
+ return NotFound();
+
+ //TODO: сделать маппинг!!!
+
+ switch (robotCode)
+ {
+ case RobotsEnum.TemplateOrder:
+ //RobotTaskTemplateResponse
+ return Ok(new Response(mapper.Map(task), true));
+ case RobotsEnum.ScheduleOrder:
+ //RobotTaskScheduleResponse
+ return Ok(new Response(mapper.Map(task), true));
+ default:
+ break;
+ }
+
+ return BadRequest();
+ }
+ }
+}
diff --git a/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs b/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs
index 372189c6..b41f1e94 100644
--- a/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs
+++ b/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs
@@ -95,29 +95,31 @@ namespace PARR.API.Controllers.V1
if (request.IdSeries == null)
request.IdSeries = Guid.NewGuid();
- var historyItem = new RobotTemplateHistory
- {
- Id = Guid.NewGuid(),
- HistoryLevel = request.HistoryLevel,
- RobotMessage = request.RobotMessage,
- EsppMessage = request.EsppMessage,
- TemplateId = request.TemplateId,
- TemplateStatusCode = template.StatusCode,
- IdSeries = request.IdSeries.Value
- };
+ //var historyItem = new RobotTemplateHistory
+ //{
+ // Id = Guid.NewGuid(),
+ // HistoryLevel = request.HistoryLevel,
+ // RobotMessage = request.RobotMessage,
+ // EsppMessage = request.EsppMessage,
+ // TemplateId = request.TemplateId,
+ // TemplateStatusCode = template.StatusCode,
+ // IdSeries = request.IdSeries.Value
+ //};
- if (!await historyService.CreateAsync(historyItem) || !await historyService.CommitAsync())
- return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при добавлении записи в историю" } }));
+ //if (!await historyService.CreateAsync(historyItem) || !await historyService.CommitAsync())
+ // return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при добавлении записи в историю" } }));
- var createdObj = await historyService.Get()
- .Include(t => t.Template)
- .Include(t => t.RobotHistoryLevel)
- .FirstOrDefaultAsync(t => t.Id == historyItem.Id);
+ //var createdObj = await historyService.Get()
+ // .Include(t => t.Template)
+ // .Include(t => t.RobotHistoryLevel)
+ // .FirstOrDefaultAsync(t => t.Id == historyItem.Id);
- var response = mapper.Map(createdObj);
- var createdUri = uriService.GetAllUri(ApiRoutes.RobotTemplateHistory.GetAll) + $"?{nameof(RobotTemplateHistoryQuery.IdSeries)}={createdObj!.IdSeries}";
+ //var response = mapper.Map(createdObj);
+ //var createdUri = uriService.GetAllUri(ApiRoutes.RobotTemplateHistory.GetAll) + $"?{nameof(RobotTemplateHistoryQuery.IdSeries)}={createdObj!.IdSeries}";
- return Created(createdUri, new Response(response, true));
+ //return Created(createdUri, new Response(response, true));
+
+ return Ok("Доделать");
}
}
diff --git a/PARR.API/Controllers/V1/TemplateController.cs b/PARR.API/Controllers/V1/TemplateController.cs
index f6fc2569..13ee4049 100644
--- a/PARR.API/Controllers/V1/TemplateController.cs
+++ b/PARR.API/Controllers/V1/TemplateController.cs
@@ -51,14 +51,14 @@ namespace PARR.API.Controllers.V1
{
switch (filter.StatusCode.Value)
{
- case (int)StatusTemplateEnum.Ok:
- query = query.Where(t => t.StatusCode == (int)StatusTemplateEnum.Ok);
+ case (int)TaskStatusEnum.Ok:
+ query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Ok);
break;
- case (int)StatusTemplateEnum.Creating:
- query = query.Where(t => t.StatusCode == (int)StatusTemplateEnum.Creating);
+ case (int)TaskStatusEnum.Creating:
+ query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Creating);
break;
- case (int)StatusTemplateEnum.Updating:
- query = query.Where(t => t.StatusCode == (int)StatusTemplateEnum.Updating);
+ case (int)TaskStatusEnum.Updating:
+ query = query.Where(t => t.StatusCode == (int)TaskStatusEnum.Updating);
break;
default:
break;
@@ -170,7 +170,7 @@ namespace PARR.API.Controllers.V1
if (template == null)
return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Не найден шаблон с id: {id}" } }));
- template.StatusCode = (int)StatusTemplateEnum.Ok;
+ template.StatusCode = (int)TaskStatusEnum.Ok;
if (!await templateService.CommitAsync())
return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при изменении статуса у шаблона с id: {id}" } }));
diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
index 0e99ef8e..eb3e866b 100644
--- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs
+++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
@@ -63,7 +63,7 @@ namespace PARR.API.MappingProfiles
// === Template ===
- CreateMap();
+ CreateMap();
CreateMap()
.ForMember(d => d.Code, o => o.MapFrom(s => s.RobotStatus!.Code))
diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs
index ac84092d..45de5bc6 100644
--- a/PARR.DAL/Context/DataContext.cs
+++ b/PARR.DAL/Context/DataContext.cs
@@ -33,7 +33,7 @@ namespace PARR.DAL.Context
public DbSet Settings { get; set; }
public DbSet RawDataEKs { get; set; }
public DbSet Templates { get; set; }
- public DbSet StatusTasks { get; set; }
+ public DbSet TaskStatuses { get; set; }
public DbSet RobotStatuses { get; set; }
public DbSet Processes { get; set; }
@@ -111,13 +111,13 @@ namespace PARR.DAL.Context
});
- modelBuilder.Entity(f =>
+ modelBuilder.Entity(f =>
{
f.HasData(
- new() { Code = (int)StatusTemplateEnum.Creating, Name = StatusTemplateEnum.Creating.ToString(), Description = "Создали шаблон в ПАРР" },
- new() { Code = (int)StatusTemplateEnum.Updating, Name = StatusTemplateEnum.Updating.ToString(), Description = "Выявлено несоответствие. Требуется привлечение робота" },
- new() { Code = (int)StatusTemplateEnum.Ok, Name = StatusTemplateEnum.Ok.ToString(), Description = "Нормальное состояние шаблона в ЕСПП и ПАРР. Шаблон в ПАРР соответствует шаблону в ЕСПП" }
+ new() { Code = (int)TaskStatusEnum.Creating, Name = TaskStatusEnum.Creating.ToString(), Description = "Задание на создание объекта в ЕСПП" },
+ new() { Code = (int)TaskStatusEnum.Updating, Name = TaskStatusEnum.Updating.ToString(), Description = "Задание на обновление объекта в ЕСПП" },
+ new() { Code = (int)TaskStatusEnum.Ok, Name = TaskStatusEnum.Ok.ToString(), Description = "Объект в ЕСПП соответствует объекту в ПАРР" }
);
});
diff --git a/PARR.DAL/Contracts/StatusTemplateEnum.cs b/PARR.DAL/Contracts/TaskStatusEnum.cs
similarity index 75%
rename from PARR.DAL/Contracts/StatusTemplateEnum.cs
rename to PARR.DAL/Contracts/TaskStatusEnum.cs
index c0540868..0726a58f 100644
--- a/PARR.DAL/Contracts/StatusTemplateEnum.cs
+++ b/PARR.DAL/Contracts/TaskStatusEnum.cs
@@ -1,6 +1,6 @@
namespace PARR.DAL.Contracts
{
- public enum StatusTemplateEnum
+ public enum TaskStatusEnum
{
Creating = 10,
Updating = 20,
diff --git a/PARR.DAL/Migrations/20231005045908_TblUpdTemplates.Designer.cs b/PARR.DAL/Migrations/20231005045908_TblUpdTemplates.Designer.cs
new file mode 100644
index 00000000..fd1a55d3
--- /dev/null
+++ b/PARR.DAL/Migrations/20231005045908_TblUpdTemplates.Designer.cs
@@ -0,0 +1,2040 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using PARR.DAL.Context;
+
+#nullable disable
+
+namespace PARR.DAL.Migrations
+{
+ [DbContext(typeof(DataContext))]
+ [Migration("20231005045908_TblUpdTemplates")]
+ partial class TblUpdTemplates
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.5")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("PARR.DAL.Models.AIHIT.RawDataEK", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AIHID")
+ .HasColumnType("integer");
+
+ b.Property("APPType")
+ .HasColumnType("text");
+
+ b.Property("AdditionalInfo")
+ .HasColumnType("text");
+
+ b.Property("CKBSServerType")
+ .HasColumnType("text");
+
+ b.Property("CTSDirection")
+ .HasColumnType("text");
+
+ b.Property("ClientOS")
+ .HasColumnType("text");
+
+ b.Property("ClientSoftware")
+ .HasColumnType("text");
+
+ b.Property("Company")
+ .HasColumnType("text");
+
+ b.Property("CreateTime")
+ .HasColumnType("text");
+
+ b.Property("DBType")
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EKCategory")
+ .HasColumnType("text");
+
+ b.Property("EKFindCode")
+ .HasColumnType("text");
+
+ b.Property("EKRegister")
+ .HasColumnType("text");
+
+ b.Property("EKRevizor")
+ .HasColumnType("text");
+
+ b.Property("EKSubCategory")
+ .HasColumnType("text");
+
+ b.Property("EKType")
+ .HasColumnType("text");
+
+ b.Property("EndExplotationDate")
+ .HasColumnType("text");
+
+ b.Property("FullName")
+ .HasColumnType("text");
+
+ b.Property("IBServerType")
+ .HasColumnType("text");
+
+ b.Property("IP")
+ .HasColumnType("text");
+
+ b.Property("InfrastructureServerType")
+ .HasColumnType("text");
+
+ b.Property("IsActive")
+ .HasColumnType("text");
+
+ b.Property("IsImportant")
+ .HasColumnType("text");
+
+ b.Property("IsUnreliableData")
+ .HasColumnType("character(1)");
+
+ b.Property("Location")
+ .HasColumnType("text");
+
+ b.Property("Metka")
+ .HasColumnType("text");
+
+ b.Property("MonitoringServerType")
+ .HasColumnType("text");
+
+ b.Property("NetworkName")
+ .HasColumnType("text");
+
+ b.Property("NewEKFindCode")
+ .HasColumnType("text");
+
+ b.Property("OSType")
+ .HasColumnType("text");
+
+ b.Property("OldEKFindCode")
+ .HasColumnType("text");
+
+ b.Property("PlannedTimeToRepair")
+ .HasColumnType("text");
+
+ b.Property("Prescription")
+ .HasColumnType("text");
+
+ b.Property("ProductCode")
+ .HasColumnType("text");
+
+ b.Property("ResponseArea")
+ .HasColumnType("text");
+
+ b.Property("ResponsibleByEK")
+ .HasColumnType("text");
+
+ b.Property("ServiceCode")
+ .HasColumnType("text");
+
+ b.Property("ShiftWorkGroup")
+ .HasColumnType("text");
+
+ b.Property("ShortName")
+ .HasColumnType("text");
+
+ b.Property("StartExplotationDate")
+ .HasColumnType("text");
+
+ b.Property("Status")
+ .HasColumnType("text");
+
+ b.Property("SysModTime")
+ .HasColumnType("text");
+
+ b.Property("SysModUser")
+ .HasColumnType("text");
+
+ b.Property("TargetRepairTime")
+ .HasColumnType("text");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("RawDataEKs", "AIHIT");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.AIHIT.Setting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Group")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Settings", "AIHIT");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("b16afd06-605b-499f-9e35-a19586de96b0"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ГВЦ",
+ Value = "00-ГВЦ"
+ },
+ new
+ {
+ Id = new Guid("42a2ec03-da3a-45fc-971e-399910fdc5ae"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ОКТ",
+ Value = "01-ОКТ"
+ },
+ new
+ {
+ Id = new Guid("17efaf65-ae8c-45f1-b187-e6cb1bd6385b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КЛГ",
+ Value = "10-КЛГ"
+ },
+ new
+ {
+ Id = new Guid("51270997-20f6-4a61-85ac-64f6b6dd5dc4"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "МСК",
+ Value = "17-МСК"
+ },
+ new
+ {
+ Id = new Guid("b94f8c38-e78a-494e-81ba-39e4e902ffcc"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ГОР",
+ Value = "24-ГОР"
+ },
+ new
+ {
+ Id = new Guid("52ba20ea-4e7a-4500-939b-e2cff563809a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СЕВ",
+ Value = "28-СЕВ"
+ },
+ new
+ {
+ Id = new Guid("cb9da805-29e9-4e08-b1ed-d4b374920f77"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СКВ",
+ Value = "51-СКВ"
+ },
+ new
+ {
+ Id = new Guid("1943a65c-2060-4b5f-af1f-acec74835481"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЮВСТ",
+ Value = "58-ЮВСТ"
+ },
+ new
+ {
+ Id = new Guid("4d9ef2ee-d4fa-4d28-a93b-6f1fd0a639f9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ПРИВ",
+ Value = "61-ПРИВ"
+ },
+ new
+ {
+ Id = new Guid("f1a54c25-a93a-4fe3-8268-afbcc435b6e9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КБШ",
+ Value = "63-КБШ"
+ },
+ new
+ {
+ Id = new Guid("cc839c48-62bb-46a8-924c-85b5e7a3e245"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "СВРД",
+ Value = "76-СВРД"
+ },
+ new
+ {
+ Id = new Guid("c98fb684-ff03-441e-a9c3-ac5071d69857"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЮУР",
+ Value = "80-ЮУР"
+ },
+ new
+ {
+ Id = new Guid("f2684a90-6029-4476-bd3d-e713a8a228d6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЗСИБ",
+ Value = "83-ЗСИБ"
+ },
+ new
+ {
+ Id = new Guid("b3c73162-21ea-42f0-b0e1-3c5076176f8a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "КРАСН",
+ Value = "88-КРАСН"
+ },
+ new
+ {
+ Id = new Guid("a8cff6fd-28b7-49f2-a412-9208c10f6516"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ВСИБ",
+ Value = "92-ВСИБ"
+ },
+ new
+ {
+ Id = new Guid("50f66704-4d26-4587-bb1e-dca70c8f4b89"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ЗАБ",
+ Value = "94-ЗАБ"
+ },
+ new
+ {
+ Id = new Guid("1fd43634-4a06-4237-9727-edfa6f3eebe8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зона ответственности",
+ Group = "ResponsibleArea",
+ Name = "ДВС",
+ Value = "96-ДВС"
+ },
+ new
+ {
+ Id = new Guid("77c73c0a-8e4d-4676-b6e2-6a112f20e346"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Статус актуальных ЭК",
+ Group = "Status",
+ Name = "Exploitation",
+ Value = "3-В эксплуатации"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Application", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationTypeId");
+
+ b.ToTable("Applications");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("HostId");
+
+ b.ToTable("ApplicationsInHost");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ApplicationTypes");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("32c28386-6f13-4f7b-8508-be165b7fabdb"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Поле СП xml АИХ ИТ",
+ Name = "APP"
+ },
+ new
+ {
+ Id = new Guid("7848a96c-cdee-48c1-a786-de9cb889723a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Поле ОС xml АИХ ИТ",
+ Name = "OS"
+ },
+ new
+ {
+ Id = new Guid("aae2636f-b93a-42dc-873e-0764a90a0a40"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Поле СУБД xml АИХ ИТ",
+ Name = "DB"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ApplicationsInWork", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FullDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ShortDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Solution")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateDuration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorkId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("WorkId", "ApplicationId")
+ .IsUnique();
+
+ b.ToTable("ApplicationsInWorks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("EkStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Name = "1-Новый"
+ },
+ new
+ {
+ Code = 2,
+ Name = "2-Подготовка к эксплуатации"
+ },
+ new
+ {
+ Code = 3,
+ Name = "3-В эксплуатации"
+ },
+ new
+ {
+ Code = 4,
+ Name = "4-В ремонте"
+ },
+ new
+ {
+ Code = 5,
+ Name = "5-В резерве"
+ },
+ new
+ {
+ Code = 6,
+ Name = "6-Выведен из эксплуатации"
+ },
+ new
+ {
+ Code = 7,
+ Name = "7-Тестовый"
+ },
+ new
+ {
+ Code = 9,
+ Name = "9-В разработке"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Host", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Ek")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EkStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("IP")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ResponseAreaCode")
+ .HasColumnType("integer");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EkStatusCode");
+
+ b.HasIndex("ResponseAreaCode");
+
+ b.ToTable("Hosts");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Process", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppId")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Processes");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("ResponseAreas");
+
+ b.HasData(
+ new
+ {
+ Code = 96,
+ Name = "96-ДВС"
+ },
+ new
+ {
+ Code = 94,
+ Name = "94-ЗАБ"
+ },
+ new
+ {
+ Code = 92,
+ Name = "92-ВСИБ"
+ },
+ new
+ {
+ Code = 88,
+ Name = "88-КРАСН"
+ },
+ new
+ {
+ Code = 83,
+ Name = "83-ЗСИБ"
+ },
+ new
+ {
+ Code = 80,
+ Name = "80-ЮУР"
+ },
+ new
+ {
+ Code = 76,
+ Name = "76-СВРД"
+ },
+ new
+ {
+ Code = 63,
+ Name = "63-КБШ"
+ },
+ new
+ {
+ Code = 61,
+ Name = "61-ПРИВ"
+ },
+ new
+ {
+ Code = 58,
+ Name = "58-ЮВСТ"
+ },
+ new
+ {
+ Code = 51,
+ Name = "51-СКВ"
+ },
+ new
+ {
+ Code = 28,
+ Name = "28-СЕВ"
+ },
+ new
+ {
+ Code = 24,
+ Name = "24-ГОР"
+ },
+ new
+ {
+ Code = 17,
+ Name = "17-МСК"
+ },
+ new
+ {
+ Code = 10,
+ Name = "10-КЛГ"
+ },
+ new
+ {
+ Code = 1,
+ Name = "01-ОКТ"
+ },
+ new
+ {
+ Code = 99,
+ Name = "00-ГВЦ"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Robot", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("Robots");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Description = "Робот по созданию/изменению шаблона наряда ЕСПП",
+ Name = "TemplateOrder"
+ },
+ new
+ {
+ Code = 2,
+ Description = "Робот по созданию/изменению расписания шаблона наряда в ЕСПП",
+ Name = "ScheduleOrder"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotConfiguration", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AttemptsNumber")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LastStatusUpdated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("RobotCode")
+ .HasColumnType("integer");
+
+ b.Property("RobotStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TaskStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RobotCode");
+
+ b.HasIndex("RobotStatusCode");
+
+ b.HasIndex("TaskStatusCode");
+
+ b.HasIndex("TemplateId", "RobotCode")
+ .IsUnique();
+
+ b.ToTable("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppMessage")
+ .HasColumnType("text");
+
+ b.Property("HistoryLevel")
+ .HasColumnType("integer");
+
+ b.Property("IdSeries")
+ .HasColumnType("uuid");
+
+ b.Property("RobotConfigurationId")
+ .HasColumnType("uuid");
+
+ b.Property("RobotMessage")
+ .HasColumnType("text");
+
+ b.Property("TaskStatusCode")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevel");
+
+ b.HasIndex("RobotConfigurationId");
+
+ b.HasIndex("TaskStatusCode");
+
+ b.ToTable("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
+ {
+ b.Property("Level")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Level"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Level");
+
+ b.ToTable("RobotHistoryLevels");
+
+ b.HasData(
+ new
+ {
+ Level = 1,
+ Description = "Робот начал работу ",
+ Name = "Start"
+ },
+ new
+ {
+ Level = 5,
+ Description = "Информация",
+ Name = "Inforamtion"
+ },
+ new
+ {
+ Level = 10,
+ Description = "Ошибка",
+ Name = "Error"
+ },
+ new
+ {
+ Level = 15,
+ Description = "Успешно завершил работу",
+ Name = "Complete"
+ },
+ new
+ {
+ Level = 20,
+ Description = "Завершил работу с ошибкой (не отработал до конца)",
+ Name = "Breake"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("RobotStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 11,
+ Description = "Ожидание, ждет пока робот возьмет в работу.",
+ Name = "Wait"
+ },
+ new
+ {
+ Code = 22,
+ Description = "Робот взял в работу.",
+ Name = "InProgress"
+ },
+ new
+ {
+ Code = 33,
+ Description = "Ошибка отработки роботом. Требует ручного вмешательства.",
+ Name = "Error"
+ },
+ new
+ {
+ Code = 44,
+ Description = "Робот успешно отработал.",
+ Name = "Complete"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.RobotTemplateHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppMessage")
+ .HasColumnType("text");
+
+ b.Property("HistoryLevel")
+ .HasColumnType("integer");
+
+ b.Property("IdSeries")
+ .HasColumnType("uuid");
+
+ b.Property("RobotMessage")
+ .HasColumnType("text");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.Property("TemplateStatusCode")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevel");
+
+ b.HasIndex("TemplateId");
+
+ b.HasIndex("TemplateStatusCode");
+
+ b.ToTable("RobotTemplateHistories");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Setting", b =>
+ {
+ b.Property("Name")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Name");
+
+ b.ToTable("Settings");
+
+ b.HasData(
+ new
+ {
+ Name = "Initiator",
+ Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "КУЗНЕЦОВ МИХАИЛ ВАЛЕРЬЕВИЧ (IVC_KUZNETSOVMV@DVGD.OAO.RZD)"
+ },
+ new
+ {
+ Name = "ClosingCode",
+ Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "выполнен"
+ },
+ new
+ {
+ Name = "Category",
+ Description = "Категория создаваемого объекта в ЕСПП",
+ Value = "регламентная работа"
+ },
+ new
+ {
+ Name = "TemplatePrefixName",
+ Description = "Префикс имени шаблона в ЕСПП",
+ Value = "ПАРР-ДВС-ПТК"
+ },
+ new
+ {
+ Name = "RobotAttemptsNumber",
+ Description = "Количество попыток выполнения задания роботом",
+ Value = "3"
+ },
+ new
+ {
+ Name = "RobotWaitTime",
+ Description = "Время ожидания выполнения роботом задания",
+ Value = "00:15:00"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Subprocess", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppId")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProcessId");
+
+ b.ToTable("Subprocesses");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
+ {
+ b.Property("Code")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Code"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Code");
+
+ b.ToTable("TaskStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 10,
+ Description = "Задание на создание объекта в ЕСПП",
+ Name = "Creating"
+ },
+ new
+ {
+ Code = 20,
+ Description = "Задание на обновление объекта в ЕСПП",
+ Name = "Updating"
+ },
+ new
+ {
+ Code = 30,
+ Description = "Объект в ЕСПП соответствует объекту в ПАРР",
+ Name = "Ok"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Template", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationInWorkId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.Property("IsActiveSchedule")
+ .HasColumnType("boolean");
+
+ b.Property("IsActiveTemplate")
+ .HasColumnType("boolean");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("RobotAttemptsNumber")
+ .HasColumnType("integer");
+
+ b.Property("RobotLastStatusUpdated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("RobotStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("StatusCode")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationInWorkId");
+
+ b.HasIndex("HostId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.HasIndex("RobotStatusCode");
+
+ b.HasIndex("StatusCode");
+
+ b.ToTable("Templates");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppId")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("SubprocessId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SubprocessId");
+
+ b.ToTable("Tnks");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_Application", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationTypeId");
+
+ b.ToTable("V1_Applications");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_ApplicationInHost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.Property("V1_ApplicationId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("HostId");
+
+ b.HasIndex("V1_ApplicationId");
+
+ b.ToTable("V1_ApplicationsInHost");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_ApplicationType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("V1_ApplicationTypeId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("V1_ApplicationTypeId");
+
+ b.ToTable("V1_ApplicationTypes");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_Host", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostName")
+ .HasColumnType("text");
+
+ b.Property("IP")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("LinkEK")
+ .HasColumnType("text");
+
+ b.Property("RegionalEK")
+ .HasColumnType("text");
+
+ b.Property("Responsible")
+ .HasColumnType("text");
+
+ b.Property("Status")
+ .HasColumnType("text");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("V1_Hosts");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_Job", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ApplicationId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Frequency")
+ .HasColumnType("integer");
+
+ b.Property("IsEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("JobCategoryId")
+ .HasColumnType("uuid");
+
+ b.Property("JobModeId")
+ .HasColumnType("uuid");
+
+ b.Property("JobTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ScriptName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("StartAt")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationId");
+
+ b.HasIndex("JobCategoryId");
+
+ b.HasIndex("JobModeId");
+
+ b.HasIndex("JobTypeId");
+
+ b.ToTable("V1_Jobs");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_JobCategory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("V1_JobCategorys");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_JobJournal", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateOper")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HostId")
+ .HasColumnType("uuid");
+
+ b.Property("Info")
+ .HasColumnType("text");
+
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("JobStatusId")
+ .HasColumnType("uuid");
+
+ b.Property("Other")
+ .HasColumnType("text");
+
+ b.Property("TimeOut")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HostId");
+
+ b.HasIndex("JobId");
+
+ b.HasIndex("JobStatusId");
+
+ b.ToTable("V1_JobJournals");
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_JobMode", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("V1_JobModes");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("fba4202c-5bad-49c4-b076-d1ca6e1fb158"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Name = "auto"
+ },
+ new
+ {
+ Id = new Guid("7516b952-510d-4aaa-971c-a14b184fc1d5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Name = "manual"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_JobStatus", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("V1_JobStatuses");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("edef6dc3-adad-4c77-8ad1-63bb9052355a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Задание запущено",
+ Name = "started"
+ },
+ new
+ {
+ Id = new Guid("7b945eb6-d885-4570-aff5-8866f1f75ff2"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Задание выполнено",
+ Name = "finished"
+ });
+ });
+
+ modelBuilder.Entity("PARR.DAL.Models.V1.V1_JobType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property