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

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

///
/// Aggregation object message
class Item extends $pb.GeneratedMessage {
  factory Item({
    $3.EventHeader? lastEventHeader,
    $3.EntityID? iD,
    ItemPayload? payload,
  }) {
    final $result = create();
    if (lastEventHeader != null) {
      $result.lastEventHeader = lastEventHeader;
    }
    if (iD != null) {
      $result.iD = iD;
    }
    if (payload != null) {
      $result.payload = payload;
    }
    return $result;
  }
  Item._() : super();
  factory Item.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory Item.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

  $pb.BuilderInfo get info_ => _i;

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

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

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

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

class ItemPayload extends $pb.GeneratedMessage {
  factory ItemPayload({
    $core.Iterable<$3.MetadataElement>? metaData,
    $core.Iterable<$65.TradeItemDescriptions>? descriptionsByLanguage,
    $core.Iterable<$65.LogisticVariant>? logisticVariants,
    $65.ItemStatusStruct? status,
    $65.ExpiryConstraint? expiryConstraint,
    $core.String? photoURI,
    $core.Iterable<$3.AttachmentSummary>? attachments,
    $core.int? attachmentNumber,
    $core.Iterable<$core.String>? removedLogisticVariantIDs,
  }) {
    final $result = create();
    if (metaData != null) {
      $result.metaData.addAll(metaData);
    }
    if (descriptionsByLanguage != null) {
      $result.descriptionsByLanguage.addAll(descriptionsByLanguage);
    }
    if (logisticVariants != null) {
      $result.logisticVariants.addAll(logisticVariants);
    }
    if (status != null) {
      $result.status = status;
    }
    if (expiryConstraint != null) {
      $result.expiryConstraint = expiryConstraint;
    }
    if (photoURI != null) {
      $result.photoURI = photoURI;
    }
    if (attachments != null) {
      $result.attachments.addAll(attachments);
    }
    if (attachmentNumber != null) {
      $result.attachmentNumber = attachmentNumber;
    }
    if (removedLogisticVariantIDs != null) {
      $result.removedLogisticVariantIDs.addAll(removedLogisticVariantIDs);
    }
    return $result;
  }
  ItemPayload._() : super();
  factory ItemPayload.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ItemPayload.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ItemPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$3.MetadataElement>(1, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..pc<$65.TradeItemDescriptions>(3, _omitFieldNames ? '' : 'DescriptionsByLanguage', $pb.PbFieldType.PM, protoName: 'DescriptionsByLanguage', subBuilder: $65.TradeItemDescriptions.create)
    ..pc<$65.LogisticVariant>(4, _omitFieldNames ? '' : 'LogisticVariants', $pb.PbFieldType.PM, protoName: 'LogisticVariants', subBuilder: $65.LogisticVariant.create)
    ..aOM<$65.ItemStatusStruct>(5, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: $65.ItemStatusStruct.create)
    ..aOM<$65.ExpiryConstraint>(6, _omitFieldNames ? '' : 'ExpiryConstraint', protoName: 'ExpiryConstraint', subBuilder: $65.ExpiryConstraint.create)
    ..aOS(7, _omitFieldNames ? '' : 'PhotoURI', protoName: 'PhotoURI')
    ..pc<$3.AttachmentSummary>(8, _omitFieldNames ? '' : 'Attachments', $pb.PbFieldType.PM, protoName: 'Attachments', subBuilder: $3.AttachmentSummary.create)
    ..a<$core.int>(9, _omitFieldNames ? '' : 'AttachmentNumber', $pb.PbFieldType.O3, protoName: 'AttachmentNumber')
    ..pPS(10, _omitFieldNames ? '' : 'RemovedLogisticVariantIDs', protoName: 'RemovedLogisticVariantIDs')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

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

  @$pb.TagNumber(3)
  $pb.PbList<$65.TradeItemDescriptions> get descriptionsByLanguage => $_getList(1);

  @$pb.TagNumber(4)
  $pb.PbList<$65.LogisticVariant> get logisticVariants => $_getList(2);

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

  /// Item components
  @$pb.TagNumber(6)
  $65.ExpiryConstraint get expiryConstraint => $_getN(4);
  @$pb.TagNumber(6)
  set expiryConstraint($65.ExpiryConstraint v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasExpiryConstraint() => $_has(4);
  @$pb.TagNumber(6)
  void clearExpiryConstraint() => $_clearField(6);
  @$pb.TagNumber(6)
  $65.ExpiryConstraint ensureExpiryConstraint() => $_ensure(4);

  @$pb.TagNumber(7)
  $core.String get photoURI => $_getSZ(5);
  @$pb.TagNumber(7)
  set photoURI($core.String v) { $_setString(5, v); }
  @$pb.TagNumber(7)
  $core.bool hasPhotoURI() => $_has(5);
  @$pb.TagNumber(7)
  void clearPhotoURI() => $_clearField(7);

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

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

  @$pb.TagNumber(10)
  $pb.PbList<$core.String> get removedLogisticVariantIDs => $_getList(8);
}

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

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

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


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