18core::ports::workspace::DeletionImpact toWorkspaceDeletionImpact(
19 const core::domain::DeletionImpact& impact) {
38 std::unique_ptr<core::ports::storage::IStorageManager> storageManager)
53 onSnapshotChanged_ = std::move(cb);
54 installStateChangedDispatcher();
57void WorkspaceFacade::installStateChangedDispatcher() {
58 session_->setStateChangedCallback(
60 if (onSnapshotChanged_) {
67 session_->setErrorReporter(std::move(reporter));
71 session_->setAtomicStoreSave(std::move(saveFn));
75 session_->setAtomicStoreLoad(std::move(loadFn));
80 session_->setDeletionImpactCallback(
83 callback(toWorkspaceDeletionImpact(impact));
89 return queries_->workspaceSnapshot();
92std::optional<core::ports::workspace::StatementDraftSnapshot>
94 return queries_->statementDraftSnapshot(draftId);
98 return queries_->actorIdentityByName(name);
102 return queries_->propertyIdentityByName(name);
106 const std::string& name,
107 const std::string& type,
108 const std::vector<std::string>& actorIds,
109 const std::vector<std::string>& propertyIds)
const {
110 return queries_->contractIdentityBySignature(name, type, actorIds, propertyIds);
116 return queries_->transactionCatalogSelection(change);
120 return queries_->nextContractName();
124 session_->openLatest();
128 session_->newFile(path);
132 session_->openFile(path);
136 session_->saveFile();
140 session_->saveFileAs(path);
148 session_->notifyState();
152 return commands_->validate(command);
156 return commands_->validate(command);
160 return commands_->validate(command);
164 return commands_->validate(command);
168 return commands_->validate(command);
173 return commands_->validate(command);
177 return commands_->validate(command);
181 return commands_->validate(command);
185 return commands_->addActor(command);
189 commands_->updateActor(command);
193 commands_->deleteActor(
id);
197 return commands_->addProperty(command);
201 commands_->updateProperty(command);
205 commands_->deleteProperty(
id);
209 commands_->deleteContract(
id);
213 return commands_->addContract(command);
217 commands_->updateContract(command);
221 return commands_->addStatement(command);
226 return commands_->addStatementWithTransactions(command);
230 commands_->updateStatement(command);
234 commands_->deleteStatement(
id);
238 return commands_->addTransaction(command);
242 commands_->updateTransaction(command);
246 commands_->deleteTransaction(
id);
250 return commands_->addAnalysis(command);
254 commands_->updateAnalysis(command);
258 commands_->deleteAnalysis(
id);
262 return commands_->addAnnual(command);
266 commands_->updateAnnual(command);
270 commands_->deleteAnnual(
id);
274 return workflows_->finalizeStatementDraft(command);
278 workflows_->saveStatementDraft(command);
282 workflows_->clearStatementDraft(draftId);
286 workflows_->saveImportLog(command);
290 workflows_->deleteImportLog(
id);
294 workflows_->saveExportLog(command);
298 workflows_->deleteExportLog(
id);
302 return queries_->currentPath();
Applies catalog commands to workspace session state and persists commits.
Declares the workspace facade implementing snapshot reader and command writer ports.
Reads workspace snapshots and draft projections from the application layer.
Declares the mutable workspace session that ties in-memory state to storage.
Applies draft and log workflow commands to workspace session state.
Exposes state mutation and workspace persistence as a single application facade.
void setDeletionImpactCallback(core::ports::workspace::IWorkspaceWriter::DeletionImpactCallback cb) override
Registers a callback that receives deletion impact information after saves.
void setErrorReporter(std::shared_ptr< core::ports::diagnostics::IErrorReporter > reporter) override
Registers the error reporter used by workspace operations.
std::string finalizeStatementDraft(const core::ports::workspace::FinalizeStatementDraftCommand &command) override
Finalizes a statement draft.
void saveFileAs(const std::string &path) override
Saves the current workspace file to another path.
void updateContract(const core::ports::workspace::ContractCommand &command) override
Updates a contract.
void deleteProperty(const std::string &id) override
Deletes a property.
core::ports::workspace::WorkspaceIdentitySnapshot actorIdentityByName(const std::string &name) const override
Looks up an actor identity by name.
WorkspaceFacade(std::unique_ptr< core::ports::storage::IStorageManager > storageManager)
Construct with unique ownership of an IStorageManager.
core::ports::workspace::ValidationResult validateActor(const core::ports::workspace::ActorCommand &command) const override
Validates an actor command.
std::string addAnalysis(const core::ports::workspace::AnalysisCommand &command) override
Adds an analysis.
core::ports::workspace::ValidationResult validateStatement(const core::ports::workspace::StatementCommand &command) const override
Validates a statement command.
core::ports::workspace::ValidationResult validateStatementWithTransactions(const core::ports::workspace::StatementWithTransactionsCommand &command) const override
Validates a statement batch command.
void setSnapshotChangedCallback(SnapshotChanged cb) override
Registers a snapshot callback used by read-side consumers.
void deleteAnnual(const std::string &id) override
Deletes an annual.
core::ports::workspace::ValidationResult validateAnnual(const core::ports::workspace::AnnualCommand &command) const override
Validates an annual command.
void saveStatementDraft(const core::ports::workspace::StatementDraftCommand &command) override
Saves a statement draft.
std::string addStatement(const core::ports::workspace::StatementCommand &command) override
Adds a statement.
void commit() override
Commits pending workspace storage changes.
std::string nextContractName() const override
Returns the next generated contract name.
std::string addContract(const core::ports::workspace::ContractCommand &command) override
Adds a contract.
void newFile(const std::string &path) override
Creates a new workspace file.
core::ports::workspace::ValidationResult validateContract(const core::ports::workspace::ContractCommand &command) const override
Validates a contract command.
void openFile(const std::string &path) override
Opens a workspace file.
void updateActor(const core::ports::workspace::ActorCommand &command) override
Updates an actor.
void deleteImportLog(const std::string &id) override
Deletes an import log.
void clearStatementDraft(const std::string &draftId={}) override
Clears one statement draft or all drafts when id is empty.
void deleteActor(const std::string &id) override
Deletes an actor.
core::ports::workspace::WorkspaceIdentitySnapshot contractIdentityBySignature(const std::string &name, const std::string &type, const std::vector< std::string > &actorIds, const std::vector< std::string > &propertyIds) const override
Looks up a contract identity by signature.
void deleteStatement(const std::string &id) override
Deletes a statement.
std::string currentPath() const override
Returns the current workspace path tracked by the storage layer.
void updateTransaction(const core::ports::workspace::TransactionCommand &command) override
Updates a transaction.
void saveFile() override
Saves the current workspace file.
void updateAnnual(const core::ports::workspace::AnnualCommand &command) override
Updates an annual.
std::optional< core::ports::workspace::StatementDraftSnapshot > statementDraftSnapshot(const std::string &draftId={}) const override
Returns one statement draft snapshot.
void openLatest() override
Opens the latest workspace file.
void saveExportLog(const core::ports::workspace::ExportLogCommand &command) override
Saves an export log.
std::string addTransaction(const core::ports::workspace::TransactionCommand &command) override
Adds a transaction.
void saveImportLog(const core::ports::workspace::ImportLogCommand &command) override
Saves an import log.
std::string addStatementWithTransactions(const core::ports::workspace::StatementWithTransactionsCommand &command) override
Adds a statement and its transactions.
void updateProperty(const core::ports::workspace::PropertyCommand &command) override
Updates a property.
core::ports::workspace::WorkspaceIdentitySnapshot propertyIdentityByName(const std::string &name) const override
Looks up a property identity by name.
void deleteContract(const std::string &id) override
Deletes a contract.
void setAtomicStoreSave(core::ports::storage::IStorageManager::AtomicStoreSave saveFn) override
Registers the atomic save callback delegated to the storage manager.
void deleteTransaction(const std::string &id) override
Deletes a transaction.
std::string addActor(const core::ports::workspace::ActorCommand &command) override
Adds an actor.
void notifySnapshot() override
Publishes a fresh workspace snapshot.
core::ports::workspace::IWorkspaceWriter::SnapshotChanged SnapshotChanged
void updateStatement(const core::ports::workspace::StatementCommand &command) override
Updates a statement.
void updateAnalysis(const core::ports::workspace::AnalysisCommand &command) override
Updates an analysis.
core::ports::workspace::WorkspaceSnapshot workspaceSnapshot() const override
Returns the current immutable workspace snapshot.
void deleteExportLog(const std::string &id) override
Deletes an export log.
core::ports::workspace::ValidationResult validateAnalysis(const core::ports::workspace::AnalysisCommand &command) const override
Validates an analysis command.
std::string addProperty(const core::ports::workspace::PropertyCommand &command) override
Adds a property.
core::ports::workspace::ValidationResult validateProperty(const core::ports::workspace::PropertyCommand &command) const override
Validates a property command.
void setAtomicStoreLoad(core::ports::storage::IStorageManager::AtomicStoreLoad loadFn) override
Registers the atomic load callback delegated to the storage manager.
void deleteAnalysis(const std::string &id) override
Deletes an analysis.
core::ports::workspace::TransactionCatalogSelection transactionCatalogSelection(const core::ports::workspace::TransactionCatalogSelectionChange &change) const override
Applies catalog-dependent transaction selection rules.
std::string addAnnual(const core::ports::workspace::AnnualCommand &command) override
Adds an annual.
core::ports::workspace::ValidationResult validateTransaction(const core::ports::workspace::TransactionCommand &command) const override
Validates a transaction command.
Maintains the editable app state for one workspace and persists it through IStorageManager.
std::function< core::application::workspace::WorkspaceSessionState(const std::string &dbPath)> AtomicStoreLoad
std::function< core::domain::DeletionImpact(const std::string &dbPath, const core::application::workspace::WorkspaceSessionState &document)> AtomicStoreSave
Destroy the storage manager port.
std::function< void(const DeletionImpact &)> DeletionImpactCallback
Collects common core includes and aliases for precompiled-header builds.
Lists entity identifiers removed by cascading workspace operations.
std::vector< std::string > deletedAnnualIds
std::vector< std::string > deletedExportLogIds
std::vector< std::string > deletedStatementIds
std::vector< std::string > deletedActorIds
std::vector< std::string > deletedImportLogIds
std::vector< std::string > deletedPropertyIds
std::vector< std::string > deletedTransactionIds
std::vector< std::string > deletedStatementDraftIds
std::vector< std::string > deletedAnalysisIds
std::vector< std::string > deletedContractIds
std::vector< std::string > deletedTransactionDraftIds
Creates a statement together with its initial transactions.
Catalog selection change request for transaction forms.
Transaction catalog ids selected by a UI form or workspace query.