FOSSredder 0.5.0
Loading...
Searching...
No Matches
ITransactionRepository.h
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <memory>
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace core::domain {
14class Transaction;
15}
16
18
20public:
24 virtual ~ITransactionRepository() = default;
25
30 virtual void addTransaction(const std::shared_ptr<core::domain::Transaction>& transaction) = 0;
31
36 virtual std::vector<std::shared_ptr<core::domain::Transaction>> getTransactions() const = 0;
37
43 virtual std::optional<std::shared_ptr<core::domain::Transaction>> getTransactionById(const std::string& id) const = 0;
44
49 virtual void removeTransaction(const std::string& id) = 0;
50
55 virtual void updateTransaction(const std::shared_ptr<core::domain::Transaction>& transaction) = 0;
56
61 virtual void upsertTransaction(const std::shared_ptr<core::domain::Transaction>& transaction) = 0;
62
66 virtual void clearTransactions() = 0;
67
73 virtual std::vector<std::shared_ptr<core::domain::Transaction>> getTransactionsForContract(const std::string& contractId) const = 0;
74
80 virtual void assignTransactionsToContract(const std::string& contractId, const std::vector<std::string>& transactionIds) = 0;
81};
82
83} // namespace core::ports::repositories
virtual void assignTransactionsToContract(const std::string &contractId, const std::vector< std::string > &transactionIds)=0
Assign transactions to a contract.
virtual void upsertTransaction(const std::shared_ptr< core::domain::Transaction > &transaction)=0
Insert or update a transaction.
virtual void removeTransaction(const std::string &id)=0
Remove a transaction by identifier.
virtual void updateTransaction(const std::shared_ptr< core::domain::Transaction > &transaction)=0
Update an existing transaction.
virtual std::vector< std::shared_ptr< core::domain::Transaction > > getTransactionsForContract(const std::string &contractId) const =0
Retrieve transactions associated with a given contract.
virtual std::optional< std::shared_ptr< core::domain::Transaction > > getTransactionById(const std::string &id) const =0
Retrieve a transaction by identifier.
virtual std::vector< std::shared_ptr< core::domain::Transaction > > getTransactions() const =0
Retrieve all transactions.
virtual void addTransaction(const std::shared_ptr< core::domain::Transaction > &transaction)=0
Add a new transaction.
virtual ~ITransactionRepository()=default
Destroy the transaction repository interface.
virtual void clearTransactions()=0
Remove all transactions.