FOSSredder 0.5.0
Loading...
Searching...
No Matches
AnalysisWorkflow.h
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <functional>
9#include <memory>
10
11#include <QObject>
12#include <QString>
13#include <QStringList>
14#include <QVariantList>
15#include <QVariantMap>
16
19
20namespace ui::adapters {
21class AnalysisAdapter;
22}
23
24namespace ui {
25
29class AnalysisWorkflow : public QObject {
30 Q_OBJECT
31public:
34
42 explicit AnalysisWorkflow(
43 StateSnapshotProvider stateSnapshotProvider,
44 std::shared_ptr<ui::adapters::AnalysisAdapter> analysisAdapter,
45 std::shared_ptr<core::ports::diagnostics::IErrorReporter> errorReporter,
46 QObject* parent = nullptr);
47
60 QString analysisFilterSpec(const QString& dateField, const QString& dateMode,
61 const QString& year, const QString& dateFrom,
62 const QString& dateTo,
63 const QStringList& propertyIds,
64 const QStringList& contractTypes,
65 const QString& allocatableMode) const;
75 const QVariantList& transactions,
76 const QStringList& selectedTransactionIds,
77 const QString& percentText) const;
78
87 QVariantMap
88 computeAnalysisPreview(const QString& analysisId, const QString& filterSpec,
89 bool includeAdjustments,
90 const QVariantMap& adjustmentAmounts) const;
96 QVariantMap previewTransactions(const QString& filterSpec) const;
97
102 QStringList contractTypes() const;
103
104private:
109 core::ports::workspace::WorkspaceSnapshot stateSnapshot() const;
110
111 StateSnapshotProvider stateSnapshotProvider_;
112 std::shared_ptr<ui::adapters::AnalysisAdapter> analysisAdapter_;
113 std::shared_ptr<core::ports::diagnostics::IErrorReporter> errorReporter_;
114};
115
116} // namespace ui
Declares the structured diagnostics reporting port.
Immutable workspace read-model snapshot exposed through workspace ports.
QVariantMap previewTransactions(const QString &filterSpec) const
Builds a transaction preview for the current filter.
std::function< core::ports::workspace::WorkspaceSnapshot()> StateSnapshotProvider
AnalysisWorkflow(StateSnapshotProvider stateSnapshotProvider, std::shared_ptr< ui::adapters::AnalysisAdapter > analysisAdapter, std::shared_ptr< core::ports::diagnostics::IErrorReporter > errorReporter, QObject *parent=nullptr)
Creates an analysis workflow.
QStringList contractTypes() const
Returns contract types available in the current workspace snapshot.
QVariantMap analysisAdjustmentAmountsFromPercentText(const QVariantList &transactions, const QStringList &selectedTransactionIds, const QString &percentText) const
Builds adjustment amounts from selected transactions and percent text.
QString analysisFilterSpec(const QString &dateField, const QString &dateMode, const QString &year, const QString &dateFrom, const QString &dateTo, const QStringList &propertyIds, const QStringList &contractTypes, const QString &allocatableMode) const
Builds a serialized filter specification from UI fields.
QVariantMap computeAnalysisPreview(const QString &analysisId, const QString &filterSpec, bool includeAdjustments, const QVariantMap &adjustmentAmounts) const
Computes the current analysis preview.