namespace DeepDrftContent.Services.FileDatabase.Models;
///
/// Base interface for all index types - minimal contract
///
public interface IIndex
{
///
/// Gets the key identifier for this index
///
string GetKey();
}
///
/// Interface for indexes that support entry queries
///
public interface IEntryQueryable : IIndex
{
///
/// Gets all entry IDs in this index
///
IReadOnlyList GetEntries();
///
/// Gets the number of entries in this index
///
int GetEntriesSize();
///
/// Checks if the index contains the specified entry ID
///
bool HasEntry(string entryId);
}
///
/// Interface for indexes that support directory operations
///
public interface IDirectoryIndex : IEntryQueryable
{
///
/// Adds an entry to the directory index
///
void PutEntry(string entryId);
}
///
/// Interface for indexes that support vault operations with metadata
///
public interface IVaultIndex : IEntryQueryable
{
///
/// Gets metadata for a specific entry
///
MetaData? GetEntry(string entryId);
///
/// Adds an entry with metadata to the vault index
///
void PutEntry(string entryId, MetaData metaData);
}