19#ifdef PACS_WITH_DATABASE_SYSTEM
26class sync_history_repository
27 :
public base_repository<client::sync_history, int64_t> {
29 explicit sync_history_repository(std::shared_ptr<pacs_database_adapter> db);
31 [[nodiscard]]
auto find_by_config(
32 std::string_view config_id,
33 size_t limit = 100) -> list_result_type;
35 [[nodiscard]]
auto find_last_for_config(std::string_view config_id)
38 [[nodiscard]]
auto cleanup_old(std::chrono::hours max_age)
42 [[nodiscard]]
auto map_row_to_entity(
const database_row& row)
const
43 -> client::sync_history
override;
45 [[nodiscard]]
auto entity_to_row(
const client::sync_history& entity)
const
46 -> std::map<std::string, database_value>
override;
48 [[nodiscard]]
auto get_pk(
const client::sync_history& entity)
const
51 [[nodiscard]]
auto has_pk(
const client::sync_history& entity)
const
54 [[nodiscard]]
auto select_columns() const
55 -> std::vector<std::
string> override;
58 [[nodiscard]] auto parse_timestamp(const std::
string& str) const
59 -> std::chrono::system_clock::time_point;
61 [[nodiscard]] auto format_timestamp(
62 std::chrono::system_clock::time_point tp) const -> std::
string;
64 [[nodiscard]] static auto serialize_errors(
65 const std::vector<std::
string>& errors) -> std::
string;
67 [[nodiscard]] static auto deserialize_errors(
68 std::string_view json) -> std::vector<std::
string>;
Generic base repository for CRUD operations.
Types and structures for bidirectional DICOM synchronization.