// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file trackingAction.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { TrackingEvent, TrackingStatusStruct } from "./transportShared_pb.js";
import { CommandHeader, DateTime, EntityID } from "./shared_pb.js";
import { ETA, TradeTier } from "./tradeShared_pb.js";

/**
 *
 * MapSummaryToHU : map the tracking Summary to the corresponding HU
 *
 * @generated from message api.TrackingMapSummaryToHUPayload
 */
export class TrackingMapSummaryToHUPayload extends Message<TrackingMapSummaryToHUPayload> {
  /**
   * @generated from field: string HandlingunitID = 1;
   */
  HandlingunitID = "";

  /**
   * @generated from field: api.TrackingStatusStruct Status = 2;
   */
  Status?: TrackingStatusStruct;

  /**
   * @generated from field: string TrackingURL = 3;
   */
  TrackingURL = "";

  /**
   * TODO : will disappear when dispatched is removed ...
   *
   * @generated from field: api.DateTime DispatchedDateTime = 4;
   */
  DispatchedDateTime?: DateTime;

  /**
   * @generated from field: api.TradeTier HUCarrier = 9;
   */
  HUCarrier?: TradeTier;

  /**
   * @generated from field: api.TradeTier HUShipFrom = 10;
   */
  HUShipFrom?: TradeTier;

  /**
   * @generated from field: api.TradeTier HUShipTo = 11;
   */
  HUShipTo?: TradeTier;

  /**
   * @generated from field: string NextTrackingID = 12;
   */
  NextTrackingID = "";

  /**
   * @generated from field: repeated api.TrackingEvent Events = 13;
   */
  Events: TrackingEvent[] = [];

