21class IAnalysisRenderer;
76 const std::
string &analysisId,
77 const std::
string &filterSpec = {})
const;
90 const std::string &filterSpec = {})
const;
99 std::vector<std::shared_ptr<core::domain::Transaction>>
101 const std::string &filterSpec = {})
const;
113 const std::string &dateField,
const std::string &dateMode,
114 const std::string &year,
const std::string &dateFrom,
115 const std::string &dateTo,
const std::vector<std::string> &propertyIds,
117 const std::string &allocatableMode)
const override;
143 const std::vector<std::string> &selectedTransactionIds,
144 double taxPercent)
const override;
146 std::optional<double>
151 const std::string &analysisId,
bool includeCalculationAdjustments,
158 bool includeCalculationAdjustments,
159 const std::string &unassignedLabel)
const override;
170 std::shared_ptr<core::ports::analysis_rendering::IAnalysisRenderer>
Domain model for persisted analysis definitions.
Declares analysis use-case request DTOs and filter-spec helpers.
Declares the analysis execution result port contract.
Analysis use-case port consumed by UI workflows.
Domain model for transactions.
Domain aggregate that stores catalog entities for one workspace.
Coordinates analysis lookup, execution, and transaction preview filtering.
std::string buildFilterSpec(const core::ports::analysis::AnalysisFilterSelection &selection) const override
Serializes a filter selection through the analysis use case.
core::ports::analysis::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 override
Builds a normalized filter selection from raw field values.
AnalysisService & operator=(const AnalysisService &)=delete
core::ports::analysis::AnalysisResult runAnalysisById(const core::domain::catalog::WorkspaceCatalog &state, const std::string &analysisId, const std::string &filterSpec={}) const
Resolves an analysis by identifier and executes it.
AnalysisService(AnalysisService &&) noexcept=default
core::ports::analysis::AnalysisAdjustmentAmounts buildAnalysisAdjustments(const std::vector< core::ports::analysis::AnalysisAdjustmentTransactionInput > &transactions, const std::vector< std::string > &selectedTransactionIds, double taxPercent) const override
std::optional< double > parseAnalysisPercentText(const std::string &text) const override
Parses user-entered analysis percentage text.
std::vector< std::shared_ptr< core::domain::Transaction > > filterTransactions(const core::domain::catalog::WorkspaceCatalog &state, const std::string &filterSpec={}) const
Returns the transactions matched by one analysis filter specification.
core::ports::analysis::AnalysisResult runAnalysis(const core::domain::catalog::WorkspaceCatalog &state, const core::ports::analysis::AnalysisRequest &request) const
Runs one analysis request against the supplied workspace state.
std::vector< std::string > contractTypes(const core::ports::workspace::WorkspaceSnapshot &workspace) const override
Returns available contract types for analysis filters.
core::ports::analysis::AnalysisResult computeAnalysis(const core::domain::Analysis &analysis, const core::domain::catalog::WorkspaceCatalog &state, const std::string &filterSpec={}) const
Computes a concrete analysis definition against the supplied workspace state.
core::ports::analysis::AnalysisTableState projectTableState(const core::ports::analysis::AnalysisResult &result, const core::ports::analysis::AnalysisAdjustmentAmounts &adjustments, bool includeCalculationAdjustments, const std::string &unassignedLabel) const override
Projects analysis result table state for UI consumption.
core::ports::analysis::AnalysisPreviewResult previewTransactions(const core::ports::workspace::WorkspaceSnapshot &workspace, const core::ports::analysis::AnalysisFilterSelection &filter) const override
Returns port-native transaction preview rows for one filter specification.
AnalysisService()=default
~AnalysisService()=default
void applyAnalysisPreviewOverrides(core::ports::workspace::WorkspaceSnapshot &workspace, const std::string &analysisId, bool includeCalculationAdjustments, const core::ports::analysis::AnalysisAdjustmentAmounts &adjustments) const override
Applies preview-only analysis fields to a workspace snapshot.
AnalysisService(const AnalysisService &)=delete
core::ports::analysis::AnalysisFilterSelection parseFilterSpec(const std::string &filterSpec) const override
Parses a serialized filter spec through the analysis use case.
std::string buildAnalysisConfigJson(const core::ports::analysis::AnalysisConfigInput &input) const override
Builds serialized analysis configuration from typed input.
Renders analysis results to image artifacts.
analysis::AnalysisService AnalysisService
std::vector< std::pair< std::string, double > > AnalysisAdjustmentAmounts
Adjustment amount pairs keyed by transaction id.