58 const std::string& dateField,
59 const std::string& dateMode,
60 const std::string& year,
61 const std::string& dateFrom,
62 const std::string& dateTo,
63 const std::vector<std::string>& propertyIds,
65 const std::string& allocatableMode)
const = 0;
80 [[nodiscard]]
virtual std::string
88 [[nodiscard]]
virtual std::string
99 const std::vector<AnalysisAdjustmentTransactionInput>& transactions,
100 const std::vector<std::string>& selectedTransactionIds,
101 double taxPercent)
const = 0;
108 [[nodiscard]]
virtual std::optional<double>
120 const std::string& analysisId,
121 bool includeCalculationAdjustments,
135 bool includeCalculationAdjustments,
136 const std::string& unassignedLabel)
const = 0;
Declares analysis use-case request DTOs and filter-spec helpers.
Declares the analysis execution result port contract.
Immutable workspace read-model snapshot exposed through workspace ports.
virtual AnalysisResult runAnalysis(const core::ports::workspace::WorkspaceSnapshot &workspace, const AnalysisRequest &request) const =0
Computes an analysis result from a workspace snapshot and request.
virtual AnalysisPreviewResult previewTransactions(const core::ports::workspace::WorkspaceSnapshot &workspace, const AnalysisFilterSelection &filter) const =0
Builds the transactions that would participate in an analysis.
virtual AnalysisFilterSelection filterSelectionFromFields(const std::string &dateField, const std::string &dateMode, const std::string &year, const std::string &dateFrom, const std::string &dateTo, const std::vector< std::string > &propertyIds, const std::vector< std::string > &contractTypes, const std::string &allocatableMode) const =0
Builds a normalized filter selection from raw field values.
virtual AnalysisTableState projectTableState(const AnalysisResult &result, const AnalysisAdjustmentAmounts &adjustments, bool includeCalculationAdjustments, const std::string &unassignedLabel) const =0
Projects analysis result table state for UI consumption.
virtual AnalysisFilterSelection parseFilterSpec(const std::string &filterSpec) const =0
Parses a serialized analysis filter specification.
virtual std::string buildAnalysisConfigJson(const AnalysisConfigInput &input) const =0
Builds serialized analysis configuration from typed input.
virtual ~IAnalysisRunner()=default
Destroys the analysis runner port.
virtual AnalysisAdjustmentAmounts buildAnalysisAdjustments(const std::vector< AnalysisAdjustmentTransactionInput > &transactions, const std::vector< std::string > &selectedTransactionIds, double taxPercent) const =0
Builds adjustment amounts for selected transactions.
virtual void applyAnalysisPreviewOverrides(core::ports::workspace::WorkspaceSnapshot &workspace, const std::string &analysisId, bool includeCalculationAdjustments, const AnalysisAdjustmentAmounts &adjustments) const =0
Applies preview-only analysis fields to a workspace snapshot.
virtual std::string buildFilterSpec(const AnalysisFilterSelection &selection) const =0
Serializes a normalized analysis filter selection.
virtual std::optional< double > parseAnalysisPercentText(const std::string &text) const =0
Parses user-entered analysis percentage text.
virtual std::vector< std::string > contractTypes(const core::ports::workspace::WorkspaceSnapshot &workspace) const =0
Returns available contract types for analysis filters.
std::vector< std::pair< std::string, double > > AnalysisAdjustmentAmounts
Adjustment amount pairs keyed by transaction id.