41 std::optional<core::ports::workspace::StatementDraftSnapshot>
73 const QString& message,
bool draftAttached,
74 const QString& draftId = {},
75 const QString& statementId = {},
76 const QString& importFile = {});
98 void newFile(
const QString& path);
128 QString
saveActor(
const QString&
id,
const QString& name,
129 const QStringList& aliases = {},
130 const QStringList& contractIds = {});
145 QString
saveProperty(
const QString&
id,
const QString& name,
146 const QStringList& aliases = {},
147 const QStringList& contractIds = {});
166 saveContract(
const QString&
id,
const QString& name,
const QString& type,
167 const QStringList& actorIds = {},
168 const QStringList& propertyIds = {},
169 const QStringList& aliases = {},
170 const QString& allocatableMode = QStringLiteral(
"mixed"));
190 const QVariantList& transactionStates);
217 QString
addTransaction(
const QString& name,
const QString& bookingDate,
218 const QString& valuta,
const QVariant& amount,
219 const QString& statementId,
int status = 0,
220 const QString& actorId = QString(),
221 const QString& contractId = QString(),
222 bool allocatable =
false,
223 const QStringList& propertyIds = {});
240 const QString& afterTransactionId,
const QString& name,
241 const QString& bookingDate,
const QString& valuta,
const QVariant& amount,
242 const QString& statementId,
int status = 0,
243 const QString& actorId = QString(),
const QString& contractId = QString(),
244 bool allocatable =
false,
const QStringList& propertyIds = {});
260 const QString& bookingDate,
const QString& valuta,
261 const QVariant& amount,
const QString& statementId,
262 int status,
const QString& actorId,
263 const QString& contractId,
bool allocatable,
264 const QStringList& propertyIds);
283 QString
addAnalysis(
const QString& name,
const QString& type,
284 const QVariantMap&
config,
const QVariantMap& filter,
285 const QString& exportFormat,
bool includeCalcAdjustments,
286 const QVariantList& snapshotTransactions,
287 const QVariantMap& adjustments = {});
301 const QString& type,
const QVariantMap&
config,
302 const QVariantMap& filter,
const QString& exportFormat,
303 bool includeCalcAdjustments,
304 const QVariantList& snapshotTransactions,
305 const QVariantMap& adjustments = {});
317 const QString& exportFormat);
326 QString
addAnnual(
const QString& name,
int year,
327 const QStringList& analysisIds = {});
335 void updateAnnual(
const QString&
id,
const QString& name,
int year,
336 const QStringList& analysisIds = {});
365 QVariantMap validateActor(
const QString&
id,
const QString& name,
366 const QStringList& aliases = {},
367 const QStringList& contractIds = {})
const;
376 QVariantMap validateProperty(
const QString&
id,
const QString& name,
377 const QStringList& aliases = {},
378 const QStringList& contractIds = {})
const;
390 QVariantMap validateContract(
391 const QString&
id,
const QString& name,
const QString& type,
392 const QStringList& actorIds = {},
const QStringList& propertyIds = {},
393 const QStringList& aliases = {},
394 const QString& allocatableMode = QStringLiteral(
"mixed"))
const;
401 QVariantMap validateStatement(
const QString&
id,
const QString& name)
const;
417 QVariantMap validateTransaction(
const QString&
id,
const QString& name,
418 const QString& bookingDate,
419 const QString& valuta,
const QVariant& amount,
420 const QString& statementId,
int status,
421 const QString& actorId,
422 const QString& contractId,
bool allocatable,
423 const QStringList& propertyIds)
const;
432 QVariantMap validateAnnual(
const QString&
id,
const QString& name,
int year,
433 const QStringList& analysisIds = {})
const;
437 void refreshStoreFromReader();
443 void runStorageOperation(
const QString& operation,
444 const std::function<
void()>& action);
449 void saveImportLog(
const core::ports::workspace::ImportLogSnapshot& log);
456 bool rejectInvalidCommand(
458 const core::ports::workspace::ValidationResult& result)
const;
460 WorkspaceStore& store_;
461 std::function<void()> beforeStorageSave_;
Immutable workspace read-model snapshot exposed through workspace ports.
Declares the UI workspace snapshot store.
void deleteAnalysis(const QString &id)
Deletes an analysis.
void deleteStatement(const QString &id)
Deletes a statement.
void operationSucceeded(const QString &operation)
Emitted when a storage command completed.
void deleteImportLog(const QString &id)
Deletes an import log.
void updateTransaction(const QString &id, const QString &name, const QString &bookingDate, const QString &valuta, const QVariant &amount, const QString &statementId, int status, const QString &actorId, const QString &contractId, bool allocatable, const QStringList &propertyIds)
Updates a transaction.
WorkspaceCommands(WorkspaceStore &store, QObject *parent=nullptr)
Creates workspace commands for a store.
QString addAnalysis(const QString &name, const QString &type, const QVariantMap &config, const QVariantMap &filter, const QString &exportFormat, bool includeCalcAdjustments, const QVariantList &snapshotTransactions, const QVariantMap &adjustments={})
Creates an analysis.
QString saveProperty(const QString &id, const QString &name, const QStringList &aliases={}, const QStringList &contractIds={})
Creates or updates a property.
void openFile(const QString &path)
Opens an existing workspace file.
void operationFailed(const QString &operation, const QString &error)
Emitted when a storage command failed.
void upsertImportLog(const QString &logId, const QString &status, const QString &message, bool draftAttached, const QString &draftId={}, const QString &statementId={}, const QString &importFile={})
Creates or updates an import log row.
void deleteTransaction(const QString &id)
Deletes a transaction.
void saveFileAs(const QString &path)
Saves the current workspace file to a new path.
void deleteProperty(const QString &id)
Deletes a property.
void updateAnalysisExportFormat(const QString &analysisId, const QString &exportFormat)
Updates only the stored export format of an analysis.
void deleteActor(const QString &id)
Deletes an actor.
QString addTransaction(const QString &name, const QString &bookingDate, const QString &valuta, const QVariant &amount, const QString &statementId, int status=0, const QString &actorId=QString(), const QString &contractId=QString(), bool allocatable=false, const QStringList &propertyIds={})
Creates a transaction.
QString addAnnual(const QString &name, int year, const QStringList &analysisIds={})
Creates an annual.
QString saveActor(const QString &id, const QString &name, const QStringList &aliases={}, const QStringList &contractIds={})
Creates or updates an actor.
void updateStatement(const QString &id, const QString &name)
Updates a statement.
void setBeforeStorageSaveCallback(std::function< void()> callback)
Registers an optional hook executed immediately before storage save.
QString finalizeStatementDraft(const core::ports::workspace::StatementDraftSnapshot &draft)
Finalizes a statement draft through the workspace writer.
QString addStatementWithTransactions(const QString &name, const QVariantList &transactionStates)
Creates a statement and its transactions in one workspace mutation.
void newFile(const QString &path)
Creates a new workspace file.
void clearStatementDraft(const QString &draftId={})
Removes a statement draft from workspace state.
void deleteContract(const QString &id)
Deletes a contract.
void updateAnnual(const QString &id, const QString &name, int year, const QStringList &analysisIds={})
Updates an annual.
void deleteAnnual(const QString &id)
Deletes an annual.
void deleteExportLog(const QString &id)
Deletes an export log.
QString saveContract(const QString &id, const QString &name, const QString &type, const QStringList &actorIds={}, const QStringList &propertyIds={}, const QStringList &aliases={}, const QString &allocatableMode=QStringLiteral("mixed"))
Creates or updates a contract.
void saveStatementDraft(const core::ports::workspace::StatementDraftSnapshot &draft)
Saves a statement draft in workspace state.
void saveExportLog(const core::ports::workspace::ExportLogSnapshot &log)
Saves an export log in workspace state.
void saveFile()
Saves the current workspace file.
void updateAnalysis(const QString &id, const QString &name, const QString &type, const QVariantMap &config, const QVariantMap &filter, const QString &exportFormat, bool includeCalcAdjustments, const QVariantList &snapshotTransactions, const QVariantMap &adjustments={})
Updates an analysis.
QString addStatement(const QString &name)
Creates a statement.
QString insertTransactionAfter(const QString &afterTransactionId, const QString &name, const QString &bookingDate, const QString &valuta, const QVariant &amount, const QString &statementId, int status=0, const QString &actorId=QString(), const QString &contractId=QString(), bool allocatable=false, const QStringList &propertyIds={})
Creates a transaction after another transaction.
std::optional< core::ports::workspace::StatementDraftSnapshot > statementDraftSnapshot(const QString &draftId={}) const
Reads a statement draft snapshot from workspace state.
Owns the current UI-side workspace snapshot and revision lifecycle.