- Delete unused FileFragmentRepository.cs - DatabaseSessionService delegates to JournalDatabaseService for OpenEncryptedConnection/EnsureSchema instead of duplicating logic - Make IJournalDatabaseService expose OpenEncryptedConnection and EnsureSchema as public - Convert entire fragment chain from fake async (Task.FromResult wrappers) to synchronous: IFragmentRepository, SqliteFragmentRepository, InMemoryFragmentRepository, IFragmentService, FragmentService, Entry.cs dispatch, and SmokeTests Co-Authored-By: Warp <agent@warp.dev>
18 lines
756 B
C#
18 lines
756 B
C#
using Journal.Core.Dtos;
|
|
using Microsoft.Data.Sqlite;
|
|
|
|
namespace Journal.Core.Services.Database;
|
|
|
|
public interface IJournalDatabaseService
|
|
{
|
|
string GetDatabasePath(string? dataDirectory = null);
|
|
byte[] DeriveDatabaseKey(string password);
|
|
string BuildPragmaKeyStatement(string password);
|
|
IReadOnlyDictionary<string, string> GetSchemaStatements();
|
|
SqliteConnection OpenEncryptedConnection(string password, string? dataDirectory = null);
|
|
void EnsureSchema(SqliteConnection connection);
|
|
string WriteSchemaBootstrap(string? dataDirectory = null);
|
|
JournalDatabaseStatus GetStatus(string password, string? dataDirectory = null);
|
|
JournalDatabaseHydrationResult HydrateWorkspace(string password, string? dataDirectory = null);
|
|
}
|