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); }