// @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
// @generated from file plm/v1/part.proto (package plm.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file plm/v1/part.proto.
 */
export const file_plm_v1_part: GenFile = /*@__PURE__*/
  fileDesc("ChFwbG0vdjEvcGFydC5wcm90bxIGcGxtLnYxItoBCgtQYXJ0TWVzc2FnZRIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIoCgR0eXBlGAUgASgOMhAucGxtLnYxLlBhcnRUeXBlQgi6SAWCAQIQARIXCgZ3ZWlnaHQYBiABKANCB7pIBCICKAASGwoIbW9kZWxfaWQYByABKAlCCbpIBnIEiPEEARIjCgh0b29sX2lkcxgIIAMoCUIRukgOkgELIglyBzoFdG9vbC0iMgoMUGFydE1lc3NhZ2VzEiIKBXBhcnRzGAEgAygLMhMucGxtLnYxLlBhcnRNZXNzYWdlKocBCghQYXJ0VHlwZRIZChVQQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIaChZQQVJUX1RZUEVfU1VCX0FTU0VNQkxZEAESFgoSUEFSVF9UWVBFX0ZBU1RFTkVSEAISEwoPUEFSVF9UWVBFX1BMQVRFEAMSFwoTUEFSVF9UWVBFX0xVQlJJQ0FOVBAEQowBCgpjb20ucGxtLnYxQglQYXJ0UHJvdG9QAVoxZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3BsbS92MTtwbG12MaICA1BYWKoCD01lc3NhZ2VzLlBsbS5WMcoCBlBsbVxWMeICElBsbVxWMVxHUEJNZXRhZGF0YeoCB1BsbTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);

/**
 * @generated from message plm.v1.PartMessage
 */
export type PartMessage = Message<"plm.v1.PartMessage"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string icon = 3;
   */
  icon: string;

  /**
   * @generated from field: string description = 4;
   */
  description: string;

  /**
   * @generated from field: plm.v1.PartType type = 5;
   */
  type: PartType;

  /**
   * weight in grams
   *
   * @generated from field: int64 weight = 6;
   */
  weight: bigint;

  /**
   * TODO: add dimensions
   * TODO: add material
   *
   * @generated from field: string model_id = 7;
   */
  modelId: string;

  /**
   * @generated from field: repeated string tool_ids = 8;
   */
  toolIds: string[];
};

/**
 * Describes the message plm.v1.PartMessage.
 * Use `create(PartMessageSchema)` to create a new message.
 */
export const PartMessageSchema: GenMessage<PartMessage> = /*@__PURE__*/
  messageDesc(file_plm_v1_part, 0);

/**
 * @generated from message plm.v1.PartMessages
 */
export type PartMessages = Message<"plm.v1.PartMessages"> & {
  /**
   * @generated from field: repeated plm.v1.PartMessage parts = 1;
   */
  parts: PartMessage[];
};

/**
 * Describes the message plm.v1.PartMessages.
 * Use `create(PartMessagesSchema)` to create a new message.
 */
export const PartMessagesSchema: GenMessage<PartMessages> = /*@__PURE__*/
  messageDesc(file_plm_v1_part, 1);

/**
 * @generated from enum plm.v1.PartType
 */
export enum PartType {
  /**
   * @generated from enum value: PART_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: PART_TYPE_SUB_ASSEMBLY = 1;
   */
  SUB_ASSEMBLY = 1,

  /**
   * @generated from enum value: PART_TYPE_FASTENER = 2;
   */
  FASTENER = 2,

  /**
   * @generated from enum value: PART_TYPE_PLATE = 3;
   */
  PLATE = 3,

  /**
   * @generated from enum value: PART_TYPE_LUBRICANT = 4;
   */
  LUBRICANT = 4,
}

/**
 * Describes the enum plm.v1.PartType.
 */
export const PartTypeSchema: GenEnum<PartType> = /*@__PURE__*/
  enumDesc(file_plm_v1_part, 0);

