using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

using WeatherForecast.Models.Responses;

namespace WeatherForecast.Controllers;

/// <summary>
/// 
/// </summary>
[AllowAnonymous]
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase {
  private static readonly string[] Summaries = new[] {
    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
  };

  /// <summary>
  /// 
  /// </summary>
  public WeatherForecastController() { }

  /// <summary>
  /// 
  /// </summary>
  /// <returns></returns>
  [HttpGet(Name = "GetWeatherForecast")]
  public IEnumerable<WeatherForecastResponseModel> Get() {
    return Enumerable.Range(1, 5).Select(index => new WeatherForecastResponseModel {
      Date = DateTime.Now.AddDays(index),
      TemperatureC = Random.Shared.Next(-20, 55),
      Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    })
    .ToArray();
  }
}