using F9WebAiTest.Application.Common;
using F9WebAiTest.Application.Dtos.Prod;
using F9WebAiTest.Application.Services.Prod;
using F9WebAiTest.Domain.Common;
using F9WebAiTest.Domain.Enums.SYS.Employees;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace F9WebAiTest.Api.Controllers.Prod;
/// 看台排班(生产-前缫):车头工 / 挡车工 / 值班长
[ApiController]
[Route("api/prod/ktpb")]
[Authorize]
public class KtpbController : ControllerBase
{
private readonly IKtpbService _svc;
public KtpbController(IKtpbService svc) => _svc = svc;
// ---------- 下拉 ----------
/// 车间下拉(职责类型=前缫)
[HttpGet("qianxian-deps")]
public async Task GetQianxianDeps()
=> Ok(ApiResult>.Ok(await _svc.GetQianxianDepsAsync()));
/// 机组下拉(含车台范围,来源于机组车台)
[HttpGet("jizu-options")]
public async Task GetJizuOptions([FromQuery] long depId)
=> Ok(ApiResult>.Ok(await _svc.GetJizuOptionsAsync(depId)));
// ---------- 车头工 ----------
[HttpGet("ctg")]
public async Task GetCtgPaged([FromQuery] long depId = 0, [FromQuery] Prod_Banci_Enum? banci = null,
[FromQuery] int? jizu = null, [FromQuery] string like = "", [FromQuery] int pageIndex = 1,
[FromQuery] int pageSize = 20)
=> Ok(ApiResult>.Ok(
await _svc.GetCtgPagedAsync(depId, banci, jizu, like ?? string.Empty, pageIndex, pageSize)));
[HttpGet("ctg/{id}")]
public async Task GetCtgById(long id)
{
try { return Ok(ApiResult.Ok(await _svc.GetCtgByIdAsync(id))); }
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult