FOSSredder 0.5.0
Loading...
Searching...
No Matches
IStatementDraftRepository.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
14class StatementDraft;
15}
16
18
20public:
24 virtual ~IStatementDraftRepository() = default;
25
30 virtual void addStatementDraft(const std::shared_ptr<core::application::importing::draft::StatementDraft>& draft) = 0;
31
36 virtual std::vector<std::shared_ptr<core::application::importing::draft::StatementDraft>> getStatementDrafts() const = 0;
37
43 virtual std::optional<std::shared_ptr<core::application::importing::draft::StatementDraft>> getStatementDraftById(const std::string& id) const = 0;
44
49 virtual void removeStatementDraft(const std::string& id) = 0;
50
55 virtual void updateStatementDraft(const std::shared_ptr<core::application::importing::draft::StatementDraft>& draft) = 0;
56
61 virtual void upsertStatementDraft(const std::shared_ptr<core::application::importing::draft::StatementDraft>& draft) = 0;
62
66 virtual void clearStatementDrafts() = 0;
67
72 void saveStatementDraft(const std::shared_ptr<core::application::importing::draft::StatementDraft>& draft)
73 {
75 if (draft) {
77 }
78 }
79
84 std::optional<std::shared_ptr<core::application::importing::draft::StatementDraft>> getStatementDraft() const
85 {
86 const auto drafts = getStatementDrafts();
87 if (drafts.empty()) {
88 return std::nullopt;
89 }
90 return drafts.front();
91 }
92
100};
101
102} // namespace core::ports::repositories
virtual void addStatementDraft(const std::shared_ptr< core::application::importing::draft::StatementDraft > &draft)=0
Add a new statement draft.
std::optional< std::shared_ptr< core::application::importing::draft::StatementDraft > > getStatementDraft() const
Retrieve the first stored statement draft, if any.
virtual void removeStatementDraft(const std::string &id)=0
Remove a statement draft by identifier.
void clearStatementDraft()
Remove the stored statement draft.
void saveStatementDraft(const std::shared_ptr< core::application::importing::draft::StatementDraft > &draft)
Replace the stored statement draft with the provided draft.
virtual void clearStatementDrafts()=0
Remove all statement drafts.
virtual std::vector< std::shared_ptr< core::application::importing::draft::StatementDraft > > getStatementDrafts() const =0
Retrieve all statement drafts.
virtual std::optional< std::shared_ptr< core::application::importing::draft::StatementDraft > > getStatementDraftById(const std::string &id) const =0
Retrieve a statement draft by identifier.
virtual ~IStatementDraftRepository()=default
Destroy the statement draft repository interface.
virtual void updateStatementDraft(const std::shared_ptr< core::application::importing::draft::StatementDraft > &draft)=0
Update an existing statement draft.
virtual void upsertStatementDraft(const std::shared_ptr< core::application::importing::draft::StatementDraft > &draft)=0
Insert or update a statement draft.