using Admin.NET.Plugin.AiDOP.Dto.S8.Demo;
using Admin.NET.Plugin.AiDOP.Service.S8.Demo;
namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
///
/// ORDER-FLOW-BE-DEMO-DATASET-RESET-1:S8 demo 订单执行档案只读端点。
/// 双口径:/orders 返回 20 条明细;/aggregate-snapshot 返回独立 105 单基线快照(非明细汇总)。
///
[ApiController]
[Route("api/aidop/s8/demo/order-flow")]
[NonUnify]
public class AdoS8DemoOrderFlowController : ControllerBase
{
private readonly S8DemoOrderFlowService _svc;
public AdoS8DemoOrderFlowController(S8DemoOrderFlowService svc) => _svc = svc;
/// 20 条 demo 订单明细,含完整 5 阶段 lifecycle。供 overview / chain 单订单使用。
[HttpGet("orders")]
public async Task ListOrdersAsync()
{
var list = await _svc.ListOrdersAsync();
return Ok(list);
}
/// 单订单详情(备用接口;前端默认从 /orders 缓存中查 soNo)。
[HttpGet("orders/{soNo}")]
public async Task GetOrderAsync(string soNo)
{
var order = await _svc.GetOrderAsync(soNo);
if (order == null) return NotFound(new { message = $"未找到订单 {soNo}" });
return Ok(order);
}
/// chain 默认全选基线快照(独立 105 单展示快照,与 /orders 明细不同源)。
[HttpGet("aggregate-snapshot")]
public async Task GetAggregateSnapshotAsync()
{
var snap = await _svc.GetAggregateSnapshotAsync();
if (snap == null) return NotFound(new { message = "未找到 CHAIN_AGGREGATE_BASELINE 快照" });
return Ok(snap);
}
}