  constructor(data?: PartialMessage<TrackingMapSummaryToHUPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingMapSummaryToHUPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "HandlingunitID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "Status", kind: "message", T: TrackingStatusStruct },
    { no: 3, name: "TrackingURL", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "DispatchedDateTime", kind: "message", T: DateTime },
    { no: 9, name: "HUCarrier", kind: "message", T: TradeTier },
    { no: 10, name: "HUShipFrom", kind: "message", T: TradeTier },
    { no: 11, name: "HUShipTo", kind: "message", T: TradeTier },
    { no: 12, name: "NextTrackingID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 13, name: "Events", kind: "message", T: TrackingEvent, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingMapSummaryToHUPayload {
    return new TrackingMapSummaryToHUPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingMapSummaryToHUPayload {
    return new TrackingMapSummaryToHUPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingMapSummaryToHUPayload {
    return new TrackingMapSummaryToHUPayload().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingMapSummaryToHUPayload | PlainMessage<TrackingMapSummaryToHUPayload> | undefined, b: TrackingMapSummaryToHUPayload | PlainMessage<TrackingMapSummaryToHUPayload> | undefined): boolean {
    return proto3.util.equals(TrackingMapSummaryToHUPayload, a, b);
  }
}

/**
 * @generated from message api.TrackingMapStatusToHU
 */
export class TrackingMapStatusToHU extends Message<TrackingMapStatusToHU> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.TrackingMapSummaryToHUPayload Payload = 3;
   */
  Payload?: TrackingMapSummaryToHUPayload;

  /**
   * @generated from field: api.TrackingMapSummaryToHUPayload EventPayload = 4;
   */
  EventPayload?: TrackingMapSummaryToHUPayload;

  /**
   * @generated from field: api.TrackingMapSummaryToHUPayload PreviousPayload = 5;
   */
  PreviousPayload?: TrackingMapSummaryToHUPayload;

  constructor(data?: PartialMessage<TrackingMapStatusToHU>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingMapStatusToHU";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: TrackingMapSummaryToHUPayload },
    { no: 4, name: "EventPayload", kind: "message", T: TrackingMapSummaryToHUPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: TrackingMapSummaryToHUPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingMapStatusToHU {
    return new TrackingMapStatusToHU().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingMapStatusToHU {
    return new TrackingMapStatusToHU().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingMapStatusToHU {
    return new TrackingMapStatusToHU().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingMapStatusToHU | PlainMessage<TrackingMapStatusToHU> | undefined, b: TrackingMapStatusToHU | PlainMessage<TrackingMapStatusToHU> | undefined): boolean {
    return proto3.util.equals(TrackingMapStatusToHU, a, b);
  }
}

/**
 *
 * InitNexTracking : initiate the next tracking after a switched
 *
 * @generated from message api.TrackingInitNextTrackingPayload
 */
export class TrackingInitNextTrackingPayload extends Message<TrackingInitNextTrackingPayload> {
  /**
   * @generated from field: string HandlingunitID = 1;
   */
  HandlingunitID = "";

  /**
   * @generated from field: string NextTrackingID = 2;
   */
  NextTrackingID = "";

  /**
   * @generated from field: string NextTrackingURL = 3;
   */
  NextTrackingURL = "";

  /**
   * @generated from field: api.DateTime DispatchedDateTime = 4;
   */
  DispatchedDateTime?: DateTime;

  /**
   * @generated from field: api.TradeTier NextHUCarrier = 5;
   */
  NextHUCarrier?: TradeTier;

  /**
   * @generated from field: api.TradeTier NextHUShipFrom = 6;
   */
  NextHUShipFrom?: TradeTier;

  /**
   * @generated from field: api.TradeTier NextHUShipTo = 7;
   */
  NextHUShipTo?: TradeTier;

  constructor(data?: PartialMessage<TrackingInitNextTrackingPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingInitNextTrackingPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "HandlingunitID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "NextTrackingID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "NextTrackingURL", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "DispatchedDateTime", kind: "message", T: DateTime },
    { no: 5, name: "NextHUCarrier", kind: "message", T: TradeTier },
    { no: 6, name: "NextHUShipFrom", kind: "message", T: TradeTier },
    { no: 7, name: "NextHUShipTo", kind: "message", T: TradeTier },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingInitNextTrackingPayload {
    return new TrackingInitNextTrackingPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingInitNextTrackingPayload {
    return new TrackingInitNextTrackingPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingInitNextTrackingPayload {
    return new TrackingInitNextTrackingPayload().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingInitNextTrackingPayload | PlainMessage<TrackingInitNextTrackingPayload> | undefined, b: TrackingInitNextTrackingPayload | PlainMessage<TrackingInitNextTrackingPayload> | undefined): boolean {
    return proto3.util.equals(TrackingInitNextTrackingPayload, a, b);
  }
}

/**
 * @generated from message api.TrackingInitNext
 */
export class TrackingInitNext extends Message<TrackingInitNext> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.TrackingInitNextTrackingPayload Payload = 3;
   */
  Payload?: TrackingInitNextTrackingPayload;

  /**
   * @generated from field: api.TrackingInitNextTrackingPayload EventPayload = 4;
   */
  EventPayload?: TrackingInitNextTrackingPayload;

  /**
   * @generated from field: api.TrackingInitNextTrackingPayload PreviousPayload = 5;
   */
  PreviousPayload?: TrackingInitNextTrackingPayload;

  constructor(data?: PartialMessage<TrackingInitNext>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingInitNext";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: TrackingInitNextTrackingPayload },
    { no: 4, name: "EventPayload", kind: "message", T: TrackingInitNextTrackingPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: TrackingInitNextTrackingPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingInitNext {
    return new TrackingInitNext().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingInitNext {
    return new TrackingInitNext().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingInitNext {
    return new TrackingInitNext().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingInitNext | PlainMessage<TrackingInitNext> | undefined, b: TrackingInitNext | PlainMessage<TrackingInitNext> | undefined): boolean {
    return proto3.util.equals(TrackingInitNext, a, b);
  }
}

/**
 *
 * MapETAToHU : map the tracking ETA to the corresponding HU
 *
 * @generated from message api.TrackingMapETAToHUPayload
 */
export class TrackingMapETAToHUPayload extends Message<TrackingMapETAToHUPayload> {
  /**
   * @generated from field: string HandlingunitID = 1;
   */
  HandlingunitID = "";

  /**
   * @generated from field: api.ETA TrackingETA = 2;
   */
  TrackingETA?: ETA;

  constructor(data?: PartialMessage<TrackingMapETAToHUPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingMapETAToHUPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "HandlingunitID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "TrackingETA", kind: "message", T: ETA },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingMapETAToHUPayload {
    return new TrackingMapETAToHUPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingMapETAToHUPayload {
    return new TrackingMapETAToHUPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingMapETAToHUPayload {
    return new TrackingMapETAToHUPayload().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingMapETAToHUPayload | PlainMessage<TrackingMapETAToHUPayload> | undefined, b: TrackingMapETAToHUPayload | PlainMessage<TrackingMapETAToHUPayload> | undefined): boolean {
    return proto3.util.equals(TrackingMapETAToHUPayload, a, b);
  }
}

/**
 * @generated from message api.TrackingMapETAToHU
 */
export class TrackingMapETAToHU extends Message<TrackingMapETAToHU> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.TrackingMapETAToHUPayload Payload = 3;
   */
  Payload?: TrackingMapETAToHUPayload;

  /**
   * @generated from field: api.TrackingMapETAToHUPayload EventPayload = 4;
   */
  EventPayload?: TrackingMapETAToHUPayload;

  /**
   * @generated from field: api.TrackingMapETAToHUPayload PreviousPayload = 5;
   */
  PreviousPayload?: TrackingMapETAToHUPayload;

  constructor(data?: PartialMessage<TrackingMapETAToHU>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.TrackingMapETAToHU";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: TrackingMapETAToHUPayload },
    { no: 4, name: "EventPayload", kind: "message", T: TrackingMapETAToHUPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: TrackingMapETAToHUPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TrackingMapETAToHU {
    return new TrackingMapETAToHU().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TrackingMapETAToHU {
    return new TrackingMapETAToHU().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TrackingMapETAToHU {
    return new TrackingMapETAToHU().fromJsonString(jsonString, options);
  }

  static equals(a: TrackingMapETAToHU | PlainMessage<TrackingMapETAToHU> | undefined, b: TrackingMapETAToHU | PlainMessage<TrackingMapETAToHU> | undefined): boolean {
    return proto3.util.equals(TrackingMapETAToHU, a, b);
  }
}

