23#include <kcenon/common/patterns/result.h>
31#ifdef PACS_WITH_DATABASE_SYSTEM
46class audit_repository :
public base_repository<audit_record, int64_t> {
78 ->
Result<std::vector<audit_record>>;
86 -> std::optional<audit_record>;
107 [[nodiscard]] auto map_row_to_entity(const database_row& row) const
108 -> audit_record override;
109 [[nodiscard]] auto entity_to_row(const audit_record& entity) const
110 -> std::map<std::
string, database_value> override;
111 [[nodiscard]] auto get_pk(const audit_record& entity) const
113 [[nodiscard]] auto has_pk(const audit_record& entity) const
115 [[nodiscard]] auto select_columns() const -> std::vector<std::
string> override;
121 -> std::chrono::system_clock::time_point;
122 [[nodiscard]] auto format_timestamp(
123 std::chrono::system_clock::time_point tp) const -> std::
string;
137using VoidResult = kcenon::common::VoidResult;
179 -> std::chrono::system_clock::time_point;
Audit log record data structures.
Generic base repository for CRUD operations.
Legacy direct-SQLite fallback when database_system is disabled.
auto audit_count() const -> Result< size_t >
Total number of audit records currently stored.
auto query_audit_log(const audit_query &query) const -> Result< std::vector< audit_record > >
Query audit records using a structured filter.
static auto to_like_pattern(std::string_view pattern) -> std::string
auto add_audit_log(const audit_record &record) -> Result< int64_t >
Append a new audit record.
auto operator=(const audit_repository &) -> audit_repository &=delete
auto cleanup_old_audit_logs(std::chrono::hours age) -> Result< size_t >
Delete audit records older than the specified age.
static auto parse_timestamp(const std::string &str) -> std::chrono::system_clock::time_point
auto parse_audit_row(void *stmt) const -> audit_record
audit_repository(sqlite3 *db)
Construct repository bound to a raw sqlite3 handle.
audit_repository(const audit_repository &)=delete
auto find_audit_by_pk(int64_t pk) const -> std::optional< audit_record >
Look up a single audit record by primary key.
kcenon::common::Result< T > Result
Result type alias for operations returning a value.
Query parameters for audit log search.
Audit log record from the database.