//! Chanora PoC — SQLite storage spike.
//!
//! Authority:
//!   * `docs/architecture/proof-of-concept-plan.md` §2 — SQLite storage spike.
//!     Exit criterion: "Schema, migration, and repository pattern are demonstrated."
//!   * SRS-089 — "The software shall use SQLite or an equivalent embedded
//!     data store for non-secret local data." Acceptance criteria:
//!     "Storage implementation uses an embedded local data store and
//!     migration mechanism."
//!   * SDD-077 — `LocalDatabaseRepository` persists non-secret local state
//!     through SQLite or equivalent.
//!   * SAD-067 — separation of non-secret local persistence (DB repository
//!     layer) from secret persistence (platform secure storage).
//!
//! The PoC models the production shape:
//!
//!   ┌───────────────────────────┐    ┌──────────────────────────┐
//!   │ BookmarkRepository (trait)│    │ SettingsRepository (trait)│
//!   └─────────────┬─────────────┘    └─────────────┬────────────┘
//!                 │                                │
//!                 ▼                                ▼
//!             ┌────────────────────────────────────────┐
//!             │   LocalDatabaseRepository (SQLite)     │
//!             │   ──────────────────────────────────   │
//!             │   forward-only schema migrations       │
//!             │   tracked via PRAGMA user_version      │
//!             └────────────────────────────────────────┘
//!
//! Out of scope here: server passwords, identity secrets, any secret
//! material whatsoever (those belong to `secure-storage-spike` and to
//! the production `SecretStorageRepository`).

pub mod migrate;
pub mod repo;

pub use migrate::{Migrator, MigrationError};
pub use repo::{
    Bookmark, BookmarkRepository, LocalDatabaseRepository, RepoError, Setting,
    SettingsRepository,
};
