namespace AIStudio.Tools.Databases.IndexStore;
///
/// One chunk as the index stores it.
///
///
/// Where a chunk is goes into the typed columns its document has: pages, sheet and rows, or lines.
/// The vector store keeps only the pages, cf. VectorStoragePoint: a search completes its hits from
/// here by their chunk id.
///
/// The id of the chunk, which is the id of its point in the vector store.
/// The document the chunk belongs to.
/// The page the chunk starts on, or null.
/// The page the chunk ends on, or null.
/// The place of the chunk in its document, counted from zero.
/// The text which was embedded.
/// When the chunk was stored.
/// The hash of the text, cf. ChunkTextHash.
/// Which indexing of the document wrote the chunk.
/// The sheet the chunk is from, or null. A chunk never runs from one sheet into the next.
/// The row of its sheet the chunk starts at, or null.
/// The row of its sheet the chunk ends at, or null.
/// The line the chunk starts at, or null.
/// The line the chunk ends at, or null.
/// Which attachment of a mail the chunk is from, as mail_parts numbers it, or null for anything else.
public sealed record EmbeddingStateChunk(
string ChunkId,
string ParentFileId,
int? PageNumber,
int? EndPageNumber,
int ChunkIndex,
string ChunkText,
DateTimeOffset EmbeddedAtUtc,
string? TextHash = null,
int Generation = 0,
string? SheetName = null,
int? StartRow = null,
int? EndRow = null,
int? StartLine = null,
int? EndLine = null,
int? AttachmentPosition = null);