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("api/[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); } } /// /// Updates a season /// /// Updated season information /// [HttpPatch] public IActionResult Patch(PatchSeason request) { //TODO: Protect Endpoint try { seasonManager.PatchSeason(request); return Ok(); } catch (Exception e) { return BadRequest(e.Message); } } /// /// Deletes a season /// /// SeasonId to delete /// [HttpDelete] public IActionResult Delete(Guid seasonId) { //TODO: Protect Endpoint try { seasonManager.DeleteSeason(seasonId); return Ok(); } catch (Exception e) { return BadRequest(e.Message); } } }