using Fengling.AuthService.ViewModels;
using Microsoft.AspNetCore.Mvc;

namespace Fengling.AuthService.Controllers;

[Route("dashboard")]
public class DashboardController : Controller
{
    private readonly ILogger<DashboardController> _logger;

    public DashboardController(ILogger<DashboardController> logger)
    {
        _logger = logger;
    }

    [HttpGet("")]
    [HttpGet("index")]
    public IActionResult Index()
    {
        if (User.Identity?.IsAuthenticated != true)
        {
            return RedirectToAction("Login", "Account", new { returnUrl = "/dashboard" });
        }

        return View("Index", new DashboardViewModel
        {
            Username = User.Identity?.Name,
            Email = User.FindFirst(System.Security.Claims.ClaimTypes.Email)?.Value
        });
    }

    [HttpGet("profile")]
    public IActionResult Profile()
    {
        if (User.Identity?.IsAuthenticated != true)
        {
            return RedirectToAction("Login", "Account", new { returnUrl = "/dashboard/profile" });
        }

        return View(new DashboardViewModel
        {
            Username = User.Identity?.Name,
            Email = User.FindFirst(System.Security.Claims.ClaimTypes.Email)?.Value
        });
    }

    [HttpGet("settings")]
    public IActionResult Settings()
    {
        if (User.Identity?.IsAuthenticated != true)
        {
            return RedirectToAction("Login", "Account", new { returnUrl = "/dashboard/settings" });
        }

        return View(new DashboardViewModel
        {
            Username = User.Identity?.Name,
            Email = User.FindFirst(System.Security.Claims.ClaimTypes.Email)?.Value
        });
    }
}
