//
//  Generated code. Do not modify.
//  source: warehousingShared.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 'item.pb.dart' as $77;
import 'shared.pb.dart' as $3;
import 'warehousingShared.pbenum.dart';

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

export 'warehousingShared.pbenum.dart';

class HandlingunitStatus extends $pb.GeneratedMessage {
  factory HandlingunitStatus({
    HandlingunitStatusCode? 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;
  }
  HandlingunitStatus._() : super();
  factory HandlingunitStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory HandlingunitStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'HandlingunitStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<HandlingunitStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: HandlingunitStatusCode.HANDLINGUNIT_0000_UNKNOWN, valueOf: HandlingunitStatusCode.valueOf, enumValues: HandlingunitStatusCode.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')
  HandlingunitStatus clone() => HandlingunitStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  HandlingunitStatus copyWith(void Function(HandlingunitStatus) updates) => super.copyWith((message) => updates(message as HandlingunitStatus)) as HandlingunitStatus;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// This date is only a string as it is always given by system
  @$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);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

  @$pb.TagNumber(2)
  $pb.PbList<HandlingunitStatus> 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);

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

///
/// All the information of the Handlingunit that is sent to the parent ExecutionFlow.
/// Here we have the Handlingunit status and also the content in terms of Goods structured by ExecutionFlow LineID
class HandlingunitSummary extends $pb.GeneratedMessage {
  factory HandlingunitSummary({
    $core.String? handlingunitID,
    HandlingunitStatus? status,
    $core.String? trackingID,
    $core.Iterable<$3.MetadataElement>? metaData,
    $core.Iterable<QuantifiedGoodsByLine>? contents,
    $core.String? trackingURL,
    $core.bool? isReported,
  }) {
    final $result = create();
    if (handlingunitID != null) {
      $result.handlingunitID = handlingunitID;
    }
    if (status != null) {
      $result.status = status;
    }
    if (trackingID != null) {
      $result.trackingID = trackingID;
    }
    if (metaData != null) {
      $result.metaData.addAll(metaData);
    }
    if (contents != null) {
      $result.contents.addAll(contents);
    }
    if (trackingURL != null) {
      $result.trackingURL = trackingURL;
    }
    if (isReported != null) {
      $result.isReported = isReported;
    }
    return $result;
  }
  HandlingunitSummary._() : super();
  factory HandlingunitSummary.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory HandlingunitSummary.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'HandlingunitSummary', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'HandlingunitID', protoName: 'HandlingunitID')
    ..aOM<HandlingunitStatus>(2, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: HandlingunitStatus.create)
    ..aOS(3, _omitFieldNames ? '' : 'TrackingID', protoName: 'TrackingID')
    ..pc<$3.MetadataElement>(6, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..pc<QuantifiedGoodsByLine>(7, _omitFieldNames ? '' : 'Contents', $pb.PbFieldType.PM, protoName: 'Contents', subBuilder: QuantifiedGoodsByLine.create)
    ..aOS(9, _omitFieldNames ? '' : 'TrackingURL', protoName: 'TrackingURL')
    ..aOB(10, _omitFieldNames ? '' : 'IsReported', protoName: 'IsReported')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static HandlingunitSummary create() => HandlingunitSummary._();
  HandlingunitSummary createEmptyInstance() => create();
  static $pb.PbList<HandlingunitSummary> createRepeated() => $pb.PbList<HandlingunitSummary>();
  @$core.pragma('dart2js:noInline')
  static HandlingunitSummary getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<HandlingunitSummary>(create);
  static HandlingunitSummary? _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)
  HandlingunitStatus get status => $_getN(1);
  @$pb.TagNumber(2)
  set status(HandlingunitStatus v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasStatus() => $_has(1);
  @$pb.TagNumber(2)
  void clearStatus() => $_clearField(2);
  @$pb.TagNumber(2)
  HandlingunitStatus ensureStatus() => $_ensure(1);

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

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

  @$pb.TagNumber(7)
  $pb.PbList<QuantifiedGoodsByLine> get contents => $_getList(4);

  @$pb.TagNumber(9)
  $core.String get trackingURL => $_getSZ(5);
  @$pb.TagNumber(9)
  set trackingURL($core.String v) { $_setString(5, v); }
  @$pb.TagNumber(9)
  $core.bool hasTrackingURL() => $_has(5);
  @$pb.TagNumber(9)
  void clearTrackingURL() => $_clearField(9);

  @$pb.TagNumber(10)
  $core.bool get isReported => $_getBF(6);
  @$pb.TagNumber(10)
  set isReported($core.bool v) { $_setBool(6, v); }
  @$pb.TagNumber(10)
  $core.bool hasIsReported() => $_has(6);
  @$pb.TagNumber(10)
  void clearIsReported() => $_clearField(10);
}

