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

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

///
///  Build Executionflow from Order
///   This is the "OMS light". 1 Execution Flow for 1 Order if ShipFrom is defined
class OrderBuildExecutionflowPayload extends $pb.GeneratedMessage {
  factory OrderBuildExecutionflowPayload({
    $3.DateTime? creationDateTime,
    $75.ReferencedID? parentOrder,
    $core.String? languageCodeISO6391,
    $core.Iterable<$3.MetadataElement>? metaData,
    $75.TradeTier? buyer,
    $75.TradeTier? seller,
    $75.TradeTier? shipFrom,
    $75.TradeTier? shipTo,
    $75.TradeTier? carrier,
    $75.OrderRequestedMilestones? requestedMilestones,
    $core.Iterable<$75.OrderLine>? lines,
    $core.String? carrierService,
  }) {
    final $result = create();
    if (creationDateTime != null) {
      $result.creationDateTime = creationDateTime;
    }
    if (parentOrder != null) {
      $result.parentOrder = parentOrder;
    }
    if (languageCodeISO6391 != null) {
      $result.languageCodeISO6391 = languageCodeISO6391;
    }
    if (metaData != null) {
      $result.metaData.addAll(metaData);
    }
    if (buyer != null) {
      $result.buyer = buyer;
    }
    if (seller != null) {
      $result.seller = seller;
    }
    if (shipFrom != null) {
      $result.shipFrom = shipFrom;
    }
    if (shipTo != null) {
      $result.shipTo = shipTo;
    }
    if (carrier != null) {
      $result.carrier = carrier;
    }
    if (requestedMilestones != null) {
      $result.requestedMilestones = requestedMilestones;
    }
    if (lines != null) {
      $result.lines.addAll(lines);
    }
    if (carrierService != null) {
      $result.carrierService = carrierService;
    }
    return $result;
  }
  OrderBuildExecutionflowPayload._() : super();
  factory OrderBuildExecutionflowPayload.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderBuildExecutionflowPayload.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'OrderBuildExecutionflowPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.DateTime>(1, _omitFieldNames ? '' : 'CreationDateTime', protoName: 'CreationDateTime', subBuilder: $3.DateTime.create)
    ..aOM<$75.ReferencedID>(2, _omitFieldNames ? '' : 'ParentOrder', protoName: 'ParentOrder', subBuilder: $75.ReferencedID.create)
    ..aOS(3, _omitFieldNames ? '' : 'LanguageCodeISO6391', protoName: 'LanguageCodeISO6391')
    ..pc<$3.MetadataElement>(4, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..aOM<$75.TradeTier>(5, _omitFieldNames ? '' : 'Buyer', protoName: 'Buyer', subBuilder: $75.TradeTier.create)
    ..aOM<$75.TradeTier>(6, _omitFieldNames ? '' : 'Seller', protoName: 'Seller', subBuilder: $75.TradeTier.create)
    ..aOM<$75.TradeTier>(7, _omitFieldNames ? '' : 'ShipFrom', protoName: 'ShipFrom', subBuilder: $75.TradeTier.create)
    ..aOM<$75.TradeTier>(8, _omitFieldNames ? '' : 'ShipTo', protoName: 'ShipTo', subBuilder: $75.TradeTier.create)
    ..aOM<$75.TradeTier>(9, _omitFieldNames ? '' : 'Carrier', protoName: 'Carrier', subBuilder: $75.TradeTier.create)
    ..aOM<$75.OrderRequestedMilestones>(10, _omitFieldNames ? '' : 'RequestedMilestones', protoName: 'RequestedMilestones', subBuilder: $75.OrderRequestedMilestones.create)
    ..pc<$75.OrderLine>(11, _omitFieldNames ? '' : 'Lines', $pb.PbFieldType.PM, protoName: 'Lines', subBuilder: $75.OrderLine.create)
    ..aOS(16, _omitFieldNames ? '' : 'CarrierService', protoName: 'CarrierService')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.DateTime get creationDateTime => $_getN(0);
  @$pb.TagNumber(1)
  set creationDateTime($3.DateTime v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCreationDateTime() => $_has(0);
  @$pb.TagNumber(1)
  void clearCreationDateTime() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.DateTime ensureCreationDateTime() => $_ensure(0);

  @$pb.TagNumber(2)
  $75.ReferencedID get parentOrder => $_getN(1);
  @$pb.TagNumber(2)
  set parentOrder($75.ReferencedID v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasParentOrder() => $_has(1);
  @$pb.TagNumber(2)
  void clearParentOrder() => $_clearField(2);
  @$pb.TagNumber(2)
  $75.ReferencedID ensureParentOrder() => $_ensure(1);

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

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

  @$pb.TagNumber(5)
  $75.TradeTier get buyer => $_getN(4);
  @$pb.TagNumber(5)
  set buyer($75.TradeTier v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasBuyer() => $_has(4);
  @$pb.TagNumber(5)
  void clearBuyer() => $_clearField(5);
  @$pb.TagNumber(5)
  $75.TradeTier ensureBuyer() => $_ensure(4);

  @$pb.TagNumber(6)
  $75.TradeTier get seller => $_getN(5);
  @$pb.TagNumber(6)
  set seller($75.TradeTier v) { $_setField(6, v); }
  @$pb.TagNumber(6)
  $core.bool hasSeller() => $_has(5);
  @$pb.TagNumber(6)
  void clearSeller() => $_clearField(6);
  @$pb.TagNumber(6)
  $75.TradeTier ensureSeller() => $_ensure(5);

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

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

  /// Definition of the order carrier
  @$pb.TagNumber(9)
  $75.TradeTier get carrier => $_getN(8);
  @$pb.TagNumber(9)
  set carrier($75.TradeTier v) { $_setField(9, v); }
  @$pb.TagNumber(9)
  $core.bool hasCarrier() => $_has(8);
  @$pb.TagNumber(9)
  void clearCarrier() => $_clearField(9);
  @$pb.TagNumber(9)
  $75.TradeTier ensureCarrier() => $_ensure(8);

  @$pb.TagNumber(10)
  $75.OrderRequestedMilestones get requestedMilestones => $_getN(9);
  @$pb.TagNumber(10)
  set requestedMilestones($75.OrderRequestedMilestones v) { $_setField(10, v); }
  @$pb.TagNumber(10)
  $core.bool hasRequestedMilestones() => $_has(9);
  @$pb.TagNumber(10)
  void clearRequestedMilestones() => $_clearField(10);
  @$pb.TagNumber(10)
  $75.OrderRequestedMilestones ensureRequestedMilestones() => $_ensure(9);

  /// Lines of the order
  @$pb.TagNumber(11)
  $pb.PbList<$75.OrderLine> get lines => $_getList(10);

  /// Type of carrier service
  @$pb.TagNumber(16)
  $core.String get carrierService => $_getSZ(11);
  @$pb.TagNumber(16)
  set carrierService($core.String v) { $_setString(11, v); }
  @$pb.TagNumber(16)
  $core.bool hasCarrierService() => $_has(11);
  @$pb.TagNumber(16)
  void clearCarrierService() => $_clearField(16);
}

class OrderBuildExecutionflow extends $pb.GeneratedMessage {
  factory OrderBuildExecutionflow({
    $3.CommandHeader? header,
    $3.EntityID? iD,
    OrderBuildExecutionflowPayload? payload,
    OrderBuildExecutionflowPayload? eventPayload,
    OrderBuildExecutionflowPayload? previousPayload,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (iD != null) {
      $result.iD = iD;
    }
    if (payload != null) {
      $result.payload = payload;
    }
    if (eventPayload != null) {
      $result.eventPayload = eventPayload;
    }
    if (previousPayload != null) {
      $result.previousPayload = previousPayload;
    }
    return $result;
  }
  OrderBuildExecutionflow._() : super();
  factory OrderBuildExecutionflow.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory OrderBuildExecutionflow.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.CommandHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.CommandHeader v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.CommandHeader ensureHeader() => $_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)
  OrderBuildExecutionflowPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(OrderBuildExecutionflowPayload v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  OrderBuildExecutionflowPayload ensurePayload() => $_ensure(2);

  @$pb.TagNumber(4)
  OrderBuildExecutionflowPayload get eventPayload => $_getN(3);
  @$pb.TagNumber(4)
  set eventPayload(OrderBuildExecutionflowPayload v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasEventPayload() => $_has(3);
  @$pb.TagNumber(4)
  void clearEventPayload() => $_clearField(4);
  @$pb.TagNumber(4)
  OrderBuildExecutionflowPayload ensureEventPayload() => $_ensure(3);

  @$pb.TagNumber(5)
  OrderBuildExecutionflowPayload get previousPayload => $_getN(4);
  @$pb.TagNumber(5)
  set previousPayload(OrderBuildExecutionflowPayload v) { $_setField(5, v); }
  @$pb.TagNumber(5)
  $core.bool hasPreviousPayload() => $_has(4);
  @$pb.TagNumber(5)
  void clearPreviousPayload() => $_clearField(5);
  @$pb.TagNumber(5)
  OrderBuildExecutionflowPayload ensurePreviousPayload() => $_ensure(4);
}


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