//
//  Generated code. Do not modify.
//  source: tradeShared.proto
//
// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:core' as $core;

import 'package:protobuf/protobuf.dart' as $pb;

import 'actor.pb.dart' as $67;
import 'partner.pb.dart' as $66;
import 'repositoryShared.pb.dart' as $65;
import 'shared.pb.dart' as $3;
import 'tradeShared.pbenum.dart';
import 'warehousingShared.pb.dart' as $76;

export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;

export 'tradeShared.pbenum.dart';

///
/// 	Structure to reference another entity with a reason
class ReferencedID extends $pb.GeneratedMessage {
  factory ReferencedID({
    $core.String? refID,
    $core.String? reason,
  }) {
    final $result = create();
    if (refID != null) {
      $result.refID = refID;
    }
    if (reason != null) {
      $result.reason = reason;
    }
    return $result;
  }
  ReferencedID._() : super();
  factory ReferencedID.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ReferencedID.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ReferencedID', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'RefID', protoName: 'RefID')
    ..aOS(2, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ReferencedID clone() => ReferencedID()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ReferencedID copyWith(void Function(ReferencedID) updates) => super.copyWith((message) => updates(message as ReferencedID)) as ReferencedID;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ReferencedID create() => ReferencedID._();
  ReferencedID createEmptyInstance() => create();
  static $pb.PbList<ReferencedID> createRepeated() => $pb.PbList<ReferencedID>();
  @$core.pragma('dart2js:noInline')
  static ReferencedID getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ReferencedID>(create);
  static ReferencedID? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get refID => $_getSZ(0);
  @$pb.TagNumber(1)
  set refID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasRefID() => $_has(0);
  @$pb.TagNumber(1)
  void clearRefID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get reason => $_getSZ(1);
  @$pb.TagNumber(2)
  set reason($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasReason() => $_has(1);
  @$pb.TagNumber(2)
  void clearReason() => $_clearField(2);
}

class OrderRequestedMilestones extends $pb.GeneratedMessage {
  factory OrderRequestedMilestones({
    $3.DateTime? requestedDeliveryDateTime,
    $3.DateTime? requestedPickUpDateTime,
    $3.DateTime? requestedShipDateTime,
  }) {
    final $result = create();
    if (requestedDeliveryDateTime != null) {
      $result.requestedDeliveryDateTime = requestedDeliveryDateTime;
    }
    if (requestedPickUpDateTime != null) {
      $result.requestedPickUpDateTime = requestedPickUpDateTime;
    }
    if (requestedShipDateTime != null) {
      $result.requestedShipDateTime = requestedShipDateTime;
    }
    return $result;
  }
  OrderRequestedMilestones._() : super();
  factory OrderRequestedMilestones.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderRequestedMilestones.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'OrderRequestedMilestones', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.DateTime>(1, _omitFieldNames ? '' : 'RequestedDeliveryDateTime', protoName: 'RequestedDeliveryDateTime', subBuilder: $3.DateTime.create)
    ..aOM<$3.DateTime>(2, _omitFieldNames ? '' : 'RequestedPickUpDateTime', protoName: 'RequestedPickUpDateTime', subBuilder: $3.DateTime.create)
    ..aOM<$3.DateTime>(3, _omitFieldNames ? '' : 'RequestedShipDateTime', protoName: 'RequestedShipDateTime', subBuilder: $3.DateTime.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  OrderRequestedMilestones clone() => OrderRequestedMilestones()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  OrderRequestedMilestones copyWith(void Function(OrderRequestedMilestones) updates) => super.copyWith((message) => updates(message as OrderRequestedMilestones)) as OrderRequestedMilestones;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static OrderRequestedMilestones create() => OrderRequestedMilestones._();
  OrderRequestedMilestones createEmptyInstance() => create();
  static $pb.PbList<OrderRequestedMilestones> createRepeated() => $pb.PbList<OrderRequestedMilestones>();
  @$core.pragma('dart2js:noInline')
  static OrderRequestedMilestones getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<OrderRequestedMilestones>(create);
  static OrderRequestedMilestones? _defaultInstance;

  @$pb.TagNumber(1)
  $3.DateTime get requestedDeliveryDateTime => $_getN(0);
  @$pb.TagNumber(1)
  set requestedDeliveryDateTime($3.DateTime v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRequestedDeliveryDateTime() => $_has(0);
  @$pb.TagNumber(1)
  void clearRequestedDeliveryDateTime() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.DateTime ensureRequestedDeliveryDateTime() => $_ensure(0);

  @$pb.TagNumber(2)
  $3.DateTime get requestedPickUpDateTime => $_getN(1);
  @$pb.TagNumber(2)
  set requestedPickUpDateTime($3.DateTime v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasRequestedPickUpDateTime() => $_has(1);
  @$pb.TagNumber(2)
  void clearRequestedPickUpDateTime() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.DateTime ensureRequestedPickUpDateTime() => $_ensure(1);

  @$pb.TagNumber(3)
  $3.DateTime get requestedShipDateTime => $_getN(2);
  @$pb.TagNumber(3)
  set requestedShipDateTime($3.DateTime v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasRequestedShipDateTime() => $_has(2);
  @$pb.TagNumber(3)
  void clearRequestedShipDateTime() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.DateTime ensureRequestedShipDateTime() => $_ensure(2);
}

///
/// 	Definition of trade.Order.
/// 	It defines the requested goods
class OrderLine extends $pb.GeneratedMessage {
  factory OrderLine({
    $core.String? lineID,
    $76.QuantifiedRequestedGoods? requestedContent,
    $core.Iterable<$3.MetadataElement>? metaData,
    GoodsMetrics? requestedMetrics,
  }) {
    final $result = create();
    if (lineID != null) {
      $result.lineID = lineID;
    }
    if (requestedContent != null) {
      $result.requestedContent = requestedContent;
    }
    if (metaData != null) {
      $result.metaData.addAll(metaData);
    }
    if (requestedMetrics != null) {
      $result.requestedMetrics = requestedMetrics;
    }
    return $result;
  }
  OrderLine._() : super();
  factory OrderLine.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderLine.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'OrderLine', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'LineID', protoName: 'LineID')
    ..aOM<$76.QuantifiedRequestedGoods>(2, _omitFieldNames ? '' : 'RequestedContent', protoName: 'RequestedContent', subBuilder: $76.QuantifiedRequestedGoods.create)
    ..pc<$3.MetadataElement>(3, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..aOM<GoodsMetrics>(4, _omitFieldNames ? '' : 'RequestedMetrics', protoName: 'RequestedMetrics', subBuilder: GoodsMetrics.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  OrderLine clone() => OrderLine()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  OrderLine copyWith(void Function(OrderLine) updates) => super.copyWith((message) => updates(message as OrderLine)) as OrderLine;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static OrderLine create() => OrderLine._();
  OrderLine createEmptyInstance() => create();
  static $pb.PbList<OrderLine> createRepeated() => $pb.PbList<OrderLine>();
  @$core.pragma('dart2js:noInline')
  static OrderLine getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<OrderLine>(create);
  static OrderLine? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get lineID => $_getSZ(0);
  @$pb.TagNumber(1)
  set lineID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasLineID() => $_has(0);
  @$pb.TagNumber(1)
  void clearLineID() => $_clearField(1);

  @$pb.TagNumber(2)
  $76.QuantifiedRequestedGoods get requestedContent => $_getN(1);
  @$pb.TagNumber(2)
  set requestedContent($76.QuantifiedRequestedGoods v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasRequestedContent() => $_has(1);
  @$pb.TagNumber(2)
  void clearRequestedContent() => $_clearField(2);
  @$pb.TagNumber(2)
  $76.QuantifiedRequestedGoods ensureRequestedContent() => $_ensure(1);

  /// Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)
  @$pb.TagNumber(3)
  $pb.PbList<$3.MetadataElement> get metaData => $_getList(2);

  @$pb.TagNumber(4)
  GoodsMetrics get requestedMetrics => $_getN(3);
  @$pb.TagNumber(4)
  set requestedMetrics(GoodsMetrics v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasRequestedMetrics() => $_has(3);
  @$pb.TagNumber(4)
  void clearRequestedMetrics() => $_clearField(4);
  @$pb.TagNumber(4)
  GoodsMetrics ensureRequestedMetrics() => $_ensure(3);
}

///
/// 	Definition of trade. Executionflow lines.
/// 	It defines the requested goods and the prepared goods
class ExeFlowLine extends $pb.GeneratedMessage {
  factory ExeFlowLine({
    $core.String? lineID,
    $76.QuantifiedRequestedGoods? requestedContent,
    $core.Iterable<$3.MetadataElement>? metaData,
    $core.Iterable<$76.QuantifiedGoodsByHU>? shippedContents,
    $core.bool? preparedItemDiffersFromRequestedItem,
    $core.bool? receivedItemDiffersFromRequestedItem,
    GoodsMetrics? requestedMetrics,
    GoodsMetrics? totalPreparedMetrics,
    GoodsMetrics? totalReceivedMetrics,
    $core.bool? createdFromHU,
  }) {
    final $result = create();
    if (lineID != null) {
      $result.lineID = lineID;
    }
    if (requestedContent != null) {
      $result.requestedContent = requestedContent;
    }
    if (metaData != null) {
      $result.metaData.addAll(metaData);
    }
    if (shippedContents != null) {
      $result.shippedContents.addAll(shippedContents);
    }
    if (preparedItemDiffersFromRequestedItem != null) {
      $result.preparedItemDiffersFromRequestedItem = preparedItemDiffersFromRequestedItem;
    }
    if (receivedItemDiffersFromRequestedItem != null) {
      $result.receivedItemDiffersFromRequestedItem = receivedItemDiffersFromRequestedItem;
    }
    if (requestedMetrics != null) {
      $result.requestedMetrics = requestedMetrics;
    }
    if (totalPreparedMetrics != null) {
      $result.totalPreparedMetrics = totalPreparedMetrics;
    }
    if (totalReceivedMetrics != null) {
      $result.totalReceivedMetrics = totalReceivedMetrics;
    }
    if (createdFromHU != null) {
      $result.createdFromHU = createdFromHU;
    }
    return $result;
  }
  ExeFlowLine._() : super();
  factory ExeFlowLine.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ExeFlowLine.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ExeFlowLine', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'LineID', protoName: 'LineID')
    ..aOM<$76.QuantifiedRequestedGoods>(2, _omitFieldNames ? '' : 'RequestedContent', protoName: 'RequestedContent', subBuilder: $76.QuantifiedRequestedGoods.create)
    ..pc<$3.MetadataElement>(3, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..pc<$76.QuantifiedGoodsByHU>(4, _omitFieldNames ? '' : 'ShippedContents', $pb.PbFieldType.PM, protoName: 'ShippedContents', subBuilder: $76.QuantifiedGoodsByHU.create)
    ..aOB(5, _omitFieldNames ? '' : 'PreparedItemDiffersFromRequestedItem', protoName: 'PreparedItemDiffersFromRequestedItem')
    ..aOB(6, _omitFieldNames ? '' : 'ReceivedItemDiffersFromRequestedItem', protoName: 'ReceivedItemDiffersFromRequestedItem')
    ..aOM<GoodsMetrics>(7, _omitFieldNames ? '' : 'RequestedMetrics', protoName: 'RequestedMetrics', subBuilder: GoodsMetrics.create)
    ..aOM<GoodsMetrics>(8, _omitFieldNames ? '' : 'TotalPreparedMetrics', protoName: 'TotalPreparedMetrics', subBuilder: GoodsMetrics.create)
    ..aOM<GoodsMetrics>(9, _omitFieldNames ? '' : 'TotalReceivedMetrics', protoName: 'TotalReceivedMetrics', subBuilder: GoodsMetrics.create)
    ..aOB(12, _omitFieldNames ? '' : 'CreatedFromHU', protoName: 'CreatedFromHU')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ExeFlowLine clone() => ExeFlowLine()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ExeFlowLine copyWith(void Function(ExeFlowLine) updates) => super.copyWith((message) => updates(message as ExeFlowLine)) as ExeFlowLine;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ExeFlowLine create() => ExeFlowLine._();
  ExeFlowLine createEmptyInstance() => create();
  static $pb.PbList<ExeFlowLine> createRepeated() => $pb.PbList<ExeFlowLine>();
  @$core.pragma('dart2js:noInline')
  static ExeFlowLine getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ExeFlowLine>(create);
  static ExeFlowLine? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get lineID => $_getSZ(0);
  @$pb.TagNumber(1)
  set lineID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasLineID() => $_has(0);
  @$pb.TagNumber(1)
  void clearLineID() => $_clearField(1);

  @$pb.TagNumber(2)
  $76.QuantifiedRequestedGoods get requestedContent => $_getN(1);
  @$pb.TagNumber(2)
  set requestedContent($76.QuantifiedRequestedGoods v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasRequestedContent() => $_has(1);
  @$pb.TagNumber(2)
  void clearRequestedContent() => $_clearField(2);
  @$pb.TagNumber(2)
  $76.QuantifiedRequestedGoods ensureRequestedContent() => $_ensure(1);

  /// Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)
  @$pb.TagNumber(3)
  $pb.PbList<$3.MetadataElement> get metaData => $_getList(2);

  @$pb.TagNumber(4)
  $pb.PbList<$76.QuantifiedGoodsByHU> get shippedContents => $_getList(3);

  @$pb.TagNumber(5)
  $core.bool get preparedItemDiffersFromRequestedItem => $_getBF(4);
  @$pb.TagNumber(5)
  set preparedItemDiffersFromRequestedItem($core.bool v) { $_setBool(4, v); }
  @$pb.TagNumber(5)
  $core.bool hasPreparedItemDiffersFromRequestedItem() => $_has(4);
  @$pb.TagNumber(5)
  void clearPreparedItemDiffersFromRequestedItem() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.bool get receivedItemDiffersFromRequestedItem => $_getBF(5);
  @$pb.TagNumber(6)
  set receivedItemDiffersFromRequestedItem($core.bool v) { $_setBool(5, v); }
  @$pb.TagNumber(6)
  $core.bool hasReceivedItemDiffersFromRequestedItem() => $_has(5);
  @$pb.TagNumber(6)
  void clearReceivedItemDiffersFromRequestedItem() => $_clearField(6);

  @$pb.TagNumber(7)
  GoodsMetrics get requestedMetrics => $_getN(6);
  @$pb.TagNumber(7)
  set requestedMetrics(GoodsMetrics v) { $_setField(7, v); }
  @$pb.TagNumber(7)
  $core.bool hasRequestedMetrics() => $_has(6);
  @$pb.TagNumber(7)
  void clearRequestedMetrics() => $_clearField(7);
  @$pb.TagNumber(7)
  GoodsMetrics ensureRequestedMetrics() => $_ensure(6);

  @$pb.TagNumber(8)
  GoodsMetrics get totalPreparedMetrics => $_getN(7);
  @$pb.TagNumber(8)
  set totalPreparedMetrics(GoodsMetrics v) { $_setField(8, v); }
  @$pb.TagNumber(8)
  $core.bool hasTotalPreparedMetrics() => $_has(7);
  @$pb.TagNumber(8)
  void clearTotalPreparedMetrics() => $_clearField(8);
  @$pb.TagNumber(8)
  GoodsMetrics ensureTotalPreparedMetrics() => $_ensure(7);

  @$pb.TagNumber(9)
  GoodsMetrics get totalReceivedMetrics => $_getN(8);
  @$pb.TagNumber(9)
  set totalReceivedMetrics(GoodsMetrics v) { $_setField(9, v); }
  @$pb.TagNumber(9)
  $core.bool hasTotalReceivedMetrics() => $_has(8);
  @$pb.TagNumber(9)
  void clearTotalReceivedMetrics() => $_clearField(9);
  @$pb.TagNumber(9)
  GoodsMetrics ensureTotalReceivedMetrics() => $_ensure(8);

  @$pb.TagNumber(12)
  $core.bool get createdFromHU => $_getBF(9);
  @$pb.TagNumber(12)
  set createdFromHU($core.bool v) { $_setBool(9, v); }
  @$pb.TagNumber(12)
  $core.bool hasCreatedFromHU() => $_has(9);
  @$pb.TagNumber(12)
  void clearCreatedFromHU() => $_clearField(12);
}

class GoodsMetrics extends $pb.GeneratedMessage {
  factory GoodsMetrics({
    $3.QuantityWeight? grossWeight,
    $3.QuantityVolume? volume,
    $76.QuantityInLV? quantityInBaseLV,
    $core.Iterable<$76.QuantityByLV>? quantityByLVs,
    $core.String? lVDetailledQuantity,
  }) {
    final $result = create();
    if (grossWeight != null) {
      $result.grossWeight = grossWeight;
    }
    if (volume != null) {
      $result.volume = volume;
    }
    if (quantityInBaseLV != null) {
      $result.quantityInBaseLV = quantityInBaseLV;
    }
    if (quantityByLVs != null) {
      $result.quantityByLVs.addAll(quantityByLVs);
    }
    if (lVDetailledQuantity != null) {
      $result.lVDetailledQuantity = lVDetailledQuantity;
    }
    return $result;
  }
  GoodsMetrics._() : super();
  factory GoodsMetrics.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory GoodsMetrics.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GoodsMetrics', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.QuantityWeight>(1, _omitFieldNames ? '' : 'GrossWeight', protoName: 'GrossWeight', subBuilder: $3.QuantityWeight.create)
    ..aOM<$3.QuantityVolume>(2, _omitFieldNames ? '' : 'Volume', protoName: 'Volume', subBuilder: $3.QuantityVolume.create)
    ..aOM<$76.QuantityInLV>(3, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: $76.QuantityInLV.create)
    ..pc<$76.QuantityByLV>(4, _omitFieldNames ? '' : 'QuantityByLVs', $pb.PbFieldType.PM, protoName: 'QuantityByLVs', subBuilder: $76.QuantityByLV.create)
    ..aOS(5, _omitFieldNames ? '' : 'LVDetailledQuantity', protoName: 'LVDetailledQuantity')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  GoodsMetrics clone() => GoodsMetrics()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  GoodsMetrics copyWith(void Function(GoodsMetrics) updates) => super.copyWith((message) => updates(message as GoodsMetrics)) as GoodsMetrics;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static GoodsMetrics create() => GoodsMetrics._();
  GoodsMetrics createEmptyInstance() => create();
  static $pb.PbList<GoodsMetrics> createRepeated() => $pb.PbList<GoodsMetrics>();
  @$core.pragma('dart2js:noInline')
  static GoodsMetrics getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<GoodsMetrics>(create);
  static GoodsMetrics? _defaultInstance;

  @$pb.TagNumber(1)
  $3.QuantityWeight get grossWeight => $_getN(0);
  @$pb.TagNumber(1)
  set grossWeight($3.QuantityWeight v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGrossWeight() => $_has(0);
  @$pb.TagNumber(1)
  void clearGrossWeight() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.QuantityWeight ensureGrossWeight() => $_ensure(0);

  @$pb.TagNumber(2)
  $3.QuantityVolume get volume => $_getN(1);
  @$pb.TagNumber(2)
  set volume($3.QuantityVolume v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasVolume() => $_has(1);
  @$pb.TagNumber(2)
  void clearVolume() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.QuantityVolume ensureVolume() => $_ensure(1);

  @$pb.TagNumber(3)
  $76.QuantityInLV get quantityInBaseLV => $_getN(2);
  @$pb.TagNumber(3)
  set quantityInBaseLV($76.QuantityInLV v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasQuantityInBaseLV() => $_has(2);
  @$pb.TagNumber(3)
  void clearQuantityInBaseLV() => $_clearField(3);
  @$pb.TagNumber(3)
  $76.QuantityInLV ensureQuantityInBaseLV() => $_ensure(2);

  @$pb.TagNumber(4)
  $pb.PbList<$76.QuantityByLV> get quantityByLVs => $_getList(3);

  @$pb.TagNumber(5)
  $core.String get lVDetailledQuantity => $_getSZ(4);
  @$pb.TagNumber(5)
  set lVDetailledQuantity($core.String v) { $_setString(4, v); }
  @$pb.TagNumber(5)
  $core.bool hasLVDetailledQuantity() => $_has(4);
  @$pb.TagNumber(5)
  void clearLVDetailledQuantity() => $_clearField(5);
}

class TradeTier extends $pb.GeneratedMessage {
  factory TradeTier({
    $core.String? actorID,
    $67.ActorPayload? actor,
    $65.Interlocutor? contact,
    $core.String? partnerID,
    $66.PartnerPayload? partner,
  }) {
    final $result = create();
    if (actorID != null) {
      $result.actorID = actorID;
    }
    if (actor != null) {
      $result.actor = actor;
    }
    if (contact != null) {
      $result.contact = contact;
    }
    if (partnerID != null) {
      $result.partnerID = partnerID;
    }
    if (partner != null) {
      $result.partner = partner;
    }
    return $result;
  }
  TradeTier._() : super();
  factory TradeTier.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory TradeTier.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'TradeTier', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOM<$67.ActorPayload>(4, _omitFieldNames ? '' : 'Actor', protoName: 'Actor', subBuilder: $67.ActorPayload.create)
    ..aOM<$65.Interlocutor>(5, _omitFieldNames ? '' : 'Contact', protoName: 'Contact', subBuilder: $65.Interlocutor.create)
    ..aOS(6, _omitFieldNames ? '' : 'PartnerID', protoName: 'PartnerID')
    ..aOM<$66.PartnerPayload>(7, _omitFieldNames ? '' : 'Partner', protoName: 'Partner', subBuilder: $66.PartnerPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  TradeTier clone() => TradeTier()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  TradeTier copyWith(void Function(TradeTier) updates) => super.copyWith((message) => updates(message as TradeTier)) as TradeTier;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static TradeTier create() => TradeTier._();
  TradeTier createEmptyInstance() => create();
  static $pb.PbList<TradeTier> createRepeated() => $pb.PbList<TradeTier>();
  @$core.pragma('dart2js:noInline')
  static TradeTier getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<TradeTier>(create);
  static TradeTier? _defaultInstance;

  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(0);
  @$pb.TagNumber(2)
  set actorID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(0);
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);

  @$pb.TagNumber(4)
  $67.ActorPayload get actor => $_getN(1);
  @$pb.TagNumber(4)
  set actor($67.ActorPayload v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasActor() => $_has(1);
  @$pb.TagNumber(4)
  void clearActor() => $_clearField(4);
  @$pb.TagNumber(4)
  $67.ActorPayload ensureActor() => $_ensure(1);

  @$pb.TagNumber(5)
  $65.Interlocutor get contact => $_getN(2);
  @$pb.TagNumber(5)
  set contact($65.Interlocutor v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasContact() => $_has(2);
  @$pb.TagNumber(5)
  void clearContact() => $_clearField(5);
  @$pb.TagNumber(5)
  $65.Interlocutor ensureContact() => $_ensure(2);

  /// Must be an ID of an existing partner
  @$pb.TagNumber(6)
  $core.String get partnerID => $_getSZ(3);
  @$pb.TagNumber(6)
  set partnerID($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(6)
  $core.bool hasPartnerID() => $_has(3);
  @$pb.TagNumber(6)
  void clearPartnerID() => $_clearField(6);

  @$pb.TagNumber(7)
  $66.PartnerPayload get partner => $_getN(4);
  @$pb.TagNumber(7)
  set partner($66.PartnerPayload v) { $_setField(7, v); }
  @$pb.TagNumber(7)
  $core.bool hasPartner() => $_has(4);
  @$pb.TagNumber(7)
  void clearPartner() => $_clearField(7);
  @$pb.TagNumber(7)
  $66.PartnerPayload ensurePartner() => $_ensure(4);
}

class ETA extends $pb.GeneratedMessage {
  factory ETA({
    $3.DateTime? startETA,
    $3.DateTime? endETA,
    $3.DateTime? actualDate,
    $core.String? comment,
  }) {
    final $result = create();
    if (startETA != null) {
      $result.startETA = startETA;
    }
    if (endETA != null) {
      $result.endETA = endETA;
    }
    if (actualDate != null) {
      $result.actualDate = actualDate;
    }
    if (comment != null) {
      $result.comment = comment;
    }
    return $result;
  }
  ETA._() : super();
  factory ETA.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ETA.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ETA', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.DateTime>(3, _omitFieldNames ? '' : 'StartETA', protoName: 'StartETA', subBuilder: $3.DateTime.create)
    ..aOM<$3.DateTime>(4, _omitFieldNames ? '' : 'EndETA', protoName: 'EndETA', subBuilder: $3.DateTime.create)
    ..aOM<$3.DateTime>(5, _omitFieldNames ? '' : 'ActualDate', protoName: 'ActualDate', subBuilder: $3.DateTime.create)
    ..aOS(6, _omitFieldNames ? '' : 'Comment', protoName: 'Comment')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ETA clone() => ETA()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ETA copyWith(void Function(ETA) updates) => super.copyWith((message) => updates(message as ETA)) as ETA;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ETA create() => ETA._();
  ETA createEmptyInstance() => create();
  static $pb.PbList<ETA> createRepeated() => $pb.PbList<ETA>();
  @$core.pragma('dart2js:noInline')
  static ETA getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ETA>(create);
  static ETA? _defaultInstance;

  /// DateTime ETA = 1;                  // removed for 1.7
  /// DateTime WhenETAWasCalculated = 2; // removed for 1.7
  @$pb.TagNumber(3)
  $3.DateTime get startETA => $_getN(0);
  @$pb.TagNumber(3)
  set startETA($3.DateTime v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasStartETA() => $_has(0);
  @$pb.TagNumber(3)
  void clearStartETA() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.DateTime ensureStartETA() => $_ensure(0);

  @$pb.TagNumber(4)
  $3.DateTime get endETA => $_getN(1);
  @$pb.TagNumber(4)
  set endETA($3.DateTime v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasEndETA() => $_has(1);
  @$pb.TagNumber(4)
  void clearEndETA() => $_clearField(4);
  @$pb.TagNumber(4)
  $3.DateTime ensureEndETA() => $_ensure(1);

  @$pb.TagNumber(5)
  $3.DateTime get actualDate => $_getN(2);
  @$pb.TagNumber(5)
  set actualDate($3.DateTime v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasActualDate() => $_has(2);
  @$pb.TagNumber(5)
  void clearActualDate() => $_clearField(5);
  @$pb.TagNumber(5)
  $3.DateTime ensureActualDate() => $_ensure(2);

  @$pb.TagNumber(6)
  $core.String get comment => $_getSZ(3);
  @$pb.TagNumber(6)
  set comment($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(6)
  $core.bool hasComment() => $_has(3);
  @$pb.TagNumber(6)
  void clearComment() => $_clearField(6);
}

class ETAbyHU extends $pb.GeneratedMessage {
  factory ETAbyHU({
    $core.String? handlingunitID,
    ETA? eTA,
  }) {
    final $result = create();
    if (handlingunitID != null) {
      $result.handlingunitID = handlingunitID;
    }
    if (eTA != null) {
      $result.eTA = eTA;
    }
    return $result;
  }
  ETAbyHU._() : super();
  factory ETAbyHU.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ETAbyHU.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ETAbyHU', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'HandlingunitID', protoName: 'HandlingunitID')
    ..aOM<ETA>(2, _omitFieldNames ? '' : 'ETA', protoName: 'ETA', subBuilder: ETA.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ETAbyHU clone() => ETAbyHU()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ETAbyHU copyWith(void Function(ETAbyHU) updates) => super.copyWith((message) => updates(message as ETAbyHU)) as ETAbyHU;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ETAbyHU create() => ETAbyHU._();
  ETAbyHU createEmptyInstance() => create();
  static $pb.PbList<ETAbyHU> createRepeated() => $pb.PbList<ETAbyHU>();
  @$core.pragma('dart2js:noInline')
  static ETAbyHU getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ETAbyHU>(create);
  static ETAbyHU? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get handlingunitID => $_getSZ(0);
  @$pb.TagNumber(1)
  set handlingunitID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasHandlingunitID() => $_has(0);
  @$pb.TagNumber(1)
  void clearHandlingunitID() => $_clearField(1);

  @$pb.TagNumber(2)
  ETA get eTA => $_getN(1);
  @$pb.TagNumber(2)
  set eTA(ETA v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasETA() => $_has(1);
  @$pb.TagNumber(2)
  void clearETA() => $_clearField(2);
  @$pb.TagNumber(2)
  ETA ensureETA() => $_ensure(1);
}

class ETAbyExecutionflow extends $pb.GeneratedMessage {
  factory ETAbyExecutionflow({
    $core.String? executionflowID,
    ETA? eTA,
  }) {
    final $result = create();
    if (executionflowID != null) {
      $result.executionflowID = executionflowID;
    }
    if (eTA != null) {
      $result.eTA = eTA;
    }
    return $result;
  }
  ETAbyExecutionflow._() : super();
  factory ETAbyExecutionflow.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ETAbyExecutionflow.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ETAbyExecutionflow', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ExecutionflowID', protoName: 'ExecutionflowID')
    ..aOM<ETA>(2, _omitFieldNames ? '' : 'ETA', protoName: 'ETA', subBuilder: ETA.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ETAbyExecutionflow clone() => ETAbyExecutionflow()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ETAbyExecutionflow copyWith(void Function(ETAbyExecutionflow) updates) => super.copyWith((message) => updates(message as ETAbyExecutionflow)) as ETAbyExecutionflow;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ETAbyExecutionflow create() => ETAbyExecutionflow._();
  ETAbyExecutionflow createEmptyInstance() => create();
  static $pb.PbList<ETAbyExecutionflow> createRepeated() => $pb.PbList<ETAbyExecutionflow>();
  @$core.pragma('dart2js:noInline')
  static ETAbyExecutionflow getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ETAbyExecutionflow>(create);
  static ETAbyExecutionflow? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get executionflowID => $_getSZ(0);
  @$pb.TagNumber(1)
  set executionflowID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasExecutionflowID() => $_has(0);
  @$pb.TagNumber(1)
  void clearExecutionflowID() => $_clearField(1);

  @$pb.TagNumber(2)
  ETA get eTA => $_getN(1);
  @$pb.TagNumber(2)
  set eTA(ETA v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasETA() => $_has(1);
  @$pb.TagNumber(2)
  void clearETA() => $_clearField(2);
  @$pb.TagNumber(2)
  ETA ensureETA() => $_ensure(1);
}

///
/// 	Order entity status structure
class OrderStatus extends $pb.GeneratedMessage {
  factory OrderStatus({
    OrderStatusCode? statusCode,
    $core.String? date,
    $3.DateTime? actualDate,
  }) {
    final $result = create();
    if (statusCode != null) {
      $result.statusCode = statusCode;
    }
    if (date != null) {
      $result.date = date;
    }
    if (actualDate != null) {
      $result.actualDate = actualDate;
    }
    return $result;
  }
  OrderStatus._() : super();
  factory OrderStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'OrderStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<OrderStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: OrderStatusCode.ORDER_0000_UNKNOWN, valueOf: OrderStatusCode.valueOf, enumValues: OrderStatusCode.values)
    ..aOS(2, _omitFieldNames ? '' : 'Date', protoName: 'Date')
    ..aOM<$3.DateTime>(3, _omitFieldNames ? '' : 'ActualDate', protoName: 'ActualDate', subBuilder: $3.DateTime.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  OrderStatus clone() => OrderStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  OrderStatus copyWith(void Function(OrderStatus) updates) => super.copyWith((message) => updates(message as OrderStatus)) as OrderStatus;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static OrderStatus create() => OrderStatus._();
  OrderStatus createEmptyInstance() => create();
  static $pb.PbList<OrderStatus> createRepeated() => $pb.PbList<OrderStatus>();
  @$core.pragma('dart2js:noInline')
  static OrderStatus getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<OrderStatus>(create);
  static OrderStatus? _defaultInstance;

  @$pb.TagNumber(1)
  OrderStatusCode get statusCode => $_getN(0);
  @$pb.TagNumber(1)
  set statusCode(OrderStatusCode v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasStatusCode() => $_has(0);
  @$pb.TagNumber(1)
  void clearStatusCode() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get date => $_getSZ(1);
  @$pb.TagNumber(2)
  set date($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasDate() => $_has(1);
  @$pb.TagNumber(2)
  void clearDate() => $_clearField(2);

  /// Status effective date. Set by the event's RefDate that triggered the status change.
  @$pb.TagNumber(3)
  $3.DateTime get actualDate => $_getN(2);
  @$pb.TagNumber(3)
  set actualDate($3.DateTime v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasActualDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearActualDate() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.DateTime ensureActualDate() => $_ensure(2);
}

///
/// 	OrderStatusStruct statuses structure
class OrderStatusStruct extends $pb.GeneratedMessage {
  factory OrderStatusStruct({
    OrderStatus? current,
    $core.Iterable<OrderStatus>? history,
    $core.String? creationDate,
  }) {
    final $result = create();
    if (current != null) {
      $result.current = current;
    }
    if (history != null) {
      $result.history.addAll(history);
    }
    if (creationDate != null) {
      $result.creationDate = creationDate;
    }
    return $result;
  }
  OrderStatusStruct._() : super();
  factory OrderStatusStruct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderStatusStruct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'OrderStatusStruct', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<OrderStatus>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: OrderStatus.create)
    ..pc<OrderStatus>(2, _omitFieldNames ? '' : 'History', $pb.PbFieldType.PM, protoName: 'History', subBuilder: OrderStatus.create)
    ..aOS(3, _omitFieldNames ? '' : 'CreationDate', protoName: 'CreationDate')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  OrderStatusStruct clone() => OrderStatusStruct()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  OrderStatusStruct copyWith(void Function(OrderStatusStruct) updates) => super.copyWith((message) => updates(message as OrderStatusStruct)) as OrderStatusStruct;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static OrderStatusStruct create() => OrderStatusStruct._();
  OrderStatusStruct createEmptyInstance() => create();
  static $pb.PbList<OrderStatusStruct> createRepeated() => $pb.PbList<OrderStatusStruct>();
  @$core.pragma('dart2js:noInline')
  static OrderStatusStruct getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<OrderStatusStruct>(create);
  static OrderStatusStruct? _defaultInstance;

  @$pb.TagNumber(1)
  OrderStatus get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(OrderStatus v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  OrderStatus ensureCurrent() => $_ensure(0);

  @$pb.TagNumber(2)
  $pb.PbList<OrderStatus> get history => $_getList(1);

  @$pb.TagNumber(3)
  $core.String get creationDate => $_getSZ(2);
  @$pb.TagNumber(3)
  set creationDate($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasCreationDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearCreationDate() => $_clearField(3);
}

///
/// 	Executionflow entity status structure
class ExecutionflowStatus extends $pb.GeneratedMessage {
  factory ExecutionflowStatus({
    ExecutionflowStatusCode? statusCode,
    $core.String? date,
    $3.DateTime? actualDate,
  }) {
    final $result = create();
    if (statusCode != null) {
      $result.statusCode = statusCode;
    }
    if (date != null) {
      $result.date = date;
    }
    if (actualDate != null) {
      $result.actualDate = actualDate;
    }
    return $result;
  }
  ExecutionflowStatus._() : super();
  factory ExecutionflowStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ExecutionflowStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ExecutionflowStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<ExecutionflowStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: ExecutionflowStatusCode.EXECUTIONFLOW_0000_UNKNOWN, valueOf: ExecutionflowStatusCode.valueOf, enumValues: ExecutionflowStatusCode.values)
    ..aOS(2, _omitFieldNames ? '' : 'Date', protoName: 'Date')
    ..aOM<$3.DateTime>(3, _omitFieldNames ? '' : 'ActualDate', protoName: 'ActualDate', subBuilder: $3.DateTime.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ExecutionflowStatus clone() => ExecutionflowStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ExecutionflowStatus copyWith(void Function(ExecutionflowStatus) updates) => super.copyWith((message) => updates(message as ExecutionflowStatus)) as ExecutionflowStatus;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ExecutionflowStatus create() => ExecutionflowStatus._();
  ExecutionflowStatus createEmptyInstance() => create();
  static $pb.PbList<ExecutionflowStatus> createRepeated() => $pb.PbList<ExecutionflowStatus>();
  @$core.pragma('dart2js:noInline')
  static ExecutionflowStatus getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ExecutionflowStatus>(create);
  static ExecutionflowStatus? _defaultInstance;

  @$pb.TagNumber(1)
  ExecutionflowStatusCode get statusCode => $_getN(0);
  @$pb.TagNumber(1)
  set statusCode(ExecutionflowStatusCode v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasStatusCode() => $_has(0);
  @$pb.TagNumber(1)
  void clearStatusCode() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get date => $_getSZ(1);
  @$pb.TagNumber(2)
  set date($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasDate() => $_has(1);
  @$pb.TagNumber(2)
  void clearDate() => $_clearField(2);

  /// Status effective date. Set by the event's RefDate that triggered the status change.
  @$pb.TagNumber(3)
  $3.DateTime get actualDate => $_getN(2);
  @$pb.TagNumber(3)
  set actualDate($3.DateTime v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasActualDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearActualDate() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.DateTime ensureActualDate() => $_ensure(2);
}

///
/// 	ExecutionflowStatusStruct statuses structure
class ExecutionflowStatusStruct extends $pb.GeneratedMessage {
  factory ExecutionflowStatusStruct({
    ExecutionflowStatus? current,
    $core.Iterable<ExecutionflowStatus>? history,
    $core.int? version,
    $core.String? creationDate,
  }) {
    final $result = create();
    if (current != null) {
      $result.current = current;
    }
    if (history != null) {
      $result.history.addAll(history);
    }
    if (version != null) {
      $result.version = version;
    }
    if (creationDate != null) {
      $result.creationDate = creationDate;
    }
    return $result;
  }
  ExecutionflowStatusStruct._() : super();
  factory ExecutionflowStatusStruct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ExecutionflowStatusStruct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ExecutionflowStatusStruct', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<ExecutionflowStatus>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: ExecutionflowStatus.create)
    ..pc<ExecutionflowStatus>(2, _omitFieldNames ? '' : 'History', $pb.PbFieldType.PM, protoName: 'History', subBuilder: ExecutionflowStatus.create)
    ..a<$core.int>(3, _omitFieldNames ? '' : 'Version', $pb.PbFieldType.OU3, protoName: 'Version')
    ..aOS(4, _omitFieldNames ? '' : 'CreationDate', protoName: 'CreationDate')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ExecutionflowStatusStruct clone() => ExecutionflowStatusStruct()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ExecutionflowStatusStruct copyWith(void Function(ExecutionflowStatusStruct) updates) => super.copyWith((message) => updates(message as ExecutionflowStatusStruct)) as ExecutionflowStatusStruct;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ExecutionflowStatusStruct create() => ExecutionflowStatusStruct._();
  ExecutionflowStatusStruct createEmptyInstance() => create();
  static $pb.PbList<ExecutionflowStatusStruct> createRepeated() => $pb.PbList<ExecutionflowStatusStruct>();
  @$core.pragma('dart2js:noInline')
  static ExecutionflowStatusStruct getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ExecutionflowStatusStruct>(create);
  static ExecutionflowStatusStruct? _defaultInstance;

  @$pb.TagNumber(1)
  ExecutionflowStatus get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(ExecutionflowStatus v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  ExecutionflowStatus ensureCurrent() => $_ensure(0);

  @$pb.TagNumber(2)
  $pb.PbList<ExecutionflowStatus> get history => $_getList(1);

  @$pb.TagNumber(3)
  $core.int get version => $_getIZ(2);
  @$pb.TagNumber(3)
  set version($core.int v) { $_setUnsignedInt32(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasVersion() => $_has(2);
  @$pb.TagNumber(3)
  void clearVersion() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get creationDate => $_getSZ(3);
  @$pb.TagNumber(4)
  set creationDate($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(4)
  $core.bool hasCreationDate() => $_has(3);
  @$pb.TagNumber(4)
  void clearCreationDate() => $_clearField(4);
}

class ExecutionflowSummary extends $pb.GeneratedMessage {
  factory ExecutionflowSummary({
    $core.String? executionflowID,
    ExecutionflowStatus? status,
    TradeTier? carrier,
    TradeTier? shipFrom,
    TradeTier? shipTo,
    $core.Iterable<$3.AttachmentSummary>? attachments,
    $core.int? attachmentNumber,
    $core.Iterable<$3.ClaimSummary>? claims,
    $core.int? claimNumber,
  }) {
    final $result = create();
    if (executionflowID != null) {
      $result.executionflowID = executionflowID;
    }
    if (status != null) {
      $result.status = status;
    }
    if (carrier != null) {
      $result.carrier = carrier;
    }
    if (shipFrom != null) {
      $result.shipFrom = shipFrom;
    }
    if (shipTo != null) {
      $result.shipTo = shipTo;
    }
    if (attachments != null) {
      $result.attachments.addAll(attachments);
    }
    if (attachmentNumber != null) {
      $result.attachmentNumber = attachmentNumber;
    }
    if (claims != null) {
      $result.claims.addAll(claims);
    }
    if (claimNumber != null) {
      $result.claimNumber = claimNumber;
    }
    return $result;
  }
  ExecutionflowSummary._() : super();
  factory ExecutionflowSummary.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ExecutionflowSummary.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ExecutionflowSummary', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ExecutionflowID', protoName: 'ExecutionflowID')
    ..aOM<ExecutionflowStatus>(2, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: ExecutionflowStatus.create)
    ..aOM<TradeTier>(6, _omitFieldNames ? '' : 'Carrier', protoName: 'Carrier', subBuilder: TradeTier.create)
    ..aOM<TradeTier>(7, _omitFieldNames ? '' : 'ShipFrom', protoName: 'ShipFrom', subBuilder: TradeTier.create)
    ..aOM<TradeTier>(8, _omitFieldNames ? '' : 'ShipTo', protoName: 'ShipTo', subBuilder: TradeTier.create)
    ..pc<$3.AttachmentSummary>(18, _omitFieldNames ? '' : 'Attachments', $pb.PbFieldType.PM, protoName: 'Attachments', subBuilder: $3.AttachmentSummary.create)
    ..a<$core.int>(19, _omitFieldNames ? '' : 'AttachmentNumber', $pb.PbFieldType.O3, protoName: 'AttachmentNumber')
    ..pc<$3.ClaimSummary>(20, _omitFieldNames ? '' : 'Claims', $pb.PbFieldType.PM, protoName: 'Claims', subBuilder: $3.ClaimSummary.create)
    ..a<$core.int>(21, _omitFieldNames ? '' : 'ClaimNumber', $pb.PbFieldType.O3, protoName: 'ClaimNumber')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ExecutionflowSummary clone() => ExecutionflowSummary()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ExecutionflowSummary copyWith(void Function(ExecutionflowSummary) updates) => super.copyWith((message) => updates(message as ExecutionflowSummary)) as ExecutionflowSummary;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ExecutionflowSummary create() => ExecutionflowSummary._();
  ExecutionflowSummary createEmptyInstance() => create();
  static $pb.PbList<ExecutionflowSummary> createRepeated() => $pb.PbList<ExecutionflowSummary>();
  @$core.pragma('dart2js:noInline')
  static ExecutionflowSummary getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ExecutionflowSummary>(create);
  static ExecutionflowSummary? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get executionflowID => $_getSZ(0);
  @$pb.TagNumber(1)
  set executionflowID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasExecutionflowID() => $_has(0);
  @$pb.TagNumber(1)
  void clearExecutionflowID() => $_clearField(1);

  @$pb.TagNumber(2)
  ExecutionflowStatus get status => $_getN(1);
  @$pb.TagNumber(2)
  set status(ExecutionflowStatus v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasStatus() => $_has(1);
  @$pb.TagNumber(2)
  void clearStatus() => $_clearField(2);
  @$pb.TagNumber(2)
  ExecutionflowStatus ensureStatus() => $_ensure(1);

  @$pb.TagNumber(6)
  TradeTier get carrier => $_getN(2);
  @$pb.TagNumber(6)
  set carrier(TradeTier v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasCarrier() => $_has(2);
  @$pb.TagNumber(6)
  void clearCarrier() => $_clearField(6);
  @$pb.TagNumber(6)
  TradeTier ensureCarrier() => $_ensure(2);

  /// Where to ship the executionflow from
  @$pb.TagNumber(7)
  TradeTier get shipFrom => $_getN(3);
  @$pb.TagNumber(7)
  set shipFrom(TradeTier v) { $_setField(7, v); }
  @$pb.TagNumber(7)
  $core.bool hasShipFrom() => $_has(3);
  @$pb.TagNumber(7)
  void clearShipFrom() => $_clearField(7);
  @$pb.TagNumber(7)
  TradeTier ensureShipFrom() => $_ensure(3);

  /// Where to ship the executionflow to
  @$pb.TagNumber(8)
  TradeTier get shipTo => $_getN(4);
  @$pb.TagNumber(8)
  set shipTo(TradeTier v) { $_setField(8, v); }
  @$pb.TagNumber(8)
  $core.bool hasShipTo() => $_has(4);
  @$pb.TagNumber(8)
  void clearShipTo() => $_clearField(8);
  @$pb.TagNumber(8)
  TradeTier ensureShipTo() => $_ensure(4);

  @$pb.TagNumber(18)
  $pb.PbList<$3.AttachmentSummary> get attachments => $_getList(5);

  @$pb.TagNumber(19)
  $core.int get attachmentNumber => $_getIZ(6);
  @$pb.TagNumber(19)
  set attachmentNumber($core.int v) { $_setSignedInt32(6, v); }
  @$pb.TagNumber(19)
  $core.bool hasAttachmentNumber() => $_has(6);
  @$pb.TagNumber(19)
  void clearAttachmentNumber() => $_clearField(19);

  @$pb.TagNumber(20)
  $pb.PbList<$3.ClaimSummary> get claims => $_getList(7);

  @$pb.TagNumber(21)
  $core.int get claimNumber => $_getIZ(8);
  @$pb.TagNumber(21)
  set claimNumber($core.int v) { $_setSignedInt32(8, v); }
  @$pb.TagNumber(21)
  $core.bool hasClaimNumber() => $_has(8);
  @$pb.TagNumber(21)
  void clearClaimNumber() => $_clearField(21);
}

/// Not a GS1 Object.
/// Temporary version
class ExecutionGraph extends $pb.GeneratedMessage {
  factory ExecutionGraph({
    $core.Iterable<$core.String>? parcelIDs,
  }) {
    final $result = create();
    if (parcelIDs != null) {
      $result.parcelIDs.addAll(parcelIDs);
    }
    return $result;
  }
  ExecutionGraph._() : super();
  factory ExecutionGraph.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ExecutionGraph.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ExecutionGraph', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pPS(1, _omitFieldNames ? '' : 'ParcelIDs', protoName: 'ParcelIDs')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  ExecutionGraph clone() => ExecutionGraph()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  ExecutionGraph copyWith(void Function(ExecutionGraph) updates) => super.copyWith((message) => updates(message as ExecutionGraph)) as ExecutionGraph;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static ExecutionGraph create() => ExecutionGraph._();
  ExecutionGraph createEmptyInstance() => create();
  static $pb.PbList<ExecutionGraph> createRepeated() => $pb.PbList<ExecutionGraph>();
  @$core.pragma('dart2js:noInline')
  static ExecutionGraph getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ExecutionGraph>(create);
  static ExecutionGraph? _defaultInstance;

  @$pb.TagNumber(1)
  $pb.PbList<$core.String> get parcelIDs => $_getList(0);
}


const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
