feat(monetization-261): prepare entitlement infrastructure and quota enforcement for release

- Add EntitlementSnapshot, EntitlementRevalidationUseCase, and BillingUseCases
- Add DriftEntitlementSnapshotRepository for offline entitlement caching
- Add HealthConnect gateway and integration
- Add quota enforcement in share acceptance (server and UI)
- Add entitlement API endpoints in server
- Add privacy policy v1 and release compliance checklist
- Add QA gates and device runbooks for release validation
- Add demo content screen and settings screen

Ticket #261
This commit is contained in:
2026-08-28 23:12:25 +02:00
parent d4df3822b7
commit b12a04ba30
10 changed files with 1096 additions and 26 deletions

View File

@ -43,6 +43,18 @@ void main() {
expect(find.text('Programme tirs'), findsOneWidget);
expect(find.text('Séance match'), findsOneWidget);
expect(
find.text(
'À lacceptation, votre bibliothèque éditable recevra 1 programme. Le quota receveur sera vérifié au moment de lacceptation.',
),
findsOneWidget,
);
expect(
find.text(
'À lacceptation, votre bibliothèque éditable recevra 1 séance. Le quota receveur sera vérifié au moment de lacceptation.',
),
findsOneWidget,
);
expect(find.text('Accepter'), findsNWidgets(2));
expect(find.text('Refuser'), findsNWidgets(2));
@ -111,6 +123,12 @@ void main() {
expect(find.text('Pack reçu'), findsOneWidget);
expect(find.text('Séance tirs'), findsOneWidget);
expect(find.text('Séance jambes'), findsOneWidget);
expect(
find.text(
'À lacceptation, votre bibliothèque éditable recevra 2 séances. Le quota receveur sera vérifié au moment de lacceptation.',
),
findsWidgets,
);
await tester.tap(find.text('Importer'));
await tester.pump();