// retoor #ifndef R_DB_H #define R_DB_H #include "r_error.h" #include typedef struct db_t *db_handle; db_handle db_open(const char *path); void db_close(db_handle db); r_status_t db_init(db_handle db); r_status_t db_kv_set(db_handle db, const char *key, const char *value); r_status_t db_kv_get(db_handle db, const char *key, char **value); r_status_t db_execute(db_handle db, const char *sql, struct json_object **result); char *db_get_schema(db_handle db); r_status_t db_store_file_version(db_handle db, const char *path); r_status_t db_save_conversation(db_handle db, const char *session_key, const char *data); r_status_t db_load_conversation(db_handle db, const char *session_key, char **data); long long db_get_conversation_age(db_handle db, const char *session_key); r_status_t db_delete_conversation(db_handle db, const char *session_key); r_status_t db_snapshot_create(db_handle db, const char *session_id, const char *description, const char **paths, const char **contents, int file_count, long long *snapshot_id_out); r_status_t db_snapshot_list(db_handle db, const char *session_id, struct json_object **result); r_status_t db_snapshot_get_files(db_handle db, long long snapshot_id, struct json_object **result); r_status_t db_snapshot_ensure_live(db_handle db, const char *session_id, const char *description, long long *snapshot_id_out); r_status_t db_snapshot_upsert_file(db_handle db, long long snapshot_id, const char *path, const char *content); #endif