﻿using KernelRecordsMVC.Infrastructure.Data;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace KernelRecordsMVC.Web.Controllers;

public class ArtistController : Controller
{
    private readonly KernelRecordsContext _context;

    public ArtistController(KernelRecordsContext context)
    {
        _context = context;
    }


    // =========================================================
    // ARTIST LIST
    // =========================================================

    [HttpGet]
    public IActionResult Index()
    {
        var artists = _context.Artists
            .OrderBy(a => a.ArtistName)
            .ToList();

        return View(artists);
    }


    // =========================================================
    // ARTIST DETAILS
    // =========================================================

    [HttpGet]
    public IActionResult Details(long id)
    {
        var artist = _context.Artists
            .Include(a => a.ReleaseArtists)
            .ThenInclude(ra => ra.Release)
            .ThenInclude(r => r.Products)
            .FirstOrDefault(a =>
                a.ArtistId == id);

        if (artist == null)
            return NotFound();

        return View(artist);
    }
}