using Jellyfin.Plugin.SRFPlay.Api;
using Jellyfin.Plugin.SRFPlay.Configuration;
using Jellyfin.Plugin.SRFPlay.Services.Interfaces;
using Microsoft.Extensions.Logging;

namespace Jellyfin.Plugin.SRFPlay.Channels;

/// <summary>
/// Radiotelevisione svizzera — Swiss Italian channel.
/// </summary>
public sealed class RsiChannel : SrgChannelBase
{
    /// <summary>
    /// Initializes a new instance of the <see cref="RsiChannel"/> class.
    /// </summary>
    /// <param name="loggerFactory">The logger factory.</param>
    /// <param name="contentRefreshService">The content refresh service.</param>
    /// <param name="streamResolver">The stream resolver.</param>
    /// <param name="mediaSourceFactory">The media source factory.</param>
    /// <param name="categoryService">The category service.</param>
    /// <param name="apiClientFactory">The API client factory.</param>
    /// <param name="recordingService">The recording service.</param>
    public RsiChannel(
        ILoggerFactory loggerFactory,
        IContentRefreshService contentRefreshService,
        IStreamUrlResolver streamResolver,
        IMediaSourceFactory mediaSourceFactory,
        ICategoryService? categoryService,
        ISRFApiClientFactory apiClientFactory,
        IRecordingService recordingService)
        : base(loggerFactory, contentRefreshService, streamResolver, mediaSourceFactory, categoryService, apiClientFactory, recordingService)
    {
    }

    /// <inheritdoc />
    protected override BusinessUnit Unit => BusinessUnit.RSI;

    /// <inheritdoc />
    protected override string LogoResourceName => "Jellyfin.Plugin.SRFPlay.Images.rsi-logo.png";

    /// <inheritdoc />
    public override string Description => "Radiotelevisione svizzera — Swiss Italian video-on-demand content";
}
