import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'entitlement_state.dart'; import 'entitlement_storage.dart'; import 'feature_access_service.dart'; /// Provider for the physical entitlement storage contract. /// Can be overridden in tests with [InMemoryEntitlementStorage]. final entitlementStorageProvider = Provider((ref) { return const SecureEntitlementStorage(); }); /// Authoritative entitlement state provider. /// Defaults to [EntitlementState.free] until the billing coordinator or cache loader runs. /// In Stage 4B-2, this will be wired to the billing lifecycle coordinator. final entitlementProvider = StateProvider((ref) { return const EntitlementState.free(); }); /// Centralized provider for checking feature accessibility. /// Consumers watch this provider and call [FeatureAccessService.canAccess]. final featureAccessProvider = Provider((ref) { final state = ref.watch(entitlementProvider); return FeatureAccessService(state); });