// src/Webshop.Api/Controllers/Admin/AdminSuppliersController.cs using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Webshop.Application.DTOs; // SupplierDto using Webshop.Application.Services.Admin; namespace Webshop.Api.Controllers.Admin { [ApiController] [Route("api/v1/admin/[controller]")] // z.B. /api/v1/admin/suppliers [Authorize(Roles = "Admin")] // Nur Admins public class AdminSuppliersController : ControllerBase { private readonly AdminSupplierService _adminSupplierService; public AdminSuppliersController(AdminSupplierService adminSupplierService) { _adminSupplierService = adminSupplierService; } [HttpGet] public async Task>> GetAllSuppliers() { var suppliers = await _adminSupplierService.GetAllSuppliersAsync(); return Ok(suppliers); } [HttpPost] public async Task> CreateSupplier([FromBody] SupplierDto supplierDto) { if (!ModelState.IsValid) return BadRequest(ModelState); var createdSupplier = await _adminSupplierService.CreateSupplierAsync(supplierDto); return CreatedAtAction(nameof(GetSupplierById), new { id = createdSupplier.Id }, createdSupplier); } [HttpGet("{id}")] public async Task> GetSupplierById(Guid id) { var supplier = await _adminSupplierService.GetSupplierByIdAsync(id); if (supplier == null) return NotFound(); return Ok(supplier); } } }