namespace AIStudio.Tools.Databases;
///
/// Where a stored chunk is in its document, as the index store keeps it.
///
///
/// Each value is null when the document has no such thing, and for a chunk stored before the value
/// was kept: it reads as unknown then. The vector store keeps only the pages, so a hit of the vector
/// search learns the rest from the index store, cf. LocalIndexSearchService.
///
/// The page the chunk starts on.
/// The page the chunk ends on.
/// The sheet of a spreadsheet the chunk is from.
/// The row of its sheet the chunk starts at.
/// The row of its sheet the chunk ends at.
/// The line the chunk starts at, for text, CSV and source code.
/// The line the chunk ends at.
/// Which attachment of a mail the chunk is from, as mail_parts numbers them, or null for the text of the mail itself and for any file.
public sealed record ChunkLocation(
int? PageNumber = null,
int? EndPageNumber = null,
string? SheetName = null,
int? StartRow = null,
int? EndRow = null,
int? StartLine = null,
int? EndLine = null,
int? AttachmentPosition = null);