diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs
index 6e55f8a1..bf7af6ea 100644
--- a/PARR.API/Contracts/V1/ApiRoutes.cs
+++ b/PARR.API/Contracts/V1/ApiRoutes.cs
@@ -68,6 +68,11 @@
public const string GetAll = Base + "/template-statuses/";
}
+ public static class GeneratorTemplate
+ {
+ public const string Create = Base + "/generator-templates/";
+ }
+
//public static class Layer
//{
diff --git a/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs b/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs
new file mode 100644
index 00000000..3f3e99d3
--- /dev/null
+++ b/PARR.API/Contracts/V1/Requests/GeneratorTemplateRequest.cs
@@ -0,0 +1,25 @@
+namespace PARR.API.Contracts.V1.Requests
+{
+ public class GeneratorTemplateRequest
+ {
+ ///
+ /// Id работы
+ ///
+ public Guid WorkId { get; set; }
+
+ ///
+ /// Id приложения
+ ///
+ public Guid ApplicationId { get; set; }
+
+ ///
+ /// Действие: create, deactivate
+ ///
+ public required string Action { get; set; }
+
+ ///
+ /// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
+ ///
+ public required string Ek { get; set; }
+ }
+}
diff --git a/PARR.API/Controllers/V1/GeneratorTemplateController.cs b/PARR.API/Controllers/V1/GeneratorTemplateController.cs
new file mode 100644
index 00000000..9901e7aa
--- /dev/null
+++ b/PARR.API/Controllers/V1/GeneratorTemplateController.cs
@@ -0,0 +1,37 @@
+using FluentValidation;
+using Microsoft.AspNetCore.Mvc;
+using PARR.API.Contracts.V1;
+using PARR.API.Contracts.V1.Requests;
+using PARR.API.Contracts.V1.Responses.Base;
+using PARR.API.Controllers.V1.Base;
+
+namespace PARR.API.Controllers.V1
+{
+ public class GeneratorTemplateController : BaseApiController
+ {
+ private readonly IValidator validator;
+
+ public GeneratorTemplateController(
+ IValidator validator
+ )
+ {
+ this.validator = validator;
+ }
+
+ ///
+ /// Запрос на генерацию шаблонов
+ ///
+ ///
+ [HttpPost(ApiRoutes.GeneratorTemplate.Create)]
+ public async Task Create([FromBody] GeneratorTemplateRequest request)
+ {
+ var resultValidate = await validator.ValidateAsync(request);
+ if (!resultValidate.IsValid)
+ return BadRequest(new Response(resultValidate.Errors));
+
+
+
+ return Ok();
+ }
+ }
+}
diff --git a/PARR.API/Validators/.gitkeep b/PARR.API/Validators/.gitkeep
deleted file mode 100644
index 9093214c..00000000
--- a/PARR.API/Validators/.gitkeep
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace PARR.API.Validators
-{
- public class _
- {
- }
-}
diff --git a/PARR.API/Validators/GeneratorTemplateRequestValidator.cs b/PARR.API/Validators/GeneratorTemplateRequestValidator.cs
new file mode 100644
index 00000000..44ebc03e
--- /dev/null
+++ b/PARR.API/Validators/GeneratorTemplateRequestValidator.cs
@@ -0,0 +1,18 @@
+using FluentValidation;
+using PARR.API.Contracts.V1.Requests;
+using PARR.BLL.Contracts;
+
+namespace PARR.API.Validators
+{
+ public class GeneratorTemplateRequestValidator : AbstractValidator
+ {
+ public GeneratorTemplateRequestValidator()
+ {
+ RuleFor(t => t.WorkId).NotEmpty();
+ RuleFor(t => t.ApplicationId).NotEmpty();
+ RuleFor(t => t.Ek).NotEmpty();
+ RuleFor(t => t.Action).Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString())
+ .WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}");
+ }
+ }
+}
diff --git a/PARR.BLL/Contracts/GenerateTemplateActionsEnum.cs b/PARR.BLL/Contracts/GenerateTemplateActionsEnum.cs
new file mode 100644
index 00000000..ecfbbc5d
--- /dev/null
+++ b/PARR.BLL/Contracts/GenerateTemplateActionsEnum.cs
@@ -0,0 +1,11 @@
+namespace PARR.BLL.Contracts
+{
+ ///
+ /// Действия при генерации шаблонов
+ ///
+ public enum GenerateTemplateActionsEnum
+ {
+ create,
+ deactivate
+ }
+}