class HandlingunitInformation extends $pb.GeneratedMessage {
  factory HandlingunitInformation({
    $core.String? containerType,
    $3.QuantityWeight? weight,
    $3.QuantityVolume? volume,
    $3.QuantityLength? height,
    $3.QuantityLength? width,
    $3.QuantityLength? length,
  }) {
    final $result = create();
    if (containerType != null) {
      $result.containerType = containerType;
    }
    if (weight != null) {
      $result.weight = weight;
    }
    if (volume != null) {
      $result.volume = volume;
    }
    if (height != null) {
      $result.height = height;
    }
    if (width != null) {
      $result.width = width;
    }
    if (length != null) {
      $result.length = length;
    }
    return $result;
  }
  HandlingunitInformation._() : super();
  factory HandlingunitInformation.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory HandlingunitInformation.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'HandlingunitInformation', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ContainerType', protoName: 'ContainerType')
    ..aOM<$3.QuantityWeight>(2, _omitFieldNames ? '' : 'Weight', protoName: 'Weight', subBuilder: $3.QuantityWeight.create)
    ..aOM<$3.QuantityVolume>(3, _omitFieldNames ? '' : 'Volume', protoName: 'Volume', subBuilder: $3.QuantityVolume.create)
    ..aOM<$3.QuantityLength>(4, _omitFieldNames ? '' : 'Height', protoName: 'Height', subBuilder: $3.QuantityLength.create)
    ..aOM<$3.QuantityLength>(5, _omitFieldNames ? '' : 'Width', protoName: 'Width', subBuilder: $3.QuantityLength.create)
    ..aOM<$3.QuantityLength>(6, _omitFieldNames ? '' : 'Length', protoName: 'Length', subBuilder: $3.QuantityLength.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')
  HandlingunitInformation clone() => HandlingunitInformation()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  HandlingunitInformation copyWith(void Function(HandlingunitInformation) updates) => super.copyWith((message) => updates(message as HandlingunitInformation)) as HandlingunitInformation;

  $pb.BuilderInfo get info_ => _i;

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

  /// Describe the container Type : Container, Box, Pallet ...
  @$pb.TagNumber(1)
  $core.String get containerType => $_getSZ(0);
  @$pb.TagNumber(1)
  set containerType($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasContainerType() => $_has(0);
  @$pb.TagNumber(1)
  void clearContainerType() => $_clearField(1);

  @$pb.TagNumber(2)
  $3.QuantityWeight get weight => $_getN(1);
  @$pb.TagNumber(2)
  set weight($3.QuantityWeight v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasWeight() => $_has(1);
  @$pb.TagNumber(2)
  void clearWeight() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.QuantityWeight ensureWeight() => $_ensure(1);

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

  @$pb.TagNumber(4)
  $3.QuantityLength get height => $_getN(3);
  @$pb.TagNumber(4)
  set height($3.QuantityLength v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasHeight() => $_has(3);
  @$pb.TagNumber(4)
  void clearHeight() => $_clearField(4);
  @$pb.TagNumber(4)
  $3.QuantityLength ensureHeight() => $_ensure(3);

  @$pb.TagNumber(5)
  $3.QuantityLength get width => $_getN(4);
  @$pb.TagNumber(5)
  set width($3.QuantityLength v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasWidth() => $_has(4);
  @$pb.TagNumber(5)
  void clearWidth() => $_clearField(5);
  @$pb.TagNumber(5)
  $3.QuantityLength ensureWidth() => $_ensure(4);

  @$pb.TagNumber(6)
  $3.QuantityLength get length => $_getN(5);
  @$pb.TagNumber(6)
  set length($3.QuantityLength v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasLength() => $_has(5);
  @$pb.TagNumber(6)
  void clearLength() => $_clearField(6);
  @$pb.TagNumber(6)
  $3.QuantityLength ensureLength() => $_ensure(5);
}

///
/// 	Stock entity status structure
class StockStatus extends $pb.GeneratedMessage {
  factory StockStatus({
    StockStatusCode? 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;
  }
  StockStatus._() : super();
  factory StockStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory StockStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StockStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<StockStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: StockStatusCode.STOCK_UNKNOWN, valueOf: StockStatusCode.valueOf, enumValues: StockStatusCode.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')
  StockStatus clone() => StockStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  StockStatus copyWith(void Function(StockStatus) updates) => super.copyWith((message) => updates(message as StockStatus)) as StockStatus;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// This date is only a string as it is always given by system
  @$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);
}

///
/// 	StockStatusStruct statuses structure
class StockStatusStruct extends $pb.GeneratedMessage {
  factory StockStatusStruct({
    StockStatus? current,
    $core.Iterable<StockStatus>? 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;
  }
  StockStatusStruct._() : super();
  factory StockStatusStruct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory StockStatusStruct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StockStatusStruct', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<StockStatus>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: StockStatus.create)
    ..pc<StockStatus>(2, _omitFieldNames ? '' : 'History', $pb.PbFieldType.PM, protoName: 'History', subBuilder: StockStatus.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')
  StockStatusStruct clone() => StockStatusStruct()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  StockStatusStruct copyWith(void Function(StockStatusStruct) updates) => super.copyWith((message) => updates(message as StockStatusStruct)) as StockStatusStruct;

  $pb.BuilderInfo get info_ => _i;

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

  /// Current status of the Stock entity
  @$pb.TagNumber(1)
  StockStatus get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(StockStatus v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  StockStatus ensureCurrent() => $_ensure(0);

  /// List of all status history of the Stock entity
  @$pb.TagNumber(2)
  $pb.PbList<StockStatus> 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);
}

///
/// 	Stock entity status structure
/// TODO : kpiItem à vérifier
class MovementStatus extends $pb.GeneratedMessage {
  factory MovementStatus({
    MovementStatusCode? 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;
  }
  MovementStatus._() : super();
  factory MovementStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MovementStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<MovementStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: MovementStatusCode.MOVEMENT_UNKNOWN, valueOf: MovementStatusCode.valueOf, enumValues: MovementStatusCode.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')
  MovementStatus clone() => MovementStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MovementStatus copyWith(void Function(MovementStatus) updates) => super.copyWith((message) => updates(message as MovementStatus)) as MovementStatus;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// This date is only a string as it is always given by system
  @$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);
}

///
/// 	MovementStatusStruct statuses structure
class MovementStatusStruct extends $pb.GeneratedMessage {
  factory MovementStatusStruct({
    MovementStatus? current,
    $core.Iterable<MovementStatus>? 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;
  }
  MovementStatusStruct._() : super();
  factory MovementStatusStruct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MovementStatusStruct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementStatusStruct', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<MovementStatus>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: MovementStatus.create)
    ..pc<MovementStatus>(2, _omitFieldNames ? '' : 'History', $pb.PbFieldType.PM, protoName: 'History', subBuilder: MovementStatus.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')
  MovementStatusStruct clone() => MovementStatusStruct()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MovementStatusStruct copyWith(void Function(MovementStatusStruct) updates) => super.copyWith((message) => updates(message as MovementStatusStruct)) as MovementStatusStruct;

  $pb.BuilderInfo get info_ => _i;

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

  /// Current status of the Movement entity
  @$pb.TagNumber(1)
  MovementStatus get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(MovementStatus v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  MovementStatus ensureCurrent() => $_ensure(0);

  /// List of all status history of the Movement entity
  @$pb.TagNumber(2)
  $pb.PbList<MovementStatus> 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);

  /// for movement Version is always set to 1
  @$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 GoodsTrackingStatus extends $pb.GeneratedMessage {
  factory GoodsTrackingStatus({
    GoodsTrackingStatusCode? 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;
  }
  GoodsTrackingStatus._() : super();
  factory GoodsTrackingStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory GoodsTrackingStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GoodsTrackingStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<GoodsTrackingStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: GoodsTrackingStatusCode.GOODS_0000_UNKNOWN, valueOf: GoodsTrackingStatusCode.valueOf, enumValues: GoodsTrackingStatusCode.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')
  GoodsTrackingStatus clone() => GoodsTrackingStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  GoodsTrackingStatus copyWith(void Function(GoodsTrackingStatus) updates) => super.copyWith((message) => updates(message as GoodsTrackingStatus)) as GoodsTrackingStatus;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// This date is only a string as it is always given by system
  @$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);
}

class Goods extends $pb.GeneratedMessage {
  factory Goods({
    $core.String? itemID,
    $core.String? lVBranchID,
    $core.String? priorityDate,
    $core.Iterable<$3.MetadataElement>? segmentationKeys,
  }) {
    final $result = create();
    if (itemID != null) {
      $result.itemID = itemID;
    }
    if (lVBranchID != null) {
      $result.lVBranchID = lVBranchID;
    }
    if (priorityDate != null) {
      $result.priorityDate = priorityDate;
    }
    if (segmentationKeys != null) {
      $result.segmentationKeys.addAll(segmentationKeys);
    }
    return $result;
  }
  Goods._() : super();
  factory Goods.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory Goods.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Goods', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ItemID', protoName: 'ItemID')
    ..aOS(2, _omitFieldNames ? '' : 'LVBranchID', protoName: 'LVBranchID')
    ..aOS(3, _omitFieldNames ? '' : 'PriorityDate', protoName: 'PriorityDate')
    ..pc<$3.MetadataElement>(4, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $3.MetadataElement.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')
  Goods clone() => Goods()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  Goods copyWith(void Function(Goods) updates) => super.copyWith((message) => updates(message as Goods)) as Goods;

  $pb.BuilderInfo get info_ => _i;

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

  /// The following fields are the composed key for Goods
  @$pb.TagNumber(1)
  $core.String get itemID => $_getSZ(0);
  @$pb.TagNumber(1)
  set itemID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasItemID() => $_has(0);
  @$pb.TagNumber(1)
  void clearItemID() => $_clearField(1);

  /// Logitical Variant branch ID
  @$pb.TagNumber(2)
  $core.String get lVBranchID => $_getSZ(1);
  @$pb.TagNumber(2)
  set lVBranchID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasLVBranchID() => $_has(1);
  @$pb.TagNumber(2)
  void clearLVBranchID() => $_clearField(2);

  /// PriorityDate becomes mandatory (may be fictitious)
  @$pb.TagNumber(3)
  $core.String get priorityDate => $_getSZ(2);
  @$pb.TagNumber(3)
  set priorityDate($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasPriorityDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearPriorityDate() => $_clearField(3);

  /// The segmentation keys are used to complete the segmentation criteria of the project stock. They also apply to order lines and stock movements
  @$pb.TagNumber(4)
  $pb.PbList<$3.MetadataElement> get segmentationKeys => $_getList(3);
}

class EnrichedGoods extends $pb.GeneratedMessage {
  factory EnrichedGoods({
    $core.String? itemID,
    $core.String? lVBranchID,
    $core.String? priorityDate,
    $core.Iterable<$3.MetadataElement>? segmentationKeys,
    $77.ItemPayload? item,
  }) {
    final $result = create();
    if (itemID != null) {
      $result.itemID = itemID;
    }
    if (lVBranchID != null) {
      $result.lVBranchID = lVBranchID;
    }
    if (priorityDate != null) {
      $result.priorityDate = priorityDate;
    }
    if (segmentationKeys != null) {
      $result.segmentationKeys.addAll(segmentationKeys);
    }
    if (item != null) {
      $result.item = item;
    }
    return $result;
  }
  EnrichedGoods._() : super();
  factory EnrichedGoods.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory EnrichedGoods.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'EnrichedGoods', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ItemID', protoName: 'ItemID')
    ..aOS(2, _omitFieldNames ? '' : 'LVBranchID', protoName: 'LVBranchID')
    ..aOS(3, _omitFieldNames ? '' : 'PriorityDate', protoName: 'PriorityDate')
    ..pc<$3.MetadataElement>(4, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $3.MetadataElement.create)
    ..aOM<$77.ItemPayload>(6, _omitFieldNames ? '' : 'Item', protoName: 'Item', subBuilder: $77.ItemPayload.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')
  EnrichedGoods clone() => EnrichedGoods()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  EnrichedGoods copyWith(void Function(EnrichedGoods) updates) => super.copyWith((message) => updates(message as EnrichedGoods)) as EnrichedGoods;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// Logistical variant branch ID
  @$pb.TagNumber(2)
  $core.String get lVBranchID => $_getSZ(1);
  @$pb.TagNumber(2)
  set lVBranchID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasLVBranchID() => $_has(1);
  @$pb.TagNumber(2)
  void clearLVBranchID() => $_clearField(2);

  /// Date of minimum substainability in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format
  @$pb.TagNumber(3)
  $core.String get priorityDate => $_getSZ(2);
  @$pb.TagNumber(3)
  set priorityDate($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasPriorityDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearPriorityDate() => $_clearField(3);

  /// The segmentation keys are used to complete the segmentation criteria of the project stock. They also apply to order lines and stock movements
  @$pb.TagNumber(4)
  $pb.PbList<$3.MetadataElement> get segmentationKeys => $_getList(3);

  @$pb.TagNumber(6)
  $77.ItemPayload get item => $_getN(4);
  @$pb.TagNumber(6)
  set item($77.ItemPayload v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasItem() => $_has(4);
  @$pb.TagNumber(6)
  void clearItem() => $_clearField(6);
  @$pb.TagNumber(6)
  $77.ItemPayload ensureItem() => $_ensure(4);
}

class RequestedEnrichedGoods extends $pb.GeneratedMessage {
  factory RequestedEnrichedGoods({
    $core.String? itemID,
    $core.String? lVBranchID,
    $core.String? priorityDate,
    $core.Iterable<$3.MetadataElement>? segmentationKeys,
    $77.ItemPayload? item,
  }) {
    final $result = create();
    if (itemID != null) {
      $result.itemID = itemID;
    }
    if (lVBranchID != null) {
      $result.lVBranchID = lVBranchID;
    }
    if (priorityDate != null) {
      $result.priorityDate = priorityDate;
    }
    if (segmentationKeys != null) {
      $result.segmentationKeys.addAll(segmentationKeys);
    }
    if (item != null) {
      $result.item = item;
    }
    return $result;
  }
  RequestedEnrichedGoods._() : super();
  factory RequestedEnrichedGoods.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory RequestedEnrichedGoods.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RequestedEnrichedGoods', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ItemID', protoName: 'ItemID')
    ..aOS(2, _omitFieldNames ? '' : 'LVBranchID', protoName: 'LVBranchID')
    ..aOS(3, _omitFieldNames ? '' : 'PriorityDate', protoName: 'PriorityDate')
    ..pc<$3.MetadataElement>(4, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $3.MetadataElement.create)
    ..aOM<$77.ItemPayload>(6, _omitFieldNames ? '' : 'Item', protoName: 'Item', subBuilder: $77.ItemPayload.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')
  RequestedEnrichedGoods clone() => RequestedEnrichedGoods()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  RequestedEnrichedGoods copyWith(void Function(RequestedEnrichedGoods) updates) => super.copyWith((message) => updates(message as RequestedEnrichedGoods)) as RequestedEnrichedGoods;

  $pb.BuilderInfo get info_ => _i;

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

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

  /// Logistical variant branch ID
  @$pb.TagNumber(2)
  $core.String get lVBranchID => $_getSZ(1);
  @$pb.TagNumber(2)
  set lVBranchID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasLVBranchID() => $_has(1);
  @$pb.TagNumber(2)
  void clearLVBranchID() => $_clearField(2);

  /// Date of minimum substainability in <a href='https://fr.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format
  @$pb.TagNumber(3)
  $core.String get priorityDate => $_getSZ(2);
  @$pb.TagNumber(3)
  set priorityDate($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasPriorityDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearPriorityDate() => $_clearField(3);

  /// The segmentation keys are used to complete the segmentation criteria of the project stock. They also apply to order lines and stock movements
  @$pb.TagNumber(4)
  $pb.PbList<$3.MetadataElement> get segmentationKeys => $_getList(3);

  /// Enriched from Item entity with ItemID + LVID, or directly provided by value
  @$pb.TagNumber(6)
  $77.ItemPayload get item => $_getN(4);
  @$pb.TagNumber(6)
  set item($77.ItemPayload v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasItem() => $_has(4);
  @$pb.TagNumber(6)
  void clearItem() => $_clearField(6);
  @$pb.TagNumber(6)
  $77.ItemPayload ensureItem() => $_ensure(4);
}

///
/// 	Structure to quantify a requested enriched goods.
/// 	Used in Order and, Executionflow entities on requested content structures.
class QuantifiedRequestedGoods extends $pb.GeneratedMessage {
  factory QuantifiedRequestedGoods({
    RequestedEnrichedGoods? goods,
    QuantityInLV? quantity,
  }) {
    final $result = create();
    if (goods != null) {
      $result.goods = goods;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    return $result;
  }
  QuantifiedRequestedGoods._() : super();
  factory QuantifiedRequestedGoods.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantifiedRequestedGoods.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantifiedRequestedGoods', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<RequestedEnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: RequestedEnrichedGoods.create)
    ..aOM<QuantityInLV>(2, _omitFieldNames ? '' : 'Quantity', protoName: 'Quantity', subBuilder: QuantityInLV.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')
  QuantifiedRequestedGoods clone() => QuantifiedRequestedGoods()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  QuantifiedRequestedGoods copyWith(void Function(QuantifiedRequestedGoods) updates) => super.copyWith((message) => updates(message as QuantifiedRequestedGoods)) as QuantifiedRequestedGoods;

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  RequestedEnrichedGoods get goods => $_getN(0);
  @$pb.TagNumber(1)
  set goods(RequestedEnrichedGoods v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGoods() => $_has(0);
  @$pb.TagNumber(1)
  void clearGoods() => $_clearField(1);
  @$pb.TagNumber(1)
  RequestedEnrichedGoods ensureGoods() => $_ensure(0);

  @$pb.TagNumber(2)
  QuantityInLV get quantity => $_getN(1);
  @$pb.TagNumber(2)
  set quantity(QuantityInLV v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasQuantity() => $_has(1);
  @$pb.TagNumber(2)
  void clearQuantity() => $_clearField(2);
  @$pb.TagNumber(2)
  QuantityInLV ensureQuantity() => $_ensure(1);
}

///
/// Structure to quantity a goods into a tracked HU.
/// Used into Executionflow  ShippedContents structure.
/// Only filled by internal computation (not API-exposed)
class QuantifiedGoodsByHU extends $pb.GeneratedMessage {
  factory QuantifiedGoodsByHU({
    EnrichedGoods? goods,
    $core.String? handlingunitID,
    $core.String? trackingID,
    GoodsTrackingStatus? status,
    QuantityInLV? requestedQuantity,
    QuantityInLV? requestedQuantityInBaseLV,
    QuantityInLV? preparedQuantity,
    QuantityInLV? preparedQuantityInBaseLV,
    QuantityInLV? receivedQuantity,
    QuantityInLV? receivedQuantityInBaseLV,
    $core.String? trackingURL,
  }) {
    final $result = create();
    if (goods != null) {
      $result.goods = goods;
    }
    if (handlingunitID != null) {
      $result.handlingunitID = handlingunitID;
    }
    if (trackingID != null) {
      $result.trackingID = trackingID;
    }
    if (status != null) {
      $result.status = status;
    }
    if (requestedQuantity != null) {
      $result.requestedQuantity = requestedQuantity;
    }
    if (requestedQuantityInBaseLV != null) {
      $result.requestedQuantityInBaseLV = requestedQuantityInBaseLV;
    }
    if (preparedQuantity != null) {
      $result.preparedQuantity = preparedQuantity;
    }
    if (preparedQuantityInBaseLV != null) {
      $result.preparedQuantityInBaseLV = preparedQuantityInBaseLV;
    }
    if (receivedQuantity != null) {
      $result.receivedQuantity = receivedQuantity;
    }
    if (receivedQuantityInBaseLV != null) {
      $result.receivedQuantityInBaseLV = receivedQuantityInBaseLV;
    }
    if (trackingURL != null) {
      $result.trackingURL = trackingURL;
    }
    return $result;
  }
  QuantifiedGoodsByHU._() : super();
  factory QuantifiedGoodsByHU.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantifiedGoodsByHU.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantifiedGoodsByHU', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<EnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: EnrichedGoods.create)
    ..aOS(2, _omitFieldNames ? '' : 'HandlingunitID', protoName: 'HandlingunitID')
    ..aOS(3, _omitFieldNames ? '' : 'TrackingID', protoName: 'TrackingID')
    ..aOM<GoodsTrackingStatus>(4, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: GoodsTrackingStatus.create)
    ..aOM<QuantityInLV>(5, _omitFieldNames ? '' : 'RequestedQuantity', protoName: 'RequestedQuantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(6, _omitFieldNames ? '' : 'RequestedQuantityInBaseLV', protoName: 'RequestedQuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(7, _omitFieldNames ? '' : 'PreparedQuantity', protoName: 'PreparedQuantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(8, _omitFieldNames ? '' : 'PreparedQuantityInBaseLV', protoName: 'PreparedQuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(9, _omitFieldNames ? '' : 'ReceivedQuantity', protoName: 'ReceivedQuantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(10, _omitFieldNames ? '' : 'ReceivedQuantityInBaseLV', protoName: 'ReceivedQuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOS(11, _omitFieldNames ? '' : 'TrackingURL', protoName: 'TrackingURL')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  EnrichedGoods get goods => $_getN(0);
  @$pb.TagNumber(1)
  set goods(EnrichedGoods v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGoods() => $_has(0);
  @$pb.TagNumber(1)
  void clearGoods() => $_clearField(1);
  @$pb.TagNumber(1)
  EnrichedGoods ensureGoods() => $_ensure(0);

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

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

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

  @$pb.TagNumber(5)
  QuantityInLV get requestedQuantity => $_getN(4);
  @$pb.TagNumber(5)
  set requestedQuantity(QuantityInLV v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasRequestedQuantity() => $_has(4);
  @$pb.TagNumber(5)
  void clearRequestedQuantity() => $_clearField(5);
  @$pb.TagNumber(5)
  QuantityInLV ensureRequestedQuantity() => $_ensure(4);

  @$pb.TagNumber(6)
  QuantityInLV get requestedQuantityInBaseLV => $_getN(5);
  @$pb.TagNumber(6)
  set requestedQuantityInBaseLV(QuantityInLV v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasRequestedQuantityInBaseLV() => $_has(5);
  @$pb.TagNumber(6)
  void clearRequestedQuantityInBaseLV() => $_clearField(6);
  @$pb.TagNumber(6)
  QuantityInLV ensureRequestedQuantityInBaseLV() => $_ensure(5);

  @$pb.TagNumber(7)
  QuantityInLV get preparedQuantity => $_getN(6);
  @$pb.TagNumber(7)
  set preparedQuantity(QuantityInLV v) { $_setField(7, v); }
  @$pb.TagNumber(7)
  $core.bool hasPreparedQuantity() => $_has(6);
  @$pb.TagNumber(7)
  void clearPreparedQuantity() => $_clearField(7);
  @$pb.TagNumber(7)
  QuantityInLV ensurePreparedQuantity() => $_ensure(6);

  @$pb.TagNumber(8)
  QuantityInLV get preparedQuantityInBaseLV => $_getN(7);
  @$pb.TagNumber(8)
  set preparedQuantityInBaseLV(QuantityInLV v) { $_setField(8, v); }
  @$pb.TagNumber(8)
  $core.bool hasPreparedQuantityInBaseLV() => $_has(7);
  @$pb.TagNumber(8)
  void clearPreparedQuantityInBaseLV() => $_clearField(8);
  @$pb.TagNumber(8)
  QuantityInLV ensurePreparedQuantityInBaseLV() => $_ensure(7);

  @$pb.TagNumber(9)
  QuantityInLV get receivedQuantity => $_getN(8);
  @$pb.TagNumber(9)
  set receivedQuantity(QuantityInLV v) { $_setField(9, v); }
  @$pb.TagNumber(9)
  $core.bool hasReceivedQuantity() => $_has(8);
  @$pb.TagNumber(9)
  void clearReceivedQuantity() => $_clearField(9);
  @$pb.TagNumber(9)
  QuantityInLV ensureReceivedQuantity() => $_ensure(8);

  @$pb.TagNumber(10)
  QuantityInLV get receivedQuantityInBaseLV => $_getN(9);
  @$pb.TagNumber(10)
  set receivedQuantityInBaseLV(QuantityInLV v) { $_setField(10, v); }
  @$pb.TagNumber(10)
  $core.bool hasReceivedQuantityInBaseLV() => $_has(9);
  @$pb.TagNumber(10)
  void clearReceivedQuantityInBaseLV() => $_clearField(10);
  @$pb.TagNumber(10)
  QuantityInLV ensureReceivedQuantityInBaseLV() => $_ensure(9);

  @$pb.TagNumber(11)
  $core.String get trackingURL => $_getSZ(10);
  @$pb.TagNumber(11)
  set trackingURL($core.String v) { $_setString(10, v); }
  @$pb.TagNumber(11)
  $core.bool hasTrackingURL() => $_has(10);
  @$pb.TagNumber(11)
  void clearTrackingURL() => $_clearField(11);
}

class QuantifiedGoodsByLine extends $pb.GeneratedMessage {
  factory QuantifiedGoodsByLine({
    EnrichedGoods? goods,
    $core.String? lineID,
    QuantityInLV? preparedQuantity,
    QuantityInLV? preparedQuantityInBaseLV,
    QuantityInLV? receivedQuantity,
    QuantityInLV? receivedQuantityInBaseLV,
    $core.bool? isReported,
  }) {
    final $result = create();
    if (goods != null) {
      $result.goods = goods;
    }
    if (lineID != null) {
      $result.lineID = lineID;
    }
    if (preparedQuantity != null) {
      $result.preparedQuantity = preparedQuantity;
    }
    if (preparedQuantityInBaseLV != null) {
      $result.preparedQuantityInBaseLV = preparedQuantityInBaseLV;
    }
    if (receivedQuantity != null) {
      $result.receivedQuantity = receivedQuantity;
    }
    if (receivedQuantityInBaseLV != null) {
      $result.receivedQuantityInBaseLV = receivedQuantityInBaseLV;
    }
    if (isReported != null) {
      $result.isReported = isReported;
    }
    return $result;
  }
  QuantifiedGoodsByLine._() : super();
  factory QuantifiedGoodsByLine.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantifiedGoodsByLine.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantifiedGoodsByLine', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<EnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: EnrichedGoods.create)
    ..aOS(2, _omitFieldNames ? '' : 'LineID', protoName: 'LineID')
    ..aOM<QuantityInLV>(3, _omitFieldNames ? '' : 'PreparedQuantity', protoName: 'PreparedQuantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(4, _omitFieldNames ? '' : 'PreparedQuantityInBaseLV', protoName: 'PreparedQuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(5, _omitFieldNames ? '' : 'ReceivedQuantity', protoName: 'ReceivedQuantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(6, _omitFieldNames ? '' : 'ReceivedQuantityInBaseLV', protoName: 'ReceivedQuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOB(7, _omitFieldNames ? '' : 'IsReported', protoName: 'IsReported')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  EnrichedGoods get goods => $_getN(0);
  @$pb.TagNumber(1)
  set goods(EnrichedGoods v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGoods() => $_has(0);
  @$pb.TagNumber(1)
  void clearGoods() => $_clearField(1);
  @$pb.TagNumber(1)
  EnrichedGoods ensureGoods() => $_ensure(0);

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

  @$pb.TagNumber(3)
  QuantityInLV get preparedQuantity => $_getN(2);
  @$pb.TagNumber(3)
  set preparedQuantity(QuantityInLV v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasPreparedQuantity() => $_has(2);
  @$pb.TagNumber(3)
  void clearPreparedQuantity() => $_clearField(3);
  @$pb.TagNumber(3)
  QuantityInLV ensurePreparedQuantity() => $_ensure(2);

  @$pb.TagNumber(4)
  QuantityInLV get preparedQuantityInBaseLV => $_getN(3);
  @$pb.TagNumber(4)
  set preparedQuantityInBaseLV(QuantityInLV v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasPreparedQuantityInBaseLV() => $_has(3);
  @$pb.TagNumber(4)
  void clearPreparedQuantityInBaseLV() => $_clearField(4);
  @$pb.TagNumber(4)
  QuantityInLV ensurePreparedQuantityInBaseLV() => $_ensure(3);

  @$pb.TagNumber(5)
  QuantityInLV get receivedQuantity => $_getN(4);
  @$pb.TagNumber(5)
  set receivedQuantity(QuantityInLV v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasReceivedQuantity() => $_has(4);
  @$pb.TagNumber(5)
  void clearReceivedQuantity() => $_clearField(5);
  @$pb.TagNumber(5)
  QuantityInLV ensureReceivedQuantity() => $_ensure(4);

  @$pb.TagNumber(6)
  QuantityInLV get receivedQuantityInBaseLV => $_getN(5);
  @$pb.TagNumber(6)
  set receivedQuantityInBaseLV(QuantityInLV v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasReceivedQuantityInBaseLV() => $_has(5);
  @$pb.TagNumber(6)
  void clearReceivedQuantityInBaseLV() => $_clearField(6);
  @$pb.TagNumber(6)
  QuantityInLV ensureReceivedQuantityInBaseLV() => $_ensure(5);

  @$pb.TagNumber(7)
  $core.bool get isReported => $_getBF(6);
  @$pb.TagNumber(7)
  set isReported($core.bool v) { $_setBool(6, v); }
  @$pb.TagNumber(7)
  $core.bool hasIsReported() => $_has(6);
  @$pb.TagNumber(7)
  void clearIsReported() => $_clearField(7);
}

class QuantifiedDatedGoodsByExeflow extends $pb.GeneratedMessage {
  factory QuantifiedDatedGoodsByExeflow({
    EnrichedGoods? goods,
    $core.String? executionflowID,
    $core.String? lineID,
    $core.String? actorID,
    QuantityInLV? quantity,
    $core.bool? stockMovementGenerated,
    $core.bool? contentSummaryGenerated,
    $3.DateTime? dateTime,
    QuantityInLV? quantityInBaseLV,
    $core.String? orderID,
  }) {
    final $result = create();
    if (goods != null) {
      $result.goods = goods;
    }
    if (executionflowID != null) {
      $result.executionflowID = executionflowID;
    }
    if (lineID != null) {
      $result.lineID = lineID;
    }
    if (actorID != null) {
      $result.actorID = actorID;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    if (stockMovementGenerated != null) {
      $result.stockMovementGenerated = stockMovementGenerated;
    }
    if (contentSummaryGenerated != null) {
      $result.contentSummaryGenerated = contentSummaryGenerated;
    }
    if (dateTime != null) {
      $result.dateTime = dateTime;
    }
    if (quantityInBaseLV != null) {
      $result.quantityInBaseLV = quantityInBaseLV;
    }
    if (orderID != null) {
      $result.orderID = orderID;
    }
    return $result;
  }
  QuantifiedDatedGoodsByExeflow._() : super();
  factory QuantifiedDatedGoodsByExeflow.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantifiedDatedGoodsByExeflow.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantifiedDatedGoodsByExeflow', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<EnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: EnrichedGoods.create)
    ..aOS(2, _omitFieldNames ? '' : 'ExecutionflowID', protoName: 'ExecutionflowID')
    ..aOS(3, _omitFieldNames ? '' : 'LineID', protoName: 'LineID')
    ..aOS(4, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOM<QuantityInLV>(5, _omitFieldNames ? '' : 'Quantity', protoName: 'Quantity', subBuilder: QuantityInLV.create)
    ..aOB(6, _omitFieldNames ? '' : 'StockMovementGenerated', protoName: 'StockMovementGenerated')
    ..aOB(7, _omitFieldNames ? '' : 'ContentSummaryGenerated', protoName: 'ContentSummaryGenerated')
    ..aOM<$3.DateTime>(8, _omitFieldNames ? '' : 'DateTime', protoName: 'DateTime', subBuilder: $3.DateTime.create)
    ..aOM<QuantityInLV>(9, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOS(10, _omitFieldNames ? '' : 'OrderID', protoName: 'OrderID')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  EnrichedGoods get goods => $_getN(0);
  @$pb.TagNumber(1)
  set goods(EnrichedGoods v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGoods() => $_has(0);
  @$pb.TagNumber(1)
  void clearGoods() => $_clearField(1);
  @$pb.TagNumber(1)
  EnrichedGoods ensureGoods() => $_ensure(0);

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

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

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

  @$pb.TagNumber(5)
  QuantityInLV get quantity => $_getN(4);
  @$pb.TagNumber(5)
  set quantity(QuantityInLV v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasQuantity() => $_has(4);
  @$pb.TagNumber(5)
  void clearQuantity() => $_clearField(5);
  @$pb.TagNumber(5)
  QuantityInLV ensureQuantity() => $_ensure(4);

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

  @$pb.TagNumber(7)
  $core.bool get contentSummaryGenerated => $_getBF(6);
  @$pb.TagNumber(7)
  set contentSummaryGenerated($core.bool v) { $_setBool(6, v); }
  @$pb.TagNumber(7)
  $core.bool hasContentSummaryGenerated() => $_has(6);
  @$pb.TagNumber(7)
  void clearContentSummaryGenerated() => $_clearField(7);

  @$pb.TagNumber(8)
  $3.DateTime get dateTime => $_getN(7);
  @$pb.TagNumber(8)
  set dateTime($3.DateTime v) { $_setField(8, v); }
  @$pb.TagNumber(8)
  $core.bool hasDateTime() => $_has(7);
  @$pb.TagNumber(8)
  void clearDateTime() => $_clearField(8);
  @$pb.TagNumber(8)
  $3.DateTime ensureDateTime() => $_ensure(7);

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

  @$pb.TagNumber(10)
  $core.String get orderID => $_getSZ(9);
  @$pb.TagNumber(10)
  set orderID($core.String v) { $_setString(9, v); }
  @$pb.TagNumber(10)
  $core.bool hasOrderID() => $_has(9);
  @$pb.TagNumber(10)
  void clearOrderID() => $_clearField(10);
}

///
/// 	Structure to describe a quantity of goods prepared by executionflow line ID.
/// 	Here the item is described by its ID and will not be enriched.
/// 	Used in Handlingunit entities, where we do not need to enrich Item payload with a hard (fully described goods) link.
///    Used fo prepared Goods when no date is requested
class QuantifiedGoodsByExeflow extends $pb.GeneratedMessage {
  factory QuantifiedGoodsByExeflow({
    EnrichedGoods? goods,
    $core.String? executionflowID,
    $core.String? lineID,
    $core.String? actorID,
    QuantityInLV? quantity,
    $core.bool? stockMovementGenerated,
    $core.bool? contentSummaryGenerated,
    QuantityInLV? quantityInBaseLV,
    $core.String? orderID,
  }) {
    final $result = create();
    if (goods != null) {
      $result.goods = goods;
    }
    if (executionflowID != null) {
      $result.executionflowID = executionflowID;
    }
    if (lineID != null) {
      $result.lineID = lineID;
    }
    if (actorID != null) {
      $result.actorID = actorID;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    if (stockMovementGenerated != null) {
      $result.stockMovementGenerated = stockMovementGenerated;
    }
    if (contentSummaryGenerated != null) {
      $result.contentSummaryGenerated = contentSummaryGenerated;
    }
    if (quantityInBaseLV != null) {
      $result.quantityInBaseLV = quantityInBaseLV;
    }
    if (orderID != null) {
      $result.orderID = orderID;
    }
    return $result;
  }
  QuantifiedGoodsByExeflow._() : super();
  factory QuantifiedGoodsByExeflow.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantifiedGoodsByExeflow.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantifiedGoodsByExeflow', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<EnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: EnrichedGoods.create)
    ..aOS(2, _omitFieldNames ? '' : 'ExecutionflowID', protoName: 'ExecutionflowID')
    ..aOS(3, _omitFieldNames ? '' : 'LineID', protoName: 'LineID')
    ..aOS(4, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOM<QuantityInLV>(5, _omitFieldNames ? '' : 'Quantity', protoName: 'Quantity', subBuilder: QuantityInLV.create)
    ..aOB(6, _omitFieldNames ? '' : 'StockMovementGenerated', protoName: 'StockMovementGenerated')
    ..aOB(7, _omitFieldNames ? '' : 'ContentSummaryGenerated', protoName: 'ContentSummaryGenerated')
    ..aOM<QuantityInLV>(8, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOS(9, _omitFieldNames ? '' : 'OrderID', protoName: 'OrderID')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  EnrichedGoods get goods => $_getN(0);
  @$pb.TagNumber(1)
  set goods(EnrichedGoods v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasGoods() => $_has(0);
  @$pb.TagNumber(1)
  void clearGoods() => $_clearField(1);
  @$pb.TagNumber(1)
  EnrichedGoods ensureGoods() => $_ensure(0);

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

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

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

  @$pb.TagNumber(5)
  QuantityInLV get quantity => $_getN(4);
  @$pb.TagNumber(5)
  set quantity(QuantityInLV v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasQuantity() => $_has(4);
  @$pb.TagNumber(5)
  void clearQuantity() => $_clearField(5);
  @$pb.TagNumber(5)
  QuantityInLV ensureQuantity() => $_ensure(4);

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

  @$pb.TagNumber(7)
  $core.bool get contentSummaryGenerated => $_getBF(6);
  @$pb.TagNumber(7)
  set contentSummaryGenerated($core.bool v) { $_setBool(6, v); }
  @$pb.TagNumber(7)
  $core.bool hasContentSummaryGenerated() => $_has(6);
  @$pb.TagNumber(7)
  void clearContentSummaryGenerated() => $_clearField(7);

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

  @$pb.TagNumber(9)
  $core.String get orderID => $_getSZ(8);
  @$pb.TagNumber(9)
  set orderID($core.String v) { $_setString(8, v); }
  @$pb.TagNumber(9)
  $core.bool hasOrderID() => $_has(8);
  @$pb.TagNumber(9)
  void clearOrderID() => $_clearField(9);
}

///
///  	Structure to define a quantity in a specific LV with a priority
class QuantityByLV extends $pb.GeneratedMessage {
  factory QuantityByLV({
    $core.String? lVID,
    $core.String? lVName,
    $core.double? quantity,
    $core.String? priority,
  }) {
    final $result = create();
    if (lVID != null) {
      $result.lVID = lVID;
    }
    if (lVName != null) {
      $result.lVName = lVName;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    if (priority != null) {
      $result.priority = priority;
    }
    return $result;
  }
  QuantityByLV._() : super();
  factory QuantityByLV.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantityByLV.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantityByLV', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'LVID', protoName: 'LVID')
    ..aOS(2, _omitFieldNames ? '' : 'LVName', protoName: 'LVName')
    ..a<$core.double>(3, _omitFieldNames ? '' : 'Quantity', $pb.PbFieldType.OF, protoName: 'Quantity')
    ..aOS(4, _omitFieldNames ? '' : 'Priority', protoName: 'Priority')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  /// Logistical variant ID
  @$pb.TagNumber(1)
  $core.String get lVID => $_getSZ(0);
  @$pb.TagNumber(1)
  set lVID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasLVID() => $_has(0);
  @$pb.TagNumber(1)
  void clearLVID() => $_clearField(1);

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

  @$pb.TagNumber(3)
  $core.double get quantity => $_getN(2);
  @$pb.TagNumber(3)
  set quantity($core.double v) { $_setFloat(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasQuantity() => $_has(2);
  @$pb.TagNumber(3)
  void clearQuantity() => $_clearField(3);

  /// In order to sort the map from the biggest LV to the smallest
  @$pb.TagNumber(4)
  $core.String get priority => $_getSZ(3);
  @$pb.TagNumber(4)
  set priority($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(4)
  $core.bool hasPriority() => $_has(3);
  @$pb.TagNumber(4)
  void clearPriority() => $_clearField(4);
}

///
///  	Structure to define a quantity in a specific LV
class QuantityInLV extends $pb.GeneratedMessage {
  factory QuantityInLV({
    $core.String? lVID,
    $core.String? lVName,
    $core.double? value,
  }) {
    final $result = create();
    if (lVID != null) {
      $result.lVID = lVID;
    }
    if (lVName != null) {
      $result.lVName = lVName;
    }
    if (value != null) {
      $result.value = value;
    }
    return $result;
  }
  QuantityInLV._() : super();
  factory QuantityInLV.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory QuantityInLV.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'QuantityInLV', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'LVID', protoName: 'LVID')
    ..aOS(2, _omitFieldNames ? '' : 'LVName', protoName: 'LVName')
    ..a<$core.double>(3, _omitFieldNames ? '' : 'Value', $pb.PbFieldType.OF, protoName: 'Value')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  /// Logistical variant ID
  @$pb.TagNumber(1)
  $core.String get lVID => $_getSZ(0);
  @$pb.TagNumber(1)
  set lVID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasLVID() => $_has(0);
  @$pb.TagNumber(1)
  void clearLVID() => $_clearField(1);

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

  @$pb.TagNumber(3)
  $core.double get value => $_getN(2);
  @$pb.TagNumber(3)
  set value($core.double v) { $_setFloat(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasValue() => $_has(2);
  @$pb.TagNumber(3)
  void clearValue() => $_clearField(3);
}

///
/// Definition of a stock snapshot
class StockSnapshot extends $pb.GeneratedMessage {
  factory StockSnapshot({
    $core.String? iD,
    QuantityInLV? quantity,
    QuantityInLV? quantityInBaseLV,
    $3.DateTime? dateTime,
    $core.bool? isTotalQuantity,
    $core.Iterable<$core.double>? partialQuantities,
    QuantityInLV? previousQuantityInBaseLV,
  }) {
    final $result = create();
    if (iD != null) {
      $result.iD = iD;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    if (quantityInBaseLV != null) {
      $result.quantityInBaseLV = quantityInBaseLV;
    }
    if (dateTime != null) {
      $result.dateTime = dateTime;
    }
    if (isTotalQuantity != null) {
      $result.isTotalQuantity = isTotalQuantity;
    }
    if (partialQuantities != null) {
      $result.partialQuantities.addAll(partialQuantities);
    }
    if (previousQuantityInBaseLV != null) {
      $result.previousQuantityInBaseLV = previousQuantityInBaseLV;
    }
    return $result;
  }
  StockSnapshot._() : super();
  factory StockSnapshot.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory StockSnapshot.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StockSnapshot', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(2, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..aOM<QuantityInLV>(4, _omitFieldNames ? '' : 'Quantity', protoName: 'Quantity', subBuilder: QuantityInLV.create)
    ..aOM<QuantityInLV>(5, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: QuantityInLV.create)
    ..aOM<$3.DateTime>(6, _omitFieldNames ? '' : 'DateTime', protoName: 'DateTime', subBuilder: $3.DateTime.create)
    ..aOB(7, _omitFieldNames ? '' : 'IsTotalQuantity', protoName: 'IsTotalQuantity')
    ..p<$core.double>(8, _omitFieldNames ? '' : 'PartialQuantities', $pb.PbFieldType.KF, protoName: 'PartialQuantities')
    ..aOM<QuantityInLV>(9, _omitFieldNames ? '' : 'PreviousQuantityInBaseLV', protoName: 'PreviousQuantityInBaseLV', subBuilder: QuantityInLV.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')
  StockSnapshot clone() => StockSnapshot()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  StockSnapshot copyWith(void Function(StockSnapshot) updates) => super.copyWith((message) => updates(message as StockSnapshot)) as StockSnapshot;

  $pb.BuilderInfo get info_ => _i;

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

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

  @$pb.TagNumber(4)
  QuantityInLV get quantity => $_getN(1);
  @$pb.TagNumber(4)
  set quantity(QuantityInLV v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasQuantity() => $_has(1);
  @$pb.TagNumber(4)
  void clearQuantity() => $_clearField(4);
  @$pb.TagNumber(4)
  QuantityInLV ensureQuantity() => $_ensure(1);

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

  @$pb.TagNumber(6)
  $3.DateTime get dateTime => $_getN(3);
  @$pb.TagNumber(6)
  set dateTime($3.DateTime v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasDateTime() => $_has(3);
  @$pb.TagNumber(6)
  void clearDateTime() => $_clearField(6);
  @$pb.TagNumber(6)
  $3.DateTime ensureDateTime() => $_ensure(3);

  @$pb.TagNumber(7)
  $core.bool get isTotalQuantity => $_getBF(4);
  @$pb.TagNumber(7)
  set isTotalQuantity($core.bool v) { $_setBool(4, v); }
  @$pb.TagNumber(7)
  $core.bool hasIsTotalQuantity() => $_has(4);
  @$pb.TagNumber(7)
  void clearIsTotalQuantity() => $_clearField(7);

  @$pb.TagNumber(8)
  $pb.PbList<$core.double> get partialQuantities => $_getList(5);

  @$pb.TagNumber(9)
  QuantityInLV get previousQuantityInBaseLV => $_getN(6);
  @$pb.TagNumber(9)
  set previousQuantityInBaseLV(QuantityInLV v) { $_setField(9, v); }
  @$pb.TagNumber(9)
  $core.bool hasPreviousQuantityInBaseLV() => $_has(6);
  @$pb.TagNumber(9)
  void clearPreviousQuantityInBaseLV() => $_clearField(9);
  @$pb.TagNumber(9)
  QuantityInLV ensurePreviousQuantityInBaseLV() => $_ensure(6);
}

///
/// Definition of a stock movement claim
class StockMovementClaim extends $pb.GeneratedMessage {
  factory StockMovementClaim({
    $core.Iterable<$3.ClaimSummary>? claims,
    $core.String? iD,
  }) {
    final $result = create();
    if (claims != null) {
      $result.claims.addAll(claims);
    }
    if (iD != null) {
      $result.iD = iD;
    }
    return $result;
  }
  StockMovementClaim._() : super();
  factory StockMovementClaim.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory StockMovementClaim.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StockMovementClaim', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$3.ClaimSummary>(1, _omitFieldNames ? '' : 'Claims', $pb.PbFieldType.PM, protoName: 'Claims', subBuilder: $3.ClaimSummary.create)
    ..aOS(2, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

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

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

///
/// Definition of a stock movement
class StockMovement extends $pb.GeneratedMessage {
  factory StockMovement({
    $3.DateTime? dateTime,
    $core.String? iD,
    StockMovementTypeCode? type,
    $core.String? handlingunitID,
    $core.String? executionflowID,
    $core.String? executionflowLineID,
    $core.String? reason,
    $core.String? operationReference,
    MovementQuantityInLV? quantity,
    MovementQuantityInLV? quantityInBaseLV,
    $core.bool? mvtAlreadyUsedInStock,
    $core.Iterable<QuantityByLV>? quantityByLVs,
    $core.String? lVDetailledQuantity,
    $core.String? author,
    $core.String? externalMoveRef,
    $core.String? externalInfo,
    $core.String? orderID,
  }) {
    final $result = create();
    if (dateTime != null) {
      $result.dateTime = dateTime;
    }
    if (iD != null) {
      $result.iD = iD;
    }
    if (type != null) {
      $result.type = type;
    }
    if (handlingunitID != null) {
      $result.handlingunitID = handlingunitID;
    }
    if (executionflowID != null) {
      $result.executionflowID = executionflowID;
    }
    if (executionflowLineID != null) {
      $result.executionflowLineID = executionflowLineID;
    }
    if (reason != null) {
      $result.reason = reason;
    }
    if (operationReference != null) {
      $result.operationReference = operationReference;
    }
    if (quantity != null) {
      $result.quantity = quantity;
    }
    if (quantityInBaseLV != null) {
      $result.quantityInBaseLV = quantityInBaseLV;
    }
    if (mvtAlreadyUsedInStock != null) {
      $result.mvtAlreadyUsedInStock = mvtAlreadyUsedInStock;
    }
    if (quantityByLVs != null) {
      $result.quantityByLVs.addAll(quantityByLVs);
    }
    if (lVDetailledQuantity != null) {
      $result.lVDetailledQuantity = lVDetailledQuantity;
    }
    if (author != null) {
      $result.author = author;
    }
    if (externalMoveRef != null) {
      $result.externalMoveRef = externalMoveRef;
    }
    if (externalInfo != null) {
      $result.externalInfo = externalInfo;
    }
    if (orderID != null) {
      $result.orderID = orderID;
    }
    return $result;
  }
  StockMovement._() : super();
  factory StockMovement.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory StockMovement.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StockMovement', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.DateTime>(1, _omitFieldNames ? '' : 'DateTime', protoName: 'DateTime', subBuilder: $3.DateTime.create)
    ..aOS(2, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..e<StockMovementTypeCode>(3, _omitFieldNames ? '' : 'Type', $pb.PbFieldType.OE, protoName: 'Type', defaultOrMaker: StockMovementTypeCode.STOCK_MOVEMENT_TYPE_UNKNOWN, valueOf: StockMovementTypeCode.valueOf, enumValues: StockMovementTypeCode.values)
    ..aOS(4, _omitFieldNames ? '' : 'HandlingunitID', protoName: 'HandlingunitID')
    ..aOS(5, _omitFieldNames ? '' : 'ExecutionflowID', protoName: 'ExecutionflowID')
    ..aOS(6, _omitFieldNames ? '' : 'ExecutionflowLineID', protoName: 'ExecutionflowLineID')
    ..aOS(7, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOS(8, _omitFieldNames ? '' : 'OperationReference', protoName: 'OperationReference')
    ..aOM<MovementQuantityInLV>(9, _omitFieldNames ? '' : 'Quantity', protoName: 'Quantity', subBuilder: MovementQuantityInLV.create)
    ..aOM<MovementQuantityInLV>(10, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: MovementQuantityInLV.create)
    ..aOB(11, _omitFieldNames ? '' : 'MvtAlreadyUsedInStock', protoName: 'MvtAlreadyUsedInStock')
    ..pc<QuantityByLV>(12, _omitFieldNames ? '' : 'QuantityByLVs', $pb.PbFieldType.PM, protoName: 'QuantityByLVs', subBuilder: QuantityByLV.create)
    ..aOS(13, _omitFieldNames ? '' : 'LVDetailledQuantity', protoName: 'LVDetailledQuantity')
    ..aOS(14, _omitFieldNames ? '' : 'Author', protoName: 'Author')
    ..aOS(15, _omitFieldNames ? '' : 'ExternalMoveRef', protoName: 'ExternalMoveRef')
    ..aOS(16, _omitFieldNames ? '' : 'ExternalInfo', protoName: 'ExternalInfo')
    ..aOS(17, _omitFieldNames ? '' : 'OrderID', protoName: 'OrderID')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.DateTime get dateTime => $_getN(0);
  @$pb.TagNumber(1)
  set dateTime($3.DateTime v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasDateTime() => $_has(0);
  @$pb.TagNumber(1)
  void clearDateTime() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.DateTime ensureDateTime() => $_ensure(0);

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

  /// Codes used in StockMovementReason to explain stock movement
  @$pb.TagNumber(3)
  StockMovementTypeCode get type => $_getN(2);
  @$pb.TagNumber(3)
  set type(StockMovementTypeCode v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasType() => $_has(2);
  @$pb.TagNumber(3)
  void clearType() => $_clearField(3);

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

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

  @$pb.TagNumber(6)
  $core.String get executionflowLineID => $_getSZ(5);
  @$pb.TagNumber(6)
  set executionflowLineID($core.String v) { $_setString(5, v); }
  @$pb.TagNumber(6)
  $core.bool hasExecutionflowLineID() => $_has(5);
  @$pb.TagNumber(6)
  void clearExecutionflowLineID() => $_clearField(6);

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

  @$pb.TagNumber(8)
  $core.String get operationReference => $_getSZ(7);
  @$pb.TagNumber(8)
  set operationReference($core.String v) { $_setString(7, v); }
  @$pb.TagNumber(8)
  $core.bool hasOperationReference() => $_has(7);
  @$pb.TagNumber(8)
  void clearOperationReference() => $_clearField(8);

  @$pb.TagNumber(9)
  MovementQuantityInLV get quantity => $_getN(8);
  @$pb.TagNumber(9)
  set quantity(MovementQuantityInLV v) { $_setField(9, v); }
  @$pb.TagNumber(9)
  $core.bool hasQuantity() => $_has(8);
  @$pb.TagNumber(9)
  void clearQuantity() => $_clearField(9);
  @$pb.TagNumber(9)
  MovementQuantityInLV ensureQuantity() => $_ensure(8);

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

  @$pb.TagNumber(11)
  $core.bool get mvtAlreadyUsedInStock => $_getBF(10);
  @$pb.TagNumber(11)
  set mvtAlreadyUsedInStock($core.bool v) { $_setBool(10, v); }
  @$pb.TagNumber(11)
  $core.bool hasMvtAlreadyUsedInStock() => $_has(10);
  @$pb.TagNumber(11)
  void clearMvtAlreadyUsedInStock() => $_clearField(11);

  @$pb.TagNumber(12)
  $pb.PbList<QuantityByLV> get quantityByLVs => $_getList(11);

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

  @$pb.TagNumber(14)
  $core.String get author => $_getSZ(13);
  @$pb.TagNumber(14)
  set author($core.String v) { $_setString(13, v); }
  @$pb.TagNumber(14)
  $core.bool hasAuthor() => $_has(13);
  @$pb.TagNumber(14)
  void clearAuthor() => $_clearField(14);

  @$pb.TagNumber(15)
  $core.String get externalMoveRef => $_getSZ(14);
  @$pb.TagNumber(15)
  set externalMoveRef($core.String v) { $_setString(14, v); }
  @$pb.TagNumber(15)
  $core.bool hasExternalMoveRef() => $_has(14);
  @$pb.TagNumber(15)
  void clearExternalMoveRef() => $_clearField(15);

  @$pb.TagNumber(16)
  $core.String get externalInfo => $_getSZ(15);
  @$pb.TagNumber(16)
  set externalInfo($core.String v) { $_setString(15, v); }
  @$pb.TagNumber(16)
  $core.bool hasExternalInfo() => $_has(15);
  @$pb.TagNumber(16)
  void clearExternalInfo() => $_clearField(16);

  @$pb.TagNumber(17)
  $core.String get orderID => $_getSZ(16);
  @$pb.TagNumber(17)
  set orderID($core.String v) { $_setString(16, v); }
  @$pb.TagNumber(17)
  $core.bool hasOrderID() => $_has(16);
  @$pb.TagNumber(17)
  void clearOrderID() => $_clearField(17);
}

///
///  	Structure to define a quantity in a specific LV
class MovementQuantityInLV extends $pb.GeneratedMessage {
  factory MovementQuantityInLV({
    $core.String? lVID,
    $core.String? lVName,
    $core.double? value,
  }) {
    final $result = create();
    if (lVID != null) {
      $result.lVID = lVID;
    }
    if (lVName != null) {
      $result.lVName = lVName;
    }
    if (value != null) {
      $result.value = value;
    }
    return $result;
  }
  MovementQuantityInLV._() : super();
  factory MovementQuantityInLV.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MovementQuantityInLV.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementQuantityInLV', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'LVID', protoName: 'LVID')
    ..aOS(2, _omitFieldNames ? '' : 'LVName', protoName: 'LVName')
    ..a<$core.double>(3, _omitFieldNames ? '' : 'Value', $pb.PbFieldType.OF, protoName: 'Value')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  /// Logistical variant ID
  @$pb.TagNumber(1)
  $core.String get lVID => $_getSZ(0);
  @$pb.TagNumber(1)
  set lVID($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasLVID() => $_has(0);
  @$pb.TagNumber(1)
  void clearLVID() => $_clearField(1);

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

  @$pb.TagNumber(3)
  $core.double get value => $_getN(2);
  @$pb.TagNumber(3)
  set value($core.double v) { $_setFloat(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasValue() => $_has(2);
  @$pb.TagNumber(3)
  void clearValue() => $_clearField(3);
}


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