feat: resolve #740 #741 #742 #743 - ETL module, billing strategy, context+hooks, contract modularization - #828
Merged
Smartdevs17 merged 3 commits intoJul 29, 2026
Conversation
…tegy pattern, context+hooks, contract modularization - Smartdevs17#740: Extract ML service feature pipeline into standalone ETL module - Create ml-service/etl/ with extractors, transformers, loaders, pipeline, monitoring - Add Airflow DAG for pipeline orchestration - Add performance benchmarks - Add ETL testing framework and documentation - Smartdevs17#741: Refactor billing engine to strategy pattern for pluggable pricing - Create backend/services/billing/ with PricingStrategy interface - Implement FlatRate, UsageBased, Tiered, and Dynamic pricing strategies - Add PricingStrategyFactory for strategy selection by plan type - Add PricingAnalyticsService for revenue metrics - Add comprehensive tests - Smartdevs17#742: Refactor mobile app state management to context + hooks pattern - Create src/context/ with SubscriptionProvider and AppProvider - Create custom hooks for type-safe state access (useSubscriptionContext, useSubscriptions, etc.) - Add performance-optimized selectors to minimize re-renders - Maintain backward compatibility with existing Zustand stores - Smartdevs17#743: Refactor smart contract to modular library architecture - Extract plan.rs, subscription_lifecycle.rs, payment.rs, admin.rs from monolithic lib.rs - Maintain full backward compatibility with existing public API - Preserve all existing tests and functionality - Improve code organization and maintainability
This was referenced Jul 27, 2026
- Split StorageKey into StorageKey (core) + StorageKeyExt (extensions) to avoid soroban contracttype variant limit - Update storage bridge methods to accept Val instead of StorageKey - Make subscription storage helpers generic for both enum types - Fix subscription contract: oracle feature-gated imports, payment API (into_val/to_val), loyalty byte strings, Address comparison (deref), move-after-use bugs, type annotations, event_store comparisons - Fix oracle: add contracterror import, refactor chain-specific functions to use dedicated DataKey variants instead of Symbol::to_string() - Fix utils/merkle: u64→u32 vec indexing, Option<Bytes> wrapper - Fix audit: wrap event topic in tuple for Topics trait - Fix credit: undefined variable in next_wallet_id, u32→u64 cast - Add missing types to subtrackr-types (BillingSchedule, LoyaltyConfig, WebhookConfig, etc.) and Interval variants (BiWeekly, BiMonthly, etc.) - Gate all oracle-dependent code behind #[cfg(feature = "oracle")]
|
@Itodo-S Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR resolves issues #740, #741, #742, and #743 with the following changes:
#740: Extract ML service feature pipeline into standalone ETL module
ml-service/etl/with extractors, transformers, loaders, pipeline orchestrator, and monitoringml-service/dags/feature_pipeline_dag.py)ml-service/benchmarks/etl_benchmark.py)#741: Refactor billing engine to strategy pattern for pluggable pricing
backend/services/billing/with PricingStrategy interface#742: Refactor mobile app state management to context + hooks pattern
src/context/with SubscriptionProvider and AppProvider#743: Refactor smart contract to modular library architecture
Closes