21 return QStringLiteral(
"info");
23 return QStringLiteral(
"warning");
25 return QStringLiteral(
"error");
27 return QStringLiteral(
"error");
30QString displayFileName(
const QString& path) {
31 const QFileInfo info(path);
32 const QString name = info.fileName();
33 return name.isEmpty() ? path : name;
36QStringList sortedStdStrings(
const std::vector<std::string>& values) {
38 out.reserve(
static_cast<int>(values.size()));
39 for (
const auto& value : values) {
40 const QString trimmed = QString::fromStdString(value).trimmed();
41 if (!trimmed.isEmpty()) {
42 out.push_back(trimmed);
49std::vector<std::string>
50aliasValues(
const std::vector<core::ports::workspace::AliasSnapshot>& aliases) {
51 std::vector<std::string> out;
52 out.reserve(aliases.size());
53 for (
const auto& alias : aliases) {
54 out.push_back(alias.value);
59template<
typename Item>
60void insertIdName(QVariantMap& row,
const Item& item) {
65template<
typename Item>
66void insertIdNameDisplay(QVariantMap& row,
const Item& item) {
67 insertIdName(row, item);
69 QString::fromStdString(item.name));
73adjustmentMap(
const core::ports::workspace::AnalysisSnapshot& analysis) {
75 for (
const auto& [
id, amount] : analysis.
adjustments) {
76 values.insert(QString::fromStdString(
id), amount);
86 row.insert(QStringLiteral(
"type"), QString::fromStdString(
config.type));
87 row.insert(QStringLiteral(
"plotType"),
88 QString::fromStdString(
config.plotType));
89 row.insert(QStringLiteral(
"plotMeasure"),
90 QString::fromStdString(
config.plotMeasure));
91 row.insert(QStringLiteral(
"propertyIds"),
93 row.insert(QStringLiteral(
"contractTypes"),
95 row.insert(QStringLiteral(
"taxPercent"),
config.taxPercent);
102 row.insert(QStringLiteral(
"dateField"),
103 QString::fromStdString(filter.
dateField));
104 row.insert(QStringLiteral(
"dateMode"),
105 QString::fromStdString(filter.
dateMode));
106 row.insert(QStringLiteral(
"year"), QString::fromStdString(filter.
year));
107 row.insert(QStringLiteral(
"dateFrom"),
108 QString::fromStdString(filter.
dateFrom));
109 row.insert(QStringLiteral(
"dateTo"), QString::fromStdString(filter.
dateTo));
110 row.insert(QStringLiteral(
"propertyIds"),
113 row.insert(QStringLiteral(
"contractTypes"),
115 row.insert(QStringLiteral(
"contractTypesNone"),
117 row.insert(QStringLiteral(
"allocatableMode"),
125 issues.reserve(
static_cast<int>(result.
issues.size()));
126 for (
const auto& issue : result.
issues) {
127 issues.push_back(QVariantMap{
128 {QStringLiteral(
"field"), QString::fromStdString(issue.field)},
129 {QStringLiteral(
"code"), QString::fromStdString(issue.code)},
130 {QStringLiteral(
"message"), QString::fromStdString(issue.message)},
131 {QStringLiteral(
"severity"), validationSeverityName(issue.severity)}});
133 return {{QStringLiteral(
"valid"), result.
valid()},
134 {QStringLiteral(
"issues"), issues}};
139 insertIdNameDisplay(row, actor);
150 insertIdNameDisplay(row, property);
162 insertIdNameDisplay(row, contract);
164 QString::fromStdString(contract.
type));
180 insertIdName(row, analysis);
182 QString::fromStdString(analysis.
type));
195 QString::fromStdString(analysis.
createdAt));
197 QString::fromStdString(analysis.
updatedAt));
209 annual.
name.empty() ? QString::number(annual.
year)
210 : QString::fromStdString(annual.
name));
217 insertIdName(row, statement);
223 const QString& contractType) {
225 insertIdName(row, transaction);
231 QString::fromStdString(transaction.
valuta);
235 QString::fromStdString(transaction.
actorId);
237 QString::fromStdString(transaction.
contractId);
240 contractType.isEmpty() ? QString::fromStdString(transaction.
contractType)
247 row[QStringLiteral(
"propertyNames")] =
256 rows.reserve(
static_cast<int>(transactions.size()));
257 for (
const auto& transaction : transactions) {
266 insertIdName(row, transaction);
273 const QString file = QString::fromStdString(log.
file);
274 const QString message = QString::fromStdString(log.
message);
293 const QString targetPath = QString::fromStdString(log.
targetPath);
294 const QString message = QString::fromStdString(log.
message);
311 const QString& name,
const QString& type,
312 const QVariantList& actorIds,
313 const QVariantList& propertyIds,
314 const QString& allocatableMode) {
Declarations for the UI PayloadKeys component.
Declarations for the UI payload mapper helpers.
Declares workspace-specific QML payload builders.
const auto kSnapshotTransactions
const auto kIncludeCalcAdjustments
const auto kDisplayStatusDetail
const auto kAllocatableMode
const auto kDraftAttached
QVariantList toVariantStringList(const std::vector< std::string > &values)
Converts standard strings to a QVariant string list.
QStringList toQStringList(const std::vector< std::string > &values)
Converts standard strings to a Qt string list.
QVariantMap transactionRow(const core::ports::workspace::TransactionSnapshot &transaction, const QString &contractType={})
Builds a transaction row.
QVariantList transactionRows(const std::vector< core::ports::workspace::TransactionSnapshot > &transactions)
Builds transaction rows.
QVariantMap analysisConfigRow(const core::ports::analysis::AnalysisConfigInput &config)
Builds an analysis config row.
QVariantMap analysisFilterRow(const core::ports::analysis::AnalysisFilterSelection &filter)
Builds an analysis filter row.
QVariantMap statementTransactionRow(const core::ports::workspace::TransactionSnapshot &transaction)
Builds a lightweight statement transaction row.
QVariantMap contractRow(const core::ports::workspace::ContractSnapshot &contract)
Builds a contract row.
QVariantMap propertyRow(const core::ports::workspace::PropertySnapshot &property)
Builds a property row.
QVariantMap actorRow(const core::ports::workspace::ActorSnapshot &actor)
Builds an actor row.
QVariantMap annualRow(const core::ports::workspace::AnnualSnapshot &annual)
Builds an annual row.
QVariantMap importLogRow(const core::ports::workspace::ImportLogSnapshot &log)
Builds an import log row.
QVariantMap exportLogRow(const core::ports::workspace::ExportLogSnapshot &log)
Builds an export log row.
QVariantMap statementRow(const core::ports::workspace::StatementSnapshot &statement)
Builds a statement row.
QVariantMap validationResult(const core::ports::workspace::ValidationResult &result)
Maps validation results to a QML-friendly payload.
QVariantMap analysisRow(const core::ports::workspace::AnalysisSnapshot &analysis)
Builds an analysis row.
QVariantMap dropdownRow(const QString &id, const QString &display, const QString &name={}, const QString &type={}, const QVariantList &actorIds={}, const QVariantList &propertyIds={}, const QString &allocatableMode=QStringLiteral("mixed"))
Builds a dropdown row.
std::vector< std::string > contractTypes
bool propertyIdsUnassigned
std::vector< std::string > propertyIds
std::string allocatableMode
bool contractTypesUnassigned
std::vector< AliasSnapshot > aliases
std::vector< std::string > contractIds
bool includeCalculationAdjustments
core::ports::analysis::AnalysisFilterSelection filter
core::ports::analysis::AnalysisConfigInput config
std::vector< TransactionSnapshot > snapshotTransactions
std::vector< std::pair< std::string, double > > adjustments
std::vector< std::string > analysisIds
std::vector< std::string > actorIds
std::vector< AliasSnapshot > aliases
std::string allocatableMode
std::vector< std::string > propertyIds
std::vector< std::string > contractIds
std::vector< AliasSnapshot > aliases
std::vector< std::string > propertyNames
std::vector< std::string > propertyIds
bool valid() const noexcept
Reports whether the validation result has no errors.
std::vector< ValidationIssue > issues