using Microsoft.AspNetCore.Mvc; using LittleShop.Services; using LittleShop.DTOs; namespace LittleShop.Controllers; [ApiController] [Route("api/[controller]")] public class TestController : ControllerBase { private readonly ICategoryService _categoryService; private readonly IProductService _productService; public TestController(ICategoryService categoryService, IProductService productService) { _categoryService = categoryService; _productService = productService; } [HttpPost("create-product")] public async Task CreateTestProduct() { try { // Get the first category var categories = await _categoryService.GetAllCategoriesAsync(); var firstCategory = categories.FirstOrDefault(); if (firstCategory == null) { return BadRequest("No categories found. Create a category first."); } var product = await _productService.CreateProductAsync(new CreateProductDto { Name = "Test Product via API", Description = "This product was created via the test API endpoint 🚀", Price = 49.99m, Weight = 0.5m, WeightUnit = LittleShop.Enums.ProductWeightUnit.Pounds, CategoryId = firstCategory.Id }); return Ok(new { message = "Product created successfully", product = product }); } catch (Exception ex) { return BadRequest(new { error = ex.Message }); } } [HttpPost("setup-test-data")] public async Task SetupTestData() { try { // Create test category var category = await _categoryService.CreateCategoryAsync(new CreateCategoryDto { Name = "Electronics", Description = "Electronic devices and gadgets" }); // Create test product var product = await _productService.CreateProductAsync(new CreateProductDto { Name = "Sample Product", Description = "This is a test product with emoji support 📱💻", Price = 99.99m, Weight = 1.5m, WeightUnit = LittleShop.Enums.ProductWeightUnit.Pounds, CategoryId = category.Id }); return Ok(new { message = "Test data created successfully", category = category, product = product }); } catch (Exception ex) { return BadRequest(new { error = ex.Message }); } } }