using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using LittleShop.Services; using LittleShop.DTOs; namespace LittleShop.Areas.Admin.Controllers; [Area("Admin")] [Authorize(Policy = "AdminOnly")] public class OrdersController : Controller { private readonly IOrderService _orderService; public OrdersController(IOrderService orderService) { _orderService = orderService; } public async Task Index() { var orders = await _orderService.GetAllOrdersAsync(); return View(orders.OrderByDescending(o => o.CreatedAt)); } public async Task Details(Guid id) { var order = await _orderService.GetOrderByIdAsync(id); if (order == null) { return NotFound(); } return View(order); } [HttpPost] public async Task UpdateStatus(Guid id, UpdateOrderStatusDto model) { var success = await _orderService.UpdateOrderStatusAsync(id, model); if (!success) { return NotFound(); } return RedirectToAction(nameof(Details), new { id }); } }