{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/1factory/refs/heads/main/json-structure/1factory-new-part-master-structure.json",
  "name": "NewPartMaster",
  "description": "NewPartMaster schema from 1Factory API",
  "type": "object",
  "properties": {
    "part_number": {
      "$ref": "#/components/schemas/part_number"
    },
    "rev": {
      "$ref": "#/components/schemas/rev"
    },
    "description": {
      "type": "string",
      "nullable": true,
      "maxLength": 255,
      "description": "Description of the part. (Optional).",
      "example": "Three Lobe Shaft"
    },
    "status": {
      "type": "string",
      "nullable": false,
      "enum": [
        "Active",
        "Inactive"
      ],
      "default": "Active",
      "description": "Status of Part Master entry."
    },
    "alt_part_number": {
      "type": "string",
      "nullable": true,
      "maxLength": 255,
      "description": "An alternative identifier used to identify a part, such as Drawing #, or customer / supplier part number.",
      "example": "DN-1234568"
    },
    "alt_rev": {
      "type": "string",
      "nullable": true,
      "maxLength": 255,
      "description": "An alternate part revision, such as a drawing revision, or customer / supplier part revision.",
      "example": "B"
    },
    "alt_part_number2": {
      "type": "string",
      "nullable": true,
      "maxLength": 255,
      "description": "A second alternative identifier used to identify a part, such as Drawing #, or customer / supplier part number.",
      "example": "CN-1234569"
    },
    "alt_rev2": {
      "type": "string",
      "nullable": true,
      "maxLength": 255,
      "description": "A second alternate part revision, such as a drawing revision, or customer / supplier part revision.",
      "example": "C"
    },
    "project_identifier": {
      "$ref": "#/components/schemas/project_identifier"
    },
    "cost": {
      "type": "double",
      "nullable": true,
      "description": "Cost of the part. (Optional).",
      "example": 3.5
    },
    "unit": {
      "type": "string",
      "description": "Unit used for determine part cost. (Optional)",
      "example": "Each"
    },
    "is_assembly": {
      "type": "boolean",
      "default": false,
      "description": "If true, indicates part is an assembly. (Optional)"
    },
    "is_itar": {
      "type": "boolean",
      "default": false,
      "description": "If true, indicates part is an ITAR part with additional controls. (Optional)"
    },
    "is_buy": {
      "type": "boolean",
      "default": false,
      "description": "If true, indicates part is bought, rather than made. (Optional)"
    },
    "comments": {
      "type": "string",
      "nullable": true,
      "maxLength": 32000,
      "description": "Detailed comments regarding the part. (Optional)",
      "example": "This is a brand new part that we are prototyping."
    }
  },
  "required": [
    "part_number"
  ]
}