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>
This commit is contained in:
Mathias Beaulieu-Duncan 2026-01-20 15:10:07 -05:00
parent be9ff1b7b2
commit 46048307ea
12 changed files with 23370 additions and 3536 deletions

View File

@ -1,8 +1,11 @@
import 'dart:async'; import 'dart:async';
import 'package:fixnum/fixnum.dart';
import 'package:grpc/grpc.dart'; import 'package:grpc/grpc.dart';
import 'package:protobuf/protobuf.dart' as $protobuf;
import '../generated/delivery_service.pbgrpc.dart'; import '../generated/cqrs_services.pb.dart' as $pb;
import '../generated/cqrs_services.pbgrpc.dart';
import '../models/delivery.dart'; import '../models/delivery.dart';
import '../models/delivery_address.dart'; import '../models/delivery_address.dart';
import '../models/delivery_contact.dart'; import '../models/delivery_contact.dart';
@ -13,46 +16,20 @@ import '../services/auth_service.dart';
import 'grpc_config.dart'; import 'grpc_config.dart';
import 'types.dart'; import 'types.dart';
// ignore_for_file: unused_element
/// gRPC-based CQRS API client for Plan B Logistics. /// gRPC-based CQRS API client for Plan B Logistics.
///
/// This client wraps the generated DeliveryServiceClient with `Result<T>` error
/// handling patterns consistent with [CqrsApiClient]. It provides:
/// - Lazy channel initialization
/// - Authentication via Bearer token in gRPC metadata
/// - Automatic token refresh on UNAUTHENTICATED errors
/// - Proper gRPC error to [ApiError] mapping
///
/// Usage:
/// ```dart
/// final client = GrpcCqrsApiClient(
/// config: GrpcConfig.development,
/// authService: authService,
/// );
///
/// final result = await client.getDeliveryRoutes();
/// result.when(
/// success: (routes) => handleRoutes(routes),
/// onError: (error) => handleError(error),
/// );
/// ```
class GrpcCqrsApiClient { class GrpcCqrsApiClient {
final GrpcConfig config; final GrpcConfig config;
final AuthService? authService; final AuthService? authService;
ClientChannel? _channel; ClientChannel? _channel;
DeliveryServiceClient? _deliveryClient; DynamicQueryServiceClient? _queryClient;
CommandServiceClient? _commandClient;
GrpcCqrsApiClient({ GrpcCqrsApiClient({
required this.config, required this.config,
this.authService, this.authService,
}); });
/// Returns the gRPC channel, creating it lazily if needed.
///
/// The channel is configured based on [config.useTls] for development
/// (insecure) vs production (TLS) environments.
ClientChannel get channel { ClientChannel get channel {
if (_channel == null) { if (_channel == null) {
final credentials = config.useTls final credentials = config.useTls
@ -72,17 +49,16 @@ class GrpcCqrsApiClient {
return _channel!; return _channel!;
} }
/// Returns the DeliveryService client, creating it lazily if needed. DynamicQueryServiceClient get queryClient {
DeliveryServiceClient get deliveryClient { _queryClient ??= DynamicQueryServiceClient(channel);
_deliveryClient ??= DeliveryServiceClient(channel); return _queryClient!;
return _deliveryClient!; }
CommandServiceClient get commandClient {
_commandClient ??= CommandServiceClient(channel);
return _commandClient!;
} }
/// Builds [CallOptions] with authentication metadata.
///
/// Includes Bearer token in metadata if [authService] is configured and
/// a valid token is available. Uses [AuthService.ensureValidToken] to
/// proactively refresh tokens that are expiring soon.
Future<CallOptions> _buildCallOptions() async { Future<CallOptions> _buildCallOptions() async {
final metadata = <String, String>{}; final metadata = <String, String>{};
@ -99,33 +75,6 @@ class GrpcCqrsApiClient {
); );
} }
/// Merges base [CallOptions] with additional options for a specific call.
CallOptions _mergeOptions(CallOptions base, CallOptions? additional) {
if (additional == null) return base;
return CallOptions(
metadata: {
...base.metadata,
...additional.metadata,
},
timeout: additional.timeout ?? base.timeout,
providers: [
...base.metadataProviders,
...additional.metadataProviders,
],
);
}
/// Maps gRPC [GrpcError] to [ApiError] for consistent error handling.
///
/// Maps common gRPC status codes to appropriate [ApiErrorType]:
/// - UNAUTHENTICATED (16) -> HTTP 401
/// - PERMISSION_DENIED (7) -> HTTP 403
/// - NOT_FOUND (5) -> HTTP 404
/// - INVALID_ARGUMENT (3) -> Validation error
/// - DEADLINE_EXCEEDED (4) -> Timeout
/// - UNAVAILABLE (14) -> Network error
/// - Other codes -> Unknown error
ApiError _mapGrpcError(GrpcError error) { ApiError _mapGrpcError(GrpcError error) {
switch (error.code) { switch (error.code) {
case StatusCode.unauthenticated: case StatusCode.unauthenticated:
@ -151,400 +100,207 @@ class GrpcCqrsApiClient {
case StatusCode.deadlineExceeded: case StatusCode.deadlineExceeded:
return ApiError.timeout(); return ApiError.timeout();
case StatusCode.unavailable: case StatusCode.unavailable:
return ApiError.network( return ApiError.network('Service unavailable');
error.message ?? 'Service unavailable',
);
case StatusCode.internal:
return ApiError.http(
statusCode: 500,
message: error.message ?? 'Internal server error',
);
default: default:
return ApiError.unknown( return ApiError.unknown(
error.message ?? 'gRPC error: ${error.codeName}', error.message ?? 'Unknown error',
exception: error, exception: error,
); );
} }
} }
/// Executes a gRPC call with `Result<T>` error handling and authentication.
///
/// This is the core method that wraps gRPC calls with:
/// - Authentication token injection
/// - Automatic token refresh on UNAUTHENTICATED errors (single retry)
/// - gRPC error to ApiError mapping
/// - Timeout handling
///
/// [grpcCall] is the actual gRPC method invocation.
/// [isRetry] tracks whether this is a retry after token refresh.
Future<Result<T>> _executeWithAuth<T>(
Future<T> Function(CallOptions options) grpcCall, {
bool isRetry = false,
}) async {
try {
final options = await _buildCallOptions();
final result = await grpcCall(options);
return Result.success(result);
} on GrpcError catch (error) {
// Handle UNAUTHENTICATED by attempting token refresh (once)
if (error.code == StatusCode.unauthenticated &&
!isRetry &&
authService != null) {
final refreshResult = await authService!.refreshAccessToken();
return refreshResult.when(
success: (token) => _executeWithAuth(grpcCall, isRetry: true),
onError: (refreshError) => Result.error(_mapGrpcError(error)),
cancelled: () => Result.error(_mapGrpcError(error)),
);
}
return Result.error(_mapGrpcError(error));
} on TimeoutException {
return Result.error(ApiError.timeout());
} catch (e, stackTrace) {
return Result.error(
ApiError.unknown(
'gRPC call failed: ${e.toString()}',
exception: Exception(stackTrace.toString()),
),
);
}
}
/// Executes a gRPC call that returns void (for commands).
///
/// Similar to [_executeWithAuth] but for operations that don't return
/// meaningful data (commands that return success/failure).
Future<Result<void>> _executeCommandWithAuth(
Future<void> Function(CallOptions options) grpcCall, {
bool isRetry = false,
}) async {
try {
final options = await _buildCallOptions();
await grpcCall(options);
return Result.success(null);
} on GrpcError catch (error) {
if (error.code == StatusCode.unauthenticated &&
!isRetry &&
authService != null) {
final refreshResult = await authService!.refreshAccessToken();
return refreshResult.when(
success: (token) =>
_executeCommandWithAuth(grpcCall, isRetry: true),
onError: (refreshError) => Result.error(_mapGrpcError(error)),
cancelled: () => Result.error(_mapGrpcError(error)),
);
}
return Result.error(_mapGrpcError(error));
} on TimeoutException {
return Result.error(ApiError.timeout());
} catch (e, stackTrace) {
return Result.error(
ApiError.unknown(
'gRPC command failed: ${e.toString()}',
exception: Exception(stackTrace.toString()),
),
);
}
}
// ============================================================
// Query Methods
// ============================================================
/// Gets all delivery routes.
///
/// Returns a [Result] containing a list of [DeliveryRoute] objects.
/// Maps the gRPC [DeliveryRoutesResponse] to domain models.
///
/// Example:
/// ```dart
/// final result = await client.getDeliveryRoutes();
/// result.when(
/// success: (routes) => displayRoutes(routes),
/// onError: (error) => showError(error.message),
/// );
/// ```
Future<Result<List<DeliveryRoute>>> getDeliveryRoutes() async { Future<Result<List<DeliveryRoute>>> getDeliveryRoutes() async {
final result = await _executeWithAuth<DeliveryRoutesResponse>( try {
(options) => deliveryClient.getDeliveryRoutes(Empty(), options: options), final options = await _buildCallOptions();
final request = DynamicQuerySimpleDeliveryRouteQueryItemsRequest();
final response = await queryClient.querySimpleDeliveryRouteQueryItems(
request,
options: options,
); );
return result.when( final routes = response.data.map((item) => DeliveryRoute(
success: (response) { id: item.id.toInt(),
final routes = response.routes.map(_mapDeliveryRouteProto).toList(); routeId: item.routeId.toInt(),
name: item.name,
routeName: item.routeName,
deliveriesCount: item.deliveriesCount,
deliveredCount: item.deliveredCount,
completed: item.completed,
createdAt: item.createdAt.toDateTime().toIso8601String(),
)).toList();
return Result.success(routes); return Result.success(routes);
}, } on GrpcError catch (e) {
onError: (error) => Result.error(error), return Result.error(_mapGrpcError(e));
); } catch (e) {
return Result.error(ApiError.unknown(e.toString(), exception: Exception(e.toString())));
}
} }
/// Maps a [DeliveryRouteProto] to a [DeliveryRoute] domain model. Future<Result<List<Delivery>>> getDeliveries({required int routeFragmentId}) async {
DeliveryRoute _mapDeliveryRouteProto(DeliveryRouteProto proto) { try {
return DeliveryRoute( final options = await _buildCallOptions();
id: proto.id, final request = DynamicQuerySimpleDeliveriesQueryItemsRequest(
routeId: proto.routeId, filters: [
name: proto.name, DynamicQueryFilter(
routeName: proto.routeName, path: 'RouteFragmentId',
deliveriesCount: proto.deliveriesCount, type: 0, // Equal
deliveredCount: proto.deliveredCount, value: routeFragmentId.toString(),
completed: proto.completed, ),
createdAt: proto.createdAt, ],
);
}
/// Gets deliveries for a specific route fragment.
///
/// Returns a [Result] containing a list of [Delivery] objects for the
/// specified [routeFragmentId]. Maps the gRPC [DeliveriesResponse] to
/// domain models.
///
/// Example:
/// ```dart
/// final result = await client.getDeliveries(routeFragmentId: 123);
/// result.when(
/// success: (deliveries) => displayDeliveries(deliveries),
/// onError: (error) => showError(error.message),
/// );
/// ```
Future<Result<List<Delivery>>> getDeliveries({
required int routeFragmentId,
}) async {
final request = GetDeliveriesRequest(routeFragmentId: routeFragmentId);
final result = await _executeWithAuth<DeliveriesResponse>(
(options) => deliveryClient.getDeliveries(request, options: options),
); );
return result.when( final response = await queryClient.querySimpleDeliveriesQueryItems(
success: (response) { request,
final deliveries = options: options,
response.deliveries.map(_mapDeliveryProto).toList();
return Result.success(deliveries);
},
onError: (error) => Result.error(error),
); );
}
/// Maps a [DeliveryProto] to a [Delivery] domain model. final deliveries = response.data.map((item) {
Delivery _mapDeliveryProto(DeliveryProto proto) { final address = item.hasDeliveryAddress()
return Delivery( ? DeliveryAddress(
id: proto.id, id: item.deliveryAddress.id.toInt(),
routeFragmentId: proto.routeFragmentId, line1: item.deliveryAddress.line1,
deliveryIndex: proto.deliveryIndex, line2: item.deliveryAddress.line2.isNotEmpty ? item.deliveryAddress.line2 : null,
orders: proto.orders.map(_mapDeliveryOrderProto).toList(), postalCode: item.deliveryAddress.postalCode.isNotEmpty ? item.deliveryAddress.postalCode : null,
deliveredBy: city: item.deliveryAddress.city,
proto.hasDeliveredBy() ? _mapUserInfoProto(proto.deliveredBy) : null, subdivision: item.deliveryAddress.subdivision.isNotEmpty ? item.deliveryAddress.subdivision : null,
deliveryAddress: proto.hasDeliveryAddress() countryCode: item.deliveryAddress.countryCode,
? _mapDeliveryAddressProto(proto.deliveryAddress) latitude: item.deliveryAddress.latitude,
: null, longitude: item.deliveryAddress.longitude,
deliveredAt: proto.hasDeliveredAt() ? proto.deliveredAt : null, formattedAddress: item.deliveryAddress.formattedAddress,
skippedAt: proto.hasSkippedAt() ? proto.skippedAt : null, )
createdAt: proto.createdAt, : null;
updatedAt: proto.hasUpdatedAt() ? proto.updatedAt : null,
delivered: proto.delivered,
hasBeenSkipped: proto.hasBeenSkipped,
isSkipped: proto.isSkipped,
name: proto.name,
);
}
/// Maps a [DeliveryAddressProto] to a [DeliveryAddress] domain model. final orders = item.orders.map((orderProto) {
DeliveryAddress _mapDeliveryAddressProto(DeliveryAddressProto proto) { final contacts = orderProto.contacts.map((contactProto) => DeliveryContact(
return DeliveryAddress( firstName: contactProto.firstName,
id: proto.id, lastName: contactProto.lastName,
line1: proto.hasLine1() ? proto.line1 : null, phoneNumber: contactProto.phoneNumber.isNotEmpty ? contactProto.phoneNumber : null,
line2: proto.hasLine2() ? proto.line2 : null, fullName: contactProto.fullName,
postalCode: proto.hasPostalCode() ? proto.postalCode : null, )).toList();
city: proto.hasCity() ? proto.city : null,
subdivision: proto.hasSubdivision() ? proto.subdivision : null,
countryCode: proto.hasCountryCode() ? proto.countryCode : null,
latitude: proto.hasLatitude() ? proto.latitude : null,
longitude: proto.hasLongitude() ? proto.longitude : null,
formattedAddress:
proto.hasFormattedAddress() ? proto.formattedAddress : null,
);
}
/// Maps a [DeliveryOrderProto] to a [DeliveryOrder] domain model.
DeliveryOrder _mapDeliveryOrderProto(DeliveryOrderProto proto) {
return DeliveryOrder( return DeliveryOrder(
id: proto.id, id: orderProto.id.toInt(),
isNewCustomer: proto.isNewCustomer, isNewCustomer: orderProto.isNewCustomer,
note: proto.hasNote() ? proto.note : null, note: orderProto.note.isNotEmpty ? orderProto.note : null,
totalAmount: proto.totalAmount, totalAmount: double.tryParse(orderProto.totalAmount) ?? 0.0,
totalPaid: proto.hasTotalPaid() ? proto.totalPaid : null, totalPaid: orderProto.totalPaid.isNotEmpty ? double.tryParse(orderProto.totalPaid) : null,
totalItems: proto.hasTotalItems() ? proto.totalItems : null, totalItems: orderProto.totalItems,
contacts: proto.contacts.map(_mapDeliveryContactProto).toList(), contacts: contacts,
contact: contact: orderProto.hasContact()
proto.hasContact() ? _mapDeliveryContactProto(proto.contact) : null, ? DeliveryContact(
firstName: orderProto.contact.firstName,
lastName: orderProto.contact.lastName,
phoneNumber: orderProto.contact.phoneNumber.isNotEmpty ? orderProto.contact.phoneNumber : null,
fullName: orderProto.contact.fullName,
)
: null,
); );
}).toList();
final deliveredBy = item.hasDeliveredBy()
? UserInfo(
id: item.deliveredBy.id.toInt(),
firstName: item.deliveredBy.firstName,
lastName: item.deliveredBy.lastName,
fullName: item.deliveredBy.fullName,
)
: null;
return Delivery(
id: item.id.toInt(),
routeFragmentId: item.routeFragmentId.toInt(),
deliveryIndex: item.deliveryIndex,
orders: orders,
deliveredBy: deliveredBy,
deliveryAddress: address,
deliveredAt: item.hasDeliveredAt() ? item.deliveredAt.toDateTime().toIso8601String() : null,
skippedAt: item.hasSkippedAt() ? item.skippedAt.toDateTime().toIso8601String() : null,
createdAt: item.createdAt.toDateTime().toIso8601String(),
updatedAt: item.hasUpdatedAt() ? item.updatedAt.toDateTime().toIso8601String() : null,
delivered: item.delivered,
hasBeenSkipped: item.hasBeenSkipped,
isSkipped: item.isSkipped,
name: item.name,
);
}).toList();
return Result.success(deliveries);
} on GrpcError catch (e) {
return Result.error(_mapGrpcError(e));
} catch (e) {
return Result.error(ApiError.unknown(e.toString(), exception: Exception(e.toString())));
}
} }
/// Maps a [DeliveryContactProto] to a [DeliveryContact] domain model. Future<Result<void>> completeDelivery({required int deliveryId}) async {
DeliveryContact _mapDeliveryContactProto(DeliveryContactProto proto) { try {
return DeliveryContact( final options = await _buildCallOptions();
firstName: proto.firstName, final request = CompleteDeliveryCommandRequest(
lastName: proto.hasLastName() ? proto.lastName : null, deliveryId: Int64(deliveryId),
fullName: proto.fullName, deliveredAt: DateTime.now().toUtc().toProto3Timestamp(),
phoneNumber: proto.hasPhoneNumber() ? proto.phoneNumber : null,
);
}
/// Maps a [UserInfoProto] to a [UserInfo] domain model.
UserInfo _mapUserInfoProto(UserInfoProto proto) {
return UserInfo(
id: proto.id,
firstName: proto.firstName,
lastName: proto.hasLastName() ? proto.lastName : null,
fullName: proto.fullName,
);
}
// ============================================================
// Command Methods
// ============================================================
/// Marks a delivery as completed.
///
/// Returns a [Result] indicating success or failure. Optionally accepts
/// a [deliveredAt] timestamp; if not provided, the server will use the
/// current time.
///
/// Example:
/// ```dart
/// final result = await client.completeDelivery(deliveryId: 123);
/// result.when(
/// success: (_) => showSuccess('Delivery completed'),
/// onError: (error) => showError(error.message),
/// );
/// ```
Future<Result<void>> completeDelivery({
required int deliveryId,
String? deliveredAt,
}) async {
final request = CompleteDeliveryRequest(
deliveryId: deliveryId,
deliveredAt: deliveredAt,
); );
final result = await _executeWithAuth<CommandResponse>( await commandClient.completeDelivery(request, options: options);
(options) => deliveryClient.completeDelivery(request, options: options),
);
return result.when(
success: (response) {
if (response.success) {
return Result.success(null); return Result.success(null);
} on GrpcError catch (e) {
return Result.error(_mapGrpcError(e));
} catch (e) {
return Result.error(ApiError.unknown(e.toString(), exception: Exception(e.toString())));
} }
return Result.error(
ApiError.unknown(response.message.isNotEmpty
? response.message
: 'Failed to complete delivery'),
);
},
onError: (error) => Result.error(error),
);
} }
/// Marks a delivery as uncompleted. Future<Result<void>> markDeliveryAsUncompleted({required int deliveryId}) async {
/// try {
/// Returns a [Result] indicating success or failure. Use this to revert final options = await _buildCallOptions();
/// a previously completed delivery back to pending status. final request = MarkDeliveryAsUncompletedCommandRequest(
/// deliveryId: Int64(deliveryId),
/// Example:
/// ```dart
/// final result = await client.markDeliveryAsUncompleted(deliveryId: 123);
/// result.when(
/// success: (_) => showSuccess('Delivery marked as uncompleted'),
/// onError: (error) => showError(error.message),
/// );
/// ```
Future<Result<void>> markDeliveryAsUncompleted({
required int deliveryId,
}) async {
final request = MarkDeliveryUncompletedRequest(
deliveryId: deliveryId,
); );
final result = await _executeWithAuth<CommandResponse>( await commandClient.markDeliveryAsUncompleted(request, options: options);
(options) =>
deliveryClient.markDeliveryUncompleted(request, options: options),
);
return result.when(
success: (response) {
if (response.success) {
return Result.success(null); return Result.success(null);
} on GrpcError catch (e) {
return Result.error(_mapGrpcError(e));
} catch (e) {
return Result.error(ApiError.unknown(e.toString(), exception: Exception(e.toString())));
} }
return Result.error(
ApiError.unknown(response.message.isNotEmpty
? response.message
: 'Failed to mark delivery as uncompleted'),
);
},
onError: (error) => Result.error(error),
);
} }
/// Skips a delivery.
///
/// Returns a [Result] indicating success or failure. Use this when a
/// delivery cannot be completed and needs to be skipped.
///
/// Example:
/// ```dart
/// final result = await client.skipDelivery(deliveryId: 123);
/// result.when(
/// success: (_) => showSuccess('Delivery skipped'),
/// onError: (error) => showError(error.message),
/// );
/// ```
Future<Result<void>> skipDelivery({ Future<Result<void>> skipDelivery({
required int deliveryId, required int deliveryId,
required String description,
}) async { }) async {
final request = SkipDeliveryRequest( try {
deliveryId: deliveryId, final options = await _buildCallOptions();
final request = SkipDeliveryCommandRequest(
deliveryId: Int64(deliveryId),
description: description,
skippedAt: DateTime.now().toUtc().toProto3Timestamp(),
); );
final result = await _executeWithAuth<CommandResponse>( await commandClient.skipDelivery(request, options: options);
(options) => deliveryClient.skipDelivery(request, options: options),
);
return result.when(
success: (response) {
if (response.success) {
return Result.success(null); return Result.success(null);
} on GrpcError catch (e) {
return Result.error(_mapGrpcError(e));
} catch (e) {
return Result.error(ApiError.unknown(e.toString(), exception: Exception(e.toString())));
} }
return Result.error(
ApiError.unknown(response.message.isNotEmpty
? response.message
: 'Failed to skip delivery'),
);
},
onError: (error) => Result.error(error),
);
} }
/// Shuts down the gRPC channel and releases resources. void shutdown() {
/// _channel?.shutdown();
/// Should be called when the client is no longer needed to properly
/// clean up network resources.
Future<void> shutdown() async {
await _channel?.shutdown();
_channel = null; _channel = null;
_deliveryClient = null; _queryClient = null;
_commandClient = null;
}
}
// Extension to convert DateTime to protobuf Timestamp
extension DateTimeToProto on DateTime {
$pb.Timestamp toProto3Timestamp() {
return $pb.Timestamp()
..seconds = Int64(millisecondsSinceEpoch ~/ 1000)
..nanos = ((millisecondsSinceEpoch % 1000) * 1000000).toInt();
} }
/// Terminates the gRPC channel immediately.
///
/// Unlike [shutdown], this does not wait for pending calls to complete.
/// Use this for emergency cleanup or when the app is terminating.
Future<void> terminate() async {
await _channel?.terminate();
_channel = null;
_deliveryClient = null;
}
/// Returns true if the channel is currently active.
bool get isConnected => _channel != null;
} }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
// This is a generated file - do not edit.
//
// Generated from cqrs_services.proto.
// @dart = 3.3
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
/// InvoiceReportFilter enum
class InvoiceReportFilter extends $pb.ProtobufEnum {
static const InvoiceReportFilter INVOICE_REPORT_FILTER_DELIVERY =
InvoiceReportFilter._(
0, _omitEnumNames ? '' : 'INVOICE_REPORT_FILTER_DELIVERY');
static const InvoiceReportFilter INVOICE_REPORT_FILTER_OTHERS =
InvoiceReportFilter._(
1, _omitEnumNames ? '' : 'INVOICE_REPORT_FILTER_OTHERS');
static const InvoiceReportFilter INVOICE_REPORT_FILTER_ALL =
InvoiceReportFilter._(
2, _omitEnumNames ? '' : 'INVOICE_REPORT_FILTER_ALL');
static const $core.List<InvoiceReportFilter> values = <InvoiceReportFilter>[
INVOICE_REPORT_FILTER_DELIVERY,
INVOICE_REPORT_FILTER_OTHERS,
INVOICE_REPORT_FILTER_ALL,
];
static final $core.List<InvoiceReportFilter?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 2);
static InvoiceReportFilter? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const InvoiceReportFilter._(super.value, super.name);
}
/// UserRole enum
class UserRole extends $pb.ProtobufEnum {
static const UserRole USER_ROLE_OWNER =
UserRole._(0, _omitEnumNames ? '' : 'USER_ROLE_OWNER');
static const UserRole USER_ROLE_ADMIN =
UserRole._(1, _omitEnumNames ? '' : 'USER_ROLE_ADMIN');
static const UserRole USER_ROLE_DELIVERYMAN =
UserRole._(2, _omitEnumNames ? '' : 'USER_ROLE_DELIVERYMAN');
static const $core.List<UserRole> values = <UserRole>[
USER_ROLE_OWNER,
USER_ROLE_ADMIN,
USER_ROLE_DELIVERYMAN,
];
static final $core.List<UserRole?> _byValue =
$pb.ProtobufEnum.$_initByValueList(values, 2);
static UserRole? valueOf($core.int value) =>
value < 0 || value >= _byValue.length ? null : _byValue[value];
const UserRole._(super.value, super.name);
}
const $core.bool _omitEnumNames =
$core.bool.fromEnvironment('protobuf.omit_enum_names');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,297 +0,0 @@
// Generated code - do not modify
// ignore_for_file: annotate_overrides, camel_case_types, library_prefixes
// ignore_for_file: use_super_parameters, unused_import, non_constant_identifier_names
// Proto gRPC stubs for Plan B Logistics delivery service
import 'dart:async' as $async;
import 'dart:core' as $core;
import 'package:grpc/grpc.dart' as $grpc;
import 'delivery_service.pb.dart' as $0;
export 'delivery_service.pb.dart';
/// gRPC client for the DeliveryService.
///
/// Provides methods for querying delivery routes and deliveries,
/// as well as executing delivery commands (complete, uncomplete, skip).
class DeliveryServiceClient extends $grpc.Client {
static final _$getDeliveryRoutes =
$grpc.ClientMethod<$0.Empty, $0.DeliveryRoutesResponse>(
'/planb.delivery.DeliveryService/GetDeliveryRoutes',
($0.Empty value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.DeliveryRoutesResponse.fromBuffer(value),
);
static final _$getDeliveries =
$grpc.ClientMethod<$0.GetDeliveriesRequest, $0.DeliveriesResponse>(
'/planb.delivery.DeliveryService/GetDeliveries',
($0.GetDeliveriesRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.DeliveriesResponse.fromBuffer(value),
);
static final _$completeDelivery =
$grpc.ClientMethod<$0.CompleteDeliveryRequest, $0.CommandResponse>(
'/planb.delivery.DeliveryService/CompleteDelivery',
($0.CompleteDeliveryRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.CommandResponse.fromBuffer(value),
);
static final _$markDeliveryUncompleted =
$grpc.ClientMethod<$0.MarkDeliveryUncompletedRequest, $0.CommandResponse>(
'/planb.delivery.DeliveryService/MarkDeliveryUncompleted',
($0.MarkDeliveryUncompletedRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.CommandResponse.fromBuffer(value),
);
static final _$skipDelivery =
$grpc.ClientMethod<$0.SkipDeliveryRequest, $0.CommandResponse>(
'/planb.delivery.DeliveryService/SkipDelivery',
($0.SkipDeliveryRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.CommandResponse.fromBuffer(value),
);
static final _$uploadDeliveryPicture =
$grpc.ClientMethod<$0.UploadDeliveryPictureRequest, $0.UploadResponse>(
'/planb.delivery.DeliveryService/UploadDeliveryPicture',
($0.UploadDeliveryPictureRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.UploadResponse.fromBuffer(value),
);
DeliveryServiceClient(
$grpc.ClientChannel channel, {
$grpc.CallOptions? options,
$core.Iterable<$grpc.ClientInterceptor>? interceptors,
}) : super(
channel,
options: options,
interceptors: interceptors,
);
/// Gets all delivery routes.
///
/// Returns a [DeliveryRoutesResponse] containing all available routes.
$grpc.ResponseFuture<$0.DeliveryRoutesResponse> getDeliveryRoutes(
$0.Empty request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$getDeliveryRoutes,
request,
options: options,
);
}
/// Gets deliveries for a specific route fragment.
///
/// [request] must contain the routeFragmentId.
/// Returns a [DeliveriesResponse] containing deliveries for the route.
$grpc.ResponseFuture<$0.DeliveriesResponse> getDeliveries(
$0.GetDeliveriesRequest request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$getDeliveries,
request,
options: options,
);
}
/// Marks a delivery as completed.
///
/// [request] must contain the deliveryId and optionally deliveredAt timestamp.
/// Returns a [CommandResponse] indicating success or failure.
$grpc.ResponseFuture<$0.CommandResponse> completeDelivery(
$0.CompleteDeliveryRequest request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$completeDelivery,
request,
options: options,
);
}
/// Marks a delivery as uncompleted.
///
/// [request] must contain the deliveryId.
/// Returns a [CommandResponse] indicating success or failure.
$grpc.ResponseFuture<$0.CommandResponse> markDeliveryUncompleted(
$0.MarkDeliveryUncompletedRequest request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$markDeliveryUncompleted,
request,
options: options,
);
}
/// Skips a delivery.
///
/// [request] must contain the deliveryId.
/// Returns a [CommandResponse] indicating success or failure.
$grpc.ResponseFuture<$0.CommandResponse> skipDelivery(
$0.SkipDeliveryRequest request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$skipDelivery,
request,
options: options,
);
}
/// Uploads a picture for delivery proof.
///
/// [request] must contain the deliveryId, imageData (bytes), fileName, and contentType.
/// Returns an [UploadResponse] with the uploaded URL on success.
$grpc.ResponseFuture<$0.UploadResponse> uploadDeliveryPicture(
$0.UploadDeliveryPictureRequest request, {
$grpc.CallOptions? options,
}) {
return $createUnaryCall(
_$uploadDeliveryPicture,
request,
options: options,
);
}
}
/// Server-side base class for the DeliveryService.
///
/// Implement this class to create a gRPC server for delivery operations.
abstract class DeliveryServiceBase extends $grpc.Service {
@$core.override
$core.String get $name => 'planb.delivery.DeliveryService';
DeliveryServiceBase() {
$addMethod($grpc.ServiceMethod<$0.Empty, $0.DeliveryRoutesResponse>(
'GetDeliveryRoutes',
getDeliveryRoutes_Pre,
false,
false,
($core.List<$core.int> value) => $0.Empty.fromBuffer(value),
($0.DeliveryRoutesResponse value) => value.writeToBuffer(),
));
$addMethod($grpc.ServiceMethod<$0.GetDeliveriesRequest, $0.DeliveriesResponse>(
'GetDeliveries',
getDeliveries_Pre,
false,
false,
($core.List<$core.int> value) => $0.GetDeliveriesRequest.fromBuffer(value),
($0.DeliveriesResponse value) => value.writeToBuffer(),
));
$addMethod($grpc.ServiceMethod<$0.CompleteDeliveryRequest, $0.CommandResponse>(
'CompleteDelivery',
completeDelivery_Pre,
false,
false,
($core.List<$core.int> value) => $0.CompleteDeliveryRequest.fromBuffer(value),
($0.CommandResponse value) => value.writeToBuffer(),
));
$addMethod($grpc.ServiceMethod<$0.MarkDeliveryUncompletedRequest, $0.CommandResponse>(
'MarkDeliveryUncompleted',
markDeliveryUncompleted_Pre,
false,
false,
($core.List<$core.int> value) => $0.MarkDeliveryUncompletedRequest.fromBuffer(value),
($0.CommandResponse value) => value.writeToBuffer(),
));
$addMethod($grpc.ServiceMethod<$0.SkipDeliveryRequest, $0.CommandResponse>(
'SkipDelivery',
skipDelivery_Pre,
false,
false,
($core.List<$core.int> value) => $0.SkipDeliveryRequest.fromBuffer(value),
($0.CommandResponse value) => value.writeToBuffer(),
));
$addMethod($grpc.ServiceMethod<$0.UploadDeliveryPictureRequest, $0.UploadResponse>(
'UploadDeliveryPicture',
uploadDeliveryPicture_Pre,
false,
false,
($core.List<$core.int> value) => $0.UploadDeliveryPictureRequest.fromBuffer(value),
($0.UploadResponse value) => value.writeToBuffer(),
));
}
$async.Future<$0.DeliveryRoutesResponse> getDeliveryRoutes_Pre(
$grpc.ServiceCall call,
$async.Future<$0.Empty> request,
) async {
return getDeliveryRoutes(call, await request);
}
$async.Future<$0.DeliveriesResponse> getDeliveries_Pre(
$grpc.ServiceCall call,
$async.Future<$0.GetDeliveriesRequest> request,
) async {
return getDeliveries(call, await request);
}
$async.Future<$0.CommandResponse> completeDelivery_Pre(
$grpc.ServiceCall call,
$async.Future<$0.CompleteDeliveryRequest> request,
) async {
return completeDelivery(call, await request);
}
$async.Future<$0.CommandResponse> markDeliveryUncompleted_Pre(
$grpc.ServiceCall call,
$async.Future<$0.MarkDeliveryUncompletedRequest> request,
) async {
return markDeliveryUncompleted(call, await request);
}
$async.Future<$0.CommandResponse> skipDelivery_Pre(
$grpc.ServiceCall call,
$async.Future<$0.SkipDeliveryRequest> request,
) async {
return skipDelivery(call, await request);
}
$async.Future<$0.UploadResponse> uploadDeliveryPicture_Pre(
$grpc.ServiceCall call,
$async.Future<$0.UploadDeliveryPictureRequest> request,
) async {
return uploadDeliveryPicture(call, await request);
}
/// Gets all delivery routes.
$async.Future<$0.DeliveryRoutesResponse> getDeliveryRoutes(
$grpc.ServiceCall call,
$0.Empty request,
);
/// Gets deliveries for a specific route fragment.
$async.Future<$0.DeliveriesResponse> getDeliveries(
$grpc.ServiceCall call,
$0.GetDeliveriesRequest request,
);
/// Marks a delivery as completed.
$async.Future<$0.CommandResponse> completeDelivery(
$grpc.ServiceCall call,
$0.CompleteDeliveryRequest request,
);
/// Marks a delivery as uncompleted.
$async.Future<$0.CommandResponse> markDeliveryUncompleted(
$grpc.ServiceCall call,
$0.MarkDeliveryUncompletedRequest request,
);
/// Skips a delivery.
$async.Future<$0.CommandResponse> skipDelivery(
$grpc.ServiceCall call,
$0.SkipDeliveryRequest request,
);
/// Uploads a picture for delivery proof.
$async.Future<$0.UploadResponse> uploadDeliveryPicture(
$grpc.ServiceCall call,
$0.UploadDeliveryPictureRequest request,
);
}

View File

@ -1,821 +0,0 @@
// Minimal FileDescriptorProto implementation for proto generation
// ignore_for_file: annotate_overrides, camel_case_types, constant_identifier_names
// ignore_for_file: non_constant_identifier_names, prefer_single_quotes, use_super_parameters
// Based on google/protobuf/descriptor.proto
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
class FileDescriptorProto extends $pb.GeneratedMessage {
factory FileDescriptorProto({
$core.String? name,
$core.String? package,
$core.Iterable<$core.String>? dependency,
$core.Iterable<DescriptorProto>? messageType,
$core.Iterable<EnumDescriptorProto>? enumType,
$core.Iterable<ServiceDescriptorProto>? service,
$core.Iterable<FieldDescriptorProto>? extension,
FileOptions? options,
$core.String? syntax,
}) {
final result = create();
if (name != null) result.name = name;
if (package != null) result.package = package;
if (dependency != null) result.dependency.addAll(dependency);
if (messageType != null) result.messageType.addAll(messageType);
if (enumType != null) result.enumType.addAll(enumType);
if (service != null) result.service.addAll(service);
if (extension != null) result.extension.addAll(extension);
if (options != null) result.options = options;
if (syntax != null) result.syntax = syntax;
return result;
}
FileDescriptorProto._() : super();
factory FileDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('FileDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..aOS(2, 'package')
..pPS(3, 'dependency')
..pc<DescriptorProto>(4, 'messageType', $pb.PbFieldType.PM,
subBuilder: DescriptorProto.create)
..pc<EnumDescriptorProto>(5, 'enumType', $pb.PbFieldType.PM,
subBuilder: EnumDescriptorProto.create)
..pc<ServiceDescriptorProto>(6, 'service', $pb.PbFieldType.PM,
subBuilder: ServiceDescriptorProto.create)
..pc<FieldDescriptorProto>(7, 'extension', $pb.PbFieldType.PM,
subBuilder: FieldDescriptorProto.create)
..aOM<FileOptions>(8, 'options', subBuilder: FileOptions.create)
..aOS(12, 'syntax')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
FileDescriptorProto createEmptyInstance() => create();
static FileDescriptorProto create() => FileDescriptorProto._();
@$core.override
FileDescriptorProto clone() => FileDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasName() => $_has(0);
@$pb.TagNumber(2)
$core.String get package => $_getSZ(1);
@$pb.TagNumber(2)
set package($core.String v) => $_setString(1, v);
@$pb.TagNumber(2)
$core.bool hasPackage() => $_has(1);
@$pb.TagNumber(3)
$core.List<$core.String> get dependency => $_getList(2);
@$pb.TagNumber(4)
$core.List<DescriptorProto> get messageType => $_getList(3);
@$pb.TagNumber(5)
$core.List<EnumDescriptorProto> get enumType => $_getList(4);
@$pb.TagNumber(6)
$core.List<ServiceDescriptorProto> get service => $_getList(5);
@$pb.TagNumber(7)
$core.List<FieldDescriptorProto> get extension => $_getList(6);
@$pb.TagNumber(8)
FileOptions get options => $_getN(7);
@$pb.TagNumber(8)
set options(FileOptions v) => setField(8, v);
@$pb.TagNumber(8)
$core.bool hasOptions() => $_has(7);
@$pb.TagNumber(8)
FileOptions ensureOptions() => $_ensure(7);
@$pb.TagNumber(12)
$core.String get syntax => $_getSZ(8);
@$pb.TagNumber(12)
set syntax($core.String v) => $_setString(8, v);
@$pb.TagNumber(12)
$core.bool hasSyntax() => $_has(8);
}
class DescriptorProto extends $pb.GeneratedMessage {
factory DescriptorProto({
$core.String? name,
$core.Iterable<FieldDescriptorProto>? field,
$core.Iterable<FieldDescriptorProto>? extension,
$core.Iterable<DescriptorProto>? nestedType,
$core.Iterable<EnumDescriptorProto>? enumType,
$core.Iterable<DescriptorProto_ReservedRange>? reservedRange,
$core.Iterable<$core.String>? reservedName,
$core.Iterable<OneofDescriptorProto>? oneofDecl,
MessageOptions? options,
}) {
final result = create();
if (name != null) result.name = name;
if (field != null) result.field.addAll(field);
if (extension != null) result.extension.addAll(extension);
if (nestedType != null) result.nestedType.addAll(nestedType);
if (enumType != null) result.enumType.addAll(enumType);
if (reservedRange != null) result.reservedRange.addAll(reservedRange);
if (reservedName != null) result.reservedName.addAll(reservedName);
if (oneofDecl != null) result.oneofDecl.addAll(oneofDecl);
if (options != null) result.options = options;
return result;
}
DescriptorProto._() : super();
factory DescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('DescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..pc<FieldDescriptorProto>(2, 'field', $pb.PbFieldType.PM,
subBuilder: FieldDescriptorProto.create)
..pc<FieldDescriptorProto>(6, 'extension', $pb.PbFieldType.PM,
subBuilder: FieldDescriptorProto.create)
..pc<DescriptorProto>(3, 'nestedType', $pb.PbFieldType.PM,
subBuilder: DescriptorProto.create)
..pc<EnumDescriptorProto>(4, 'enumType', $pb.PbFieldType.PM,
subBuilder: EnumDescriptorProto.create)
..pc<DescriptorProto_ReservedRange>(9, 'reservedRange', $pb.PbFieldType.PM,
subBuilder: DescriptorProto_ReservedRange.create)
..pPS(10, 'reservedName')
..pc<OneofDescriptorProto>(8, 'oneofDecl', $pb.PbFieldType.PM,
subBuilder: OneofDescriptorProto.create)
..aOM<MessageOptions>(7, 'options', subBuilder: MessageOptions.create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
DescriptorProto createEmptyInstance() => create();
static DescriptorProto create() => DescriptorProto._();
@$core.override
DescriptorProto clone() => DescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(2)
$core.List<FieldDescriptorProto> get field => $_getList(1);
@$pb.TagNumber(6)
$core.List<FieldDescriptorProto> get extension => $_getList(2);
@$pb.TagNumber(3)
$core.List<DescriptorProto> get nestedType => $_getList(3);
@$pb.TagNumber(4)
$core.List<EnumDescriptorProto> get enumType => $_getList(4);
@$pb.TagNumber(9)
$core.List<DescriptorProto_ReservedRange> get reservedRange => $_getList(5);
@$pb.TagNumber(10)
$core.List<$core.String> get reservedName => $_getList(6);
@$pb.TagNumber(8)
$core.List<OneofDescriptorProto> get oneofDecl => $_getList(7);
@$pb.TagNumber(7)
MessageOptions get options => $_getN(8);
@$pb.TagNumber(7)
set options(MessageOptions v) => setField(7, v);
@$pb.TagNumber(7)
$core.bool hasOptions() => $_has(8);
@$pb.TagNumber(7)
MessageOptions ensureOptions() => $_ensure(8);
}
class DescriptorProto_ReservedRange extends $pb.GeneratedMessage {
factory DescriptorProto_ReservedRange({$core.int? start, $core.int? end}) {
final result = create();
if (start != null) result.start = start;
if (end != null) result.end = end;
return result;
}
DescriptorProto_ReservedRange._() : super();
factory DescriptorProto_ReservedRange.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('DescriptorProto.ReservedRange',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..a<$core.int>(1, 'start', $pb.PbFieldType.O3)
..a<$core.int>(2, 'end', $pb.PbFieldType.O3)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
DescriptorProto_ReservedRange createEmptyInstance() => create();
static DescriptorProto_ReservedRange create() => DescriptorProto_ReservedRange._();
@$core.override
DescriptorProto_ReservedRange clone() => DescriptorProto_ReservedRange()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.int get start => $_getIZ(0);
@$pb.TagNumber(1)
set start($core.int v) => $_setSignedInt32(0, v);
@$pb.TagNumber(2)
$core.int get end => $_getIZ(1);
@$pb.TagNumber(2)
set end($core.int v) => $_setSignedInt32(1, v);
}
class FieldDescriptorProto extends $pb.GeneratedMessage {
factory FieldDescriptorProto({
$core.String? name,
$core.int? number,
FieldDescriptorProto_Label? label,
FieldDescriptorProto_Type? type,
$core.String? typeName,
$core.String? extendee,
$core.String? defaultValue,
$core.int? oneofIndex,
$core.String? jsonName,
FieldOptions? options,
$core.bool? proto3Optional,
}) {
final result = create();
if (name != null) result.name = name;
if (number != null) result.number = number;
if (label != null) result.label = label;
if (type != null) result.type = type;
if (typeName != null) result.typeName = typeName;
if (extendee != null) result.extendee = extendee;
if (defaultValue != null) result.defaultValue = defaultValue;
if (oneofIndex != null) result.oneofIndex = oneofIndex;
if (jsonName != null) result.jsonName = jsonName;
if (options != null) result.options = options;
if (proto3Optional != null) result.proto3Optional = proto3Optional;
return result;
}
FieldDescriptorProto._() : super();
factory FieldDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('FieldDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..a<$core.int>(3, 'number', $pb.PbFieldType.O3)
..e<FieldDescriptorProto_Label>(4, 'label', $pb.PbFieldType.OE,
defaultOrMaker: FieldDescriptorProto_Label.LABEL_OPTIONAL,
valueOf: FieldDescriptorProto_Label.valueOf,
enumValues: FieldDescriptorProto_Label.values)
..e<FieldDescriptorProto_Type>(5, 'type', $pb.PbFieldType.OE,
defaultOrMaker: FieldDescriptorProto_Type.TYPE_DOUBLE,
valueOf: FieldDescriptorProto_Type.valueOf,
enumValues: FieldDescriptorProto_Type.values)
..aOS(6, 'typeName')
..aOS(2, 'extendee')
..aOS(7, 'defaultValue')
..a<$core.int>(9, 'oneofIndex', $pb.PbFieldType.O3)
..aOS(10, 'jsonName')
..aOM<FieldOptions>(8, 'options', subBuilder: FieldOptions.create)
..aOB(17, 'proto3Optional')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
FieldDescriptorProto createEmptyInstance() => create();
static FieldDescriptorProto create() => FieldDescriptorProto._();
@$core.override
FieldDescriptorProto clone() => FieldDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(3)
$core.int get number => $_getIZ(1);
@$pb.TagNumber(3)
set number($core.int v) => $_setSignedInt32(1, v);
@$pb.TagNumber(4)
FieldDescriptorProto_Label get label => $_getN(2);
@$pb.TagNumber(4)
set label(FieldDescriptorProto_Label v) => setField(4, v);
@$pb.TagNumber(4)
$core.bool hasLabel() => $_has(2);
@$pb.TagNumber(5)
FieldDescriptorProto_Type get type => $_getN(3);
@$pb.TagNumber(5)
set type(FieldDescriptorProto_Type v) => setField(5, v);
@$pb.TagNumber(5)
$core.bool hasType() => $_has(3);
@$pb.TagNumber(6)
$core.String get typeName => $_getSZ(4);
@$pb.TagNumber(6)
set typeName($core.String v) => $_setString(4, v);
@$pb.TagNumber(6)
$core.bool hasTypeName() => $_has(4);
@$pb.TagNumber(2)
$core.String get extendee => $_getSZ(5);
@$pb.TagNumber(2)
set extendee($core.String v) => $_setString(5, v);
@$pb.TagNumber(7)
$core.String get defaultValue => $_getSZ(6);
@$pb.TagNumber(7)
set defaultValue($core.String v) => $_setString(6, v);
@$pb.TagNumber(9)
$core.int get oneofIndex => $_getIZ(7);
@$pb.TagNumber(9)
set oneofIndex($core.int v) => $_setSignedInt32(7, v);
@$pb.TagNumber(9)
$core.bool hasOneofIndex() => $_has(7);
@$pb.TagNumber(10)
$core.String get jsonName => $_getSZ(8);
@$pb.TagNumber(10)
set jsonName($core.String v) => $_setString(8, v);
@$pb.TagNumber(10)
$core.bool hasJsonName() => $_has(8);
@$pb.TagNumber(8)
FieldOptions get options => $_getN(9);
@$pb.TagNumber(8)
set options(FieldOptions v) => setField(8, v);
@$pb.TagNumber(8)
$core.bool hasOptions() => $_has(9);
@$pb.TagNumber(8)
FieldOptions ensureOptions() => $_ensure(9);
@$pb.TagNumber(17)
$core.bool get proto3Optional => $_getBF(10);
@$pb.TagNumber(17)
set proto3Optional($core.bool v) => $_setBool(10, v);
@$pb.TagNumber(17)
$core.bool hasProto3Optional() => $_has(10);
}
class FieldDescriptorProto_Type extends $pb.ProtobufEnum {
static const FieldDescriptorProto_Type TYPE_DOUBLE = FieldDescriptorProto_Type._(1, 'TYPE_DOUBLE');
static const FieldDescriptorProto_Type TYPE_FLOAT = FieldDescriptorProto_Type._(2, 'TYPE_FLOAT');
static const FieldDescriptorProto_Type TYPE_INT64 = FieldDescriptorProto_Type._(3, 'TYPE_INT64');
static const FieldDescriptorProto_Type TYPE_UINT64 = FieldDescriptorProto_Type._(4, 'TYPE_UINT64');
static const FieldDescriptorProto_Type TYPE_INT32 = FieldDescriptorProto_Type._(5, 'TYPE_INT32');
static const FieldDescriptorProto_Type TYPE_FIXED64 = FieldDescriptorProto_Type._(6, 'TYPE_FIXED64');
static const FieldDescriptorProto_Type TYPE_FIXED32 = FieldDescriptorProto_Type._(7, 'TYPE_FIXED32');
static const FieldDescriptorProto_Type TYPE_BOOL = FieldDescriptorProto_Type._(8, 'TYPE_BOOL');
static const FieldDescriptorProto_Type TYPE_STRING = FieldDescriptorProto_Type._(9, 'TYPE_STRING');
static const FieldDescriptorProto_Type TYPE_GROUP = FieldDescriptorProto_Type._(10, 'TYPE_GROUP');
static const FieldDescriptorProto_Type TYPE_MESSAGE = FieldDescriptorProto_Type._(11, 'TYPE_MESSAGE');
static const FieldDescriptorProto_Type TYPE_BYTES = FieldDescriptorProto_Type._(12, 'TYPE_BYTES');
static const FieldDescriptorProto_Type TYPE_UINT32 = FieldDescriptorProto_Type._(13, 'TYPE_UINT32');
static const FieldDescriptorProto_Type TYPE_ENUM = FieldDescriptorProto_Type._(14, 'TYPE_ENUM');
static const FieldDescriptorProto_Type TYPE_SFIXED32 = FieldDescriptorProto_Type._(15, 'TYPE_SFIXED32');
static const FieldDescriptorProto_Type TYPE_SFIXED64 = FieldDescriptorProto_Type._(16, 'TYPE_SFIXED64');
static const FieldDescriptorProto_Type TYPE_SINT32 = FieldDescriptorProto_Type._(17, 'TYPE_SINT32');
static const FieldDescriptorProto_Type TYPE_SINT64 = FieldDescriptorProto_Type._(18, 'TYPE_SINT64');
static const $core.List<FieldDescriptorProto_Type> values = [
TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT64, TYPE_UINT64, TYPE_INT32,
TYPE_FIXED64, TYPE_FIXED32, TYPE_BOOL, TYPE_STRING, TYPE_GROUP,
TYPE_MESSAGE, TYPE_BYTES, TYPE_UINT32, TYPE_ENUM, TYPE_SFIXED32,
TYPE_SFIXED64, TYPE_SINT32, TYPE_SINT64,
];
static final $core.Map<$core.int, FieldDescriptorProto_Type> _byValue = $pb.ProtobufEnum.initByValue(values);
static FieldDescriptorProto_Type? valueOf($core.int value) => _byValue[value];
const FieldDescriptorProto_Type._($core.int v, $core.String n) : super(v, n);
}
class FieldDescriptorProto_Label extends $pb.ProtobufEnum {
static const FieldDescriptorProto_Label LABEL_OPTIONAL = FieldDescriptorProto_Label._(1, 'LABEL_OPTIONAL');
static const FieldDescriptorProto_Label LABEL_REQUIRED = FieldDescriptorProto_Label._(2, 'LABEL_REQUIRED');
static const FieldDescriptorProto_Label LABEL_REPEATED = FieldDescriptorProto_Label._(3, 'LABEL_REPEATED');
static const $core.List<FieldDescriptorProto_Label> values = [LABEL_OPTIONAL, LABEL_REQUIRED, LABEL_REPEATED];
static final $core.Map<$core.int, FieldDescriptorProto_Label> _byValue = $pb.ProtobufEnum.initByValue(values);
static FieldDescriptorProto_Label? valueOf($core.int value) => _byValue[value];
const FieldDescriptorProto_Label._($core.int v, $core.String n) : super(v, n);
}
class EnumDescriptorProto extends $pb.GeneratedMessage {
factory EnumDescriptorProto({
$core.String? name,
$core.Iterable<EnumValueDescriptorProto>? value,
EnumOptions? options,
}) {
final result = create();
if (name != null) result.name = name;
if (value != null) result.value.addAll(value);
if (options != null) result.options = options;
return result;
}
EnumDescriptorProto._() : super();
factory EnumDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('EnumDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..pc<EnumValueDescriptorProto>(2, 'value', $pb.PbFieldType.PM,
subBuilder: EnumValueDescriptorProto.create)
..aOM<EnumOptions>(3, 'options', subBuilder: EnumOptions.create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
EnumDescriptorProto createEmptyInstance() => create();
static EnumDescriptorProto create() => EnumDescriptorProto._();
@$core.override
EnumDescriptorProto clone() => EnumDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(2)
$core.List<EnumValueDescriptorProto> get value => $_getList(1);
@$pb.TagNumber(3)
EnumOptions get options => $_getN(2);
@$pb.TagNumber(3)
set options(EnumOptions v) => setField(3, v);
@$pb.TagNumber(3)
$core.bool hasOptions() => $_has(2);
}
class EnumValueDescriptorProto extends $pb.GeneratedMessage {
factory EnumValueDescriptorProto({$core.String? name, $core.int? number}) {
final result = create();
if (name != null) result.name = name;
if (number != null) result.number = number;
return result;
}
EnumValueDescriptorProto._() : super();
factory EnumValueDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('EnumValueDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..a<$core.int>(2, 'number', $pb.PbFieldType.O3)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
EnumValueDescriptorProto createEmptyInstance() => create();
static EnumValueDescriptorProto create() => EnumValueDescriptorProto._();
@$core.override
EnumValueDescriptorProto clone() => EnumValueDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(2)
$core.int get number => $_getIZ(1);
@$pb.TagNumber(2)
set number($core.int v) => $_setSignedInt32(1, v);
}
class ServiceDescriptorProto extends $pb.GeneratedMessage {
factory ServiceDescriptorProto({
$core.String? name,
$core.Iterable<MethodDescriptorProto>? method,
ServiceOptions? options,
}) {
final result = create();
if (name != null) result.name = name;
if (method != null) result.method.addAll(method);
if (options != null) result.options = options;
return result;
}
ServiceDescriptorProto._() : super();
factory ServiceDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ServiceDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..pc<MethodDescriptorProto>(2, 'method', $pb.PbFieldType.PM,
subBuilder: MethodDescriptorProto.create)
..aOM<ServiceOptions>(3, 'options', subBuilder: ServiceOptions.create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ServiceDescriptorProto createEmptyInstance() => create();
static ServiceDescriptorProto create() => ServiceDescriptorProto._();
@$core.override
ServiceDescriptorProto clone() => ServiceDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(2)
$core.List<MethodDescriptorProto> get method => $_getList(1);
@$pb.TagNumber(3)
ServiceOptions get options => $_getN(2);
@$pb.TagNumber(3)
set options(ServiceOptions v) => setField(3, v);
@$pb.TagNumber(3)
$core.bool hasOptions() => $_has(2);
}
class MethodDescriptorProto extends $pb.GeneratedMessage {
factory MethodDescriptorProto({
$core.String? name,
$core.String? inputType,
$core.String? outputType,
MethodOptions? options,
$core.bool? clientStreaming,
$core.bool? serverStreaming,
}) {
final result = create();
if (name != null) result.name = name;
if (inputType != null) result.inputType = inputType;
if (outputType != null) result.outputType = outputType;
if (options != null) result.options = options;
if (clientStreaming != null) result.clientStreaming = clientStreaming;
if (serverStreaming != null) result.serverStreaming = serverStreaming;
return result;
}
MethodDescriptorProto._() : super();
factory MethodDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('MethodDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..aOS(2, 'inputType')
..aOS(3, 'outputType')
..aOM<MethodOptions>(4, 'options', subBuilder: MethodOptions.create)
..aOB(5, 'clientStreaming')
..aOB(6, 'serverStreaming')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
MethodDescriptorProto createEmptyInstance() => create();
static MethodDescriptorProto create() => MethodDescriptorProto._();
@$core.override
MethodDescriptorProto clone() => MethodDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(2)
$core.String get inputType => $_getSZ(1);
@$pb.TagNumber(2)
set inputType($core.String v) => $_setString(1, v);
@$pb.TagNumber(3)
$core.String get outputType => $_getSZ(2);
@$pb.TagNumber(3)
set outputType($core.String v) => $_setString(2, v);
@$pb.TagNumber(4)
MethodOptions get options => $_getN(3);
@$pb.TagNumber(4)
set options(MethodOptions v) => setField(4, v);
@$pb.TagNumber(4)
$core.bool hasOptions() => $_has(3);
@$pb.TagNumber(5)
$core.bool get clientStreaming => $_getBF(4);
@$pb.TagNumber(5)
set clientStreaming($core.bool v) => $_setBool(4, v);
@$pb.TagNumber(6)
$core.bool get serverStreaming => $_getBF(5);
@$pb.TagNumber(6)
set serverStreaming($core.bool v) => $_setBool(5, v);
}
class OneofDescriptorProto extends $pb.GeneratedMessage {
factory OneofDescriptorProto({$core.String? name}) {
final result = create();
if (name != null) result.name = name;
return result;
}
OneofDescriptorProto._() : super();
factory OneofDescriptorProto.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('OneofDescriptorProto',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'name')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
OneofDescriptorProto createEmptyInstance() => create();
static OneofDescriptorProto create() => OneofDescriptorProto._();
@$core.override
OneofDescriptorProto clone() => OneofDescriptorProto()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
}
// Options classes - minimal implementations
class FileOptions extends $pb.GeneratedMessage {
FileOptions._() : super();
factory FileOptions.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('FileOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOS(1, 'javaPackage')
..aOS(8, 'javaOuterClassname')
..aOB(10, 'javaMultipleFiles')
..aOS(11, 'goPackage')
..aOS(37, 'csharpNamespace')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
FileOptions createEmptyInstance() => create();
static FileOptions create() => FileOptions._();
@$core.override
FileOptions clone() => create()..mergeFromMessage(this);
@$pb.TagNumber(1)
$core.String get javaPackage => $_getSZ(0);
@$pb.TagNumber(8)
$core.String get javaOuterClassname => $_getSZ(1);
@$pb.TagNumber(10)
$core.bool get javaMultipleFiles => $_getBF(2);
@$pb.TagNumber(11)
$core.String get goPackage => $_getSZ(3);
@$pb.TagNumber(37)
$core.String get csharpNamespace => $_getSZ(4);
}
class MessageOptions extends $pb.GeneratedMessage {
MessageOptions._() : super();
factory MessageOptions.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('MessageOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOB(7, 'mapEntry')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
MessageOptions createEmptyInstance() => create();
static MessageOptions create() => MessageOptions._();
@$core.override
MessageOptions clone() => create()..mergeFromMessage(this);
@$pb.TagNumber(7)
$core.bool get mapEntry => $_getBF(0);
}
class FieldOptions extends $pb.GeneratedMessage {
FieldOptions._() : super();
factory FieldOptions.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('FieldOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..aOB(2, 'packed')
..aOB(3, 'deprecated')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
FieldOptions createEmptyInstance() => create();
static FieldOptions create() => FieldOptions._();
@$core.override
FieldOptions clone() => create()..mergeFromMessage(this);
@$pb.TagNumber(2)
$core.bool get packed => $_getBF(0);
@$pb.TagNumber(3)
$core.bool get deprecated => $_getBF(1);
}
class EnumOptions extends $pb.GeneratedMessage {
EnumOptions._() : super();
static final $pb.BuilderInfo _i = $pb.BuilderInfo('EnumOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
EnumOptions createEmptyInstance() => create();
static EnumOptions create() => EnumOptions._();
@$core.override
EnumOptions clone() => create()..mergeFromMessage(this);
}
class ServiceOptions extends $pb.GeneratedMessage {
ServiceOptions._() : super();
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ServiceOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ServiceOptions createEmptyInstance() => create();
static ServiceOptions create() => ServiceOptions._();
@$core.override
ServiceOptions clone() => create()..mergeFromMessage(this);
}
class MethodOptions extends $pb.GeneratedMessage {
MethodOptions._() : super();
static final $pb.BuilderInfo _i = $pb.BuilderInfo('MethodOptions',
package: const $pb.PackageName('google.protobuf'),
createEmptyInstance: create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
MethodOptions createEmptyInstance() => create();
static MethodOptions create() => MethodOptions._();
@$core.override
MethodOptions clone() => create()..mergeFromMessage(this);
}

View File

@ -1,571 +0,0 @@
// Generated code - do not modify
// ignore_for_file: annotate_overrides, camel_case_types, constant_identifier_names
// ignore_for_file: non_constant_identifier_names, avoid_print
// Based on grpc.reflection.v1alpha.reflection.proto
import 'dart:core' as $core;
import 'package:protobuf/protobuf.dart' as $pb;
enum ServerReflectionRequest_MessageRequest {
fileByFilename,
fileContainingSymbol,
fileContainingExtension,
allExtensionNumbersOfType,
listServices,
notSet
}
class ServerReflectionRequest extends $pb.GeneratedMessage {
factory ServerReflectionRequest({
$core.String? host,
$core.String? fileByFilename,
$core.String? fileContainingSymbol,
ExtensionRequest? fileContainingExtension,
$core.String? allExtensionNumbersOfType,
$core.String? listServices,
}) {
final result = create();
if (host != null) result.host = host;
if (fileByFilename != null) result.fileByFilename = fileByFilename;
if (fileContainingSymbol != null) result.fileContainingSymbol = fileContainingSymbol;
if (fileContainingExtension != null) result.fileContainingExtension = fileContainingExtension;
if (allExtensionNumbersOfType != null) result.allExtensionNumbersOfType = allExtensionNumbersOfType;
if (listServices != null) result.listServices = listServices;
return result;
}
ServerReflectionRequest._() : super();
factory ServerReflectionRequest.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
factory ServerReflectionRequest.fromJson($core.String i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(i, r);
static const $core.Map<$core.int, ServerReflectionRequest_MessageRequest>
_ServerReflectionRequest_MessageRequestByTag = {
3: ServerReflectionRequest_MessageRequest.fileByFilename,
4: ServerReflectionRequest_MessageRequest.fileContainingSymbol,
5: ServerReflectionRequest_MessageRequest.fileContainingExtension,
6: ServerReflectionRequest_MessageRequest.allExtensionNumbersOfType,
7: ServerReflectionRequest_MessageRequest.listServices,
0: ServerReflectionRequest_MessageRequest.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
'ServerReflectionRequest',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..oo(0, [3, 4, 5, 6, 7])
..aOS(1, 'host')
..aOS(3, 'fileByFilename')
..aOS(4, 'fileContainingSymbol')
..aOM<ExtensionRequest>(5, 'fileContainingExtension',
subBuilder: ExtensionRequest.create)
..aOS(6, 'allExtensionNumbersOfType')
..aOS(7, 'listServices')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ServerReflectionRequest createEmptyInstance() => create();
static ServerReflectionRequest create() => ServerReflectionRequest._();
@$core.override
ServerReflectionRequest clone() => ServerReflectionRequest()..mergeFromMessage(this);
static $core.List<ServerReflectionRequest> createRepeated() => <ServerReflectionRequest>[];
ServerReflectionRequest_MessageRequest whichMessageRequest() =>
_ServerReflectionRequest_MessageRequestByTag[$_whichOneof(0)] ??
ServerReflectionRequest_MessageRequest.notSet;
void clearMessageRequest() => clearField($_whichOneof(0));
@$pb.TagNumber(1)
$core.String get host => $_getSZ(0);
@$pb.TagNumber(1)
set host($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasHost() => $_has(0);
@$pb.TagNumber(1)
void clearHost() => clearField(1);
@$pb.TagNumber(3)
$core.String get fileByFilename => $_getSZ(1);
@$pb.TagNumber(3)
set fileByFilename($core.String v) => $_setString(1, v);
@$pb.TagNumber(3)
$core.bool hasFileByFilename() => $_has(1);
@$pb.TagNumber(3)
void clearFileByFilename() => clearField(3);
@$pb.TagNumber(4)
$core.String get fileContainingSymbol => $_getSZ(2);
@$pb.TagNumber(4)
set fileContainingSymbol($core.String v) => $_setString(2, v);
@$pb.TagNumber(4)
$core.bool hasFileContainingSymbol() => $_has(2);
@$pb.TagNumber(4)
void clearFileContainingSymbol() => clearField(4);
@$pb.TagNumber(5)
ExtensionRequest get fileContainingExtension => $_getN(3);
@$pb.TagNumber(5)
set fileContainingExtension(ExtensionRequest v) => setField(5, v);
@$pb.TagNumber(5)
$core.bool hasFileContainingExtension() => $_has(3);
@$pb.TagNumber(5)
void clearFileContainingExtension() => clearField(5);
@$pb.TagNumber(5)
ExtensionRequest ensureFileContainingExtension() => $_ensure(3);
@$pb.TagNumber(6)
$core.String get allExtensionNumbersOfType => $_getSZ(4);
@$pb.TagNumber(6)
set allExtensionNumbersOfType($core.String v) => $_setString(4, v);
@$pb.TagNumber(6)
$core.bool hasAllExtensionNumbersOfType() => $_has(4);
@$pb.TagNumber(6)
void clearAllExtensionNumbersOfType() => clearField(6);
@$pb.TagNumber(7)
$core.String get listServices => $_getSZ(5);
@$pb.TagNumber(7)
set listServices($core.String v) => $_setString(5, v);
@$pb.TagNumber(7)
$core.bool hasListServices() => $_has(5);
@$pb.TagNumber(7)
void clearListServices() => clearField(7);
}
class ExtensionRequest extends $pb.GeneratedMessage {
factory ExtensionRequest({
$core.String? containingType,
$core.int? extensionNumber,
}) {
final result = create();
if (containingType != null) result.containingType = containingType;
if (extensionNumber != null) result.extensionNumber = extensionNumber;
return result;
}
ExtensionRequest._() : super();
factory ExtensionRequest.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ExtensionRequest',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..aOS(1, 'containingType')
..a<$core.int>(2, 'extensionNumber', $pb.PbFieldType.O3)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ExtensionRequest createEmptyInstance() => create();
static ExtensionRequest create() => ExtensionRequest._();
@$core.override
ExtensionRequest clone() => ExtensionRequest()..mergeFromMessage(this);
static $core.List<ExtensionRequest> createRepeated() => <ExtensionRequest>[];
@$pb.TagNumber(1)
$core.String get containingType => $_getSZ(0);
@$pb.TagNumber(1)
set containingType($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasContainingType() => $_has(0);
@$pb.TagNumber(1)
void clearContainingType() => clearField(1);
@$pb.TagNumber(2)
$core.int get extensionNumber => $_getIZ(1);
@$pb.TagNumber(2)
set extensionNumber($core.int v) => $_setSignedInt32(1, v);
@$pb.TagNumber(2)
$core.bool hasExtensionNumber() => $_has(1);
@$pb.TagNumber(2)
void clearExtensionNumber() => clearField(2);
}
enum ServerReflectionResponse_MessageResponse {
fileDescriptorResponse,
allExtensionNumbersResponse,
listServicesResponse,
errorResponse,
notSet
}
class ServerReflectionResponse extends $pb.GeneratedMessage {
factory ServerReflectionResponse({
$core.String? validHost,
ServerReflectionRequest? originalRequest,
FileDescriptorResponse? fileDescriptorResponse,
ExtensionNumberResponse? allExtensionNumbersResponse,
ListServiceResponse? listServicesResponse,
ErrorResponse? errorResponse,
}) {
final result = create();
if (validHost != null) result.validHost = validHost;
if (originalRequest != null) result.originalRequest = originalRequest;
if (fileDescriptorResponse != null) result.fileDescriptorResponse = fileDescriptorResponse;
if (allExtensionNumbersResponse != null) result.allExtensionNumbersResponse = allExtensionNumbersResponse;
if (listServicesResponse != null) result.listServicesResponse = listServicesResponse;
if (errorResponse != null) result.errorResponse = errorResponse;
return result;
}
ServerReflectionResponse._() : super();
factory ServerReflectionResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static const $core.Map<$core.int, ServerReflectionResponse_MessageResponse>
_ServerReflectionResponse_MessageResponseByTag = {
4: ServerReflectionResponse_MessageResponse.fileDescriptorResponse,
5: ServerReflectionResponse_MessageResponse.allExtensionNumbersResponse,
6: ServerReflectionResponse_MessageResponse.listServicesResponse,
7: ServerReflectionResponse_MessageResponse.errorResponse,
0: ServerReflectionResponse_MessageResponse.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
'ServerReflectionResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..oo(0, [4, 5, 6, 7])
..aOS(1, 'validHost')
..aOM<ServerReflectionRequest>(2, 'originalRequest',
subBuilder: ServerReflectionRequest.create)
..aOM<FileDescriptorResponse>(4, 'fileDescriptorResponse',
subBuilder: FileDescriptorResponse.create)
..aOM<ExtensionNumberResponse>(5, 'allExtensionNumbersResponse',
subBuilder: ExtensionNumberResponse.create)
..aOM<ListServiceResponse>(6, 'listServicesResponse',
subBuilder: ListServiceResponse.create)
..aOM<ErrorResponse>(7, 'errorResponse', subBuilder: ErrorResponse.create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ServerReflectionResponse createEmptyInstance() => create();
static ServerReflectionResponse create() => ServerReflectionResponse._();
@$core.override
ServerReflectionResponse clone() => ServerReflectionResponse()..mergeFromMessage(this);
static $core.List<ServerReflectionResponse> createRepeated() => <ServerReflectionResponse>[];
ServerReflectionResponse_MessageResponse whichMessageResponse() =>
_ServerReflectionResponse_MessageResponseByTag[$_whichOneof(0)] ??
ServerReflectionResponse_MessageResponse.notSet;
void clearMessageResponse() => clearField($_whichOneof(0));
@$pb.TagNumber(1)
$core.String get validHost => $_getSZ(0);
@$pb.TagNumber(1)
set validHost($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasValidHost() => $_has(0);
@$pb.TagNumber(1)
void clearValidHost() => clearField(1);
@$pb.TagNumber(2)
ServerReflectionRequest get originalRequest => $_getN(1);
@$pb.TagNumber(2)
set originalRequest(ServerReflectionRequest v) => setField(2, v);
@$pb.TagNumber(2)
$core.bool hasOriginalRequest() => $_has(1);
@$pb.TagNumber(2)
void clearOriginalRequest() => clearField(2);
@$pb.TagNumber(2)
ServerReflectionRequest ensureOriginalRequest() => $_ensure(1);
@$pb.TagNumber(4)
FileDescriptorResponse get fileDescriptorResponse => $_getN(2);
@$pb.TagNumber(4)
set fileDescriptorResponse(FileDescriptorResponse v) => setField(4, v);
@$pb.TagNumber(4)
$core.bool hasFileDescriptorResponse() => $_has(2);
@$pb.TagNumber(4)
void clearFileDescriptorResponse() => clearField(4);
@$pb.TagNumber(4)
FileDescriptorResponse ensureFileDescriptorResponse() => $_ensure(2);
@$pb.TagNumber(5)
ExtensionNumberResponse get allExtensionNumbersResponse => $_getN(3);
@$pb.TagNumber(5)
set allExtensionNumbersResponse(ExtensionNumberResponse v) => setField(5, v);
@$pb.TagNumber(5)
$core.bool hasAllExtensionNumbersResponse() => $_has(3);
@$pb.TagNumber(5)
void clearAllExtensionNumbersResponse() => clearField(5);
@$pb.TagNumber(5)
ExtensionNumberResponse ensureAllExtensionNumbersResponse() => $_ensure(3);
@$pb.TagNumber(6)
ListServiceResponse get listServicesResponse => $_getN(4);
@$pb.TagNumber(6)
set listServicesResponse(ListServiceResponse v) => setField(6, v);
@$pb.TagNumber(6)
$core.bool hasListServicesResponse() => $_has(4);
@$pb.TagNumber(6)
void clearListServicesResponse() => clearField(6);
@$pb.TagNumber(6)
ListServiceResponse ensureListServicesResponse() => $_ensure(4);
@$pb.TagNumber(7)
ErrorResponse get errorResponse => $_getN(5);
@$pb.TagNumber(7)
set errorResponse(ErrorResponse v) => setField(7, v);
@$pb.TagNumber(7)
$core.bool hasErrorResponse() => $_has(5);
@$pb.TagNumber(7)
void clearErrorResponse() => clearField(7);
@$pb.TagNumber(7)
ErrorResponse ensureErrorResponse() => $_ensure(5);
}
class FileDescriptorResponse extends $pb.GeneratedMessage {
factory FileDescriptorResponse({
$core.Iterable<$core.List<$core.int>>? fileDescriptorProto,
}) {
final result = create();
if (fileDescriptorProto != null) result.fileDescriptorProto.addAll(fileDescriptorProto);
return result;
}
FileDescriptorResponse._() : super();
factory FileDescriptorResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('FileDescriptorResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..p<$core.List<$core.int>>(1, 'fileDescriptorProto', $pb.PbFieldType.PY)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
FileDescriptorResponse createEmptyInstance() => create();
static FileDescriptorResponse create() => FileDescriptorResponse._();
@$core.override
FileDescriptorResponse clone() => FileDescriptorResponse()..mergeFromMessage(this);
static $core.List<FileDescriptorResponse> createRepeated() => <FileDescriptorResponse>[];
@$pb.TagNumber(1)
$core.List<$core.List<$core.int>> get fileDescriptorProto => $_getList(0);
}
class ExtensionNumberResponse extends $pb.GeneratedMessage {
factory ExtensionNumberResponse({
$core.String? baseTypeName,
$core.Iterable<$core.int>? extensionNumber,
}) {
final result = create();
if (baseTypeName != null) result.baseTypeName = baseTypeName;
if (extensionNumber != null) result.extensionNumber.addAll(extensionNumber);
return result;
}
ExtensionNumberResponse._() : super();
factory ExtensionNumberResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ExtensionNumberResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..aOS(1, 'baseTypeName')
..p<$core.int>(2, 'extensionNumber', $pb.PbFieldType.P3)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ExtensionNumberResponse createEmptyInstance() => create();
static ExtensionNumberResponse create() => ExtensionNumberResponse._();
@$core.override
ExtensionNumberResponse clone() => ExtensionNumberResponse()..mergeFromMessage(this);
static $core.List<ExtensionNumberResponse> createRepeated() => <ExtensionNumberResponse>[];
@$pb.TagNumber(1)
$core.String get baseTypeName => $_getSZ(0);
@$pb.TagNumber(1)
set baseTypeName($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasBaseTypeName() => $_has(0);
@$pb.TagNumber(1)
void clearBaseTypeName() => clearField(1);
@$pb.TagNumber(2)
$core.List<$core.int> get extensionNumber => $_getList(1);
}
class ListServiceResponse extends $pb.GeneratedMessage {
factory ListServiceResponse({
$core.Iterable<ServiceResponse>? service,
}) {
final result = create();
if (service != null) result.service.addAll(service);
return result;
}
ListServiceResponse._() : super();
factory ListServiceResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ListServiceResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..pc<ServiceResponse>(1, 'service', $pb.PbFieldType.PM,
subBuilder: ServiceResponse.create)
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ListServiceResponse createEmptyInstance() => create();
static ListServiceResponse create() => ListServiceResponse._();
@$core.override
ListServiceResponse clone() => ListServiceResponse()..mergeFromMessage(this);
static $core.List<ListServiceResponse> createRepeated() => <ListServiceResponse>[];
@$pb.TagNumber(1)
$core.List<ServiceResponse> get service => $_getList(0);
}
class ServiceResponse extends $pb.GeneratedMessage {
factory ServiceResponse({
$core.String? name,
}) {
final result = create();
if (name != null) result.name = name;
return result;
}
ServiceResponse._() : super();
factory ServiceResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ServiceResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..aOS(1, 'name')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ServiceResponse createEmptyInstance() => create();
static ServiceResponse create() => ServiceResponse._();
@$core.override
ServiceResponse clone() => ServiceResponse()..mergeFromMessage(this);
static $core.List<ServiceResponse> createRepeated() => <ServiceResponse>[];
@$pb.TagNumber(1)
$core.String get name => $_getSZ(0);
@$pb.TagNumber(1)
set name($core.String v) => $_setString(0, v);
@$pb.TagNumber(1)
$core.bool hasName() => $_has(0);
@$pb.TagNumber(1)
void clearName() => clearField(1);
}
class ErrorResponse extends $pb.GeneratedMessage {
factory ErrorResponse({
$core.int? errorCode,
$core.String? errorMessage,
}) {
final result = create();
if (errorCode != null) result.errorCode = errorCode;
if (errorMessage != null) result.errorMessage = errorMessage;
return result;
}
ErrorResponse._() : super();
factory ErrorResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ErrorResponse',
package: const $pb.PackageName('grpc.reflection.v1alpha'),
createEmptyInstance: create)
..a<$core.int>(1, 'errorCode', $pb.PbFieldType.O3)
..aOS(2, 'errorMessage')
..hasRequiredFields = false;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.override
ErrorResponse createEmptyInstance() => create();
static ErrorResponse create() => ErrorResponse._();
@$core.override
ErrorResponse clone() => ErrorResponse()..mergeFromMessage(this);
static $core.List<ErrorResponse> createRepeated() => <ErrorResponse>[];
@$pb.TagNumber(1)
$core.int get errorCode => $_getIZ(0);
@$pb.TagNumber(1)
set errorCode($core.int v) => $_setSignedInt32(0, v);
@$pb.TagNumber(1)
$core.bool hasErrorCode() => $_has(0);
@$pb.TagNumber(1)
void clearErrorCode() => clearField(1);
@$pb.TagNumber(2)
$core.String get errorMessage => $_getSZ(1);
@$pb.TagNumber(2)
set errorMessage($core.String v) => $_setString(1, v);
@$pb.TagNumber(2)
$core.bool hasErrorMessage() => $_has(1);
@$pb.TagNumber(2)
void clearErrorMessage() => clearField(2);
}

View File

@ -1,64 +0,0 @@
// Generated code - do not modify
// ignore_for_file: annotate_overrides, camel_case_types, library_prefixes
// ignore_for_file: use_super_parameters, unused_import
// Based on grpc.reflection.v1alpha.reflection.proto
import 'dart:async' as $async;
import 'dart:core' as $core;
import 'package:grpc/grpc.dart' as $grpc;
import 'reflection.pb.dart' as $0;
export 'reflection.pb.dart';
class ServerReflectionClient extends $grpc.Client {
static final _$serverReflectionInfo =
$grpc.ClientMethod<$0.ServerReflectionRequest, $0.ServerReflectionResponse>(
'/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo',
($0.ServerReflectionRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) => $0.ServerReflectionResponse.fromBuffer(value),
);
ServerReflectionClient(
$grpc.ClientChannel channel, {
$grpc.CallOptions? options,
$core.Iterable<$grpc.ClientInterceptor>? interceptors,
}) : super(
channel,
options: options,
interceptors: interceptors,
);
$grpc.ResponseStream<$0.ServerReflectionResponse> serverReflectionInfo(
$async.Stream<$0.ServerReflectionRequest> request, {
$grpc.CallOptions? options,
}) {
return $createStreamingCall(
_$serverReflectionInfo,
request,
options: options,
);
}
}
abstract class ServerReflectionServiceBase extends $grpc.Service {
@$core.override
$core.String get $name => 'grpc.reflection.v1alpha.ServerReflection';
ServerReflectionServiceBase() {
$addMethod($grpc.ServiceMethod<$0.ServerReflectionRequest, $0.ServerReflectionResponse>(
'ServerReflectionInfo',
serverReflectionInfo,
true,
true,
($core.List<$core.int> value) => $0.ServerReflectionRequest.fromBuffer(value),
($0.ServerReflectionResponse value) => value.writeToBuffer(),
));
}
$async.Stream<$0.ServerReflectionResponse> serverReflectionInfo(
$grpc.ServiceCall call,
$async.Stream<$0.ServerReflectionRequest> request,
);
}

View File

@ -97,8 +97,8 @@ class ApiModeConfig {
/// ) /// )
/// ``` /// ```
final apiModeConfigProvider = Provider<ApiModeConfig>((ref) { final apiModeConfigProvider = Provider<ApiModeConfig>((ref) {
// Default to HTTP for safety during transition // Use gRPC for development - HTTP backend has been deprecated
return ApiModeConfig.development; return ApiModeConfig.developmentGrpc;
}); });
// ============================================================================ // ============================================================================

1495
protos/cqrs_services.proto Normal file

File diff suppressed because it is too large Load Diff