feat(core,api): Детали по заданиями роботов

This commit is contained in:
Mikhail Trubnikov
2026-07-29 09:50:21 +10:00
parent 56cdca0502
commit 7d5fb23daf
18 changed files with 4435 additions and 36 deletions

View File

@@ -2,7 +2,9 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using PARR.API.Contracts.V1;
using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Controllers.V1.Base;
using PARR.Core.Services.RobotStatusDetails.Interfaces;
using PARR.Domain.Common.Roles;
using PARR.Domain.Enums;
@@ -15,12 +17,15 @@ namespace PARR.API.Controllers.V1.Statistics
public class StatRobotStatusDetailsController : BaseApiController
{
private readonly IMapper _mapper;
private readonly IRobotStatusDetailsService _robotStatusDetailsService;
public StatRobotStatusDetailsController(
IMapper mapper
IMapper mapper,
IRobotStatusDetailsService robotStatusDetailsService
)
{
_mapper = mapper;
_robotStatusDetailsService = robotStatusDetailsService;
}
@@ -33,7 +38,10 @@ namespace PARR.API.Controllers.V1.Statistics
[HttpGet(ApiRoutes.StatRobotStatusDetails.Details)]
public async Task<IActionResult> Details([FromRoute] RobotsEnum robot, [FromRoute] RobotStatusEnum status)
{
return Ok();
var details = await _robotStatusDetailsService.GetDetailsAsync(robot, status);
var response = _mapper.Map<StatRobotStatusDetailsResponse>(details);
return Ok(new Response<StatRobotStatusDetailsResponse>(response, true));
}
}

View File

@@ -0,0 +1,19 @@
using PARR.API.Contracts.V1.Responses;
namespace PARR.API.Controllers.V1.Statistics
{
public record StatRobotStatusDetailsResponse
{
public RobotResponse Robot { get; init; } = null!;
public RobotStatusResponse Status { get; init; } = null!;
public List<StatRobotStatusGroupDetailsResponse> Details { get; init; } = null!;
}
public record StatRobotStatusGroupDetailsResponse
{
public JobGroupShortResponse JobGroup { get; init; } = null!;
public int TemplatesCount { get; init; }
}
}

View File

@@ -2,6 +2,8 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using PARR.API.Contracts.V1;
using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Contracts.V1.Responses.Statistics;
using PARR.API.Controllers.V1.Base;
using PARR.Core.Services.RobotTaskDetailsServices.Interfaces;
using PARR.Domain.Common.Roles;
@@ -38,8 +40,9 @@ namespace PARR.API.Controllers.V1.Statistics
public async Task<IActionResult> Details([FromRoute] RobotsEnum robot, [FromRoute] TaskStatusEnum task)
{
var details = await _robotTaskDetailsService.GetDetailsAsync(robot, task);
var response = _mapper.Map<StatRobotTaskDetailsResponse>(details);
return Ok();
return Ok(new Response<StatRobotTaskDetailsResponse>(response, true));
}
}