// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "repositoryShared.proto" (package "api", syntax proto3)
// tslint:disable
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import { WireType } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { reflectionMergePartial } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { QuantityWeight } from "./shared";
import { QuantityLength } from "./shared";
import { QuantityArea } from "./shared";
import { QuantityVolume } from "./shared";
import { MetadataElement } from "./shared";
import { DateTime } from "./shared";
// 
// 	Actor entity status structure

/**
 * @generated from protobuf message api.ActorStatus
 */
export interface ActorStatus {
    /**
     * @generated from protobuf field: api.ActorStatusCode StatusCode = 1 [json_name = "StatusCode"];
     */
    statusCode: ActorStatusCode;
    /**
     * @generated from protobuf field: string Date = 2 [json_name = "Date"];
     */
    date: string;
    /**
     * Status effective date. Set by the event's RefDate that triggered the status change.
     *
     * @generated from protobuf field: api.DateTime ActualDate = 3 [json_name = "ActualDate"];
     */
    actualDate?: DateTime;
}
// 
// 	ActorStatusStruct statuses structure

/**
 * @generated from protobuf message api.ActorStatusStruct
 */
export interface ActorStatusStruct {
    /**
     * @generated from protobuf field: api.ActorStatus Current = 1 [json_name = "Current"];
     */
    current?: ActorStatus; // Current status of the Actor entity
    /**
     * @generated from protobuf field: repeated api.ActorStatus History = 2 [json_name = "History"];
     */
    history: ActorStatus[]; // List of all status history of the Actor entity
    /**
     * @generated from protobuf field: string CreationDate = 3 [json_name = "CreationDate"];
     */
    creationDate: string;
    /**
     * @generated from protobuf field: uint32 Version = 4 [json_name = "Version"];
     */
    version: number;
}
// 
// 	Partner entity status structure

/**
 * @generated from protobuf message api.PartnerStatus
 */
export interface PartnerStatus {
    /**
     * @generated from protobuf field: api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"];
     */
    statusCode: PartnerStatusCode;
    /**
     * @generated from protobuf field: string Date = 2 [json_name = "Date"];
     */
    date: string;
    /**
     * Status effective date. Set by the event's RefDate that triggered the status change.
     *
     * @generated from protobuf field: api.DateTime ActualDate = 3 [json_name = "ActualDate"];
     */
    actualDate?: DateTime;
}
// 
// 	PartnerStatusStruct statuses structure

/**
 * @generated from protobuf message api.PartnerStatusStruct
 */
export interface PartnerStatusStruct {
    /**
     * @generated from protobuf field: api.PartnerStatus Current = 1 [json_name = "Current"];
     */
    current?: PartnerStatus; // Current status of the Partner entity
    /**
     * @generated from protobuf field: repeated api.PartnerStatus History = 2 [json_name = "History"];
     */
    history: PartnerStatus[]; // List of all status history of the Partner entity
    /**
     * @generated from protobuf field: string CreationDate = 3 [json_name = "CreationDate"];
     */
    creationDate: string;
}
/**
 *
 * 	Error entity status structure
 *
 * @generated from protobuf message api.ErrorStatus
 */
export interface ErrorStatus {
    /**
     * @generated from protobuf field: api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"];
     */
    statusCode: PartnerStatusCode;
    /**
     * @generated from protobuf field: string Date = 2 [json_name = "Date"];
     */
    date: string;
}
/**
 *
 * 	ErrorStatusStruct statuses structure
 *
 * @generated from protobuf message api.ErrorStatusStruct
 */
export interface ErrorStatusStruct {
    /**
     * @generated from protobuf field: api.ErrorStatus Current = 1 [json_name = "Current"];
     */
    current?: ErrorStatus; // Current status of the Error entity
    /**
     * @generated from protobuf field: repeated api.ErrorStatus History = 2 [json_name = "History"];
     */
    history: ErrorStatus[]; // List of all status history of the Error entity
    /**
     * @generated from protobuf field: string CreationDate = 3 [json_name = "CreationDate"];
     */
    creationDate: string;
}
/**
 *
 * 	Item entity status structure
 *
 * @generated from protobuf message api.ItemStatus
 */
export interface ItemStatus {
    /**
     * @generated from protobuf field: api.ItemStatusCode StatusCode = 1 [json_name = "StatusCode"];
     */
    statusCode: ItemStatusCode;
    /**
     * @generated from protobuf field: string Date = 2 [json_name = "Date"];
     */
    date: string;
    /**
     * Status effective date. Set by the event's RefDate that triggered the status change.
     *
     * @generated from protobuf field: api.DateTime ActualDate = 3 [json_name = "ActualDate"];
     */
    actualDate?: DateTime;
}
/**
 * @generated from protobuf message api.ItemStatusStruct
 */
export interface ItemStatusStruct {
    /**
     * @generated from protobuf field: api.ItemStatus Current = 1 [json_name = "Current"];
     */
    current?: ItemStatus; // Current status of the Item entity
    /**
     * List of all status history of the Item entity
     *
     * @generated from protobuf field: repeated api.ItemStatus History = 2 [json_name = "History"];
     */
    history: ItemStatus[];
    /**
     * @generated from protobuf field: string CreationDate = 3 [json_name = "CreationDate"];
     */
    creationDate: string;
    /**
     * @generated from protobuf field: uint32 Version = 4 [json_name = "Version"];
     */
    version: number;
}
/**
 *
 * 	Family entity status structure
 *
 * @generated from protobuf message api.FamilyStatus
 */
export interface FamilyStatus {
    /**
     * @generated from protobuf field: api.FamilyStatusCode StatusCode = 1 [json_name = "StatusCode"];
     */
    statusCode: FamilyStatusCode;
    /**
     * @generated from protobuf field: string Date = 2 [json_name = "Date"];
     */
    date: string;
    /**
     * Status effective date. Set by the event's RefDate that triggered the status change.
     *
     * @generated from protobuf field: api.DateTime ActualDate = 3 [json_name = "ActualDate"];
     */
    actualDate?: DateTime;
}
/**
 *
 * 	FamilyStatusStruct statuses structure
 *
 * @generated from protobuf message api.FamilyStatusStruct
 */
export interface FamilyStatusStruct {
    /**
     * @generated from protobuf field: api.FamilyStatus Current = 1 [json_name = "Current"];
     */
    current?: FamilyStatus; // Current status of the Family entity
    /**
     * @generated from protobuf field: repeated api.FamilyStatus History = 2 [json_name = "History"];
     */
    history: FamilyStatus[]; // List of all status history of the Family entity
    /**
     * @generated from protobuf field: string CreationDate = 3 [json_name = "CreationDate"];
     */
    creationDate: string;
}
/**
 *
 * item components
 *
 * @generated from protobuf message api.ExpiryConstraint
 */
export interface ExpiryConstraint {
    /**
     * @generated from protobuf field: bool WillExpire = 1 [json_name = "WillExpire"];
     */
    willExpire: boolean;
    /**
     * @generated from protobuf field: api.ExpiryConstraintType Type = 2 [json_name = "Type"];
     */
    type: ExpiryConstraintType; // >>> Enum des codes ISO
}
/**
 * @generated from protobuf message api.TradeItemDescriptions
 */
export interface TradeItemDescriptions {
    /**
     * @generated from protobuf field: string ShortDescription = 1 [json_name = "ShortDescription"];
     */
    shortDescription: string;
    /**
     * @generated from protobuf field: string LongDescription = 2 [json_name = "LongDescription"];
     */
    longDescription: string;
    /**
     * @generated from protobuf field: string TechnicalDetails = 3 [json_name = "TechnicalDetails"];
     */
    technicalDetails: string;
    /**
     * @generated from protobuf field: string LanguageCodeISO6391 = 4 [json_name = "LanguageCodeISO6391"];
     */
    languageCodeISO6391: string;
}
/**
 * @generated from protobuf message api.LogisticVariant
 */
export interface LogisticVariant {
    /**
     * Logistical variant ID
     *
     * @generated from protobuf field: string LVID = 13 [json_name = "LVID"];
     */
    lVID: string;
    /**
     * @generated from protobuf field: string Name = 15 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: repeated api.OtherID Codes = 2 [json_name = "Codes"];
     */
    codes: OtherID[];
    // string EAN = 1;

    /**
     * Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)
     *
     * @generated from protobuf field: repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"];
     */
    metaData: MetadataElement[];
    /**
     * @generated from protobuf field: bool IsBaseLogisticVariant = 4 [json_name = "IsBaseLogisticVariant"];
     */
    isBaseLogisticVariant: boolean;
    /**
     * ID of the LV in which the quantity is given
     *
     * @generated from protobuf field: string RefLV = 5 [json_name = "RefLV"];
     */
    refLV: string;
    /**
     * Name of the LV in which the quantity is given
     *
     * @generated from protobuf field: string RefLVName = 19 [json_name = "RefLVName"];
     */
    refLVName: string;
    /**
     * @generated from protobuf field: float QuantityInRefLV = 6 [json_name = "QuantityInRefLV"];
     */
    quantityInRefLV: number;
    // QuantityWeight Weight = 7;

