/**
 * IStore - Interface for IndexedDB ObjectStore definitions
 *
 * Each entity store implements this interface to define its schema.
 * Enables Open/Closed Principle: IndexedDBContext works with any IStore.
 */
export interface IStore {
  /**
   * The name of the ObjectStore in IndexedDB
   */
  readonly storeName: string;

  /**
   * Create the ObjectStore with its schema (indexes, keyPath, etc.)
   * Called during database upgrade (onupgradeneeded event)
   */
  create(db: IDBDatabase): void;
}
