using AIStudio.Settings;
namespace AIStudio.Tools.Services.Indexing;
///
/// Which transcription provider may hear the audio and video files of a data source.
///
/// The provider, or null when none may.
/// Why audio and video files without a transcript are left out when no provider may hear them; null when there is a provider.
internal sealed record MediaTranscriptionAvailability(TranscriptionProvider? Provider, DataSourceEmbeddingIgnoreReason? IgnoreReason)
{
///
/// No usable transcription provider is configured.
///
public static readonly MediaTranscriptionAvailability MISSING = new(null, DataSourceEmbeddingIgnoreReason.TRANSCRIPTION_PROVIDER_MISSING);
///
/// The configured transcription provider falls short of the confidence level of the data source.
///
public static readonly MediaTranscriptionAvailability NOT_ALLOWED = new(null, DataSourceEmbeddingIgnoreReason.TRANSCRIPTION_PROVIDER_NOT_ALLOWED);
///
/// The given provider may hear the media files.
///
/// The provider.
/// The availability.
public static MediaTranscriptionAvailability Allowed(TranscriptionProvider provider) => new(provider, null);
}