using CampusWorkshops.Api.Dtos;
using CampusWorkshops.Api.Models;
using CampusWorkshops.Api.Repositories;
using Microsoft.AspNetCore.Mvc;
namespace CampusWorkshops.Api.Controllers;
[ApiController]
[Route("api/[controller]")]
public class WorkshopsController : ControllerBase
{
private readonly IWorkshopRepository _repo;
public WorkshopsController(IWorkshopRepository repo) => _repo = repo;
/// Lista workshops com filtros opcionais.
[HttpGet]
public Task GetAll([FromQuery] DateTimeOffset? from, [FromQuery] DateTimeOffset? to, [FromQuery] string? q, CancellationToken ct)
{
// TODO: implementar usando _repo.GetAllAsync e mapear para WorkshopResponse
return Task.FromResult(Ok(Array.Empty()));
}
/// Obtém um workshop por Id.
[HttpGet("{id:guid}")]
public Task GetById(Guid id, CancellationToken ct)
{
// TODO: implementar usando _repo.GetByIdAsync
return Task.FromResult(NotFound());
}
/// Cria um novo workshop.
[HttpPost]
public Task Create([FromBody] CreateWorkshopRequest body, CancellationToken ct)
{
// TODO: validar ModelState, regras de negócio e chamar _repo.AddAsync; retornar CreatedAtAction
return Task.FromResult(BadRequest());
}
}