using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;

namespace SkyArtShop.Controllers;

[Route("diagnostics")]
public class DiagnosticsController : Controller
{
	private readonly MongoDBService _mongoService;

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

	[HttpGet("products")]
	public async Task<IActionResult> Products()
	{
		var data = (await _mongoService.GetAllAsync<Product>("Products")).Select((Product p) => new
		{
			Id = p.Id,
			Name = p.Name,
			ImageUrl = p.ImageUrl,
			ImagesCount = (p.Images?.Count ?? 0),
			FirstImage = p.Images?.FirstOrDefault(),
			HasImageUrl = !string.IsNullOrEmpty(p.ImageUrl),
			HasImages = (p.Images != null && p.Images.Any())
		}).ToList();
		return Json(data);
	}
}
