diff --git a/PARR.API/Contracts/V1/Requests/JobAutoControlRequest.cs b/PARR.API/Contracts/V1/Requests/JobAutoControlRequest.cs
index 8f2f3113..3d144acf 100644
--- a/PARR.API/Contracts/V1/Requests/JobAutoControlRequest.cs
+++ b/PARR.API/Contracts/V1/Requests/JobAutoControlRequest.cs
@@ -1,52 +1,14 @@
-using PARR.Domain.Enums;
-
-namespace PARR.API.Contracts.V1.Requests
+namespace PARR.API.Contracts.V1.Requests
{
- public class JobAutoControlRequest
+ ///
+ /// Часть реквеста по управлению авто контролем для Job, JobGroup
+ ///
+ public record JobAutoControlRequest
{
- ///
- /// Создавать новые РР (из настроке РР)
- ///
- public bool CreateNew { get; set; }
+ public bool IsEnable { get; init; }
- ///
- /// Деактивировать не актуальные согласно ЭК (обратные статусы ЭК)
- ///
- public bool Deactivate { get; set; }
+ public bool InitUsedTemplateState { get; init; }
- ///
- /// Активировать РР после смены ЭК (согласно настройкам статусов ЭК)
- ///
- public bool Activate { get; set; }
-
- ///
- /// Состояние для активированных РР, шаблоны
- ///
- public bool OnTemplateIsActive { get; set; }
-
- ///
- /// Состояние для активированных РР, расписания
- ///
- public bool OnScheduleIsActive { get; set; }
-
- ///
- /// Состояние для деактивированных РР, шаблоны
- ///
- public bool OffTemplateIsActive { get; set; }
-
- ///
- /// Состояние для деактивированных РР, расписания
- ///
- public bool OffScheduleIsActive { get; set; }
-
- ///
- /// Маски ЭК
- ///
- public required List EkMasks { get; set; }
-
- ///
- /// Статусы ЭК для которых включена генерация РР и активация
- ///
- public required List EnabledEkStatuses { get; set; }
+ public bool InitUsedScheduleState { get; init; }
}
}
diff --git a/PARR.API/Contracts/V1/Requests/JobGroupRequest.cs b/PARR.API/Contracts/V1/Requests/JobGroupRequest.cs
index de37af25..672ae79f 100644
--- a/PARR.API/Contracts/V1/Requests/JobGroupRequest.cs
+++ b/PARR.API/Contracts/V1/Requests/JobGroupRequest.cs
@@ -1,47 +1,47 @@
namespace PARR.API.Contracts.V1.Requests
{
- public class JobGroupRequest
+ public record JobGroupRequest
{
- public required string Name { get; set; }
+ public required string Name { get; init; }
//public bool? IsUmbrella { get; set; }
- public Guid GroupTypeId { get; set; }
+ public Guid GroupTypeId { get; init; }
///
/// Поле по которому групиируем, если тип - ГРУППА
///
- public Guid? GroupingUnitFieldId { get; set; }
+ public Guid? GroupingUnitFieldId { get; init; }
- public bool? IsGroupByResponsible { get; set; }
+ public bool? IsGroupByResponsible { get; init; }
- public required string ShortDescription { get; set; }
+ public required string ShortDescription { get; init; }
- public required string FullDescription { get; set; }
+ public required string FullDescription { get; init; }
- public required string Solution { get; set; }
+ public required string Solution { get; init; }
- public required string TemplateDuration { get; set; }
+ public required string TemplateDuration { get; init; }
- public DateTimeOffset ReferenceDate { get; set; }
+ public DateTimeOffset ReferenceDate { get; init; }
- public int? UserTimeZoneOffsetMinutes { get; set; }
+ public int? UserTimeZoneOffsetMinutes { get; init; }
///
/// Использовать таймзону рабочей группы ответственного за ЭК шаблона
///
- public bool IsWorkGroupTimezone { get; set; }
+ public bool IsWorkGroupTimezone { get; init; }
- public Guid ScheduleExcludeTypeId { get; set; }
+ public Guid ScheduleExcludeTypeId { get; init; }
- public Guid? ScheduleExcludeTypeCalendarId { get; set; }
+ public Guid? ScheduleExcludeTypeCalendarId { get; init; }
- public bool IsAutoDistributionEnabled { get; set; }
+ public bool IsAutoDistributionEnabled { get; init; }
///
/// Настройки автораспределения
///
- public DistributionConfigRequest? DistributionConfig { get; set; }
+ public DistributionConfigRequest? DistributionConfig { get; init; }
//public bool IsAgent { get; set; }
@@ -51,28 +51,35 @@
//public string? AgentScript { get; set; }
- public List Schedule { get; set; } = new List();
+ public List Schedule { get; init; } = new List();
+
+ ///
+ /// Настройки автоконтроля (возможны только в случае, если JobGroupType.IsJobGroupAutocontrol==true)
+ ///
+ public JobAutoControlRequest? AutoControl { get; init; }
}
- public class EsppSchValueRequest
+ public record EsppSchValueRequest
{
- public Guid TypeValueId { get; set; }
+ public Guid TypeValueId { get; init; }
- public Guid TypeConfigId { get; set; }
+ public Guid TypeConfigId { get; init; }
}
- public class DistributionConfigRequest
+ public record DistributionConfigRequest
{
- public Guid DistributionPeriodId { get; set; }
+ public Guid DistributionPeriodId { get; init; }
///
/// Исключать выходные и праздники
///
- public bool IsExcludeWeekends { get; set; }
+ public bool IsExcludeWeekends { get; init; }
///
/// Группировать по рабочей группе
///
- public bool IsGroupingByWorkGroup { get; set; }
+ public bool IsGroupingByWorkGroup { get; init; }
}
+
+
}
diff --git a/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs b/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs
index 40e0550f..449c40a4 100644
--- a/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs
+++ b/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs
@@ -68,12 +68,23 @@
///
public ScheduleExcludeTypeCalendarResponse? ScheduleExcludeTypeCalendar { get; set; }
+ public JobGroupAutoControlResponse? AutoControl { get; set; }
+
/////
///// Настройки автораспределения
/////
//public JobGroupDistributionConfigResponse? DistributionConfig { get; set; }
}
+ public class JobGroupAutoControlResponse
+ {
+ public bool IsEnable { get; set; }
+
+ public bool InitUsedTemplateState { get; set; }
+
+ public bool InitUsedScheduleState { get; set; }
+ }
+
public class JobGroupScheduleResponse
{
public string Timezone { get; set; } = string.Empty;
diff --git a/PARR.API/Contracts/V1/Responses/JobGroupTypeResponse.cs b/PARR.API/Contracts/V1/Responses/JobGroupTypeResponse.cs
index ab36b909..f00e7eef 100644
--- a/PARR.API/Contracts/V1/Responses/JobGroupTypeResponse.cs
+++ b/PARR.API/Contracts/V1/Responses/JobGroupTypeResponse.cs
@@ -2,14 +2,20 @@
namespace PARR.API.Contracts.V1.Responses
{
- public class JobGroupTypeResponse
+ public record JobGroupTypeResponse
{
- public Guid Id { get; set; }
+ public Guid Id { get; init; }
- public required JobGroupTypesEnum Code { get; set; }
+ public required JobGroupTypesEnum Code { get; init; }
- public required string Name { get; set; }
+ public required string Name { get; init; }
- public required string Description { get; set; }
+ public required string Description { get; init; }
+
+ public bool IsAllowJobUnitFilter { get; init; }
+
+ public bool IsJobGroupAutoControl { get; init; }
+
+ public bool IsRelationshipsAllowed { get; init; }
}
}
diff --git a/PARR.API/Controllers/V1/JobGroupController.cs b/PARR.API/Controllers/V1/JobGroupController.cs
index 44446685..c4aac721 100644
--- a/PARR.API/Controllers/V1/JobGroupController.cs
+++ b/PARR.API/Controllers/V1/JobGroupController.cs
@@ -36,13 +36,13 @@ namespace PARR.API.Controllers.V1
private readonly ILogger logger;
private readonly IMapper mapper;
private readonly IUriService uriService;
- private readonly IJobGroupRepository groupService;
- private readonly IJobRepository jobService;
- private readonly IEsppSchTypeConfigRepository esppConfigService;
- //private readonly IValidator validator;
- private readonly IJobGroupTypeRepository jobGroupTypeService;
- private readonly IMatchingStatusService matchingStatusService;
- private readonly IScheduleResponseAreaTimeOffsetRepository scheduleResponseAreaTimeOffsetService;
+ private readonly IJobGroupRepository _groupRepository;
+ private readonly IJobRepository _jobRepository;
+ private readonly IEsppSchTypeConfigRepository _esppConfigRepository;
+ private readonly IJobGroupTypeRepository _jobGroupTypeRepository;
+ private readonly IMatchingStatusService _matchingStatusRepository;
+ private readonly IScheduleResponseAreaTimeOffsetRepository _scheduleResponseAreaTimeOffsetRepository;
+ private readonly IJobAutoControlRepository _jobAutoControlRepository;
private readonly IRabbitService mqService;
private readonly MqSettings mqSettings;
@@ -50,13 +50,13 @@ namespace PARR.API.Controllers.V1
ILogger logger,
IMapper mapper,
IUriService uriService,
- IJobGroupRepository groupService,
- IJobRepository jobService,
- IEsppSchTypeConfigRepository esppConfigService,
- //IValidator validator,
- IJobGroupTypeRepository jobGroupTypeService,
- IMatchingStatusService matchingStatusService,
- IScheduleResponseAreaTimeOffsetRepository scheduleResponseAreaTimeOffsetService,
+ IJobGroupRepository groupRepository,
+ IJobRepository jobRepository,
+ IEsppSchTypeConfigRepository esppConfigRepository,
+ IJobGroupTypeRepository jobGroupTypeRepository,
+ IMatchingStatusService matchingStatusRepository,
+ IScheduleResponseAreaTimeOffsetRepository scheduleResponseAreaTimeOffsetRepository,
+ IJobAutoControlRepository jobAutoControlRepository,
IRabbitService mqService,
MqSettings mqSettings
)
@@ -64,20 +64,20 @@ namespace PARR.API.Controllers.V1
this.logger = logger;
this.mapper = mapper;
this.uriService = uriService;
- this.groupService = groupService;
- this.jobService = jobService;
- this.esppConfigService = esppConfigService;
- //this.validator = validator;
- this.jobGroupTypeService = jobGroupTypeService;
- this.matchingStatusService = matchingStatusService;
- this.scheduleResponseAreaTimeOffsetService = scheduleResponseAreaTimeOffsetService;
+ _groupRepository = groupRepository;
+ _jobRepository = jobRepository;
+ _esppConfigRepository = esppConfigRepository;
+ _jobGroupTypeRepository = jobGroupTypeRepository;
+ _matchingStatusRepository = matchingStatusRepository;
+ _scheduleResponseAreaTimeOffsetRepository = scheduleResponseAreaTimeOffsetRepository;
+ _jobAutoControlRepository = jobAutoControlRepository;
this.mqService = mqService;
this.mqSettings = mqSettings;
}
///
- /// Получить список групп заданий на выполнение работ постранично
+ /// Получить список групп работ постранично
///
///
[HttpGet(ApiRoutes.JobGroup.GetAll)]
@@ -85,11 +85,12 @@ namespace PARR.API.Controllers.V1
{
var paginationFilter = mapper.Map(paginationQuery);
- IQueryable query = groupService.Get()
+ IQueryable query = _groupRepository.Get()
.Include(t => t.GroupType)
.Include(t => t.GroupingUnitField)
.Include(t => t.ScheduleExcludeType)
- .Include(t => t.ScheduleExcludeTypeCalendar);
+ .Include(t => t.ScheduleExcludeTypeCalendar)
+ .Include(t => t.AutoControl);
query = query.OrderBy(t => t.GroupName);
@@ -104,7 +105,7 @@ namespace PARR.API.Controllers.V1
.Include(t => t.Jobs).ThenInclude(t => t.Tnk)
.Include(t => t.DistributionConfig).ThenInclude(t => t.DistributionPeriod);
- var jobGroups = await groupService.GetPage(query, paginationFilter).ToListAsync();
+ var jobGroups = await _groupRepository.GetPage(query, paginationFilter).ToListAsync();
if (!jobGroups.Any())
return NoContent();
@@ -122,20 +123,21 @@ namespace PARR.API.Controllers.V1
///
- /// Получить группу заданий на выполнение работ по id
+ /// Получить группу работ по id
///
///
///
[HttpGet(ApiRoutes.JobGroup.Get)]
public async Task GetById([FromRoute] Guid id)
{
- var jobGroup = await groupService.Get()
+ var jobGroup = await _groupRepository.Get()
.Include(t => t.Jobs).ThenInclude(t => t.Tnk)
.Include(t => t.GroupType)
.Include(t => t.GroupingUnitField)
.Include(t => t.ScheduleExcludeType)
.Include(t => t.ScheduleExcludeTypeCalendar)
.Include(t => t.DistributionConfig).ThenInclude(t => t.DistributionPeriod)
+ .Include(t => t.AutoControl)
.FirstOrDefaultAsync(t => t.Id == id);
if (jobGroup == null)
@@ -149,18 +151,13 @@ namespace PARR.API.Controllers.V1
///
- /// Создать группу заданий на выполнение работ (JobGroup)
+ /// Создать группу работ (JobGroup)
///
///
///
[HttpPost(ApiRoutes.JobGroup.Create)]
public async Task Create([FromBody] JobGroupRequest request)
{
- //var resultValidate = await validator.ValidateAsync(request);
-
- //if (!resultValidate.IsValid)
- // return BadRequest(new Response(resultValidate.Errors));
-
var jobGroup = new JobGroup
{
Id = Guid.NewGuid(),
@@ -199,6 +196,22 @@ namespace PARR.API.Controllers.V1
}
#endregion
+ #region Настройки автоконтроля
+
+ // Корректность проверяется в валидаторе
+ if (request.AutoControl != null)
+ {
+ jobGroup.AutoControl = new JobGroupAutoControl
+ {
+ InitUsedScheduleState = request.AutoControl.InitUsedScheduleState,
+ InitUsedTemplateState = request.AutoControl.InitUsedTemplateState,
+ IsEnable = request.AutoControl.IsEnable,
+ JobGroupId = jobGroup.Id
+ };
+ }
+
+ #endregion
+
//Добавляем настройки планировщика
request.Schedule.ForEach(item =>
{
@@ -210,18 +223,19 @@ namespace PARR.API.Controllers.V1
});
});
- if (!await groupService.CreateAsync(jobGroup) || !await groupService.CommitAsync())
+ if (!await _groupRepository.CreateAsync(jobGroup) || !await _groupRepository.CommitAsync())
return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка при создании группы заданий на выполнение работ" } }));
logger.LogInformation($"Пользователь {User.Identity?.Name} добавил группу заданий на выполнение работ: {jobGroup.Id}, {jobGroup.GroupName}, {jobGroup.ShortDescription}");
- var createdJobGroup = await groupService.Get().Include(t => t.Jobs).ThenInclude(t => t.Tnk)
+ var createdJobGroup = await _groupRepository.Get().Include(t => t.Jobs).ThenInclude(t => t.Tnk)
.Include(t => t.GroupType)
.Include(t => t.GroupingUnitField)
.Include(t => t.ScheduleExcludeType)
.Include(t => t.ScheduleExcludeTypeCalendar)
.Include(t => t.DistributionConfig).ThenInclude(t => t.DistributionPeriod)
+ .Include(t => t.AutoControl)
.FirstAsync(t => t.Id == jobGroup.Id);
var locationUri = uriService.GetUri(ApiRoutes.JobGroup.Get, ApiRoutes.JobGroup.getParam, createdJobGroup.Id);
@@ -234,7 +248,7 @@ namespace PARR.API.Controllers.V1
///
- /// Обновить группу заданий на выполнение работ (JobGroup)
+ /// Обновить группу работ (JobGroup)
///
///
///
@@ -242,15 +256,11 @@ namespace PARR.API.Controllers.V1
[HttpPut(ApiRoutes.JobGroup.Update)]
public async Task Update([FromRoute] Guid id, [FromBody] JobGroupRequest request)
{
- //var resultValidate = await validator.ValidateAsync(request);
-
- //if (!resultValidate.IsValid)
- // return BadRequest(new Response(resultValidate.Errors));
-
- var orig = await groupService.Get()
+ var orig = await _groupRepository.Get()
.Include(t => t.Jobs)
.ThenInclude(t => t.Tnk)
.Include(t => t.EsppSchValues)
+ .Include(t => t.AutoControl)
.Include(t => t.DistributionConfig).ThenInclude(t => t.DistributionPeriod)
.FirstOrDefaultAsync(t => t.Id == id);
@@ -309,12 +319,50 @@ namespace PARR.API.Controllers.V1
// удаляем настройки распределения если они были
if (orig.DistributionConfig != null)
{
- groupService.DeleteDistributionConfig(orig.DistributionConfig);
+ _groupRepository.DeleteDistributionConfig(orig.DistributionConfig);
}
}
#endregion
+ #region Настройки автоконтроля
+
+ // валидатор проверяет корректность
+ if (request.AutoControl != null)
+ {
+ // автоконтролем управляет JobGroup
+ if (orig.AutoControl != null)
+ {
+ // обновляем
+ orig.AutoControl.IsEnable = request.AutoControl.IsEnable;
+ orig.AutoControl.InitUsedScheduleState = request.AutoControl.InitUsedScheduleState;
+ orig.AutoControl.InitUsedTemplateState = request.AutoControl.InitUsedTemplateState;
+ // удалить настройки автоконтроля для job
+ await RemoveJobAutoControlSettingsAsync(orig.Id);
+ }
+ else
+ {
+ // создаем новую запись
+ orig.AutoControl = new JobGroupAutoControl
+ {
+ InitUsedScheduleState = request.AutoControl.InitUsedScheduleState,
+ InitUsedTemplateState = request.AutoControl.InitUsedTemplateState,
+ IsEnable = request.AutoControl.IsEnable,
+ JobGroupId = orig.Id
+ };
+ // удалить настройки автоконтроля для job
+ await RemoveJobAutoControlSettingsAsync(orig.Id);
+ }
+ }
+ else
+ {
+ // автоконтролем управляет каждый job отдельно
+ // удаляем настройки, если они были
+ orig.AutoControl = null;
+ }
+
+ #endregion
+
//обновляем планировщик
orig.EsppSchValues.Clear();
request.Schedule.ForEach(item =>
@@ -327,7 +375,7 @@ namespace PARR.API.Controllers.V1
});
});
- if (!await groupService.CommitAsync())
+ if (!await _groupRepository.CommitAsync())
return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка при изменении группы заданий на выполнение работ." } }));
logger.LogInformation($"Пользователь {User.Identity?.Name} обновил группу заданий на выполнение работ: {orig.Id}," +
@@ -355,7 +403,7 @@ namespace PARR.API.Controllers.V1
#endregion
- var updatedJobGroup = await groupService.Get()
+ var updatedJobGroup = await _groupRepository.Get()
.Include(t => t.Jobs)
.ThenInclude(t => t.Tnk)
.Include(t => t.GroupType)
@@ -363,6 +411,7 @@ namespace PARR.API.Controllers.V1
.Include(t => t.ScheduleExcludeType)
.Include(t => t.ScheduleExcludeTypeCalendar)
.Include(t => t.DistributionConfig).ThenInclude(t => t.DistributionPeriod)
+ .Include(t => t.AutoControl)
.FirstAsync(t => t.Id == orig.Id);
var response = mapper.Map(updatedJobGroup);
@@ -373,14 +422,14 @@ namespace PARR.API.Controllers.V1
///
- /// Удалить группу заданий на выполнение работ (только если нет связанных заданий)
+ /// Удалить группу работ (только если нет связанных работ)
///
///
///
[HttpDelete(ApiRoutes.JobGroup.Delete)]
public async Task Delete([FromRoute] Guid id)
{
- var jobGroup = await groupService.Get()
+ var jobGroup = await _groupRepository.Get()
.FirstOrDefaultAsync(t => t.Id == id);
if (jobGroup == null)
@@ -388,13 +437,13 @@ namespace PARR.API.Controllers.V1
Message = $"Ошибка при удалении группы заданий на выполнение работ. Не найдена группа заданий на выполнение работ Id: {id}"
} }));
- var jobCount = await jobService.Get().CountAsync(t => t.GroupId == id);
+ var jobCount = await _jobRepository.Get().CountAsync(t => t.GroupId == id);
if (jobCount > 0)
return BadRequest(new Response(false, new List { new ErrorModel {
Message = $"Ошибка при удалении группы заданий на выполнение работ. С данным группой связаны задания: {jobCount} шт."
} }));
- if (!groupService.Delete(jobGroup) || !await groupService.CommitAsync())
+ if (!_groupRepository.Delete(jobGroup) || !await _groupRepository.CommitAsync())
return BadRequest(new Response(false, new List { new ErrorModel {
Message = $"Ошибка при удалении группы заданий на выполнение работ"
} }));
@@ -408,6 +457,22 @@ namespace PARR.API.Controllers.V1
return NoContent();
}
+ ///
+ /// Удалить настройки автоконтроля для связанных Job
+ ///
+ ///
+ ///
+ private async Task RemoveJobAutoControlSettingsAsync(Guid jobGroupId)
+ {
+ var jobAutoControlsToRemove = await _jobAutoControlRepository.Get()
+ .Where(t => t.Job!.GroupId == jobGroupId)
+ .ToListAsync();
+
+ if (!jobAutoControlsToRemove.Any())
+ return;
+
+ _jobAutoControlRepository.RemoveRange(jobAutoControlsToRemove);
+ }
///
/// Проверка, были ли изменения в расписании
@@ -471,7 +536,7 @@ namespace PARR.API.Controllers.V1
///
private async Task AppendMissingDataAsync(JobGroupResponse jobGroupResponse)
{
- var schedule = await esppConfigService.GetEsppScheduleDtoAsync(jobGroupResponse.Id);
+ var schedule = await _esppConfigRepository.GetEsppScheduleDtoAsync(jobGroupResponse.Id);
if (schedule == null)
{
@@ -482,14 +547,14 @@ namespace PARR.API.Controllers.V1
var scheduleResponse = new JobGroupScheduleResponse
{
//Timezone = settingsFromDb.ScheduleTimezone,
- Timezone = scheduleResponseAreaTimeOffsetService.GetDefault.EsppValue,
+ Timezone = _scheduleResponseAreaTimeOffsetRepository.GetDefault.EsppValue,
TypeSchedule = mapper.Map(schedule.TypeSchedule),
Values = mapper.Map>(schedule.Values).OrderBy(t => t.Order).ToList()
};
jobGroupResponse.Schedule = scheduleResponse;
- jobGroupResponse.JobsCount = await jobService.Get().CountAsync(t => t.GroupId == jobGroupResponse.Id);
+ jobGroupResponse.JobsCount = await _jobRepository.Get().CountAsync(t => t.GroupId == jobGroupResponse.Id);
jobGroupResponse.MatchingStatus = await GetMatchingStatusAsync(jobGroupResponse.Id);
}
@@ -506,7 +571,7 @@ namespace PARR.API.Controllers.V1
return null;
// Если есть значение, смотрим, групповой ли тип работ, и если нет, то вернем null
- var groupingType = await jobGroupTypeService.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
+ var groupingType = await _jobGroupTypeRepository.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
if (request.GroupTypeId == groupingType.Id)
{
// это групповой тип работ, все ок
@@ -534,7 +599,7 @@ namespace PARR.API.Controllers.V1
return request.GroupingUnitFieldId;
- var groupingType = await jobGroupTypeService.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
+ var groupingType = await _jobGroupTypeRepository.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
if (request.GroupTypeId == groupingType.Id)
{
@@ -558,7 +623,7 @@ namespace PARR.API.Controllers.V1
///
private async Task GetMatchingStatusAsync(Guid jobGroupId)
{
- var statusMatching = await matchingStatusService.GetStatusAsync(jobGroupId, SyncTaskEntityTypeEnum.JobGroup);
+ var statusMatching = await _matchingStatusRepository.GetStatusAsync(jobGroupId, SyncTaskEntityTypeEnum.JobGroup);
return mapper.Map(statusMatching);
}
diff --git a/PARR.API/Controllers/V1/JobGroupTypeController.cs b/PARR.API/Controllers/V1/JobGroupTypeController.cs
index 24f4797a..91f2547f 100644
--- a/PARR.API/Controllers/V1/JobGroupTypeController.cs
+++ b/PARR.API/Controllers/V1/JobGroupTypeController.cs
@@ -17,23 +17,29 @@ namespace PARR.API.Controllers.V1
[Authorize(Roles = ParrRoles.Administrator.Role)]
public class JobGroupTypeController : BaseApiController
{
- private readonly IJobGroupTypeRepository jobGroupTypeService;
+ private readonly IJobGroupTypeRepository jobGroupTypeRepository;
private readonly IMapper mapper;
public JobGroupTypeController(
- IJobGroupTypeRepository jobGroupTypeService,
+ IJobGroupTypeRepository jobGroupTypeRepository,
IMapper mapper
)
{
- this.jobGroupTypeService = jobGroupTypeService;
+ this.jobGroupTypeRepository = jobGroupTypeRepository;
this.mapper = mapper;
}
+ ///
+ /// Получить список типов групп работ
+ ///
+ ///
[HttpGet(ApiRoutes.JobGroupType.GetAll)]
public async Task GetAll()
{
- var query = jobGroupTypeService.Get().OrderBy(t => t.Description);
+ var query = jobGroupTypeRepository.Get()
+ .AsNoTracking()
+ .OrderBy(t => t.Description);
var types = await query.ToListAsync();
diff --git a/PARR.API/Controllers/V1/ShortcodeApplyController.cs b/PARR.API/Controllers/V1/ShortcodeApplyController.cs
index 205eda63..688ba9b4 100644
--- a/PARR.API/Controllers/V1/ShortcodeApplyController.cs
+++ b/PARR.API/Controllers/V1/ShortcodeApplyController.cs
@@ -32,7 +32,7 @@ namespace PARR.API.Controllers.V1
///
- /// Получить список всех переменных составляющих
+ /// Применить шорткод
///
///
[HttpPost(ApiRoutes.ShortcodeApply.Apply)]
diff --git a/PARR.API/Controllers/V1/ShortcodeController.cs b/PARR.API/Controllers/V1/ShortcodeController.cs
index cd67aac1..316eff0b 100644
--- a/PARR.API/Controllers/V1/ShortcodeController.cs
+++ b/PARR.API/Controllers/V1/ShortcodeController.cs
@@ -33,7 +33,7 @@ namespace PARR.API.Controllers.V1
///
- /// Получить список всех переменных составляющих
+ /// Получить список всех переменных составляющих (список шорткодов)
///
///
[HttpGet(ApiRoutes.Shortcode.GetAll)]
diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
index 238a25fa..802340d3 100644
--- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs
+++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs
@@ -379,9 +379,11 @@ namespace PARR.API.MappingProfiles
CreateMap()
.ForMember(d => d.ScheduleExcludeType, o => o.MapFrom(s => s.ScheduleExcludeType))
- .ForMember(d => d.ScheduleExcludeTypeCalendar, o => o.MapFrom(s => s.ScheduleExcludeTypeCalendar));
+ .ForMember(d => d.ScheduleExcludeTypeCalendar, o => o.MapFrom(s => s.ScheduleExcludeTypeCalendar))
+ .ForMember(d => d.AutoControl, o => o.MapFrom(s => s.AutoControl));
//.ForMember(d => d.DistributionConfig, o => o.MapFrom(s => s.DistributionConfig));
+ CreateMap();
#endregion
diff --git a/PARR.API/Validators/JobAutoControlRequestValidator.cs b/PARR.API/Validators/JobAutoControlRequestValidator.cs
deleted file mode 100644
index 826f1e5a..00000000
--- a/PARR.API/Validators/JobAutoControlRequestValidator.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using FluentValidation;
-using PARR.API.Contracts.V1.Requests;
-using PARR.Domain.Enums;
-
-namespace PARR.API.Validators
-{
- public class JobAutoControlRequestValidator : AbstractValidator
- {
- public JobAutoControlRequestValidator()
- {
- RuleFor(t => t.EkMasks).Must(items =>
- items.Count(t => t.Trim().Length > 0) > 0
- ).WithMessage("Должна быть указана хотя бы одна маска ЭК");
-
- RuleFor(t => t.EnabledEkStatuses).Must(
- items => items.Distinct().Count() == items.Count()
- ).WithMessage("Статусы ЭК не должны повторяться");
-
- RuleFor(t => t.EnabledEkStatuses).Must(items =>
- {
- return !items.Any(item => !Enum.IsDefined(typeof(EkStatusEnum), item)) && !items.Any(t => t == 0);
- })
- .WithMessage($"Допустимые значения: {(int)EkStatusEnum.New} ({EkStatusEnum.New}), " +
- $"{(int)EkStatusEnum.Preapre} ({EkStatusEnum.Preapre}), " +
- $"{(int)EkStatusEnum.Exploitation} ({EkStatusEnum.Exploitation}), " +
- $"{(int)EkStatusEnum.Repair} ({EkStatusEnum.Repair}), " +
- $"{(int)EkStatusEnum.Reserve} ({EkStatusEnum.Reserve}), " +
- $"{(int)EkStatusEnum.OutOfService} ({EkStatusEnum.OutOfService}), " +
- $"{(int)EkStatusEnum.Test} ({EkStatusEnum.Test}), " +
- $"{(int)EkStatusEnum.Development} ({EkStatusEnum.Development})");
- }
- }
-}
diff --git a/PARR.API/Validators/JobGroupValidator.cs b/PARR.API/Validators/JobGroupValidator.cs
index fd96b693..2c68cda9 100644
--- a/PARR.API/Validators/JobGroupValidator.cs
+++ b/PARR.API/Validators/JobGroupValidator.cs
@@ -12,11 +12,11 @@ namespace PARR.API.Validators
public class JobGroupValidator : AbstractValidator
{
public JobGroupValidator(
- IJobGroupTypeRepository jobGroupTypeService,
- IUnitFieldRepository unitFieldService,
- IScheduleExcludeTypeRepository scheduleExcludeTypeService,
- IScheduleExcludeTypeCalendarRepository scheduleExcludeTypeCalendarService,
- IDistributionPeriodRepository distributionPeriodService
+ IJobGroupTypeRepository jobGroupTypeRepository,
+ IUnitFieldRepository unitFieldRepository,
+ IScheduleExcludeTypeRepository scheduleExcludeTypeRepository,
+ IScheduleExcludeTypeCalendarRepository scheduleExcludeTypeCalendarRepository,
+ IDistributionPeriodRepository distributionPeriodRepository
)
{
RuleFor(t => t.Name)
@@ -35,7 +35,7 @@ namespace PARR.API.Validators
.NotNull().NotEmpty();
RuleFor(t => t.GroupTypeId)
- .MustAsync(async (entity, value, c) => await jobGroupTypeService.GetAsync(value) != null)
+ .MustAsync(async (entity, value, c) => await jobGroupTypeRepository.GetAsync(value) != null)
.WithMessage("Указан несуществующий Id типа");
//Проверяем существует ли такой GroupingUnitFieldId в unitField
@@ -47,7 +47,7 @@ namespace PARR.API.Validators
return true;
}
- return await unitFieldService.GetAsync(value.Value) != null;
+ return await unitFieldRepository.GetAsync(value.Value) != null;
})
.WithMessage("Указано несуществующий Id поля");
@@ -55,7 +55,7 @@ namespace PARR.API.Validators
RuleFor(t => t.GroupingUnitFieldId)
.MustAsync(async (entity, value, c) =>
{
- var groupingJobType = await jobGroupTypeService.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
+ var groupingJobType = await jobGroupTypeRepository.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
// Если это сгруппированный тип, то у него обязательно должно быть заполнено поле GroupingUnitFieldId
if (entity.GroupTypeId == groupingJobType.Id)
@@ -68,14 +68,14 @@ namespace PARR.API.Validators
RuleFor(t => t.ScheduleExcludeTypeId)
.NotNull()
.NotEmpty()
- .MustAsync(async (entity, value, c) => await scheduleExcludeTypeService.GetAsync(value) != null)
+ .MustAsync(async (entity, value, c) => await scheduleExcludeTypeRepository.GetAsync(value) != null)
.WithMessage("Некорректное значение");
RuleFor(t => t.ScheduleExcludeTypeCalendarId)
.MustAsync(async (entity, value, c) =>
{
// Если выбрано "Нет исключений", то это поле должно быть пустое, иначе, должно быть валидное значение
- var type = await scheduleExcludeTypeService.GetAsync(entity.ScheduleExcludeTypeId);
+ var type = await scheduleExcludeTypeRepository.GetAsync(entity.ScheduleExcludeTypeId);
if (type == null)
return false;
@@ -89,7 +89,7 @@ namespace PARR.API.Validators
if (!value.HasValue)
return false;
- return await scheduleExcludeTypeCalendarService.GetAsync(value.Value) != null;
+ return await scheduleExcludeTypeCalendarRepository.GetAsync(value.Value) != null;
})
.WithMessage("Некорректное значение");
@@ -115,7 +115,7 @@ namespace PARR.API.Validators
if (periodId.HasValue)
{
- var exist = await distributionPeriodService.GetAsync(periodId.Value);
+ var exist = await distributionPeriodRepository.GetAsync(periodId.Value);
return exist != null;
}
@@ -129,7 +129,24 @@ namespace PARR.API.Validators
// если IsResponseAreaTimezone == true, то поле UserTimeZoneOffsetMinutes обязательно.
// если IsResponseAreaTimezone == false, то UserTimeZoneOffsetMinutes должно быть null
return (entity.IsWorkGroupTimezone && value != null) || (!entity.IsWorkGroupTimezone && value == null);
- }).WithMessage("Некорректное значение."); ;
+ }).WithMessage("Некорректное значение.");
+
+ RuleFor(t => t.AutoControl)
+ .MustAsync(async (entity, value, c) =>
+ {
+ // Автоконтроль разрешен только типам работ у которых включен IsJobGroupAutoControl
+ var isAllowedAutocontrol = await jobGroupTypeRepository.Get().AsNoTracking().AnyAsync(t => t.Id == entity.GroupTypeId && t.IsJobGroupAutoControl == true);
+ // Разрешен автоконтроль и есть значение
+ if (isAllowedAutocontrol && value != null)
+ return true;
+
+ // Запрещен автоконтроль и нет значения
+ if (!isAllowedAutocontrol && value == null)
+ return true;
+
+ return false;
+ })
+ .WithMessage("Не верные параметры автоконтроля");
}
}
diff --git a/PARR.Core/Repositories/Interfaces/Job/IJobAutoControlRepository.cs b/PARR.Core/Repositories/Interfaces/Job/IJobAutoControlRepository.cs
index 79823486..e0937825 100644
--- a/PARR.Core/Repositories/Interfaces/Job/IJobAutoControlRepository.cs
+++ b/PARR.Core/Repositories/Interfaces/Job/IJobAutoControlRepository.cs
@@ -5,5 +5,6 @@ namespace PARR.Core.Repositories.Interfaces.Job
public interface IJobAutoControlRepository
{
IQueryable Get();
+ void RemoveRange(List autoControlList);
}
}
diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs
index a2b46824..971db050 100644
--- a/PARR.DAL/Context/DataContext.cs
+++ b/PARR.DAL/Context/DataContext.cs
@@ -179,9 +179,9 @@ namespace PARR.DAL.Context
modelBuilder.Entity(f =>
{
f.HasData(
- new() { Id = new Guid("4FA62E79-86BB-47C2-BE1A-72A716A170FA"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Simple.ToString(), Code = JobGroupTypesEnum.Simple, Description = "Обычный", IsAllowJobUnitFilter = true, IsJobGroupAutoControl = false },
- new() { Id = new Guid("6EC58B1A-5C40-47B9-B036-4FA490E8D503"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Umbrella.ToString(), Code = JobGroupTypesEnum.Umbrella, Description = "Зонтик", IsAllowJobUnitFilter = false, IsJobGroupAutoControl = true },
- new() { Id = new Guid("318625E5-F833-436A-99DF-2A382A1E71C7"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Group.ToString(), Code = JobGroupTypesEnum.Group, Description = "Сгруппированный", IsAllowJobUnitFilter = false, IsJobGroupAutoControl = true }
+ new() { Id = new Guid("4FA62E79-86BB-47C2-BE1A-72A716A170FA"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Simple.ToString(), Code = JobGroupTypesEnum.Simple, Description = "Обычный", IsAllowJobUnitFilter = true, IsJobGroupAutoControl = false, IsRelationshipsAllowed = false },
+ new() { Id = new Guid("6EC58B1A-5C40-47B9-B036-4FA490E8D503"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Umbrella.ToString(), Code = JobGroupTypesEnum.Umbrella, Description = "Зонтик", IsAllowJobUnitFilter = false, IsJobGroupAutoControl = true, IsRelationshipsAllowed = true },
+ new() { Id = new Guid("318625E5-F833-436A-99DF-2A382A1E71C7"), DateCreated = dateCreated, DateModified = null, Name = JobGroupTypesEnum.Group.ToString(), Code = JobGroupTypesEnum.Group, Description = "Сгруппированный", IsAllowJobUnitFilter = false, IsJobGroupAutoControl = true, IsRelationshipsAllowed = true }
);
});
#endregion
diff --git a/PARR.DAL/Migrations/20260615235401_tblGroupTypesAddRelationshipsSettings.Designer.cs b/PARR.DAL/Migrations/20260615235401_tblGroupTypesAddRelationshipsSettings.Designer.cs
new file mode 100644
index 00000000..04f559df
--- /dev/null
+++ b/PARR.DAL/Migrations/20260615235401_tblGroupTypesAddRelationshipsSettings.Designer.cs
@@ -0,0 +1,4021 @@
+//
+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("20260615235401_tblGroupTypesAddRelationshipsSettings")]
+ partial class tblGroupTypesAddRelationshipsSettings
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.16")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("PARR.Domain.Entities.AgentHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("HistoryLevelId")
+ .HasColumnType("integer");
+
+ b.Property("Message")
+ .HasColumnType("text");
+
+ b.Property("OrderId")
+ .HasColumnType("uuid");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("HistoryLevelId");
+
+ b.HasIndex("OrderId");
+
+ b.HasIndex("TemplateId");
+
+ b.ToTable("AgentHistories");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.AgentHistoryLevel", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("AgentHistoryLevels");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Агент начал выполнять задание",
+ Name = "Start"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Агент завершил выполнение задания",
+ Name = "End"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.DistributionPeriod", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Duration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Type")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Type");
+
+ b.ToTable("DistributionPeriods", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("9bd0bfa8-c316-480b-a001-e09ffe8c9340"),
+ Duration = "7",
+ Name = "Еженедельно",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("3a7341a8-085c-461c-babc-6b78dd5d2c67"),
+ Duration = "30",
+ Name = "Ежемесячно",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("0ad2dfdb-3833-46d9-979a-c408b7eadc6c"),
+ Duration = "90",
+ Name = "Каждые 90 дней",
+ Type = "Day"
+ },
+ new
+ {
+ Id = new Guid("31dd3947-8471-4f09-852c-a4f075f1ba7f"),
+ Duration = "182",
+ Name = "Каждые пол года",
+ Type = "Day"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.DistributionPeriodType", b =>
+ {
+ b.Property("Type")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Type");
+
+ b.ToTable("DistributionPeriodTypes", "schedule");
+
+ b.HasData(
+ new
+ {
+ Type = "Day",
+ Description = "День"
+ },
+ new
+ {
+ Type = "Month",
+ Description = "Месяц"
+ },
+ new
+ {
+ Type = "Year",
+ Description = "Год"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.Job", 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("GroupId")
+ .HasColumnType("uuid");
+
+ b.Property("IsParentRelationships")
+ .HasColumnType("boolean");
+
+ b.Property("MaxValueRelationships")
+ .HasColumnType("integer");
+
+ b.Property("MinValueRelationships")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ResponseAreaMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateNameMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TnkId")
+ .HasColumnType("uuid");
+
+ b.Property("WorkGroupMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("WorkName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GroupId");
+
+ b.HasIndex("TnkId");
+
+ b.ToTable("Jobs", "job", t =>
+ {
+ t.HasComment("Таблица видов работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.JobAutoControl", b =>
+ {
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("InitUsedScheduleState")
+ .HasColumnType("boolean");
+
+ b.Property("InitUsedTemplateState")
+ .HasColumnType("boolean");
+
+ b.Property("IsEnable")
+ .HasColumnType("boolean");
+
+ b.HasKey("JobId");
+
+ b.ToTable("AutoControls", "job", t =>
+ {
+ t.HasComment("Таблица управления автоконтролем для работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.JobFieldFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FieldId");
+
+ b.HasIndex("UnitFilterId");
+
+ b.ToTable("FieldFilters", "job", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки аттрибутов ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.JobRelationshipFilter", b =>
+ {
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsFullMatch")
+ .HasColumnType("boolean");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("IsParent")
+ .HasColumnType("boolean");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("UnitFilterId", "FieldId");
+
+ b.HasIndex("FieldId");
+
+ b.ToTable("RelationshipFilters", "job", t =>
+ {
+ t.HasComment("Таблица фильтров связей ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.JobUnitFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("JobId")
+ .HasColumnType("uuid");
+
+ b.Property("UnitFilter")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("JobId");
+
+ b.ToTable("UnitFilters", "job", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки ЭК, описание полей в АСУ ЕСПП");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Job.UnitsInTemplate", b =>
+ {
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.Property("UnitId")
+ .HasColumnType("uuid");
+
+ b.Property("UnitFieldValueId")
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("TemplateId", "UnitId", "UnitFieldValueId");
+
+ b.HasIndex("UnitFieldValueId");
+
+ b.HasIndex("UnitId");
+
+ b.ToTable("UnitsInTemplates", "job", t =>
+ {
+ t.HasComment("Таблица связи ЭК в шаблонах");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroup", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AgentName")
+ .HasColumnType("text");
+
+ b.Property("AgentScript")
+ .HasColumnType("text");
+
+ b.Property("AgentTimeOutSec")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateModified")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FullDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("GroupName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("GroupTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("GroupingUnitFieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsAgent")
+ .HasColumnType("boolean");
+
+ b.Property("IsAutoDistributionEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("IsGroupByResponsible")
+ .HasColumnType("boolean");
+
+ b.Property("IsResponseAreaTimezone")
+ .HasColumnType("boolean");
+
+ b.Property("ReferenceDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ScheduleExcludeTypeCalendarId")
+ .HasColumnType("uuid");
+
+ b.Property("ScheduleExcludeTypeId")
+ .HasColumnType("uuid");
+
+ b.Property("ShortDescription")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Solution")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TemplateDuration")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("UserTimeZoneOffsetMinutes")
+ .HasColumnType("integer")
+ .HasComment("Смещение часового пояса пользователя в минутах относительно UTC на момент ReferenceDate");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GroupTypeId");
+
+ b.HasIndex("GroupingUnitFieldId");
+
+ b.HasIndex("ScheduleExcludeTypeCalendarId");
+
+ b.HasIndex("ScheduleExcludeTypeId");
+
+ b.ToTable("Groups", "jobGroup", t =>
+ {
+ t.HasComment("Таблица описания групп работ, для реализации зонтиков");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupAutoControl", b =>
+ {
+ b.Property("JobGroupId")
+ .HasColumnType("uuid");
+
+ b.Property("InitUsedScheduleState")
+ .HasColumnType("boolean");
+
+ b.Property("InitUsedTemplateState")
+ .HasColumnType("boolean");
+
+ b.Property("IsEnable")
+ .HasColumnType("boolean");
+
+ b.HasKey("JobGroupId");
+
+ b.ToTable("AutoControls", "jobGroup", t =>
+ {
+ t.HasComment("Таблица управления автоконтролем для группы работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupDistributionConfig", b =>
+ {
+ b.Property("GroupId")
+ .HasColumnType("uuid");
+
+ b.Property("DistributionPeriodId")
+ .HasColumnType("uuid");
+
+ b.Property("IsExcludeWeekends")
+ .HasColumnType("boolean");
+
+ b.Property("IsGroupingByWorkGroup")
+ .HasColumnType("boolean");
+
+ b.HasKey("GroupId");
+
+ b.HasIndex("DistributionPeriodId");
+
+ b.ToTable("GroupDistributionConfigs", "jobGroup", t =>
+ {
+ t.HasComment("Настройки автораспределения для группы работ");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupFieldFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FieldId")
+ .HasDatabaseName("IX_FieldFilters_FieldId1");
+
+ b.HasIndex("UnitFilterId")
+ .HasDatabaseName("IX_FieldFilters_UnitFilterId1");
+
+ b.ToTable("FieldFilters", "jobGroup", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки аттрибутов ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupRelationshipFilter", b =>
+ {
+ b.Property("UnitFilterId")
+ .HasColumnType("uuid");
+
+ b.Property("FieldId")
+ .HasColumnType("uuid");
+
+ b.Property("IsFullMatch")
+ .HasColumnType("boolean");
+
+ b.Property("IsInverse")
+ .HasColumnType("boolean");
+
+ b.Property("IsParent")
+ .HasColumnType("boolean");
+
+ b.Property("ValueMask")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("UnitFilterId", "FieldId");
+
+ b.HasIndex("FieldId")
+ .HasDatabaseName("IX_RelationshipFilters_FieldId1");
+
+ b.ToTable("RelationshipFilters", "jobGroup", t =>
+ {
+ t.HasComment("Таблица фильтров связей ЭК");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsAllowJobUnitFilter")
+ .HasColumnType("boolean")
+ .HasComment("Разрешить Job фильтры. Влияет только на интерфейс. Мэтчер собирает все фильтры из группы и работ всегда.");
+
+ b.Property("IsJobGroupAutoControl")
+ .HasColumnType("boolean")
+ .HasComment("Автоконтролем управляет JobGroup? true - да JobGroup, false - Job. Влияет на интерфейс и на логику работы автоконтроля.");
+
+ b.Property("IsRelationshipsAllowed")
+ .HasColumnType("boolean")
+ .HasComment("Разрешена настройка кол-ва связей");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("GroupTypes", "jobGroup", t =>
+ {
+ t.HasComment("Таблица типов групп работ");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("4fa62e79-86bb-47c2-be1a-72a716a170fa"),
+ Code = 0,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Обычный",
+ IsAllowJobUnitFilter = true,
+ IsJobGroupAutoControl = false,
+ IsRelationshipsAllowed = false,
+ Name = "Simple"
+ },
+ new
+ {
+ Id = new Guid("6ec58b1a-5c40-47b9-b036-4fa490e8d503"),
+ Code = 1,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Зонтик",
+ IsAllowJobUnitFilter = false,
+ IsJobGroupAutoControl = true,
+ IsRelationshipsAllowed = true,
+ Name = "Umbrella"
+ },
+ new
+ {
+ Id = new Guid("318625e5-f833-436a-99df-2a382a1e71c7"),
+ Code = 2,
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Сгруппированный",
+ IsAllowJobUnitFilter = false,
+ IsJobGroupAutoControl = true,
+ IsRelationshipsAllowed = true,
+ Name = "Group"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.JobGroupEntities.JobGroupUnitFilter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("JobGroupId")
+ .HasColumnType("uuid");
+
+ b.Property("UnitFilter")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("JobGroupId");
+
+ b.ToTable("UnitFilters", "jobGroup", t =>
+ {
+ t.HasComment("Таблица описания критериев выборки ЭК, описание полей в АСУ ЕСПП");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Order", 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("ExpirationDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("GenerateDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NextStatusCode")
+ .HasColumnType("integer");
+
+ b.Property("Number")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ShortName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("StatusCode")
+ .HasColumnType("integer");
+
+ b.Property("TemplateId")
+ .HasColumnType("uuid");
+
+ b.Property("WorkGroup")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NextStatusCode");
+
+ b.HasIndex("Number")
+ .IsUnique();
+
+ b.HasIndex("StatusCode");
+
+ b.HasIndex("TemplateId");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.OrderStatus", 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("OrderStatuses");
+
+ b.HasData(
+ new
+ {
+ Code = 1,
+ Description = "1-Направлен в группу",
+ Name = "New"
+ },
+ new
+ {
+ Code = 2,
+ Description = "2-В работе",
+ Name = "InWork"
+ },
+ new
+ {
+ Code = 3,
+ Description = "3-Приостановлен",
+ Name = "Stop"
+ },
+ new
+ {
+ Code = 4,
+ Description = "4-Выполнен",
+ Name = "Complete"
+ },
+ new
+ {
+ Code = 5,
+ Description = "5-Закрыт",
+ Name = "Closed"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.ParrComponent", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("ParrComponents");
+
+ b.HasData(
+ new
+ {
+ Id = 0,
+ Description = "API",
+ Name = "Api"
+ },
+ new
+ {
+ Id = 1,
+ Description = "Загрузчик из АИХИТ",
+ Name = "AihitLoader"
+ },
+ new
+ {
+ Id = 2,
+ Description = "Синхронизатор АИХИТ",
+ Name = "AihitSyncer"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Загрузчик нарядов из ЕСПП",
+ Name = "EsppOrderLoader"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Управление нарядами ЕСПП",
+ Name = "EsppOrderManager"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Синхронизатор расписаний",
+ Name = "EsppScheduleSync"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Синхронизатор шаблонов",
+ Name = "EsppTemplateSync"
+ },
+ new
+ {
+ Id = 7,
+ Description = "Генератор шаблонов",
+ Name = "GeneratorTemplates"
+ },
+ new
+ {
+ Id = 8,
+ Description = "Авто-контроль РР",
+ Name = "JobAutoControl"
+ },
+ new
+ {
+ Id = 9,
+ Description = "Связывание нарядов ЕСПП с ПАРР (шаблонами, агентами)",
+ Name = "Master"
+ },
+ new
+ {
+ Id = 10,
+ Description = "Рассчет даты следующего срабатывания",
+ Name = "NextRun"
+ },
+ new
+ {
+ Id = 11,
+ Description = "Активатор шаблонов / расписаний",
+ Name = "TemplateActivator"
+ },
+ new
+ {
+ Id = 12,
+ Description = "Автораспределение РР",
+ Name = "TemplateDistributor"
+ },
+ new
+ {
+ Id = 13,
+ Description = "Генератор шаблонов",
+ Name = "TemplateTaskGenerator"
+ },
+ new
+ {
+ Id = 14,
+ Description = "Генератор кэша отчетов workload",
+ Name = "WorkloadBuilder"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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.HasIndex("EsppId")
+ .IsUnique();
+
+ b.ToTable("Processes");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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.Domain.Entities.RobotConfiguration", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AttemptsNumber")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LastRobotStatusUpdated")
+ .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.HasIndex("TemplateId", "RobotStatusCode");
+
+ b.HasIndex("TemplateId", "TaskStatusCode");
+
+ b.ToTable("RobotConfigurations");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.RobotEntities.RobotSnapshot", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Ip")
+ .IsRequired()
+ .HasMaxLength(45)
+ .HasColumnType("character varying(45)")
+ .HasComment("Текущий IP-адрес сервера");
+
+ b.Property("MaxRobots")
+ .HasColumnType("integer")
+ .HasComment("Максимально разрешенное количество роботов на сервере");
+
+ b.Property("ScheduleRobotsCount")
+ .HasColumnType("integer")
+ .HasComment("Количество запущенных роботов по расписаниям");
+
+ b.Property("TemplateRobotsCount")
+ .HasColumnType("integer")
+ .HasComment("Количество запущенных роботов по шаблонам");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Ip", "DateCreated");
+
+ b.ToTable("Snapshots", "robot", t =>
+ {
+ t.HasComment("Снимки роботов");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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("RobotConfigurationId")
+ .HasColumnType("uuid");
+
+ b.Property("RobotId")
+ .HasColumnType("text")
+ .HasComment("Идентификатор робота. Форматы: H20-R1-T, H20-R1-S, H20-R1-ET, H20-R1-ES.");
+
+ b.Property("RobotIp")
+ .HasColumnType("text");
+
+ b.Property("RobotMessage")
+ .HasColumnType("text");
+
+ b.Property("TaskStatusCode")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DateCreated");
+
+ b.HasIndex("TaskStatusCode");
+
+ b.HasIndex("HistoryLevel", "DateCreated")
+ .IsDescending(false, true);
+
+ b.HasIndex("RobotConfigurationId", "DateCreated");
+
+ b.ToTable("RobotHistories");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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 = "Information"
+ },
+ new
+ {
+ Level = 10,
+ Description = "Ошибка",
+ Name = "Error"
+ },
+ new
+ {
+ Level = 15,
+ Description = "Успешно завершил работу",
+ Name = "Complete"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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.Domain.Entities.Role", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Roles");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("c8f2f144-e6c2-45d7-ba66-5e9bbd376376"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Администратор",
+ Name = "administrator"
+ },
+ new
+ {
+ Id = new Guid("13bca225-7fa4-42fa-9d80-d2d46de261fe"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Description = "Робот ЕСПП",
+ Name = "espp-robot"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.EsppSchType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("EsppSchTypes", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Через интервал",
+ Name = "Interval"
+ },
+ new
+ {
+ Id = 2,
+ Description = "День недели: пнд, вт...",
+ Name = "DayOfWeek"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Число месяца: 1,2,3,4",
+ Name = "DayOfMonth"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Каждый: первый, второй, третий, четвертый, последний",
+ Name = "Order"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Месяц: январь, февраль...",
+ Name = "Month"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Месяц (родительный падеж): января, февраля...",
+ Name = "MonthGenitive"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.EsppSchTypeConfig", 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("Order")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnType("integer");
+
+ b.Property("TypeScheduleId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TypeId");
+
+ b.HasIndex("TypeScheduleId", "TypeId")
+ .IsUnique();
+
+ b.ToTable("EsppSchTypeConfigs", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("d2693562-b3eb-41e9-97db-c6b5d2ef1bea"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 1,
+ TypeScheduleId = 1
+ },
+ new
+ {
+ Id = new Guid("06b2e7aa-6927-4fbf-99fb-67c92a4fce8a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 2,
+ TypeScheduleId = 2
+ },
+ new
+ {
+ Id = new Guid("78079071-ff80-417e-9bb0-d928cec853e7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 3,
+ TypeScheduleId = 3
+ },
+ new
+ {
+ Id = new Guid("accb1d46-e1c1-4396-9182-4c0766155921"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 4,
+ TypeScheduleId = 4
+ },
+ new
+ {
+ Id = new Guid("162ffe73-2428-4abe-8f83-235c2593664c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 2,
+ TypeScheduleId = 4
+ },
+ new
+ {
+ Id = new Guid("8470d1ef-165d-42fc-ab05-8203e4d263cf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 5,
+ TypeScheduleId = 5
+ },
+ new
+ {
+ Id = new Guid("006900b5-f65c-413e-bc67-09e6dae60b7c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 3,
+ TypeScheduleId = 5
+ },
+ new
+ {
+ Id = new Guid("85635bc8-f17a-46b8-9c15-8615761be3d9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 0,
+ TypeId = 4,
+ TypeScheduleId = 6
+ },
+ new
+ {
+ Id = new Guid("439460c2-deca-4b54-80e7-2f20806696ec"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 1,
+ TypeId = 2,
+ TypeScheduleId = 6
+ },
+ new
+ {
+ Id = new Guid("5c63ad8c-e9b4-43fd-9d24-5c2eed80dadd"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ Order = 2,
+ TypeId = 6,
+ TypeScheduleId = 6
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.EsppSchTypeSchedule", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("EsppSchTypeSchedules", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Description = "Регулярно",
+ Name = "Regularly"
+ },
+ new
+ {
+ Id = 2,
+ Description = "Еженедельно",
+ Name = "Weekly"
+ },
+ new
+ {
+ Id = 3,
+ Description = "Ежемесячно",
+ Name = "Monthly"
+ },
+ new
+ {
+ Id = 4,
+ Description = "Ежемесячно-2",
+ Name = "Monthly2"
+ },
+ new
+ {
+ Id = 5,
+ Description = "Ежегодно",
+ Name = "Annually"
+ },
+ new
+ {
+ Id = 6,
+ Description = "Ежегодно-2",
+ Name = "Annually2"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.EsppSchTypeValue", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppExportValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnType("integer");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TypeId");
+
+ b.ToTable("EsppSchTypeValues", "schedule");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("6e3b5dd2-b2f7-40bc-bace-15bfa6bbd4ff"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "01:00:00",
+ Order = 0,
+ TypeId = 1,
+ Value = "Каждый час"
+ },
+ new
+ {
+ Id = new Guid("4df04834-f14f-43d9-8984-334f080f4107"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "02:00:00",
+ Order = 1,
+ TypeId = 1,
+ Value = "Каждые 2 часа"
+ },
+ new
+ {
+ Id = new Guid("dab6e3f9-2385-4966-b77c-133ad233c592"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "03:00:00",
+ Order = 2,
+ TypeId = 1,
+ Value = "Каждые 3 часа"
+ },
+ new
+ {
+ Id = new Guid("035f485d-8451-47df-bfaa-ba4dd36cf146"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "04:00:00",
+ Order = 3,
+ TypeId = 1,
+ Value = "Каждые 4 часа"
+ },
+ new
+ {
+ Id = new Guid("d627daa7-3eed-4571-acae-ffbb3c5bedb9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "06:00:00",
+ Order = 4,
+ TypeId = 1,
+ Value = "Каждые 6 часов"
+ },
+ new
+ {
+ Id = new Guid("ae0a0015-0f1e-4496-b71e-6244f7e321e7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12:00:00",
+ Order = 5,
+ TypeId = 1,
+ Value = "Каждые 12 часов"
+ },
+ new
+ {
+ Id = new Guid("8df097aa-9860-4a62-9675-a8eecd3f2ce7"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1 00:00:00",
+ Order = 6,
+ TypeId = 1,
+ Value = "Ежедневно"
+ },
+ new
+ {
+ Id = new Guid("dee32e60-c1a1-4206-98bc-aa03deabfdf6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3 00:00:00",
+ Order = 7,
+ TypeId = 1,
+ Value = "Каждые 72 часа"
+ },
+ new
+ {
+ Id = new Guid("e0465fbf-e3a5-4486-9f53-5bb85c6feeca"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4 00:00:00",
+ Order = 8,
+ TypeId = 1,
+ Value = "Каждые 96 часов"
+ },
+ new
+ {
+ Id = new Guid("4e3f73d1-a0f3-4dd1-bca9-68ada0dd5ce2"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "14 00:00:00",
+ Order = 9,
+ TypeId = 1,
+ Value = "Каждые 2 недели"
+ },
+ new
+ {
+ Id = new Guid("55833417-6a24-42f6-bcc2-5d032f883202"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "60 00:00:00",
+ Order = 10,
+ TypeId = 1,
+ Value = "Каждые 60 дней"
+ },
+ new
+ {
+ Id = new Guid("7fefa052-29db-4ce5-9c57-2fd9ff855f21"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "80 00:00:00",
+ Order = 11,
+ TypeId = 1,
+ Value = "Каждые 80 дней"
+ },
+ new
+ {
+ Id = new Guid("b0ca99f9-5ee0-45b3-bb80-948f82b1fcb1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "90 00:00:00",
+ Order = 12,
+ TypeId = 1,
+ Value = "Каждые 90 дней"
+ },
+ new
+ {
+ Id = new Guid("086f7a37-9848-423a-a3cc-36dbb5ad43e3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "182 00:00:00",
+ Order = 13,
+ TypeId = 1,
+ Value = "Каждые полгода"
+ },
+ new
+ {
+ Id = new Guid("f2da9e02-d619-4517-a598-374880a8c8e8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "540 00:00:00",
+ Order = 14,
+ TypeId = 1,
+ Value = "Каждые 1,5 года"
+ },
+ new
+ {
+ Id = new Guid("f38d7d30-8923-4ea0-aa7c-5b251e19ab61"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1095 00:00:00",
+ Order = 15,
+ TypeId = 1,
+ Value = "Каждые 3 года"
+ },
+ new
+ {
+ Id = new Guid("b7303461-9a30-43fa-8e55-305aa13f186f"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 2,
+ Value = "Понедельник"
+ },
+ new
+ {
+ Id = new Guid("e951135e-71f2-4262-9342-df4d5315ab6c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 2,
+ Value = "Вторник"
+ },
+ new
+ {
+ Id = new Guid("c34d5375-70e7-4632-b3af-30e279a0621a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 2,
+ Value = "Среда"
+ },
+ new
+ {
+ Id = new Guid("ec9540df-c2de-4bda-a063-34d02d4b6e03"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 2,
+ Value = "Четверг"
+ },
+ new
+ {
+ Id = new Guid("2ed85534-4684-4eb2-9ccb-e264d212c945"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 2,
+ Value = "Пятница"
+ },
+ new
+ {
+ Id = new Guid("a6804315-96ef-484e-82ee-c5795694468b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 2,
+ Value = "Суббота"
+ },
+ new
+ {
+ Id = new Guid("eb71e699-937f-4894-9688-f7a7f95e5e58"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 2,
+ Value = "Воскресенье"
+ },
+ new
+ {
+ Id = new Guid("e86adbfb-3345-4e0c-aa3b-b4418f9cfe88"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 3,
+ Value = "1"
+ },
+ new
+ {
+ Id = new Guid("5b4d7ca6-31e7-475b-b7c8-13c6680c3dc3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 3,
+ Value = "2"
+ },
+ new
+ {
+ Id = new Guid("0da03db0-9404-425d-bea1-5da0c9b60b59"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 3,
+ Value = "3"
+ },
+ new
+ {
+ Id = new Guid("199474c8-0a77-47e5-aab8-ba33c216cc9e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 3,
+ Value = "4"
+ },
+ new
+ {
+ Id = new Guid("e6619da1-f7e8-45b9-bbd3-9c17bec2ccd3"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 3,
+ Value = "5"
+ },
+ new
+ {
+ Id = new Guid("a8708763-c838-49a5-95fe-bf4f73518d71"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 3,
+ Value = "6"
+ },
+ new
+ {
+ Id = new Guid("7ec056aa-820c-4900-96cb-4564d2ea6398"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 3,
+ Value = "7"
+ },
+ new
+ {
+ Id = new Guid("554d7d0c-91b1-4b81-b94d-1ee864192962"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 3,
+ Value = "8"
+ },
+ new
+ {
+ Id = new Guid("8b7847a4-23de-4199-8aad-3b5c0323b5a2"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 3,
+ Value = "9"
+ },
+ new
+ {
+ Id = new Guid("fb7f41ca-950b-4dc1-a0a6-bd9a221ab2ad"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 3,
+ Value = "10"
+ },
+ new
+ {
+ Id = new Guid("a28b530f-ea38-4a2c-a16b-0b7fa3770d3c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 3,
+ Value = "11"
+ },
+ new
+ {
+ Id = new Guid("7a004a11-32e1-40ae-ab35-0d3dc3a69785"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 3,
+ Value = "12"
+ },
+ new
+ {
+ Id = new Guid("e0f2f4d1-4a5e-4997-8336-83c3c35f38df"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "13",
+ Order = 12,
+ TypeId = 3,
+ Value = "13"
+ },
+ new
+ {
+ Id = new Guid("9c5aaf48-88ec-4c67-b936-2be45550f8bf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "14",
+ Order = 13,
+ TypeId = 3,
+ Value = "14"
+ },
+ new
+ {
+ Id = new Guid("8dbd680c-ce49-4d2e-8a1a-05619685e240"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "15",
+ Order = 14,
+ TypeId = 3,
+ Value = "15"
+ },
+ new
+ {
+ Id = new Guid("2f476f70-b1ef-419d-aad5-3911f1e3231f"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "16",
+ Order = 15,
+ TypeId = 3,
+ Value = "16"
+ },
+ new
+ {
+ Id = new Guid("2c635ce2-fc18-47be-b3e9-98c211abf312"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "17",
+ Order = 16,
+ TypeId = 3,
+ Value = "17"
+ },
+ new
+ {
+ Id = new Guid("f9d5b03b-624a-4f9f-8da3-1490ea5d2914"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "18",
+ Order = 17,
+ TypeId = 3,
+ Value = "18"
+ },
+ new
+ {
+ Id = new Guid("4f4b249c-db60-4582-86ed-75cfee4edd0c"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "19",
+ Order = 18,
+ TypeId = 3,
+ Value = "19"
+ },
+ new
+ {
+ Id = new Guid("220a1464-4d39-416c-b4b2-3093eb007298"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "20",
+ Order = 19,
+ TypeId = 3,
+ Value = "20"
+ },
+ new
+ {
+ Id = new Guid("c887ca60-b05d-4d3c-ad1f-223c879b1a6d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "21",
+ Order = 20,
+ TypeId = 3,
+ Value = "21"
+ },
+ new
+ {
+ Id = new Guid("2905765d-63fb-41fe-a111-ee2f1d03d62e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "22",
+ Order = 21,
+ TypeId = 3,
+ Value = "22"
+ },
+ new
+ {
+ Id = new Guid("dbbe704a-8d6d-40e7-bd30-6974035b1fab"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "23",
+ Order = 22,
+ TypeId = 3,
+ Value = "23"
+ },
+ new
+ {
+ Id = new Guid("cf7b9645-52ed-43a2-8267-267e0aed19b1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "24",
+ Order = 23,
+ TypeId = 3,
+ Value = "24"
+ },
+ new
+ {
+ Id = new Guid("454788d6-d0ad-4c07-878c-da3fd3cd05e1"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "25",
+ Order = 24,
+ TypeId = 3,
+ Value = "25"
+ },
+ new
+ {
+ Id = new Guid("40d70d73-8582-4be6-a9e6-503b96ae3d49"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "26",
+ Order = 25,
+ TypeId = 3,
+ Value = "26"
+ },
+ new
+ {
+ Id = new Guid("8f6610dc-ef46-4842-a57e-18d7aaa75931"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "27",
+ Order = 26,
+ TypeId = 3,
+ Value = "27"
+ },
+ new
+ {
+ Id = new Guid("03858472-d4ce-47fd-9497-8051728766e4"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "28",
+ Order = 27,
+ TypeId = 3,
+ Value = "28"
+ },
+ new
+ {
+ Id = new Guid("b1018e07-e90e-42ee-b399-19f3d0c14dd6"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "29",
+ Order = 28,
+ TypeId = 3,
+ Value = "29"
+ },
+ new
+ {
+ Id = new Guid("a1669207-aa31-40fe-98d0-d941008d1655"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "30",
+ Order = 29,
+ TypeId = 3,
+ Value = "30"
+ },
+ new
+ {
+ Id = new Guid("0936aa99-73e0-43de-b6df-334c1228a226"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "31",
+ Order = 30,
+ TypeId = 3,
+ Value = "31"
+ },
+ new
+ {
+ Id = new Guid("626ca076-f09e-4a7a-8610-b7de6337b24a"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 4,
+ Value = "Первый"
+ },
+ new
+ {
+ Id = new Guid("032fbd02-67d0-4b8c-bed0-42629ab7113b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 4,
+ Value = "Второй"
+ },
+ new
+ {
+ Id = new Guid("fa8a8f60-e41e-495e-ac86-35174d9976bf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 4,
+ Value = "Третий"
+ },
+ new
+ {
+ Id = new Guid("d2f90168-2b49-42f2-820b-79db2c522adf"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 4,
+ Value = "Четвертый"
+ },
+ new
+ {
+ Id = new Guid("12bb8db2-cf7f-4113-baff-6883770f1ba5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 4,
+ Value = "Последний"
+ },
+ new
+ {
+ Id = new Guid("18260e91-3fbe-4401-9edc-78dbc419370e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 5,
+ Value = "Январь"
+ },
+ new
+ {
+ Id = new Guid("361526aa-3e1c-452e-bb44-0ade8521830d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 5,
+ Value = "Февраль"
+ },
+ new
+ {
+ Id = new Guid("fad4bdb0-6c51-4810-a30b-6d031a0d4c46"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 5,
+ Value = "Март"
+ },
+ new
+ {
+ Id = new Guid("06ab835d-3d3e-4057-8422-a553b6b40995"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 5,
+ Value = "Апрель"
+ },
+ new
+ {
+ Id = new Guid("83f56b5d-b16b-4aa5-89d7-a253fee4e4ad"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 5,
+ Value = "Май"
+ },
+ new
+ {
+ Id = new Guid("e679ec84-a9ee-4bed-a051-2b14edddcb18"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 5,
+ Value = "Июнь"
+ },
+ new
+ {
+ Id = new Guid("d439808a-6a10-409b-8809-a755b7cca60b"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 5,
+ Value = "Июль"
+ },
+ new
+ {
+ Id = new Guid("6e9972c4-6bf7-4fe4-b4ea-bbb333fb69c8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 5,
+ Value = "Август"
+ },
+ new
+ {
+ Id = new Guid("0883aac2-9d5b-4098-b672-c684d2a3a0c9"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 5,
+ Value = "Сентябрь"
+ },
+ new
+ {
+ Id = new Guid("5e6592bc-acb2-45a4-979b-fdecf8457453"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 5,
+ Value = "Октябрь"
+ },
+ new
+ {
+ Id = new Guid("edd7cb49-d6a0-4969-b2d6-1967da69b336"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 5,
+ Value = "Ноябрь"
+ },
+ new
+ {
+ Id = new Guid("dd695fb2-4ad0-4cda-a4df-e15059c56b24"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 5,
+ Value = "Декабрь"
+ },
+ new
+ {
+ Id = new Guid("2f473624-4eb3-49b4-a4b9-cc7fc08a50f5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "1",
+ Order = 0,
+ TypeId = 6,
+ Value = "Января"
+ },
+ new
+ {
+ Id = new Guid("f0003490-a249-44bd-814f-4566999915d8"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "2",
+ Order = 1,
+ TypeId = 6,
+ Value = "Февраля"
+ },
+ new
+ {
+ Id = new Guid("f4c3fe38-aeaa-42f7-a9ba-190ea2dfe339"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "3",
+ Order = 2,
+ TypeId = 6,
+ Value = "Марта"
+ },
+ new
+ {
+ Id = new Guid("06a8bd2f-68e1-42f5-961c-ac3b98a2181e"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "4",
+ Order = 3,
+ TypeId = 6,
+ Value = "Апреля"
+ },
+ new
+ {
+ Id = new Guid("963b9c41-d607-444a-9fe0-fe429590e326"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "5",
+ Order = 4,
+ TypeId = 6,
+ Value = "Мая"
+ },
+ new
+ {
+ Id = new Guid("ec8554c8-dee4-49a1-b1b7-474ad8ec1473"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "6",
+ Order = 5,
+ TypeId = 6,
+ Value = "Июня"
+ },
+ new
+ {
+ Id = new Guid("e15c7c63-e29f-41a3-9c82-f70eb6c24fde"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "7",
+ Order = 6,
+ TypeId = 6,
+ Value = "Июля"
+ },
+ new
+ {
+ Id = new Guid("0b1f3cea-301a-4d74-9ce1-2cd93b41897d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "8",
+ Order = 7,
+ TypeId = 6,
+ Value = "Августа"
+ },
+ new
+ {
+ Id = new Guid("e2fa3769-f66f-4753-a161-35adad7717a5"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "9",
+ Order = 8,
+ TypeId = 6,
+ Value = "Сентября"
+ },
+ new
+ {
+ Id = new Guid("c1de4aca-9f49-48ae-9279-cf9ec4092112"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "10",
+ Order = 9,
+ TypeId = 6,
+ Value = "Октября"
+ },
+ new
+ {
+ Id = new Guid("a74b9ebd-bcd8-4537-b371-194de2fe0a4d"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "11",
+ Order = 10,
+ TypeId = 6,
+ Value = "Ноября"
+ },
+ new
+ {
+ Id = new Guid("852a5ebd-4545-494b-bc69-c27409a41adc"),
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppExportValue = "12",
+ Order = 11,
+ TypeId = 6,
+ Value = "Декабря"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.EsppSchValue", b =>
+ {
+ b.Property("JobGroupId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeValueId")
+ .HasColumnType("uuid");
+
+ b.Property("TypeConfigId")
+ .HasColumnType("uuid");
+
+ b.HasKey("JobGroupId", "TypeValueId", "TypeConfigId");
+
+ b.HasIndex("TypeConfigId");
+
+ b.HasIndex("TypeValueId");
+
+ b.ToTable("EsppSchValues", "schedule");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.ScheduleExcludeType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EsppValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ExcludeTypes", "schedule", t =>
+ {
+ t.HasComment("Расписание регламентной работы - Тип исключения");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("0595b8e0-f322-4661-b5e3-064af8fbe7cd"),
+ Code = "None",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Нет исключений",
+ EsppValue = "NONE",
+ Title = "Нет исключений"
+ },
+ new
+ {
+ Id = new Guid("2b7a4356-9aaf-4e00-b444-42f0b5010e25"),
+ Code = "Only",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Выполнить ТОЛЬКО В указанном календаре",
+ EsppValue = "ONLY",
+ Title = "Выполнить ТОЛЬКО В указанном календаре"
+ },
+ new
+ {
+ Id = new Guid("38cd9e64-27c1-4672-a805-2211952a48bd"),
+ Code = "Except",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "Выполнить везде, КРОМЕ указанного календаря",
+ EsppValue = "EXCEPT",
+ Title = "Выполнить везде, КРОМЕ указанного календаря"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.ScheduleExcludeTypeCalendar", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EsppName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("EsppValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("ExcludeTypeCalendars", "schedule", t =>
+ {
+ t.HasComment("Расписание регламентной работы, исключение - Календарь");
+ });
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("a26edb88-0267-4fbf-b7ec-d172b0a86c9c"),
+ Code = "24x5",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "24x5",
+ EsppValue = "24x5",
+ Title = "24x5"
+ },
+ new
+ {
+ Id = new Guid("6834f1d5-ac51-43d5-974e-4c759d7bbf9f"),
+ Code = "24x7",
+ DateCreated = new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)),
+ EsppName = "24x7",
+ EsppValue = "24x7",
+ Title = "24x7"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.Schedule.ScheduleResponseAreaTimeOffset", b =>
+ {
+ b.Property("ResponseArea")
+ .HasColumnType("text");
+
+ b.Property("EsppValue")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("UtcTimeOffset")
+ .HasColumnType("interval");
+
+ b.HasKey("ResponseArea");
+
+ b.ToTable("ResponseAreaTimeOffsets", "schedule", t =>
+ {
+ t.HasComment("Расписание в ЕСПП. Смещение часового пояса относительно МСК для зоны ответственности рабочей группы");
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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 = "АКСЕНОВ АЛЕКСАНДР ЕВГЕНЬЕВИЧ (AKSENOVAE@GVC.OAO.RZD)"
+ },
+ new
+ {
+ Name = "ClosingCode",
+ Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.",
+ Value = "выполнен"
+ },
+ new
+ {
+ Name = "Category",
+ Description = "Категория создаваемого объекта в ЕСПП",
+ Value = "регламентная работа"
+ },
+ new
+ {
+ Name = "TemplatePrefixName",
+ Description = "Префикс имени шаблона в ЕСПП",
+ Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР"
+ },
+ new
+ {
+ Name = "RobotAttemptsNumber",
+ Description = "Количество попыток выполнения задания роботом",
+ Value = "3"
+ },
+ new
+ {
+ Name = "RobotWaitTime",
+ Description = "Время ожидания выполнения роботом задания",
+ Value = "00:10:00"
+ },
+ new
+ {
+ Name = "EsppScheduleTimezone",
+ Description = "Расписание регламентной работы - В каком часовом поясе",
+ Value = "MSK"
+ },
+ new
+ {
+ Name = "ScheduleRepeatRange",
+ Description = "Расписание регламентной работы - Диапазн повторов",
+ Value = "Отсутствует дата завершения"
+ },
+ new
+ {
+ Name = "OrderSearchDeltaDate",
+ Description = "Промежуток времени для поиска нарядов в ЕСПП",
+ Value = "01:30:00"
+ },
+ new
+ {
+ Name = "EsppRobotAccountTimeZoneHour",
+ Description = "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)",
+ Value = "3"
+ },
+ new
+ {
+ Name = "WeekendCacheTtl",
+ Description = "Время хранения в кэше данных о выходных и рабочих днях",
+ Value = "01:00:00"
+ },
+ new
+ {
+ Name = "TemplateNameConstantParts",
+ Description = "Список неизменных частей имени шаблона",
+ Value = "[{\"Name\":\"П-1\",\"Value\":\"ЭИТИ-ПАРР\"}]"
+ },
+ new
+ {
+ Name = "EsppUnitTag",
+ Description = "Префикс тега в поле ЭК \"Дополнительная информация\"",
+ Value = "ПАРР_"
+ },
+ new
+ {
+ Name = "JobIdForUnusedTemplates",
+ Description = "Job в который перемещаем ниспользованные шаблоны",
+ Value = "8f85a91c-a223-4686-bb69-1f0ee73624f2"
+ },
+ new
+ {
+ Name = "DefaultResponseAreaToTimeOffset",
+ Description = "Зона ответственности для получения тайм зоны по умолчанию для расписаний",
+ Value = "17-МСК"
+ });
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.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("EsppId")
+ .IsUnique();
+
+ b.HasIndex("ProcessId");
+
+ b.ToTable("Subprocesses");
+ });
+
+ modelBuilder.Entity("PARR.Domain.Entities.TaskEntities.TaskError", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AttemptNumber")
+ .HasColumnType("integer");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ErrorMessage")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property