using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;

namespace SkyArtShop.ViewComponents
{
    public class NavigationViewComponent : ViewComponent
    {
        private readonly MongoDBService _mongoService;

        public NavigationViewComponent(MongoDBService mongoService)
        {
            _mongoService = mongoService;
        }

        public async Task<IViewComponentResult> InvokeAsync(string location = "navbar")
        {
            var menuItems = await _mongoService.GetAllAsync<MenuItem>("MenuItems");
            
            if (location == "dropdown")
            {
                // For dropdown: must be Active AND ShowInDropdown
                var dropdownItems = menuItems
                    .Where(m => m.IsActive && m.ShowInDropdown)
                    .OrderBy(m => m.DisplayOrder)
                    .ToList();
                return View(dropdownItems);
            }
            else
            {
                // For navbar: must be Active AND ShowInNavbar
                var navbarItems = menuItems
                    .Where(m => m.IsActive && m.ShowInNavbar)
                    .OrderBy(m => m.DisplayOrder)
                    .ToList();
                return View(navbarItems);
            }
        }
    }
}
