openapi: 3.1.1
info:
  title: Package
  version: 2.0.0
  description: Schema definition for the Package entity in the Beckn Logistics domain.
  license:
    name: CC-BY-NC-SA 4.0 International
  contact:
    name: Beckn Labs
    url: https://beckn.io
components:
  schemas:
    Package:
      x-iri: https://schema.nfh.global/Package/v2.0
      type: object
      title: Package
      description: 'A Package is a physical unit of goods prepared for transport within a shipment. Maps to beckn:Item.

        '
      required:
      - id
      - weight
      properties:
        id:
          type: string
          description: Unique identifier for the package
          example: PKG-001
        description:
          type: string
          description: Description of package contents
          example: Electronics - Laptop
        weight:
          type: object
          description: Weight of the package
          properties:
            value:
              type: number
              example: 2.5
            unit:
              type: string
              enum:
              - kg
              - g
              - lb
              example: kg
        dimensions:
          type: object
          description: Physical dimensions of the package
          properties:
            length:
              type: number
              example: 40
            width:
              type: number
              example: 30
            height:
              type: number
              example: 10
            unit:
              type: string
              enum:
              - cm
              - in
              example: cm
        volumetricWeight:
          type: number
          description: Calculated volumetric weight in kg
          example: 3.0
        fragile:
          type: boolean
          description: Whether the package requires fragile handling
          example: false
        hazardous:
          type: boolean
          description: Whether the package contains hazardous materials
          example: false
        declaredValue:
          type: object
          description: Declared monetary value of contents
          properties:
            amount:
              type: number
              example: 50000
            currency:
              type: string
              example: INR
        packageType:
          type: string
          description: Type of packaging
          enum:
          - BOX
          - ENVELOPE
          - PALLET
          - DRUM
          - BAG
          - TUBE
          example: BOX
        barcode:
          type: string
          description: Package-level barcode or QR code
          example: '4012345678901'
        temperatureControl:
          type: object
          description: Temperature control requirements for cold chain
          properties:
            required:
              type: boolean
              example: false
            minTemp:
              type: number
              example: 2
            maxTemp:
              type: number
              example: 8
            unit:
              type: string
              enum:
              - C
              - F
              example: C
        insuranceRequired:
          type: boolean
          description: Whether insurance is required for this package
          example: false
