using Journal.Core.Dtos; using Microsoft.Data.Sqlite; namespace Journal.Core.Services.Database; public interface IJournalDatabaseService { string GetDatabasePath(); byte[] DeriveDatabaseKey(string password); string BuildPragmaKeyStatement(string password); IReadOnlyDictionary GetSchemaStatements(); SqliteConnection OpenEncryptedConnection(string password); void EnsureSchema(SqliteConnection connection); void EnsureSchemaReady(SqliteConnection connection); JournalDatabaseStatus GetStatus(string password); JournalDatabaseHydrationResult HydrateWorkspace(string password); }