namespace DeepDrftContent.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); /// /// Removes an entry (and its metadata) from the vault index. /// Returns true if an entry was removed, false if it was not present. /// bool RemoveEntry(string entryId); }