// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file actor.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 { AttachmentSummary, ClaimSummary, EntityID, EventHeader, MetadataElement } from "./shared_pb.js";
import { ActorSnapshot, ActorStatusStruct, ActorTypology, Address, CarrierService, IdType } from "./repositoryShared_pb.js";
import { PartnerPayload } from "./partner_pb.js";

/**
 *
 * Aggregation object message
 *
 * @generated from message api.Actor
 */
export class Actor extends Message<Actor> {
  /**
   * @generated from field: api.EventHeader LastEventHeader = 1;
   */
  LastEventHeader?: EventHeader;

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.Actor";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "LastEventHeader", kind: "message", T: EventHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: ActorPayload },
  ]);

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

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

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

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

/**
 * @generated from message api.ActorPayload
 */
export class ActorPayload extends Message<ActorPayload> {
  /**
   * Actor Name
   *
   * @generated from field: string Name = 1;
   */
  Name = "";

  /**
   * @generated from field: api.IdType IdType = 2;
   */
  IdType = IdType.IDTYPE_UNKNOWN;

  /**
   * @generated from field: repeated api.MetadataElement MetaData = 3;
   */
  MetaData: MetadataElement[] = [];

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

  /**
   * Status field is not accessible from APIs
   *
   * @generated from field: api.ActorStatusStruct Status = 6;
   */
  Status?: ActorStatusStruct;

  /**
   * Existing PartnerID
   *
   * @generated from field: string PartnerID = 7;
   */
  PartnerID = "";

  /**
   * @generated from field: string AdditionalInformation = 15;
   */
  AdditionalInformation = "";

  /**
   * @generated from field: api.ActorTypology Typology = 10;
   */
  Typology = ActorTypology.TYPOLOGY_UNKNOWN;

  /**
   * @generated from field: api.ActorSnapshot Snapshot = 11;
   */
  Snapshot?: ActorSnapshot;

  /**
   * Must be a valid email address
   *
   * @generated from field: repeated string Emails = 12;
   */
  Emails: string[] = [];

  /**
   * @generated from field: repeated string Phones = 13;
   */
  Phones: string[] = [];

  /**
   * Can manage stock
   *
   * @generated from field: bool ManagedStock = 14;
   */
  ManagedStock = false;

  /**
   * Can be used as carrier
   *
   * @generated from field: bool IsCarrier = 16;
   */
  IsCarrier = false;

  /**
   * List of carrier services
   *
   * @generated from field: repeated api.CarrierService CarrierServices = 17;
   */
  CarrierServices: CarrierService[] = [];

  /**
   * @generated from field: bool IsShipToConnected = 18;
   */
  IsShipToConnected = false;

  /**
   * @generated from field: bool IsShipFromConnected = 19;
   */
  IsShipFromConnected = false;

  /**
   * Must be existing partner ID
   *
   * @generated from field: string ShipToPartnerAppID = 20;
   */
  ShipToPartnerAppID = "";

  /**
   * Must be existing partner ID
   *
   * @generated from field: string ShipFromPartnerAppID = 21;
   */
  ShipFromPartnerAppID = "";

  /**
   * @generated from field: repeated api.AttachmentSummary Attachments = 22;
   */
  Attachments: AttachmentSummary[] = [];

  /**
   * @generated from field: int32 AttachmentNumber = 23;
   */
  AttachmentNumber = 0;

  /**
   * @generated from field: repeated api.ClaimSummary Claims = 24;
   */
  Claims: ClaimSummary[] = [];

  /**
   * @generated from field: int32 ClaimNumber = 25;
   */
  ClaimNumber = 0;

  /**
   * @generated from field: string PhotoURI = 26;
   */
  PhotoURI = "";

  /**
   * Prefix used to create executionflow identifiers
   *
   * @generated from field: repeated string ConnectionIdentifierPrefixes = 28;
   */
  ConnectionIdentifierPrefixes: string[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ActorPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "IdType", kind: "enum", T: proto3.getEnumType(IdType) },
    { no: 3, name: "MetaData", kind: "message", T: MetadataElement, repeated: true },
    { no: 4, name: "Address", kind: "message", T: Address },
    { no: 6, name: "Status", kind: "message", T: ActorStatusStruct },
    { no: 7, name: "PartnerID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 15, name: "AdditionalInformation", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 10, name: "Typology", kind: "enum", T: proto3.getEnumType(ActorTypology) },
    { no: 11, name: "Snapshot", kind: "message", T: ActorSnapshot },
    { no: 12, name: "Emails", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 13, name: "Phones", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 14, name: "ManagedStock", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 16, name: "IsCarrier", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 17, name: "CarrierServices", kind: "message", T: CarrierService, repeated: true },
    { no: 18, name: "IsShipToConnected", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 19, name: "IsShipFromConnected", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 20, name: "ShipToPartnerAppID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 21, name: "ShipFromPartnerAppID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 22, name: "Attachments", kind: "message", T: AttachmentSummary, repeated: true },
    { no: 23, name: "AttachmentNumber", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
    { no: 24, name: "Claims", kind: "message", T: ClaimSummary, repeated: true },
    { no: 25, name: "ClaimNumber", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
    { no: 26, name: "PhotoURI", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 28, name: "ConnectionIdentifierPrefixes", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

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

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

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

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

/**
 * Actor Enrichment : Obsolete
 *
 * @generated from message api.ActorEnrichment
 */
export class ActorEnrichment extends Message<ActorEnrichment> {
  /**
   * @generated from field: string ParentEventID = 1;
   */
  ParentEventID = "";

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

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

  /**
   * @generated from field: string RefFilter = 4;
   */
  RefFilter = "";

  /**
   * @generated from field: string MergePath = 5;
   */
  MergePath = "";

  /**
   * @generated from oneof api.ActorEnrichment.Content
   */
  Content: {
    /**
     * @generated from field: api.PartnerPayload Partner = 10;
     */
    value: PartnerPayload;
    case: "Partner";
  } | { case: undefined; value?: undefined } = { case: undefined };

  /**
   * @generated from field: string Project = 6;
   */
  Project = "";

  /**
   * @generated from field: string ParentEntityName = 7;
   */
  ParentEntityName = "";

  /**
   * @generated from field: string ParentEntityID = 8;
   */
  ParentEntityID = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ActorEnrichment";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ParentEventID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "EntityName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "RefFilter", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "MergePath", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 10, name: "Partner", kind: "message", T: PartnerPayload, oneof: "Content" },
    { no: 6, name: "Project", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 7, name: "ParentEntityName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 8, name: "ParentEntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.ActorTriplet
 */
export class ActorTriplet extends Message<ActorTriplet> {
  /**
   * @generated from field: api.Actor Current = 1;
   */
  Current?: Actor;

  /**
   * @generated from field: api.Actor Previous = 2;
   */
  Previous?: Actor;

  /**
   * @generated from field: api.Actor LastEvent = 3;
   */
  LastEvent?: Actor;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ActorTriplet";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Current", kind: "message", T: Actor },
    { no: 2, name: "Previous", kind: "message", T: Actor },
    { no: 3, name: "LastEvent", kind: "message", T: Actor },
  ]);

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

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

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

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

