using TeleWave.Application.Common.Models;

namespace TeleWave.Application.Library;

public static class ShowErrors
{
    public static readonly Error NotFound = Error.NotFound("Shows.NotFound", "Шоу не найдено.");

    public static readonly Error EpisodeNotFound = Error.NotFound(
        "Shows.EpisodeNotFound",
        "Серия не найдена."
    );

    public static readonly Error SingleAlreadyHasEpisode = Error.Conflict(
        "Shows.SingleAlreadyHasEpisode",
        "Больше одной серии бывает только у сериала."
    );

    /// <summary>
    /// Шоу занято будущим эфиром. Каналы и время перечисляем в тексте: «пересоберите расписание»
    /// без ответа на вопрос «какого канала» заставляет обходить их все и гадать, где именно оно.
    /// </summary>
    public static Error InFutureSchedule(string channels) =>
        Error.Conflict(
            "Shows.InFutureSchedule",
            $"Шоу стоит в уже сгенерированном эфире ({channels}). Откройте канал, нажмите "
                + "«Применить» — хвост ленты пересоберётся по текущей сетке — и повторите удаление."
        );

    public static readonly Error AssetNotFound = Error.NotFound(
        "Shows.AssetNotFound",
        "Медиа-ассет для серии не найден."
    );
}
