// This is a generated file - do not edit.
//
// Generated from movement.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names

import 'dart:core' as $core;

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

import 'actor.pb.dart' as $1;
import 'item.pb.dart' as $3;
import 'shared.pb.dart' as $2;
import 'warehousingShared.pb.dart' as $0;

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

class MovementPayload extends $pb.GeneratedMessage {
  factory MovementPayload({
    $0.EnrichedGoods? goods,
    $core.String? actorID,
    $1.ActorPayload? actor,
    $0.StockMovement? movement,
    $core.Iterable<$2.ClaimSummary>? claims,
    $core.int? claimNumber,
    $0.MovementStatusStruct? status,
    $0.QuantityInLV? quantityInBaseLV,
    $core.Iterable<$2.AttachmentSummary>? attachments,
    $core.int? attachmentNumber,
  }) {
    final result = create();
    if (goods != null) result.goods = goods;
    if (actorID != null) result.actorID = actorID;
    if (actor != null) result.actor = actor;
    if (movement != null) result.movement = movement;
    if (claims != null) result.claims.addAll(claims);
    if (claimNumber != null) result.claimNumber = claimNumber;
    if (status != null) result.status = status;
    if (quantityInBaseLV != null) result.quantityInBaseLV = quantityInBaseLV;
    if (attachments != null) result.attachments.addAll(attachments);
    if (attachmentNumber != null) result.attachmentNumber = attachmentNumber;
    return result;
  }

  MovementPayload._();

  factory MovementPayload.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory MovementPayload.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$0.EnrichedGoods>(1, _omitFieldNames ? '' : 'Goods', protoName: 'Goods', subBuilder: $0.EnrichedGoods.create)
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOM<$1.ActorPayload>(3, _omitFieldNames ? '' : 'Actor', protoName: 'Actor', subBuilder: $1.ActorPayload.create)
    ..aOM<$0.StockMovement>(4, _omitFieldNames ? '' : 'Movement', protoName: 'Movement', subBuilder: $0.StockMovement.create)
    ..pc<$2.ClaimSummary>(5, _omitFieldNames ? '' : 'Claims', $pb.PbFieldType.PM, protoName: 'Claims', subBuilder: $2.ClaimSummary.create)
    ..a<$core.int>(6, _omitFieldNames ? '' : 'ClaimNumber', $pb.PbFieldType.O3, protoName: 'ClaimNumber')
    ..aOM<$0.MovementStatusStruct>(7, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: $0.MovementStatusStruct.create)
    ..aOM<$0.QuantityInLV>(8, _omitFieldNames ? '' : 'QuantityInBaseLV', protoName: 'QuantityInBaseLV', subBuilder: $0.QuantityInLV.create)
    ..pc<$2.AttachmentSummary>(9, _omitFieldNames ? '' : 'Attachments', $pb.PbFieldType.PM, protoName: 'Attachments', subBuilder: $2.AttachmentSummary.create)
    ..a<$core.int>(10, _omitFieldNames ? '' : 'AttachmentNumber', $pb.PbFieldType.O3, protoName: 'AttachmentNumber')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementPayload clone() => MovementPayload()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementPayload copyWith(void Function(MovementPayload) updates) => super.copyWith((message) => updates(message as MovementPayload)) as MovementPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

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

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

