FOSSredder 0.5.0
Loading...
Searching...
No Matches
WorkspaceQueryService.h
Go to the documentation of this file.
1
5
6#pragma once
7
11
12#include <optional>
13#include <string>
14#include <vector>
15
16namespace core::application {
17
19
21public:
23 explicit WorkspaceQueryService(WorkspaceSession& session);
24
29
31 [[nodiscard]] core::ports::workspace::WorkspaceSnapshot workspaceSnapshot() const;
32
38 [[nodiscard]] std::optional<core::ports::workspace::StatementDraftSnapshot> statementDraftSnapshot(const std::string& draftId = {}) const;
40 [[nodiscard]] core::ports::workspace::WorkspaceIdentitySnapshot actorIdentityByName(const std::string& name) const;
42 [[nodiscard]] core::ports::workspace::WorkspaceIdentitySnapshot propertyIdentityByName(const std::string& name) const;
45 const std::string& name,
46 const std::string& type,
47 const std::vector<std::string>& actorIds,
48 const std::vector<std::string>& propertyIds) const;
57 [[nodiscard]] std::string nextContractName() const;
59 const std::string& currentPath() const noexcept;
60
61private:
62 const core::application::workspace::WorkspaceSessionState& stateRef() const noexcept;
63
64 WorkspaceSession* session_ = nullptr;
66};
67
68} // namespace core::application
Internal mutable workspace session state for application services.
Immutable workspace read-model snapshot exposed through workspace ports.
Projects internal workspace session state into immutable port snapshots.
core::ports::workspace::WorkspaceSnapshot workspaceSnapshot() const
Projects full workspace snapshot for port consumers.
WorkspaceQueryService & operator=(const WorkspaceQueryService &)=delete
WorkspaceQueryService(WorkspaceQueryService &&) noexcept
std::optional< core::ports::workspace::StatementDraftSnapshot > statementDraftSnapshot(const std::string &draftId={}) const
Projects one statement draft snapshot.
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
Finds a contract identity by normalized signature.
core::ports::workspace::TransactionCatalogSelection transactionCatalogSelection(const core::ports::workspace::TransactionCatalogSelectionChange &change) const
Applies catalog consistency rules to a transaction form selection.
WorkspaceQueryService(const WorkspaceQueryService &)=delete
WorkspaceQueryService(WorkspaceSession &session)
Creates the query service for one workspace session.
core::ports::workspace::WorkspaceIdentitySnapshot actorIdentityByName(const std::string &name) const
Finds an actor identity by normalized name.
std::string nextContractName() const
Returns the next generated contract name.
core::ports::workspace::WorkspaceIdentitySnapshot propertyIdentityByName(const std::string &name) const
Finds a property identity by normalized name.
const std::string & currentPath() const noexcept
Returns current workspace file path.
Maintains the editable app state for one workspace and persists it through IStorageManager.
Catalog selection change request for transaction forms.
Transaction catalog ids selected by a UI form or workspace query.