namespace AIStudio.Assistants.BatchProcessing;
///
/// The result of processing one file within a batch run.
///
public sealed class BatchProcessingFileResult
{
///
/// The absolute path of the processed file.
///
public required string FilePath { get; init; }
///
/// The file name of the processed file.
///
public required string FileName { get; init; }
///
/// The path of the file relative to the input folder. For files directly
/// inside the input folder, this is the file name.
///
///
/// This is the identity of the document within a batch run: it is written
/// to the log and is used to recognize the document when a previous run is
/// continued. The file name alone would not be sufficient, because two
/// subfolders may contain a document of the same name.
///
public required string RelativePath { get; init; }
///
/// The processing state of the file.
///
public BatchProcessingFileStatus Status { get; set; } = BatchProcessingFileStatus.QUEUED;
///
/// An optional message, e.g., the error message when the processing failed.
///
public string Message { get; set; } = string.Empty;
///
/// The AI answer for this file.
///
public string ResultText { get; set; } = string.Empty;
///
/// The model which produced the answer for this file.
///
///
/// We store the model per file instead of reading the currently selected
/// model when writing the results table. Otherwise, changing the model
/// between two batch runs would relabel the rows of the previous run.
///
public string ModelName { get; set; } = string.Empty;
///
/// The time when the processing of this file finished.
///
public DateTimeOffset ProcessedAt { get; set; }
}