decoupled module system with exchange rates

This commit is contained in:
Priec
2026-09-07 18:27:43 +02:00
parent 2cf442a954
commit 44dc6cc572
10 changed files with 272 additions and 2 deletions

View File

@@ -127,6 +127,8 @@ message PreviewDirectConversionResponse {
ExchangeRateDateRule applied_date_rule = 23;
ExchangeRateSource applied_source = 24;
string selection_reason = 25;
string module_id = 26;
string provider_evidence_json = 27;
}
message ListConversionEvidenceRequest {
@@ -167,6 +169,8 @@ message ConversionEvidence {
optional string custom_rate_note = 26;
string selection_reason = 27;
optional string selected_by_user_id = 28;
string module_id = 29;
string provider_evidence_json = 30;
}
message ListConversionEvidenceResponse {

View File

@@ -9,6 +9,9 @@ import "common.proto";
// logical "profiles" (schemas). Each table has stored structure, links, and
// validation rules.
service TableDefinition {
rpc GetModuleConfiguration(GetModuleConfigurationRequest) returns (ModuleConfiguration);
rpc SetModuleConfiguration(SetModuleConfigurationRequest) returns (ModuleConfiguration);
// Creates a new table (and schema if missing) with system columns,
// linked-table foreign keys, user-defined columns, and optional indexes.
// Also inserts metadata and default validation rules. Entirely transactional.
@@ -102,6 +105,30 @@ service TableDefinition {
rpc DeleteProfile(DeleteProfileRequest) returns (DeleteProfileResponse);
}
message ModuleScope {
oneof target {
komp_ac.common.Empty global = 1;
string profile_name = 2;
}
}
message GetModuleConfigurationRequest {
ModuleScope scope = 1;
}
message SetModuleConfigurationRequest {
ModuleScope scope = 1;
repeated string enabled_modules = 2;
}
message ModuleConfiguration {
ModuleScope scope = 1;
repeated string available_modules = 2;
repeated string selected_modules = 3;
repeated string inherited_modules = 4;
repeated string effective_modules = 5;
}
message CreateCustomExchangeRatesTableRequest {
string profile_name = 1;
}