using DeepDrftModels.DTOs;
using Microsoft.AspNetCore.Components;

namespace DeepDrftManager.Components.Pages.Tracks;

/// <summary>
/// A dedicated, header-labelled grid column for a medium-specific row affordance (e.g. Mix waveform
/// generate, Session hero upload) in <see cref="CmsAlbumBrowser"/>. A per-medium host declares zero or
/// more of these; the grid renders one extra header cell and one extra per-row cell for each, positioned
/// between the Tracks column and the universal Actions (Edit/Delete) column. The <see cref="Cell"/>
/// fragment is handed each release; the host recovers its typed row state via its own RowFor lookup.
/// </summary>
/// <param name="Header">Column header label (e.g. "Waveform", "Hero").</param>
/// <param name="Cell">Per-row cell content for a given release.</param>
public sealed record SpecialActionColumn(string Header, RenderFragment<ReleaseDto> Cell);
