Commit Graph

12 Commits

Author SHA1 Message Date
554b26cfd1 Fix gRPC Timestamp conversion and finalize API migration
- Use protobuf well_known_types Timestamp for gRPC compatibility
- Fix ApiError.network() to include required message parameter
- Complete migration from HTTP to gRPC with cqrs_services proto
- App now successfully connects to gRPC backend at 192.168.88.228:5011
- Mobile UX optimization with toggleable deliveries overlay functional

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 15:12:36 -05:00
46048307ea Migrate from HTTP API to gRPC with cqrs_services proto
- Regenerate proto stubs from correct cqrs_services.proto file
- Update GrpcCqrsApiClient to use DynamicQueryService and CommandService
- Fix type conversions for deliveries, routes, and commands
- Convert proto Timestamp to ISO8601 strings for model compatibility
- Convert string amounts to doubles for delivery orders
- Use Int64 for delivery IDs in gRPC commands

Work in progress: Timestamp conversion extension needs finalization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 15:10:07 -05:00
823f9107fd auto-claude: subtask-3-4 - Implement command methods (complete, uncomplete, skip)
Adds gRPC command methods to GrpcCqrsApiClient for delivery operations:
- completeDelivery: Mark delivery as completed with optional timestamp
- markDeliveryAsUncompleted: Revert completed delivery to pending
- skipDelivery: Skip a delivery that cannot be completed

All methods follow the Result<T> pattern for consistent error handling,
check CommandResponse.success flag, and map error messages appropriately.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 13:06:08 -05:00
7c1832dd4f auto-claude: subtask-3-3 - Implement getDeliveries query method 2026-01-20 13:04:25 -05:00
66d337315b auto-claude: subtask-3-2 - Implement getDeliveryRoutes query method 2026-01-20 13:02:56 -05:00
f6ecc8b1ae auto-claude: subtask-3-1 - Create GrpcCqrsApiClient class with channel management
Implements the foundational gRPC client class with:
- Lazy ClientChannel initialization with proper credentials
- DeliveryServiceClient lazy initialization
- Authentication via Bearer token in gRPC metadata
- CallOptions builder with token injection
- gRPC error to ApiError mapping (status codes -> HTTP equivalents)
- Token refresh on UNAUTHENTICATED errors (single retry)
- Proper channel shutdown/terminate methods

The core _executeWithAuth and _executeCommandWithAuth methods provide
the foundation for query and command methods in subsequent subtasks.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 13:00:55 -05:00
40f19c09f3 auto-claude: subtask-2-1 - Create service discovery utility using ReflectionClient
Adds GrpcDiscoveryClient for enumerating gRPC services via server reflection.
Includes:
- GrpcDiscoveryClient class with listServices(), discoverAllServices() methods
- Support for getting file descriptors for symbols and filenames
- DiscoveredService and DiscoveredMethod data classes
- Custom exceptions (ReflectionException, ConnectionException)
- Generated proto files for gRPC reflection (fixed for protobuf 6.0.0)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 12:52:37 -05:00
74aef4ea06 auto-claude: subtask-1-2 - Create GrpcConfig class with development/production configs
Add GrpcConfig class following the pattern from ApiClientConfig with:
- Development config: 192.168.88.228:5011 (plaintext/insecure)
- Production config: grpc-route.goutezplanb.com:443 (TLS)
- Host, port, timeout, useTls, and allowSelfSignedCertificate properties
- Address getter for convenience

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 12:48:23 -05:00
ef5c0c1a95 checkpoint 2025-11-26 15:59:20 -05:00
d46ac9dc14 checkpoint 2025-11-25 17:05:08 -05:00
ccb817e3c6 ios build, connected data (not finished) 2025-11-14 12:27:40 -05:00
Claude Code
4b03e9aba5 Initial commit: Plan B Logistics Flutter app with dark mode and responsive design
Implements complete refactor of Ionic Angular logistics app to Flutter/Dart with:
- Svrnty dark mode console theme (Material Design 3)
- Responsive layouts (mobile, tablet, desktop) following FRONTEND standards
- CQRS API integration with Result<T> error handling
- OAuth2/OIDC authentication support (mocked for initial testing)
- Delivery route and delivery management features
- Multi-language support (EN/FR) with i18n
- Native integrations (camera, phone calls, maps)
- Strict typing throughout codebase
- Mock data for UI testing without backend

Follows all FRONTEND style guides, design patterns, and conventions.
App is running in dark mode and fully responsive across all device sizes.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 04:58:10 -04:00