using api.Interfaces;
using Microsoft.AspNetCore.Mvc;
using models.Core;
using models.Request;
namespace api.Controllers;
///
/// Endpoints for Season Management
///
/// Event Manager Service
[ApiController]
[Route("[controller]")]
public class SeasonController(ISeasonManager seasonManager) : ControllerBase
{
///
/// Adds a season to the database
///
/// Season to add
///
[HttpPost]
public IActionResult Post([FromBody] AddSeason request)
{
//TODO: Protect Endpoint
try
{
seasonManager.AddSeason(request);
return Ok();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
///
/// Gets all seasons
///
/// List of Seasons
[HttpGet]
public ActionResult> Get()
{
//TODO: Protect Endpoint
try
{
return Ok(seasonManager.GetSeasons());
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
///
/// Adds an event to a season
///
/// Season Id
/// Event Id
///
[HttpPut]
public IActionResult Put(Guid eventId, Guid seasonId)
{
//TODO: Protect Endpoint
try
{
seasonManager.AddEventToSeason(eventId, seasonId);
return Ok();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
}