39 explicit WorkspaceFacade(std::unique_ptr<core::ports::storage::IStorageManager> storageManager);
107 const std::string& name,
108 const std::string& type,
109 const std::vector<std::string>& actorIds,
110 const std::vector<std::string>& propertyIds)
const override;
132 void newFile(
const std::string& path)
override;
137 void openFile(
const std::string& path)
override;
146 void saveFileAs(
const std::string& path)
override;
371 void installStateChangedDispatcher();
374 std::unique_ptr<WorkspaceSession> session_;
375 std::unique_ptr<WorkspaceCommandService> commands_;
376 std::unique_ptr<WorkspaceWorkflowService> workflows_;
377 std::unique_ptr<WorkspaceQueryService> queries_;
Declares the structured diagnostics reporting port.
Storage manager port used by application services.
Read-side workspace boundary that exposes immutable snapshots.
Write-side workspace boundary that accepts typed command models.
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.
WorkspaceFacade(const WorkspaceFacade &)=delete
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.
WorkspaceFacade(WorkspaceFacade &&) noexcept
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.
WorkspaceFacade & operator=(const WorkspaceFacade &)=delete
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.
Write-side workspace boundary for persistence, CRUD, drafts, and logs.
std::function< void(const DeletionImpact &)> DeletionImpactCallback
std::function< void(const WorkspaceSnapshot &)> SnapshotChanged
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.