  @$pb.TagNumber(3)
  $1.ActorPayload get actor => $_getN(2);
  @$pb.TagNumber(3)
  set actor($1.ActorPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasActor() => $_has(2);
  @$pb.TagNumber(3)
  void clearActor() => $_clearField(3);
  @$pb.TagNumber(3)
  $1.ActorPayload ensureActor() => $_ensure(2);

  @$pb.TagNumber(4)
  $0.StockMovement get movement => $_getN(3);
  @$pb.TagNumber(4)
  set movement($0.StockMovement value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasMovement() => $_has(3);
  @$pb.TagNumber(4)
  void clearMovement() => $_clearField(4);
  @$pb.TagNumber(4)
  $0.StockMovement ensureMovement() => $_ensure(3);

  @$pb.TagNumber(5)
  $pb.PbList<$2.ClaimSummary> get claims => $_getList(4);

  @$pb.TagNumber(6)
  $core.int get claimNumber => $_getIZ(5);
  @$pb.TagNumber(6)
  set claimNumber($core.int value) => $_setSignedInt32(5, value);
  @$pb.TagNumber(6)
  $core.bool hasClaimNumber() => $_has(5);
  @$pb.TagNumber(6)
  void clearClaimNumber() => $_clearField(6);

  @$pb.TagNumber(7)
  $0.MovementStatusStruct get status => $_getN(6);
  @$pb.TagNumber(7)
  set status($0.MovementStatusStruct value) => $_setField(7, value);
  @$pb.TagNumber(7)
  $core.bool hasStatus() => $_has(6);
  @$pb.TagNumber(7)
  void clearStatus() => $_clearField(7);
  @$pb.TagNumber(7)
  $0.MovementStatusStruct ensureStatus() => $_ensure(6);

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

  @$pb.TagNumber(9)
  $pb.PbList<$2.AttachmentSummary> get attachments => $_getList(8);

  @$pb.TagNumber(10)
  $core.int get attachmentNumber => $_getIZ(9);
  @$pb.TagNumber(10)
  set attachmentNumber($core.int value) => $_setSignedInt32(9, value);
  @$pb.TagNumber(10)
  $core.bool hasAttachmentNumber() => $_has(9);
  @$pb.TagNumber(10)
  void clearAttachmentNumber() => $_clearField(10);
}

///
/// Movement entity Structure
class Movement extends $pb.GeneratedMessage {
  factory Movement({
    $2.EventHeader? lastEventHeader,
    $2.EntityID? iD,
    MovementPayload? payload,
  }) {
    final result = create();
    if (lastEventHeader != null) result.lastEventHeader = lastEventHeader;
    if (iD != null) result.iD = iD;
    if (payload != null) result.payload = payload;
    return result;
  }

  Movement._();

  factory Movement.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory Movement.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Movement', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$2.EventHeader>(1, _omitFieldNames ? '' : 'LastEventHeader', protoName: 'LastEventHeader', subBuilder: $2.EventHeader.create)
    ..aOM<$2.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $2.EntityID.create)
    ..aOM<MovementPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: MovementPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Movement clone() => Movement()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Movement copyWith(void Function(Movement) updates) => super.copyWith((message) => updates(message as Movement)) as Movement;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $2.EventHeader get lastEventHeader => $_getN(0);
  @$pb.TagNumber(1)
  set lastEventHeader($2.EventHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasLastEventHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearLastEventHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $2.EventHeader ensureLastEventHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $2.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($2.EntityID value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $2.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  MovementPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(MovementPayload value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  MovementPayload ensurePayload() => $_ensure(2);
}

enum MovementEnrichment_Content {
  item, 
  actor, 
  notSet
}

class MovementEnrichment extends $pb.GeneratedMessage {
  factory MovementEnrichment({
    $core.String? parentEventID,
    $core.String? entityName,
    $core.String? entityRefID,
    $core.String? refFilter,
    $core.String? mergePath,
    $core.String? project,
    $core.String? parentEntityName,
    $core.String? parentEntityID,
    $3.ItemPayload? item,
    $1.ActorPayload? actor,
  }) {
    final result = create();
    if (parentEventID != null) result.parentEventID = parentEventID;
    if (entityName != null) result.entityName = entityName;
    if (entityRefID != null) result.entityRefID = entityRefID;
    if (refFilter != null) result.refFilter = refFilter;
    if (mergePath != null) result.mergePath = mergePath;
    if (project != null) result.project = project;
    if (parentEntityName != null) result.parentEntityName = parentEntityName;
    if (parentEntityID != null) result.parentEntityID = parentEntityID;
    if (item != null) result.item = item;
    if (actor != null) result.actor = actor;
    return result;
  }

  MovementEnrichment._();

  factory MovementEnrichment.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory MovementEnrichment.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static const $core.Map<$core.int, MovementEnrichment_Content> _MovementEnrichment_ContentByTag = {
    10 : MovementEnrichment_Content.item,
    11 : MovementEnrichment_Content.actor,
    0 : MovementEnrichment_Content.notSet
  };
  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementEnrichment', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..oo(0, [10, 11])
    ..aOS(1, _omitFieldNames ? '' : 'ParentEventID', protoName: 'ParentEventID')
    ..aOS(2, _omitFieldNames ? '' : 'EntityName', protoName: 'EntityName')
    ..aOS(3, _omitFieldNames ? '' : 'EntityRefID', protoName: 'EntityRefID')
    ..aOS(4, _omitFieldNames ? '' : 'RefFilter', protoName: 'RefFilter')
    ..aOS(5, _omitFieldNames ? '' : 'MergePath', protoName: 'MergePath')
    ..aOS(6, _omitFieldNames ? '' : 'Project', protoName: 'Project')
    ..aOS(7, _omitFieldNames ? '' : 'ParentEntityName', protoName: 'ParentEntityName')
    ..aOS(8, _omitFieldNames ? '' : 'ParentEntityID', protoName: 'ParentEntityID')
    ..aOM<$3.ItemPayload>(10, _omitFieldNames ? '' : 'Item', protoName: 'Item', subBuilder: $3.ItemPayload.create)
    ..aOM<$1.ActorPayload>(11, _omitFieldNames ? '' : 'Actor', protoName: 'Actor', subBuilder: $1.ActorPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementEnrichment clone() => MovementEnrichment()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementEnrichment copyWith(void Function(MovementEnrichment) updates) => super.copyWith((message) => updates(message as MovementEnrichment)) as MovementEnrichment;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  MovementEnrichment_Content whichContent() => _MovementEnrichment_ContentByTag[$_whichOneof(0)]!;
  void clearContent() => $_clearField($_whichOneof(0));

  @$pb.TagNumber(1)
  $core.String get parentEventID => $_getSZ(0);
  @$pb.TagNumber(1)
  set parentEventID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasParentEventID() => $_has(0);
  @$pb.TagNumber(1)
  void clearParentEventID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get entityName => $_getSZ(1);
  @$pb.TagNumber(2)
  set entityName($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEntityName() => $_has(1);
  @$pb.TagNumber(2)
  void clearEntityName() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get entityRefID => $_getSZ(2);
  @$pb.TagNumber(3)
  set entityRefID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasEntityRefID() => $_has(2);
  @$pb.TagNumber(3)
  void clearEntityRefID() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get refFilter => $_getSZ(3);
  @$pb.TagNumber(4)
  set refFilter($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasRefFilter() => $_has(3);
  @$pb.TagNumber(4)
  void clearRefFilter() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get mergePath => $_getSZ(4);
  @$pb.TagNumber(5)
  set mergePath($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasMergePath() => $_has(4);
  @$pb.TagNumber(5)
  void clearMergePath() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get project => $_getSZ(5);
  @$pb.TagNumber(6)
  set project($core.String value) => $_setString(5, value);
  @$pb.TagNumber(6)
  $core.bool hasProject() => $_has(5);
  @$pb.TagNumber(6)
  void clearProject() => $_clearField(6);

  @$pb.TagNumber(7)
  $core.String get parentEntityName => $_getSZ(6);
  @$pb.TagNumber(7)
  set parentEntityName($core.String value) => $_setString(6, value);
  @$pb.TagNumber(7)
  $core.bool hasParentEntityName() => $_has(6);
  @$pb.TagNumber(7)
  void clearParentEntityName() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.String get parentEntityID => $_getSZ(7);
  @$pb.TagNumber(8)
  set parentEntityID($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasParentEntityID() => $_has(7);
  @$pb.TagNumber(8)
  void clearParentEntityID() => $_clearField(8);

  @$pb.TagNumber(10)
  $3.ItemPayload get item => $_getN(8);
  @$pb.TagNumber(10)
  set item($3.ItemPayload value) => $_setField(10, value);
  @$pb.TagNumber(10)
  $core.bool hasItem() => $_has(8);
  @$pb.TagNumber(10)
  void clearItem() => $_clearField(10);
  @$pb.TagNumber(10)
  $3.ItemPayload ensureItem() => $_ensure(8);

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

class MovementTriplet extends $pb.GeneratedMessage {
  factory MovementTriplet({
    Movement? current,
    Movement? previous,
    Movement? lastEvent,
  }) {
    final result = create();
    if (current != null) result.current = current;
    if (previous != null) result.previous = previous;
    if (lastEvent != null) result.lastEvent = lastEvent;
    return result;
  }

  MovementTriplet._();

  factory MovementTriplet.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory MovementTriplet.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MovementTriplet', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<Movement>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: Movement.create)
    ..aOM<Movement>(2, _omitFieldNames ? '' : 'Previous', protoName: 'Previous', subBuilder: Movement.create)
    ..aOM<Movement>(3, _omitFieldNames ? '' : 'LastEvent', protoName: 'LastEvent', subBuilder: Movement.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementTriplet clone() => MovementTriplet()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MovementTriplet copyWith(void Function(MovementTriplet) updates) => super.copyWith((message) => updates(message as MovementTriplet)) as MovementTriplet;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

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

  @$pb.TagNumber(2)
  Movement get previous => $_getN(1);
  @$pb.TagNumber(2)
  set previous(Movement value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasPrevious() => $_has(1);
  @$pb.TagNumber(2)
  void clearPrevious() => $_clearField(2);
  @$pb.TagNumber(2)
  Movement ensurePrevious() => $_ensure(1);

  @$pb.TagNumber(3)
  Movement get lastEvent => $_getN(2);
  @$pb.TagNumber(3)
  set lastEvent(Movement value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasLastEvent() => $_has(2);
  @$pb.TagNumber(3)
  void clearLastEvent() => $_clearField(3);
  @$pb.TagNumber(3)
  Movement ensureLastEvent() => $_ensure(2);
}


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