# This file was auto-generated by Fern from our API Definition.

import typing_extensions


class TransferOrderLineParams(typing_extensions.TypedDict):
    """
    Represents a line item in a transfer order. Each line item tracks a specific
    [CatalogItemVariation](entity:CatalogItemVariation) being transferred, including ordered quantities
    and receipt status.
    """

    uid: typing_extensions.NotRequired[str]
    """
    Unique system-generated identifier for the line item. Provide when updating/removing a line via [UpdateTransferOrder](api-endpoint:TransferOrders-UpdateTransferOrder).
    """

    item_variation_id: str
    """
    The required identifier of the [CatalogItemVariation](entity:CatalogItemVariation) being transferred. Must reference
    a valid catalog item variation that exists in the [Catalog](api:Catalog).
    """

    quantity_ordered: str
    """
    Total quantity ordered, formatted as a decimal string (e.g. "10 or 10.0000"). Required to be a positive number.
    
    To remove a line item, set `remove` to `true` in [UpdateTransferOrder](api-endpoint:TransferOrders-UpdateTransferOrder).
    """

    quantity_pending: typing_extensions.NotRequired[str]
    """
    Calculated quantity of this line item's yet to be received stock. This is the difference between the total quantity ordered and the sum of quantities received, canceled, and damaged.
    """

    quantity_received: typing_extensions.NotRequired[str]
    """
    Quantity received at destination. These items are added to the destination
    [Location](entity:Location)'s inventory with [InventoryState](entity:InventoryState) of IN_STOCK.
    
    This field cannot be updated directly in Create/Update operations, instead use [ReceiveTransferOrder](api-endpoint:TransferOrders-ReceiveTransferOrder).
    """

    quantity_damaged: typing_extensions.NotRequired[str]
    """
    Quantity received in damaged condition. These items are added to the destination
    [Location](entity:Location)'s inventory with [InventoryState](entity:InventoryState) of WASTE.
    
    This field cannot be updated directly in Create/Update operations, instead use [ReceiveTransferOrder](api-endpoint:TransferOrders-ReceiveTransferOrder).
    """

    quantity_canceled: typing_extensions.NotRequired[str]
    """
    Quantity that was canceled. These items will be immediately added to inventory in the source location.
    
    This field cannot be updated directly in Create/Update operations, instead use [ReceiveTransferOrder](api-endpoint:TransferOrders-ReceiveTransferOrder) or [CancelTransferOrder](api-endpoint:TransferOrders-CancelTransferOrder).
    """
