using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using LingAdmin.API.Data; using LingAdmin.API.Models; using LingAdmin.API.DTOs; namespace LingAdmin.API.Controllers; [ApiController] [Route("api/[controller]")] public class MenusController : ControllerBase { private readonly AppDbContext _context; private readonly ILogger _logger; public MenusController(AppDbContext context, ILogger logger) { _context = context; _logger = logger; } [HttpGet] public async Task>>> GetMenus() { try { var menus = await _context.MenuItems .OrderBy(m => m.Order) .Select(m => new { name = m.Name, path = m.Path, icon = m.Icon }) .ToListAsync(); return Ok(ApiResponse>.Success(menus.Cast().ToList())); } catch (Exception ex) { _logger.LogError(ex, "Error retrieving menus"); return StatusCode(500, ApiResponse>.Error("Internal server error", 500)); } } }