    /**
     * @generated from protobuf field: api.QuantityVolume Volume = 8 [json_name = "Volume"];
     */
    volume?: QuantityVolume;
    /**
     * @generated from protobuf field: api.QuantityArea Area = 9 [json_name = "Area"];
     */
    area?: QuantityArea;
    /**
     * @generated from protobuf field: api.QuantityLength Height = 10 [json_name = "Height"];
     */
    height?: QuantityLength;
    /**
     * @generated from protobuf field: api.QuantityLength Width = 11 [json_name = "Width"];
     */
    width?: QuantityLength;
    /**
     * @generated from protobuf field: api.QuantityLength Length = 12 [json_name = "Length"];
     */
    length?: QuantityLength;
    /**
     * @generated from protobuf field: float QuantityInBaseLV = 14 [json_name = "QuantityInBaseLV"];
     */
    quantityInBaseLV: number; // This field will be computed at aggregation, not exposed through APIs
    /**
     * @generated from protobuf field: api.QuantityWeight NetWeight = 16 [json_name = "NetWeight"];
     */
    netWeight?: QuantityWeight;
    /**
     * @generated from protobuf field: api.QuantityWeight GrossWeight = 17 [json_name = "GrossWeight"];
     */
    grossWeight?: QuantityWeight;
    /**
     * @generated from protobuf field: repeated string BranchIDs = 18 [json_name = "BranchIDs"];
     */
    branchIDs: string[];
}
/**
 * @generated from protobuf message api.OtherID
 */
export interface OtherID {
    /**
     * @generated from protobuf field: string Key = 1 [json_name = "Key"];
     */
    key: string;
    /**
     * @generated from protobuf field: string Value = 2 [json_name = "Value"];
     */
    value: string;
}
/**
 * @generated from protobuf message api.ErrorTags
 */
export interface ErrorTags {
    /**
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: string Value = 2 [json_name = "Value"];
     */
    value: string;
}
/**
 *
 * Family components
 *
 * @generated from protobuf message api.FamilyNode
 */
export interface FamilyNode {
    // describe a node and the link to the parent node. The list of node in the same family builds the family tree

    /**
     * @generated from protobuf field: string NodeID = 1 [json_name = "NodeID"];
     */
    nodeID: string;
    /**
     * @generated from protobuf field: string Label = 2 [json_name = "Label"];
     */
    label: string;
    /**
     * @generated from protobuf field: string ParentNodeID = 3 [json_name = "ParentNodeID"];
     */
    parentNodeID: string;
    // non mandatory attributes below

    /**
     * @generated from protobuf field: string FamilyRefID = 6 [json_name = "FamilyRefID"];
     */
    familyRefID: string;
    /**
     * @generated from protobuf field: int32 Level = 4 [json_name = "Level"];
     */
    level: number;
    /**
     * @generated from protobuf field: string StringPath = 5 [json_name = "StringPath"];
     */
    stringPath: string;
}
// 
// Definition of an address

/**
 * @generated from protobuf message api.Address
 */
export interface Address {
    /**
     * @generated from protobuf field: string City = 1 [json_name = "City"];
     */
    city: string;
    /**
     * Country Code in <a href='https://en.wikipedia.org/wiki/ISO_3166-1'>ISO_3166-1</a> format
     *
     * @generated from protobuf field: string CountryCode = 2 [json_name = "CountryCode"];
     */
    countryCode: string;
    /**
     * @generated from protobuf field: api.GeographicalCoordinates GeographicalCoordinates = 3 [json_name = "GeographicalCoordinates"];
     */
    geographicalCoordinates?: GeographicalCoordinates;
    /**
     * @generated from protobuf field: string Name = 4 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: string POBoxNumber = 5 [json_name = "POBoxNumber"];
     */
    pOBoxNumber: string;
    /**
     * @generated from protobuf field: string PostalCode = 6 [json_name = "PostalCode"];
     */
    postalCode: string;
    /**
     * @generated from protobuf field: string ProvinceCode = 7 [json_name = "ProvinceCode"];
     */
    provinceCode: string;
    /**
     * @generated from protobuf field: string State = 8 [json_name = "State"];
     */
    state: string;
    /**
     * @generated from protobuf field: string StreetAddressOne = 9 [json_name = "StreetAddressOne"];
     */
    streetAddressOne: string;
    /**
     * @generated from protobuf field: string StreetAddressTwo = 10 [json_name = "StreetAddressTwo"];
     */
    streetAddressTwo: string;
    /**
     * @generated from protobuf field: string StreetAddressThree = 11 [json_name = "StreetAddressThree"];
     */
    streetAddressThree: string;
    /**
     * @generated from protobuf field: string PlusCode = 12 [json_name = "PlusCode"];
     */
    plusCode: string;
}
/**
 *
 * ActorContact definition
 *
 * @generated from protobuf message api.ActorContact
 */
export interface ActorContact {
    /**
     * 	for examples (GS1) : http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:ContactTypeCode
     *
     * @generated from protobuf field: string ContactTypeCode = 1 [json_name = "ContactTypeCode"];
     */
    contactTypeCode: string;
    /**
     * @generated from protobuf field: string FirstName = 2 [json_name = "FirstName"];
     */
    firstName: string;
    /**
     * @generated from protobuf field: string LastName = 3 [json_name = "LastName"];
     */
    lastName: string;
    /**
     * @generated from protobuf field: string JobTitle = 4 [json_name = "JobTitle"];
     */
    jobTitle: string;
    /**
     * @generated from protobuf field: string DepartmentName = 5 [json_name = "DepartmentName"];
     */
    departmentName: string;
    /**
     * Define how to aggregate these Responsibilities or move to Map
     *
     * @generated from protobuf field: repeated string Responsibilities = 6 [json_name = "Responsibilities"];
     */
    responsibilities: string[];
    /**
     * @generated from protobuf field: string EmailAddress = 7 [json_name = "EmailAddress"];
     */
    emailAddress: string;
    /**
     * @generated from protobuf field: string FaxNumber = 8 [json_name = "FaxNumber"];
     */
    faxNumber: string;
    /**
     * @generated from protobuf field: string TelephoneNumber = 9 [json_name = "TelephoneNumber"];
     */
    telephoneNumber: string;
}
/**
 * @generated from protobuf message api.Interlocutor
 */
export interface Interlocutor {
    /**
     * @generated from protobuf field: string FirstName = 1 [json_name = "FirstName"];
     */
    firstName: string;
    /**
     * @generated from protobuf field: string LastName = 2 [json_name = "LastName"];
     */
    lastName: string;
    /**
     * Must be a valid email address
     *
     * @generated from protobuf field: repeated string Emails = 3 [json_name = "Emails"];
     */
    emails: string[];
    /**
     * @generated from protobuf field: repeated string Phones = 4 [json_name = "Phones"];
     */
    phones: string[];
}
// 
// Geographical coordinates information

/**
 * @generated from protobuf message api.GeographicalCoordinates
 */
export interface GeographicalCoordinates {
    /**
     * @generated from protobuf field: string Latitude = 1 [json_name = "Latitude"];
     */
    latitude: string;
    /**
     * @generated from protobuf field: string Longitude = 2 [json_name = "Longitude"];
     */
    longitude: string;
}
/**
 * @generated from protobuf message api.ActorSnapshot
 */
export interface ActorSnapshot {
    /**
     * Must be unique ID
     *
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    // 	DateTime StartDateTime = 2 
    //    [
    //        (validate.rules).message.required = true
    //    ];

    /**
     * @generated from protobuf field: api.DateTime EndDateTime = 3 [json_name = "EndDateTime"];
     */
    endDateTime?: DateTime;
    /**
     * @generated from protobuf field: int32 MessageNb = 4 [json_name = "MessageNb"];
     */
    messageNb: number;
}
/**
 * @generated from protobuf message api.CarrierService
 */
export interface CarrierService {
    /**
     * Unique ID
     *
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string Label = 2 [json_name = "Label"];
     */
    label: string;
}
/**
 * @generated from protobuf message api.LVDetailedQuantity
 */
export interface LVDetailedQuantity {
    /**
     * @generated from protobuf field: string LVID = 1 [json_name = "LVID"];
     */
    lVID: string;
    /**
     * @generated from protobuf field: string LVName = 2 [json_name = "LVName"];
     */
    lVName: string;
    /**
     * @generated from protobuf field: float Quantity = 3 [json_name = "Quantity"];
     */
    quantity: number;
}
// 
// This files contains domain objects

/**
 *
 * 	All statuses for Actor entity
 *
 * @generated from protobuf enum api.ActorStatusCode
 */
export enum ActorStatusCode {
    /**
     * @generated from protobuf enum value: SITE_0000_UNKNOWN = 0;
     */
    SITE_0000_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: SITE_1000_ACTIVE = 1000;
     */
    SITE_1000_ACTIVE = 1000,
    /**
     * @generated from protobuf enum value: SITE_9000_CANCELLED = 9000;
     */
    SITE_9000_CANCELLED = 9000
}
/**
 *
 * 	All statuses for Partner entity
 *
 * @generated from protobuf enum api.PartnerStatusCode
 */
export enum PartnerStatusCode {
    /**
     * @generated from protobuf enum value: PARTNER_0000_UNKNOWN = 0;
     */
    PARTNER_0000_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: PARTNER_1000_ACTIVE = 1000;
     */
    PARTNER_1000_ACTIVE = 1000,
    /**
     * @generated from protobuf enum value: PARTNER_9000_CANCELLED = 9000;
     */
    PARTNER_9000_CANCELLED = 9000
}
/**
 *
 * 	All statuses for Error entity
 *
 * @generated from protobuf enum api.PartnerErrorCode
 */
