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

namespace SkyArtShop.Controllers
{
    public class BlogController : Controller
    {
        private readonly MongoDBService _mongoService;
        private readonly string _blogCollection = "BlogPosts";

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

        public async Task<IActionResult> Index()
        {
            var posts = await _mongoService.GetAllAsync<BlogPost>(_blogCollection);
            var publishedPosts = posts
                .Where(p => p.IsPublished)
                .OrderByDescending(p => p.PublishedDate)
                .ToList();
            
            return View(publishedPosts);
        }

        public async Task<IActionResult> Post(string slug)
        {
            var posts = await _mongoService.GetAllAsync<BlogPost>(_blogCollection);
            var post = posts.FirstOrDefault(p => p.Slug == slug && p.IsPublished);
            
            if (post == null)
            {
                return NotFound();
            }

            return View(post);
        }
    }
}
