FOSSredder
0.5.0
Loading...
Searching...
No Matches
DraftMatcherSignals.cpp
Go to the documentation of this file.
1
5
6
#include "
core/pch.h
"
7
#include "
core/application/import/draft/DraftMatcher.h
"
8
#include "
core/domain/policies/DraftMatchingPolicy.h
"
9
10
namespace
core::application::importing::draft
{
11
12
namespace
policy
= core::domain::policies::matching;
13
14
std::string
normalizeDraftText
(
const
std::string& text)
15
{
16
return
policy::normalizeText(text);
17
}
18
19
bool
matchesDraftText
(
const
std::string& left,
const
std::string& right)
20
{
21
return
policy::matchesDraftText(left, right);
22
}
23
24
std::vector<std::string>
referenceAliasesFromMetadata
(
const
std::string& metadata)
25
{
26
return
policy::referenceAliasesFromMetadata(metadata);
27
}
28
29
DraftTextSignals
buildDraftTextSignals
(
const
core::domain::catalog::WorkspaceCatalog
& state,
30
const
core::application::importing::draft::TransactionDraft
&
transaction
)
31
{
32
DraftTextSignals
signals;
33
const
auto
metadataText = policy::metadataSignalText(
transaction
.metadata);
34
signals.
sharedText
= metadataText.empty() ?
transaction
.metadata : metadataText;
35
36
const
auto
lines = policy::splitLines(
transaction
.metadata);
37
signals.
typeText
= policy::extractTypeText(state, signals.
sharedText
, lines);
38
signals.
actorText
= policy::extractActorText(lines, signals.
typeText
);
39
if
(signals.
actorText
.empty()) signals.
actorText
= policy::firstMeaningfulLine(
transaction
.metadata);
40
if
(signals.
actorText
.empty()) signals.
actorText
= policy::leadingPhrase(signals.
sharedText
, 4);
41
signals.
propertyText
= policy::trim(policy::joinNonEmptyLines({signals.
sharedText
, signals.
actorText
, signals.
typeText
},
" "
));
42
signals.
contractText
= policy::trim(policy::joinNonEmptyLines({signals.
typeText
, signals.
actorText
, signals.
sharedText
},
" "
));
43
return
signals;
44
}
45
46
}
DraftMatcher.h
Declares import-draft matching helpers shared by the import pipeline and draft finalization.
DraftMatchingPolicy.h
Declares draft matching policy helpers for import-time bank statement inference.
core::application::importing::draft::TransactionDraft
Definition
TransactionDraft.h:16
core::domain::catalog::WorkspaceCatalog
Definition
WorkspaceCatalog.h:21
pch.h
Collects common core includes and aliases for precompiled-header builds.
core::application::importing::draft
Definition
DraftFinalizer.h:13
core::application::importing::draft::matchesDraftText
bool matchesDraftText(const std::string &left, const std::string &right)
Compares two draft text fragments after normalization.
Definition
DraftMatcherSignals.cpp:19
core::application::importing::draft::buildDraftTextSignals
DraftTextSignals buildDraftTextSignals(const core::domain::catalog::WorkspaceCatalog &state, const TransactionDraft &transaction)
Derives text signals from a workspace transaction draft.
Definition
DraftMatcherSignals.cpp:29
core::application::importing::draft::referenceAliasesFromMetadata
std::vector< std::string > referenceAliasesFromMetadata(const std::string &metadata)
Extracts alias-like reference strings from draft metadata.
Definition
DraftMatcherSignals.cpp:24
core::application::importing::draft::normalizeDraftText
std::string normalizeDraftText(const std::string &text)
Normalizes free-form draft text for fuzzy matching.
Definition
DraftMatcherSignals.cpp:14
core::application::importing::transaction
Definition
AmountParser.h:11
core::domain::policies::matching
Definition
DraftMatchingPolicy.h:14
core::application::importing::draft::DraftTextSignals
Carries the shared text signals extracted from one imported transaction.
Definition
DraftMatcher.h:55
core::application::importing::draft::DraftTextSignals::sharedText
std::string sharedText
Definition
DraftMatcher.h:56
core::application::importing::draft::DraftTextSignals::propertyText
std::string propertyText
Definition
DraftMatcher.h:58
core::application::importing::draft::DraftTextSignals::contractText
std::string contractText
Definition
DraftMatcher.h:59
core::application::importing::draft::DraftTextSignals::actorText
std::string actorText
Definition
DraftMatcher.h:57
core::application::importing::draft::DraftTextSignals::typeText
std::string typeText
Definition
DraftMatcher.h:60
core
src
application
import
draft
DraftMatcherSignals.cpp
Generated by
1.14.0