export enum PartnerErrorCode {
    /**
     * @generated from protobuf enum value: ERROR_0000_UNKNOWN = 0;
     */
    ERROR_0000_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: ERROR_1000_ACTIVE = 1000;
     */
    ERROR_1000_ACTIVE = 1000,
    /**
     * @generated from protobuf enum value: ERROR_9000_CANCELLED = 9000;
     */
    ERROR_9000_CANCELLED = 9000
}
/**
 *
 * 	All statuses for Item entity
 *
 * @generated from protobuf enum api.ItemStatusCode
 */
export enum ItemStatusCode {
    /**
     * @generated from protobuf enum value: ITEM_0000_UNKNOWN = 0;
     */
    ITEM_0000_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: ITEM_1000_ACTIVE = 1000;
     */
    ITEM_1000_ACTIVE = 1000,
    /**
     * @generated from protobuf enum value: ITEM_9000_CANCELLED = 9000;
     */
    ITEM_9000_CANCELLED = 9000
}
/**
 *
 * 	All statuses for Family entity
 *
 * @generated from protobuf enum api.FamilyStatusCode
 */
export enum FamilyStatusCode {
    /**
     * @generated from protobuf enum value: FAMILY_0000_UNKNOWN = 0;
     */
    FAMILY_0000_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: FAMILY_1000_ACTIVE = 1000;
     */
    FAMILY_1000_ACTIVE = 1000,
    /**
     * @generated from protobuf enum value: FAMILY_9000_CANCELLED = 9000;
     */
    FAMILY_9000_CANCELLED = 9000
}
/**
 * @generated from protobuf enum api.IdType
 */
export enum IdType {
    /**
     * @generated from protobuf enum value: IDTYPE_UNKNOWN = 0;
     */
    IDTYPE_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: IDTYPE_GLN = 1;
     */
    IDTYPE_GLN = 1
}
// 
// http://www.edicora.com/docs/DESADV.pdf page 55
// http://www.stylusstudio.com/edifact/D04B/2005.htm

/**
 * @generated from protobuf enum api.ExpiryConstraintType
 */
export enum ExpiryConstraintType {
    /**
     * @generated from protobuf enum value: UNKNOWN_DATE = 0;
     */
    UNKNOWN_DATE = 0,
    /**
     * EDIFACT code 36, will expire = true
     *
     * @generated from protobuf enum value: USE_BY_DATE = 1;
     */
    USE_BY_DATE = 1,
    /**
     * EDIFACT code 361, will expire = true
     *
     * @generated from protobuf enum value: BEST_BEFORE_DATE = 2;
     */
    BEST_BEFORE_DATE = 2,
    /**
     * EDIFACT code 94, will expire = false
     *
     * @generated from protobuf enum value: PRODUCTION_DATE = 3;
     */
    PRODUCTION_DATE = 3,
    /**
     * EDIFACT code 360, will expire = true
     *
     * @generated from protobuf enum value: SELL_BY_DATE = 4;
     */
    SELL_BY_DATE = 4
}
/**
 * @generated from protobuf enum api.ActorTypology
 */
export enum ActorTypology {
    /**
     * @generated from protobuf enum value: TYPOLOGY_UNKNOWN = 0;
     */
    TYPOLOGY_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: TYPOLOGY_WAREHOUSE = 1;
     */
    TYPOLOGY_WAREHOUSE = 1,
    /**
     * @generated from protobuf enum value: TYPOLOGY_STORE = 2;
     */
    TYPOLOGY_STORE = 2,
    /**
     * @generated from protobuf enum value: TYPOLOGY_FACTORY = 3;
     */
    TYPOLOGY_FACTORY = 3,
    /**
     * @generated from protobuf enum value: TYPOLOGY_COLLECTION_POINT = 4;
     */
    TYPOLOGY_COLLECTION_POINT = 4,
    /**
     * @generated from protobuf enum value: TYPOLOGY_OTHER = 5;
     */
    TYPOLOGY_OTHER = 5,
    /**
     * @generated from protobuf enum value: TYPOLOGY_OFFICE = 6;
     */
    TYPOLOGY_OFFICE = 6,
    /**
     * @generated from protobuf enum value: TYPOLOGY_INDIVIDUAL = 7;
     */
    TYPOLOGY_INDIVIDUAL = 7,
    /**
     * @generated from protobuf enum value: TYPOLOGY_CARRIER = 8;
     */
    TYPOLOGY_CARRIER = 8
}
// @generated message type with reflection information, may provide speed optimized methods
class ActorStatus$Type extends MessageType<ActorStatus> {
    constructor() {
        super("api.ActorStatus", [
            { no: 1, name: "StatusCode", kind: "enum", jsonName: "StatusCode", T: () => ["api.ActorStatusCode", ActorStatusCode], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,LowCardinality(String))" }] } } },
            { no: 2, name: "Date", kind: "scalar", jsonName: "Date", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,DateTime)" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } },
            { no: 3, name: "ActualDate", kind: "message", jsonName: "ActualDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Status effective date. Set by the event's RefDate that triggered the status change." } } }
        ]);
    }
    create(value?: PartialMessage<ActorStatus>): ActorStatus {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.statusCode = 0;
        message.date = "";
        if (value !== undefined)
            reflectionMergePartial<ActorStatus>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorStatus): ActorStatus {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ActorStatusCode StatusCode = 1 [json_name = "StatusCode"];*/ 1:
                    message.statusCode = reader.int32();
                    break;
                case /* string Date = 2 [json_name = "Date"];*/ 2:
                    message.date = reader.string();
                    break;
                case /* api.DateTime ActualDate = 3 [json_name = "ActualDate"];*/ 3:
                    message.actualDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.actualDate);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ActorStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ActorStatusCode StatusCode = 1 [json_name = "StatusCode"]; */
        if (message.statusCode !== 0)
            writer.tag(1, WireType.Varint).int32(message.statusCode);
        /* string Date = 2 [json_name = "Date"]; */
        if (message.date !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.date);
        /* api.DateTime ActualDate = 3 [json_name = "ActualDate"]; */
        if (message.actualDate)
            DateTime.internalBinaryWrite(message.actualDate, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ActorStatus
 */
export const ActorStatus = new ActorStatus$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorStatusStruct$Type extends MessageType<ActorStatusStruct> {
    constructor() {
        super("api.ActorStatusStruct", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => ActorStatus, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Order", Group: "order" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 2, name: "History", kind: "message", jsonName: "History", repeat: 1 /*RepeatType.PACKED*/, T: () => ActorStatus, options: { "api.aggKey": "Date", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 3, name: "CreationDate", kind: "scalar", jsonName: "CreationDate", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } } } },
            { no: 4, name: "Version", kind: "scalar", jsonName: "Version", T: 13 /*ScalarType.UINT32*/ }
        ]);
    }
    create(value?: PartialMessage<ActorStatusStruct>): ActorStatusStruct {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.history = [];
        message.creationDate = "";
        message.version = 0;
        if (value !== undefined)
            reflectionMergePartial<ActorStatusStruct>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorStatusStruct): ActorStatusStruct {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ActorStatus Current = 1 [json_name = "Current"];*/ 1:
                    message.current = ActorStatus.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* repeated api.ActorStatus History = 2 [json_name = "History"];*/ 2:
                    message.history.push(ActorStatus.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CreationDate = 3 [json_name = "CreationDate"];*/ 3:
                    message.creationDate = reader.string();
                    break;
                case /* uint32 Version = 4 [json_name = "Version"];*/ 4:
                    message.version = reader.uint32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ActorStatusStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ActorStatus Current = 1 [json_name = "Current"]; */
        if (message.current)
            ActorStatus.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ActorStatus History = 2 [json_name = "History"]; */
        for (let i = 0; i < message.history.length; i++)
            ActorStatus.internalBinaryWrite(message.history[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string CreationDate = 3 [json_name = "CreationDate"]; */
        if (message.creationDate !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.creationDate);
        /* uint32 Version = 4 [json_name = "Version"]; */
        if (message.version !== 0)
            writer.tag(4, WireType.Varint).uint32(message.version);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ActorStatusStruct
 */
export const ActorStatusStruct = new ActorStatusStruct$Type();
// @generated message type with reflection information, may provide speed optimized methods
class PartnerStatus$Type extends MessageType<PartnerStatus> {
    constructor() {
        super("api.PartnerStatus", [
            { no: 1, name: "StatusCode", kind: "enum", jsonName: "StatusCode", T: () => ["api.PartnerStatusCode", PartnerStatusCode], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] } } },
            { no: 2, name: "Date", kind: "scalar", jsonName: "Date", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } },
            { no: 3, name: "ActualDate", kind: "message", jsonName: "ActualDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Status effective date. Set by the event's RefDate that triggered the status change." } } }
        ]);
    }
    create(value?: PartialMessage<PartnerStatus>): PartnerStatus {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.statusCode = 0;
        message.date = "";
        if (value !== undefined)
            reflectionMergePartial<PartnerStatus>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PartnerStatus): PartnerStatus {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"];*/ 1:
                    message.statusCode = reader.int32();
                    break;
                case /* string Date = 2 [json_name = "Date"];*/ 2:
                    message.date = reader.string();
                    break;
                case /* api.DateTime ActualDate = 3 [json_name = "ActualDate"];*/ 3:
                    message.actualDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.actualDate);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: PartnerStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"]; */
        if (message.statusCode !== 0)
            writer.tag(1, WireType.Varint).int32(message.statusCode);
        /* string Date = 2 [json_name = "Date"]; */
        if (message.date !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.date);
        /* api.DateTime ActualDate = 3 [json_name = "ActualDate"]; */
        if (message.actualDate)
            DateTime.internalBinaryWrite(message.actualDate, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.PartnerStatus
 */
export const PartnerStatus = new PartnerStatus$Type();
// @generated message type with reflection information, may provide speed optimized methods
class PartnerStatusStruct$Type extends MessageType<PartnerStatusStruct> {
    constructor() {
        super("api.PartnerStatusStruct", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => PartnerStatus, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 2, name: "History", kind: "message", jsonName: "History", repeat: 1 /*RepeatType.PACKED*/, T: () => PartnerStatus, options: { "api.aggKey": "Date", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 3, name: "CreationDate", kind: "scalar", jsonName: "CreationDate", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } } } }
        ]);
    }
    create(value?: PartialMessage<PartnerStatusStruct>): PartnerStatusStruct {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.history = [];
        message.creationDate = "";
        if (value !== undefined)
            reflectionMergePartial<PartnerStatusStruct>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PartnerStatusStruct): PartnerStatusStruct {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.PartnerStatus Current = 1 [json_name = "Current"];*/ 1:
                    message.current = PartnerStatus.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* repeated api.PartnerStatus History = 2 [json_name = "History"];*/ 2:
                    message.history.push(PartnerStatus.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CreationDate = 3 [json_name = "CreationDate"];*/ 3:
                    message.creationDate = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: PartnerStatusStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.PartnerStatus Current = 1 [json_name = "Current"]; */
        if (message.current)
            PartnerStatus.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.PartnerStatus History = 2 [json_name = "History"]; */
        for (let i = 0; i < message.history.length; i++)
            PartnerStatus.internalBinaryWrite(message.history[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string CreationDate = 3 [json_name = "CreationDate"]; */
        if (message.creationDate !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.creationDate);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.PartnerStatusStruct
 */
export const PartnerStatusStruct = new PartnerStatusStruct$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ErrorStatus$Type extends MessageType<ErrorStatus> {
    constructor() {
        super("api.ErrorStatus", [
            { no: 1, name: "StatusCode", kind: "enum", jsonName: "StatusCode", T: () => ["api.PartnerStatusCode", PartnerStatusCode], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] } } },
            { no: 2, name: "Date", kind: "scalar", jsonName: "Date", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } }
        ]);
    }
    create(value?: PartialMessage<ErrorStatus>): ErrorStatus {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.statusCode = 0;
        message.date = "";
        if (value !== undefined)
            reflectionMergePartial<ErrorStatus>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ErrorStatus): ErrorStatus {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"];*/ 1:
                    message.statusCode = reader.int32();
                    break;
                case /* string Date = 2 [json_name = "Date"];*/ 2:
                    message.date = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ErrorStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.PartnerStatusCode StatusCode = 1 [json_name = "StatusCode"]; */
        if (message.statusCode !== 0)
            writer.tag(1, WireType.Varint).int32(message.statusCode);
        /* string Date = 2 [json_name = "Date"]; */
        if (message.date !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.date);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ErrorStatus
 */
export const ErrorStatus = new ErrorStatus$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ErrorStatusStruct$Type extends MessageType<ErrorStatusStruct> {
    constructor() {
        super("api.ErrorStatusStruct", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => ErrorStatus },
            { no: 2, name: "History", kind: "message", jsonName: "History", repeat: 1 /*RepeatType.PACKED*/, T: () => ErrorStatus, options: { "api.aggKey": "Date", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 3, name: "CreationDate", kind: "scalar", jsonName: "CreationDate", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } } } }
        ]);
    }
    create(value?: PartialMessage<ErrorStatusStruct>): ErrorStatusStruct {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.history = [];
        message.creationDate = "";
        if (value !== undefined)
            reflectionMergePartial<ErrorStatusStruct>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ErrorStatusStruct): ErrorStatusStruct {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ErrorStatus Current = 1 [json_name = "Current"];*/ 1:
                    message.current = ErrorStatus.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* repeated api.ErrorStatus History = 2 [json_name = "History"];*/ 2:
                    message.history.push(ErrorStatus.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CreationDate = 3 [json_name = "CreationDate"];*/ 3:
                    message.creationDate = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ErrorStatusStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ErrorStatus Current = 1 [json_name = "Current"]; */
        if (message.current)
            ErrorStatus.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ErrorStatus History = 2 [json_name = "History"]; */
        for (let i = 0; i < message.history.length; i++)
            ErrorStatus.internalBinaryWrite(message.history[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string CreationDate = 3 [json_name = "CreationDate"]; */
        if (message.creationDate !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.creationDate);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ErrorStatusStruct
 */
export const ErrorStatusStruct = new ErrorStatusStruct$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ItemStatus$Type extends MessageType<ItemStatus> {
    constructor() {
        super("api.ItemStatus", [
            { no: 1, name: "StatusCode", kind: "enum", jsonName: "StatusCode", T: () => ["api.ItemStatusCode", ItemStatusCode], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Item", Group: "item", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,LowCardinality(String))" }] } } },
            { no: 2, name: "Date", kind: "scalar", jsonName: "Date", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.kpiItems": { Items: [{ Context: "Item", Group: "item", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,DateTime)" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } },
            { no: 3, name: "ActualDate", kind: "message", jsonName: "ActualDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Status effective date. Set by the event's RefDate that triggered the status change." } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { description: "Current status of the Item entity" } } });
    }
    create(value?: PartialMessage<ItemStatus>): ItemStatus {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.statusCode = 0;
        message.date = "";
        if (value !== undefined)
            reflectionMergePartial<ItemStatus>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ItemStatus): ItemStatus {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ItemStatusCode StatusCode = 1 [json_name = "StatusCode"];*/ 1:
                    message.statusCode = reader.int32();
                    break;
                case /* string Date = 2 [json_name = "Date"];*/ 2:
                    message.date = reader.string();
                    break;
                case /* api.DateTime ActualDate = 3 [json_name = "ActualDate"];*/ 3:
                    message.actualDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.actualDate);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ItemStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ItemStatusCode StatusCode = 1 [json_name = "StatusCode"]; */
        if (message.statusCode !== 0)
            writer.tag(1, WireType.Varint).int32(message.statusCode);
        /* string Date = 2 [json_name = "Date"]; */
        if (message.date !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.date);
        /* api.DateTime ActualDate = 3 [json_name = "ActualDate"]; */
        if (message.actualDate)
            DateTime.internalBinaryWrite(message.actualDate, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ItemStatus
 */
export const ItemStatus = new ItemStatus$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ItemStatusStruct$Type extends MessageType<ItemStatusStruct> {
    constructor() {
        super("api.ItemStatusStruct", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => ItemStatus, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 2, name: "History", kind: "message", jsonName: "History", repeat: 1 /*RepeatType.PACKED*/, T: () => ItemStatus, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "List of all status history of the Item entity" }, "api.aggKey": "Date", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }, { Context: "Item", Group: "item" }] } } },
            { no: 3, name: "CreationDate", kind: "scalar", jsonName: "CreationDate", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } } } },
            { no: 4, name: "Version", kind: "scalar", jsonName: "Version", T: 13 /*ScalarType.UINT32*/ }
        ]);
    }
    create(value?: PartialMessage<ItemStatusStruct>): ItemStatusStruct {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.history = [];
        message.creationDate = "";
        message.version = 0;
        if (value !== undefined)
            reflectionMergePartial<ItemStatusStruct>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ItemStatusStruct): ItemStatusStruct {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ItemStatus Current = 1 [json_name = "Current"];*/ 1:
                    message.current = ItemStatus.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* repeated api.ItemStatus History = 2 [json_name = "History"];*/ 2:
                    message.history.push(ItemStatus.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CreationDate = 3 [json_name = "CreationDate"];*/ 3:
                    message.creationDate = reader.string();
                    break;
                case /* uint32 Version = 4 [json_name = "Version"];*/ 4:
                    message.version = reader.uint32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ItemStatusStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ItemStatus Current = 1 [json_name = "Current"]; */
        if (message.current)
            ItemStatus.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ItemStatus History = 2 [json_name = "History"]; */
        for (let i = 0; i < message.history.length; i++)
            ItemStatus.internalBinaryWrite(message.history[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string CreationDate = 3 [json_name = "CreationDate"]; */
        if (message.creationDate !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.creationDate);
        /* uint32 Version = 4 [json_name = "Version"]; */
        if (message.version !== 0)
            writer.tag(4, WireType.Varint).uint32(message.version);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ItemStatusStruct
 */
export const ItemStatusStruct = new ItemStatusStruct$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FamilyStatus$Type extends MessageType<FamilyStatus> {
    constructor() {
        super("api.FamilyStatus", [
            { no: 1, name: "StatusCode", kind: "enum", jsonName: "StatusCode", T: () => ["api.FamilyStatusCode", FamilyStatusCode], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] } } },
            { no: 2, name: "Date", kind: "scalar", jsonName: "Date", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } },
            { no: 3, name: "ActualDate", kind: "message", jsonName: "ActualDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Status effective date. Set by the event's RefDate that triggered the status change." } } }
        ]);
    }
    create(value?: PartialMessage<FamilyStatus>): FamilyStatus {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.statusCode = 0;
        message.date = "";
        if (value !== undefined)
            reflectionMergePartial<FamilyStatus>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FamilyStatus): FamilyStatus {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.FamilyStatusCode StatusCode = 1 [json_name = "StatusCode"];*/ 1:
                    message.statusCode = reader.int32();
                    break;
                case /* string Date = 2 [json_name = "Date"];*/ 2:
                    message.date = reader.string();
                    break;
                case /* api.DateTime ActualDate = 3 [json_name = "ActualDate"];*/ 3:
                    message.actualDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.actualDate);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FamilyStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.FamilyStatusCode StatusCode = 1 [json_name = "StatusCode"]; */
        if (message.statusCode !== 0)
            writer.tag(1, WireType.Varint).int32(message.statusCode);
        /* string Date = 2 [json_name = "Date"]; */
        if (message.date !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.date);
        /* api.DateTime ActualDate = 3 [json_name = "ActualDate"]; */
        if (message.actualDate)
            DateTime.internalBinaryWrite(message.actualDate, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FamilyStatus
 */
export const FamilyStatus = new FamilyStatus$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FamilyStatusStruct$Type extends MessageType<FamilyStatusStruct> {
    constructor() {
        super("api.FamilyStatusStruct", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => FamilyStatus },
            { no: 2, name: "History", kind: "message", jsonName: "History", repeat: 1 /*RepeatType.PACKED*/, T: () => FamilyStatus, options: { "api.aggKey": "Date" } },
            { no: 3, name: "CreationDate", kind: "scalar", jsonName: "CreationDate", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } } } }
        ]);
    }
    create(value?: PartialMessage<FamilyStatusStruct>): FamilyStatusStruct {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.history = [];
        message.creationDate = "";
        if (value !== undefined)
            reflectionMergePartial<FamilyStatusStruct>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FamilyStatusStruct): FamilyStatusStruct {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.FamilyStatus Current = 1 [json_name = "Current"];*/ 1:
                    message.current = FamilyStatus.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* repeated api.FamilyStatus History = 2 [json_name = "History"];*/ 2:
                    message.history.push(FamilyStatus.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CreationDate = 3 [json_name = "CreationDate"];*/ 3:
                    message.creationDate = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FamilyStatusStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.FamilyStatus Current = 1 [json_name = "Current"]; */
        if (message.current)
            FamilyStatus.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.FamilyStatus History = 2 [json_name = "History"]; */
        for (let i = 0; i < message.history.length; i++)
            FamilyStatus.internalBinaryWrite(message.history[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string CreationDate = 3 [json_name = "CreationDate"]; */
        if (message.creationDate !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.creationDate);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FamilyStatusStruct
 */
export const FamilyStatusStruct = new FamilyStatusStruct$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ExpiryConstraint$Type extends MessageType<ExpiryConstraint> {
    constructor() {
        super("api.ExpiryConstraint", [
            { no: 1, name: "WillExpire", kind: "scalar", jsonName: "WillExpire", T: 8 /*ScalarType.BOOL*/, options: { "validate.rules": { bool: { unauthorized: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { readOnly: true }, "api.dataRestrictionKey": "Movement,Stock,Executionflow,Order,Item", "api.kpiItems": { Items: [{ Context: "Item", Group: "item", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,Bool)" }, { Context: "Order", Group: "order", Queryable: true }] } } },
            { no: 2, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.ExpiryConstraintType", ExpiryConstraintType], options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Order,Item", "api.kpiItems": { Items: [{ Context: "Item", Group: "item", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast, String)" }, { Context: "Order", Group: "order", Queryable: true }] } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { description: "Item components" } } });
    }
    create(value?: PartialMessage<ExpiryConstraint>): ExpiryConstraint {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.willExpire = false;
        message.type = 0;
        if (value !== undefined)
            reflectionMergePartial<ExpiryConstraint>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExpiryConstraint): ExpiryConstraint {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* bool WillExpire = 1 [json_name = "WillExpire"];*/ 1:
                    message.willExpire = reader.bool();
                    break;
                case /* api.ExpiryConstraintType Type = 2 [json_name = "Type"];*/ 2:
                    message.type = reader.int32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ExpiryConstraint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* bool WillExpire = 1 [json_name = "WillExpire"]; */
        if (message.willExpire !== false)
            writer.tag(1, WireType.Varint).bool(message.willExpire);
        /* api.ExpiryConstraintType Type = 2 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(2, WireType.Varint).int32(message.type);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ExpiryConstraint
 */
export const ExpiryConstraint = new ExpiryConstraint$Type();
// @generated message type with reflection information, may provide speed optimized methods
class TradeItemDescriptions$Type extends MessageType<TradeItemDescriptions> {
    constructor() {
        super("api.TradeItemDescriptions", [
            { no: 1, name: "ShortDescription", kind: "scalar", jsonName: "ShortDescription", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Blue balloon\"" } } },
            { no: 2, name: "LongDescription", kind: "scalar", jsonName: "LongDescription", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Outdoor blue balloon for kids\"" } } },
            { no: 3, name: "TechnicalDetails", kind: "scalar", jsonName: "TechnicalDetails", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Made in France, suitable for kids above 3 years old\"" } } },
            { no: 4, name: "LanguageCodeISO6391", kind: "scalar", jsonName: "LanguageCodeISO6391", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "2", maxLen: "3", languageIso639: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "<a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'>ISO 639 code</a> message language", example: "\"en\"" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } }
        ]);
    }
    create(value?: PartialMessage<TradeItemDescriptions>): TradeItemDescriptions {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.shortDescription = "";
        message.longDescription = "";
        message.technicalDetails = "";
        message.languageCodeISO6391 = "";
        if (value !== undefined)
            reflectionMergePartial<TradeItemDescriptions>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TradeItemDescriptions): TradeItemDescriptions {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ShortDescription = 1 [json_name = "ShortDescription"];*/ 1:
                    message.shortDescription = reader.string();
                    break;
                case /* string LongDescription = 2 [json_name = "LongDescription"];*/ 2:
                    message.longDescription = reader.string();
                    break;
                case /* string TechnicalDetails = 3 [json_name = "TechnicalDetails"];*/ 3:
                    message.technicalDetails = reader.string();
                    break;
                case /* string LanguageCodeISO6391 = 4 [json_name = "LanguageCodeISO6391"];*/ 4:
                    message.languageCodeISO6391 = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: TradeItemDescriptions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ShortDescription = 1 [json_name = "ShortDescription"]; */
        if (message.shortDescription !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.shortDescription);
        /* string LongDescription = 2 [json_name = "LongDescription"]; */
        if (message.longDescription !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.longDescription);
        /* string TechnicalDetails = 3 [json_name = "TechnicalDetails"]; */
        if (message.technicalDetails !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalDetails);
        /* string LanguageCodeISO6391 = 4 [json_name = "LanguageCodeISO6391"]; */
        if (message.languageCodeISO6391 !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.languageCodeISO6391);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.TradeItemDescriptions
 */
export const TradeItemDescriptions = new TradeItemDescriptions$Type();
// @generated message type with reflection information, may provide speed optimized methods
class LogisticVariant$Type extends MessageType<LogisticVariant> {
    constructor() {
        super("api.LogisticVariant", [
            { no: 13, name: "LVID", kind: "scalar", jsonName: "LVID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Logistical variant ID", example: "\"30\"" }, "api.dataRestrictionKey": "Executionflow,Order,Item", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.kpiItems": { Items: [{ Context: "Item", Group: "item", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 15, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Pallet of 100 pieces\"" } } },
            { no: 2, name: "Codes", kind: "message", jsonName: "Codes", repeat: 1 /*RepeatType.PACKED*/, T: () => OtherID, options: { "api.aggKey": "Key", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Order", Group: "order" }, { Context: "Item", Group: "item" }] }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 3, name: "MetaData", kind: "message", jsonName: "MetaData", repeat: 1 /*RepeatType.PACKED*/, T: () => MetadataElement, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)" }, "api.metadata": true, "api.aggKey": "Key", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Movement", Group: "movement" }, { Context: "Order", Group: "order" }, { Context: "Item", Group: "item" }] }, "api.parentEntity": "Item" } },
            { no: 4, name: "IsBaseLogisticVariant", kind: "scalar", jsonName: "IsBaseLogisticVariant", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"true / false\"" } } },
            { no: 5, name: "RefLV", kind: "scalar", jsonName: "RefLV", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "ID of the LV in which the quantity is given", example: "\"10\"" } } },
            { no: 19, name: "RefLVName", kind: "scalar", jsonName: "RefLVName", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { unauthorized: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { readOnly: true } } },
            { no: 6, name: "QuantityInRefLV", kind: "scalar", jsonName: "QuantityInRefLV", T: 2 /*ScalarType.FLOAT*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "5" } } },
            { no: 8, name: "Volume", kind: "message", jsonName: "Volume", T: () => QuantityVolume, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 9, name: "Area", kind: "message", jsonName: "Area", T: () => QuantityArea, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 10, name: "Height", kind: "message", jsonName: "Height", T: () => QuantityLength, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 11, name: "Width", kind: "message", jsonName: "Width", T: () => QuantityLength, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 12, name: "Length", kind: "message", jsonName: "Length", T: () => QuantityLength, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 14, name: "QuantityInBaseLV", kind: "scalar", jsonName: "QuantityInBaseLV", T: 2 /*ScalarType.FLOAT*/, options: { "validate.rules": { float: { unauthorized: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { readOnly: true } } },
            { no: 16, name: "NetWeight", kind: "message", jsonName: "NetWeight", T: () => QuantityWeight, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 17, name: "GrossWeight", kind: "message", jsonName: "GrossWeight", T: () => QuantityWeight, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Order", Group: "order" }] } } },
            { no: 18, name: "BranchIDs", kind: "scalar", jsonName: "BranchIDs", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"[30,31]\"" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["LVID", "Name"] } } });
    }
    create(value?: PartialMessage<LogisticVariant>): LogisticVariant {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.lVID = "";
        message.name = "";
        message.codes = [];
        message.metaData = [];
        message.isBaseLogisticVariant = false;
        message.refLV = "";
        message.refLVName = "";
        message.quantityInRefLV = 0;
        message.quantityInBaseLV = 0;
        message.branchIDs = [];
        if (value !== undefined)
            reflectionMergePartial<LogisticVariant>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LogisticVariant): LogisticVariant {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string LVID = 13 [json_name = "LVID"];*/ 13:
                    message.lVID = reader.string();
                    break;
                case /* string Name = 15 [json_name = "Name"];*/ 15:
                    message.name = reader.string();
                    break;
                case /* repeated api.OtherID Codes = 2 [json_name = "Codes"];*/ 2:
                    message.codes.push(OtherID.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"];*/ 3:
                    message.metaData.push(MetadataElement.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* bool IsBaseLogisticVariant = 4 [json_name = "IsBaseLogisticVariant"];*/ 4:
                    message.isBaseLogisticVariant = reader.bool();
                    break;
                case /* string RefLV = 5 [json_name = "RefLV"];*/ 5:
                    message.refLV = reader.string();
                    break;
                case /* string RefLVName = 19 [json_name = "RefLVName"];*/ 19:
                    message.refLVName = reader.string();
                    break;
                case /* float QuantityInRefLV = 6 [json_name = "QuantityInRefLV"];*/ 6:
                    message.quantityInRefLV = reader.float();
                    break;
                case /* api.QuantityVolume Volume = 8 [json_name = "Volume"];*/ 8:
                    message.volume = QuantityVolume.internalBinaryRead(reader, reader.uint32(), options, message.volume);
                    break;
                case /* api.QuantityArea Area = 9 [json_name = "Area"];*/ 9:
                    message.area = QuantityArea.internalBinaryRead(reader, reader.uint32(), options, message.area);
                    break;
                case /* api.QuantityLength Height = 10 [json_name = "Height"];*/ 10:
                    message.height = QuantityLength.internalBinaryRead(reader, reader.uint32(), options, message.height);
                    break;
                case /* api.QuantityLength Width = 11 [json_name = "Width"];*/ 11:
                    message.width = QuantityLength.internalBinaryRead(reader, reader.uint32(), options, message.width);
                    break;
                case /* api.QuantityLength Length = 12 [json_name = "Length"];*/ 12:
                    message.length = QuantityLength.internalBinaryRead(reader, reader.uint32(), options, message.length);
                    break;
                case /* float QuantityInBaseLV = 14 [json_name = "QuantityInBaseLV"];*/ 14:
                    message.quantityInBaseLV = reader.float();
                    break;
                case /* api.QuantityWeight NetWeight = 16 [json_name = "NetWeight"];*/ 16:
                    message.netWeight = QuantityWeight.internalBinaryRead(reader, reader.uint32(), options, message.netWeight);
                    break;
                case /* api.QuantityWeight GrossWeight = 17 [json_name = "GrossWeight"];*/ 17:
                    message.grossWeight = QuantityWeight.internalBinaryRead(reader, reader.uint32(), options, message.grossWeight);
                    break;
                case /* repeated string BranchIDs = 18 [json_name = "BranchIDs"];*/ 18:
                    message.branchIDs.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: LogisticVariant, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string LVID = 13 [json_name = "LVID"]; */
        if (message.lVID !== "")
            writer.tag(13, WireType.LengthDelimited).string(message.lVID);
        /* string Name = 15 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(15, WireType.LengthDelimited).string(message.name);
        /* repeated api.OtherID Codes = 2 [json_name = "Codes"]; */
        for (let i = 0; i < message.codes.length; i++)
            OtherID.internalBinaryWrite(message.codes[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"]; */
        for (let i = 0; i < message.metaData.length; i++)
            MetadataElement.internalBinaryWrite(message.metaData[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* bool IsBaseLogisticVariant = 4 [json_name = "IsBaseLogisticVariant"]; */
        if (message.isBaseLogisticVariant !== false)
            writer.tag(4, WireType.Varint).bool(message.isBaseLogisticVariant);
        /* string RefLV = 5 [json_name = "RefLV"]; */
        if (message.refLV !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.refLV);
        /* string RefLVName = 19 [json_name = "RefLVName"]; */
        if (message.refLVName !== "")
            writer.tag(19, WireType.LengthDelimited).string(message.refLVName);
        /* float QuantityInRefLV = 6 [json_name = "QuantityInRefLV"]; */
        if (message.quantityInRefLV !== 0)
            writer.tag(6, WireType.Bit32).float(message.quantityInRefLV);
        /* api.QuantityVolume Volume = 8 [json_name = "Volume"]; */
        if (message.volume)
            QuantityVolume.internalBinaryWrite(message.volume, writer.tag(8, WireType.LengthDelimited).fork(), options).join();
        /* api.QuantityArea Area = 9 [json_name = "Area"]; */
        if (message.area)
            QuantityArea.internalBinaryWrite(message.area, writer.tag(9, WireType.LengthDelimited).fork(), options).join();
        /* api.QuantityLength Height = 10 [json_name = "Height"]; */
        if (message.height)
            QuantityLength.internalBinaryWrite(message.height, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
        /* api.QuantityLength Width = 11 [json_name = "Width"]; */
        if (message.width)
            QuantityLength.internalBinaryWrite(message.width, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
        /* api.QuantityLength Length = 12 [json_name = "Length"]; */
        if (message.length)
            QuantityLength.internalBinaryWrite(message.length, writer.tag(12, WireType.LengthDelimited).fork(), options).join();
        /* float QuantityInBaseLV = 14 [json_name = "QuantityInBaseLV"]; */
        if (message.quantityInBaseLV !== 0)
            writer.tag(14, WireType.Bit32).float(message.quantityInBaseLV);
        /* api.QuantityWeight NetWeight = 16 [json_name = "NetWeight"]; */
        if (message.netWeight)
            QuantityWeight.internalBinaryWrite(message.netWeight, writer.tag(16, WireType.LengthDelimited).fork(), options).join();
        /* api.QuantityWeight GrossWeight = 17 [json_name = "GrossWeight"]; */
        if (message.grossWeight)
            QuantityWeight.internalBinaryWrite(message.grossWeight, writer.tag(17, WireType.LengthDelimited).fork(), options).join();
        /* repeated string BranchIDs = 18 [json_name = "BranchIDs"]; */
        for (let i = 0; i < message.branchIDs.length; i++)
            writer.tag(18, WireType.LengthDelimited).string(message.branchIDs[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.LogisticVariant
 */
export const LogisticVariant = new LogisticVariant$Type();
// @generated message type with reflection information, may provide speed optimized methods
class OtherID$Type extends MessageType<OtherID> {
    constructor() {
        super("api.OtherID", [
            { no: 1, name: "Key", kind: "scalar", jsonName: "Key", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"EAN13\"" } } },
            { no: 2, name: "Value", kind: "scalar", jsonName: "Value", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"3050520032023\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Key"] } } });
    }
    create(value?: PartialMessage<OtherID>): OtherID {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.key = "";
        message.value = "";
        if (value !== undefined)
            reflectionMergePartial<OtherID>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OtherID): OtherID {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Key = 1 [json_name = "Key"];*/ 1:
                    message.key = reader.string();
                    break;
                case /* string Value = 2 [json_name = "Value"];*/ 2:
                    message.value = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: OtherID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Key = 1 [json_name = "Key"]; */
        if (message.key !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.key);
        /* string Value = 2 [json_name = "Value"]; */
        if (message.value !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.value);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.OtherID
 */
export const OtherID = new OtherID$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ErrorTags$Type extends MessageType<ErrorTags> {
    constructor() {
        super("api.ErrorTags", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Value", kind: "scalar", jsonName: "Value", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ErrorTags>): ErrorTags {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.value = "";
        if (value !== undefined)
            reflectionMergePartial<ErrorTags>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ErrorTags): ErrorTags {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Name = 1 [json_name = "Name"];*/ 1:
                    message.name = reader.string();
                    break;
                case /* string Value = 2 [json_name = "Value"];*/ 2:
                    message.value = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ErrorTags, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* string Value = 2 [json_name = "Value"]; */
        if (message.value !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.value);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ErrorTags
 */
export const ErrorTags = new ErrorTags$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FamilyNode$Type extends MessageType<FamilyNode> {
    constructor() {
        super("api.FamilyNode", [
            { no: 1, name: "NodeID", kind: "scalar", jsonName: "NodeID", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 2, name: "Label", kind: "scalar", jsonName: "Label", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "ParentNodeID", kind: "scalar", jsonName: "ParentNodeID", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 6, name: "FamilyRefID", kind: "scalar", jsonName: "FamilyRefID", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Level", kind: "scalar", jsonName: "Level", T: 5 /*ScalarType.INT32*/ },
            { no: 5, name: "StringPath", kind: "scalar", jsonName: "StringPath", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<FamilyNode>): FamilyNode {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.nodeID = "";
        message.label = "";
        message.parentNodeID = "";
        message.familyRefID = "";
        message.level = 0;
        message.stringPath = "";
        if (value !== undefined)
            reflectionMergePartial<FamilyNode>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FamilyNode): FamilyNode {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string NodeID = 1 [json_name = "NodeID"];*/ 1:
                    message.nodeID = reader.string();
                    break;
                case /* string Label = 2 [json_name = "Label"];*/ 2:
                    message.label = reader.string();
                    break;
                case /* string ParentNodeID = 3 [json_name = "ParentNodeID"];*/ 3:
                    message.parentNodeID = reader.string();
                    break;
                case /* string FamilyRefID = 6 [json_name = "FamilyRefID"];*/ 6:
                    message.familyRefID = reader.string();
                    break;
                case /* int32 Level = 4 [json_name = "Level"];*/ 4:
                    message.level = reader.int32();
                    break;
                case /* string StringPath = 5 [json_name = "StringPath"];*/ 5:
                    message.stringPath = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FamilyNode, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string NodeID = 1 [json_name = "NodeID"]; */
        if (message.nodeID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.nodeID);
        /* string Label = 2 [json_name = "Label"]; */
        if (message.label !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.label);
        /* string ParentNodeID = 3 [json_name = "ParentNodeID"]; */
        if (message.parentNodeID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.parentNodeID);
        /* string FamilyRefID = 6 [json_name = "FamilyRefID"]; */
        if (message.familyRefID !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.familyRefID);
        /* int32 Level = 4 [json_name = "Level"]; */
        if (message.level !== 0)
            writer.tag(4, WireType.Varint).int32(message.level);
        /* string StringPath = 5 [json_name = "StringPath"]; */
        if (message.stringPath !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.stringPath);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FamilyNode
 */
export const FamilyNode = new FamilyNode$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Address$Type extends MessageType<Address> {
    constructor() {
        super("api.Address", [
            { no: 1, name: "City", kind: "scalar", jsonName: "City", T: 9 /*ScalarType.STRING*/, options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Actor,Partner,Tracking", "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }, { Context: "Partner", Group: "partner", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }, { Context: "Tracking", Group: "tracking", Queryable: true }] } } },
            { no: 2, name: "CountryCode", kind: "scalar", jsonName: "CountryCode", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { countryCodeIso3166: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Country Code in <a href='https://en.wikipedia.org/wiki/ISO_3166-1'>ISO_3166-1</a> format", example: "\"FR\"" }, "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Actor,Partner,Tracking", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }, { Context: "Partner", Group: "partner", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }, { Context: "Tracking", Group: "tracking", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 3, name: "GeographicalCoordinates", kind: "message", jsonName: "GeographicalCoordinates", T: () => GeographicalCoordinates },
            { no: 4, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "POBoxNumber", kind: "scalar", jsonName: "POBoxNumber", T: 9 /*ScalarType.STRING*/, options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 6, name: "PostalCode", kind: "scalar", jsonName: "PostalCode", T: 9 /*ScalarType.STRING*/, options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Actor,Partner,Tracking", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }, { Context: "Partner", Group: "partner", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }, { Context: "Tracking", Group: "tracking", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 7, name: "ProvinceCode", kind: "scalar", jsonName: "ProvinceCode", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 8, name: "State", kind: "scalar", jsonName: "State", T: 9 /*ScalarType.STRING*/, options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 9, name: "StreetAddressOne", kind: "scalar", jsonName: "StreetAddressOne", T: 9 /*ScalarType.STRING*/, options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 10, name: "StreetAddressTwo", kind: "scalar", jsonName: "StreetAddressTwo", T: 9 /*ScalarType.STRING*/, options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 11, name: "StreetAddressThree", kind: "scalar", jsonName: "StreetAddressThree", T: 9 /*ScalarType.STRING*/, options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 12, name: "PlusCode", kind: "scalar", jsonName: "PlusCode", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } }
        ]);
    }
    create(value?: PartialMessage<Address>): Address {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.city = "";
        message.countryCode = "";
        message.name = "";
        message.pOBoxNumber = "";
        message.postalCode = "";
        message.provinceCode = "";
        message.state = "";
        message.streetAddressOne = "";
        message.streetAddressTwo = "";
        message.streetAddressThree = "";
        message.plusCode = "";
        if (value !== undefined)
            reflectionMergePartial<Address>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Address): Address {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string City = 1 [json_name = "City"];*/ 1:
                    message.city = reader.string();
                    break;
                case /* string CountryCode = 2 [json_name = "CountryCode"];*/ 2:
                    message.countryCode = reader.string();
                    break;
                case /* api.GeographicalCoordinates GeographicalCoordinates = 3 [json_name = "GeographicalCoordinates"];*/ 3:
                    message.geographicalCoordinates = GeographicalCoordinates.internalBinaryRead(reader, reader.uint32(), options, message.geographicalCoordinates);
                    break;
                case /* string Name = 4 [json_name = "Name"];*/ 4:
                    message.name = reader.string();
                    break;
                case /* string POBoxNumber = 5 [json_name = "POBoxNumber"];*/ 5:
                    message.pOBoxNumber = reader.string();
                    break;
                case /* string PostalCode = 6 [json_name = "PostalCode"];*/ 6:
                    message.postalCode = reader.string();
                    break;
                case /* string ProvinceCode = 7 [json_name = "ProvinceCode"];*/ 7:
                    message.provinceCode = reader.string();
                    break;
                case /* string State = 8 [json_name = "State"];*/ 8:
                    message.state = reader.string();
                    break;
                case /* string StreetAddressOne = 9 [json_name = "StreetAddressOne"];*/ 9:
                    message.streetAddressOne = reader.string();
                    break;
                case /* string StreetAddressTwo = 10 [json_name = "StreetAddressTwo"];*/ 10:
                    message.streetAddressTwo = reader.string();
                    break;
                case /* string StreetAddressThree = 11 [json_name = "StreetAddressThree"];*/ 11:
                    message.streetAddressThree = reader.string();
                    break;
                case /* string PlusCode = 12 [json_name = "PlusCode"];*/ 12:
                    message.plusCode = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: Address, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string City = 1 [json_name = "City"]; */
        if (message.city !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.city);
        /* string CountryCode = 2 [json_name = "CountryCode"]; */
        if (message.countryCode !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.countryCode);
        /* api.GeographicalCoordinates GeographicalCoordinates = 3 [json_name = "GeographicalCoordinates"]; */
        if (message.geographicalCoordinates)
            GeographicalCoordinates.internalBinaryWrite(message.geographicalCoordinates, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* string Name = 4 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.name);
        /* string POBoxNumber = 5 [json_name = "POBoxNumber"]; */
        if (message.pOBoxNumber !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.pOBoxNumber);
        /* string PostalCode = 6 [json_name = "PostalCode"]; */
        if (message.postalCode !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.postalCode);
        /* string ProvinceCode = 7 [json_name = "ProvinceCode"]; */
        if (message.provinceCode !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.provinceCode);
        /* string State = 8 [json_name = "State"]; */
        if (message.state !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.state);
        /* string StreetAddressOne = 9 [json_name = "StreetAddressOne"]; */
        if (message.streetAddressOne !== "")
            writer.tag(9, WireType.LengthDelimited).string(message.streetAddressOne);
        /* string StreetAddressTwo = 10 [json_name = "StreetAddressTwo"]; */
        if (message.streetAddressTwo !== "")
            writer.tag(10, WireType.LengthDelimited).string(message.streetAddressTwo);
        /* string StreetAddressThree = 11 [json_name = "StreetAddressThree"]; */
        if (message.streetAddressThree !== "")
            writer.tag(11, WireType.LengthDelimited).string(message.streetAddressThree);
        /* string PlusCode = 12 [json_name = "PlusCode"]; */
        if (message.plusCode !== "")
            writer.tag(12, WireType.LengthDelimited).string(message.plusCode);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Address
 */
export const Address = new Address$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorContact$Type extends MessageType<ActorContact> {
    constructor() {
        super("api.ActorContact", [
            { no: 1, name: "ContactTypeCode", kind: "scalar", jsonName: "ContactTypeCode", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 2, name: "FirstName", kind: "scalar", jsonName: "FirstName", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "LastName", kind: "scalar", jsonName: "LastName", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "JobTitle", kind: "scalar", jsonName: "JobTitle", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "DepartmentName", kind: "scalar", jsonName: "DepartmentName", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "Responsibilities", kind: "scalar", jsonName: "Responsibilities", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "EmailAddress", kind: "scalar", jsonName: "EmailAddress", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { email: true, ignoreEmpty: true } } } },
            { no: 8, name: "FaxNumber", kind: "scalar", jsonName: "FaxNumber", T: 9 /*ScalarType.STRING*/ },
            { no: 9, name: "TelephoneNumber", kind: "scalar", jsonName: "TelephoneNumber", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ActorContact>): ActorContact {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.contactTypeCode = "";
        message.firstName = "";
        message.lastName = "";
        message.jobTitle = "";
        message.departmentName = "";
        message.responsibilities = [];
        message.emailAddress = "";
        message.faxNumber = "";
        message.telephoneNumber = "";
        if (value !== undefined)
            reflectionMergePartial<ActorContact>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorContact): ActorContact {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ContactTypeCode = 1 [json_name = "ContactTypeCode"];*/ 1:
                    message.contactTypeCode = reader.string();
                    break;
                case /* string FirstName = 2 [json_name = "FirstName"];*/ 2:
                    message.firstName = reader.string();
                    break;
                case /* string LastName = 3 [json_name = "LastName"];*/ 3:
                    message.lastName = reader.string();
                    break;
                case /* string JobTitle = 4 [json_name = "JobTitle"];*/ 4:
                    message.jobTitle = reader.string();
                    break;
                case /* string DepartmentName = 5 [json_name = "DepartmentName"];*/ 5:
                    message.departmentName = reader.string();
                    break;
                case /* repeated string Responsibilities = 6 [json_name = "Responsibilities"];*/ 6:
                    message.responsibilities.push(reader.string());
                    break;
                case /* string EmailAddress = 7 [json_name = "EmailAddress"];*/ 7:
                    message.emailAddress = reader.string();
                    break;
                case /* string FaxNumber = 8 [json_name = "FaxNumber"];*/ 8:
                    message.faxNumber = reader.string();
                    break;
                case /* string TelephoneNumber = 9 [json_name = "TelephoneNumber"];*/ 9:
                    message.telephoneNumber = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ActorContact, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ContactTypeCode = 1 [json_name = "ContactTypeCode"]; */
        if (message.contactTypeCode !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.contactTypeCode);
        /* string FirstName = 2 [json_name = "FirstName"]; */
        if (message.firstName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.firstName);
        /* string LastName = 3 [json_name = "LastName"]; */
        if (message.lastName !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.lastName);
        /* string JobTitle = 4 [json_name = "JobTitle"]; */
        if (message.jobTitle !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.jobTitle);
        /* string DepartmentName = 5 [json_name = "DepartmentName"]; */
        if (message.departmentName !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.departmentName);
        /* repeated string Responsibilities = 6 [json_name = "Responsibilities"]; */
        for (let i = 0; i < message.responsibilities.length; i++)
            writer.tag(6, WireType.LengthDelimited).string(message.responsibilities[i]);
        /* string EmailAddress = 7 [json_name = "EmailAddress"]; */
        if (message.emailAddress !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.emailAddress);
        /* string FaxNumber = 8 [json_name = "FaxNumber"]; */
        if (message.faxNumber !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.faxNumber);
        /* string TelephoneNumber = 9 [json_name = "TelephoneNumber"]; */
        if (message.telephoneNumber !== "")
            writer.tag(9, WireType.LengthDelimited).string(message.telephoneNumber);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ActorContact
 */
export const ActorContact = new ActorContact$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Interlocutor$Type extends MessageType<Interlocutor> {
    constructor() {
        super("api.Interlocutor", [
            { no: 1, name: "FirstName", kind: "scalar", jsonName: "FirstName", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"John\"" } } },
            { no: 2, name: "LastName", kind: "scalar", jsonName: "LastName", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Doe\"" } } },
            { no: 3, name: "Emails", kind: "scalar", jsonName: "Emails", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { items: { string: { email: true, ignoreEmpty: true } } } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Must be a valid email address", example: "[\"john.doe@reflex.com\",\"john.doe.bis@reflex.com\"]" }, "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Partner", Group: "partner" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 4, name: "Phones", kind: "scalar", jsonName: "Phones", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "[\"07 00 00 00 00\",\"+33 4 00 00 00 00\"]" }, "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Partner", Group: "partner" }, { Context: "Tracking", Group: "tracking" }] } } }
        ]);
    }
    create(value?: PartialMessage<Interlocutor>): Interlocutor {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.firstName = "";
        message.lastName = "";
        message.emails = [];
        message.phones = [];
        if (value !== undefined)
            reflectionMergePartial<Interlocutor>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Interlocutor): Interlocutor {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string FirstName = 1 [json_name = "FirstName"];*/ 1:
                    message.firstName = reader.string();
                    break;
                case /* string LastName = 2 [json_name = "LastName"];*/ 2:
                    message.lastName = reader.string();
                    break;
                case /* repeated string Emails = 3 [json_name = "Emails"];*/ 3:
                    message.emails.push(reader.string());
                    break;
                case /* repeated string Phones = 4 [json_name = "Phones"];*/ 4:
                    message.phones.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: Interlocutor, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string FirstName = 1 [json_name = "FirstName"]; */
        if (message.firstName !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.firstName);
        /* string LastName = 2 [json_name = "LastName"]; */
        if (message.lastName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.lastName);
        /* repeated string Emails = 3 [json_name = "Emails"]; */
        for (let i = 0; i < message.emails.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.emails[i]);
        /* repeated string Phones = 4 [json_name = "Phones"]; */
        for (let i = 0; i < message.phones.length; i++)
            writer.tag(4, WireType.LengthDelimited).string(message.phones[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Interlocutor
 */
export const Interlocutor = new Interlocutor$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GeographicalCoordinates$Type extends MessageType<GeographicalCoordinates> {
    constructor() {
        super("api.GeographicalCoordinates", [
            { no: 1, name: "Latitude", kind: "scalar", jsonName: "Latitude", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Longitude", kind: "scalar", jsonName: "Longitude", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<GeographicalCoordinates>): GeographicalCoordinates {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.latitude = "";
        message.longitude = "";
        if (value !== undefined)
            reflectionMergePartial<GeographicalCoordinates>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GeographicalCoordinates): GeographicalCoordinates {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Latitude = 1 [json_name = "Latitude"];*/ 1:
                    message.latitude = reader.string();
                    break;
                case /* string Longitude = 2 [json_name = "Longitude"];*/ 2:
                    message.longitude = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GeographicalCoordinates, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Latitude = 1 [json_name = "Latitude"]; */
        if (message.latitude !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.latitude);
        /* string Longitude = 2 [json_name = "Longitude"]; */
        if (message.longitude !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.longitude);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GeographicalCoordinates
 */
export const GeographicalCoordinates = new GeographicalCoordinates$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorSnapshot$Type extends MessageType<ActorSnapshot> {
    constructor() {
        super("api.ActorSnapshot", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Must be unique ID" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 3, name: "EndDateTime", kind: "message", jsonName: "EndDateTime", T: () => DateTime, options: { "validate.rules": { message: { required: true } } } },
            { no: 4, name: "MessageNb", kind: "scalar", jsonName: "MessageNb", T: 5 /*ScalarType.INT32*/, options: { "validate.rules": { int32: { gt: 0 } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { minimum: 1 } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ID", "EndDateTime", "MessageNb"] } } });
    }
    create(value?: PartialMessage<ActorSnapshot>): ActorSnapshot {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.messageNb = 0;
        if (value !== undefined)
            reflectionMergePartial<ActorSnapshot>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorSnapshot): ActorSnapshot {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = reader.string();
                    break;
                case /* api.DateTime EndDateTime = 3 [json_name = "EndDateTime"];*/ 3:
                    message.endDateTime = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.endDateTime);
                    break;
                case /* int32 MessageNb = 4 [json_name = "MessageNb"];*/ 4:
                    message.messageNb = reader.int32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ActorSnapshot, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* api.DateTime EndDateTime = 3 [json_name = "EndDateTime"]; */
        if (message.endDateTime)
            DateTime.internalBinaryWrite(message.endDateTime, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* int32 MessageNb = 4 [json_name = "MessageNb"]; */
        if (message.messageNb !== 0)
            writer.tag(4, WireType.Varint).int32(message.messageNb);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ActorSnapshot
 */
export const ActorSnapshot = new ActorSnapshot$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CarrierService$Type extends MessageType<CarrierService> {
    constructor() {
        super("api.CarrierService", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Unique ID", example: "\"24h\"" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 2, name: "Label", kind: "scalar", jsonName: "Label", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"24 hour delivery\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ID"] } } });
    }
    create(value?: PartialMessage<CarrierService>): CarrierService {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.label = "";
        if (value !== undefined)
            reflectionMergePartial<CarrierService>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CarrierService): CarrierService {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = reader.string();
                    break;
                case /* string Label = 2 [json_name = "Label"];*/ 2:
                    message.label = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: CarrierService, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string Label = 2 [json_name = "Label"]; */
        if (message.label !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.label);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CarrierService
 */
export const CarrierService = new CarrierService$Type();
// @generated message type with reflection information, may provide speed optimized methods
class LVDetailedQuantity$Type extends MessageType<LVDetailedQuantity> {
    constructor() {
        super("api.LVDetailedQuantity", [
            { no: 1, name: "LVID", kind: "scalar", jsonName: "LVID", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 2, name: "LVName", kind: "scalar", jsonName: "LVName", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Quantity", kind: "scalar", jsonName: "Quantity", T: 2 /*ScalarType.FLOAT*/ }
        ]);
    }
    create(value?: PartialMessage<LVDetailedQuantity>): LVDetailedQuantity {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.lVID = "";
        message.lVName = "";
        message.quantity = 0;
        if (value !== undefined)
            reflectionMergePartial<LVDetailedQuantity>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LVDetailedQuantity): LVDetailedQuantity {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string LVID = 1 [json_name = "LVID"];*/ 1:
                    message.lVID = reader.string();
                    break;
                case /* string LVName = 2 [json_name = "LVName"];*/ 2:
                    message.lVName = reader.string();
                    break;
                case /* float Quantity = 3 [json_name = "Quantity"];*/ 3:
                    message.quantity = reader.float();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: LVDetailedQuantity, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string LVID = 1 [json_name = "LVID"]; */
        if (message.lVID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.lVID);
        /* string LVName = 2 [json_name = "LVName"]; */
        if (message.lVName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.lVName);
        /* float Quantity = 3 [json_name = "Quantity"]; */
        if (message.quantity !== 0)
            writer.tag(3, WireType.Bit32).float(message.quantity);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.LVDetailedQuantity
 */
export const LVDetailedQuantity = new LVDetailedQuantity$Type();
