import type * as Samsara from "../../../../index.js"; /** * @example * { * movementType: "12345", * partSamsaraId: "12345", * quantity: 123.45 * } */ export interface CreateStockMovementActionServiceCreateStockMovementRequestBody { /** Batch or lot identifier the movement applies to, if the part is batch-tracked. */ batch?: string; /** Unique identifier of the place linked to the maintenance site the inventory is transferred out of. Transfer only. */ fromPlaceId?: string; /** Time when the movement occurred. Defaults to the current time if not provided. */ happenedAtTime?: string; /** Type of stock movement to record. Must be one of Receive, Transfer, Scrap, or Adjust; Unknown is rejected. */ movementType: string; /** Notes explaining the movement. Scrap and adjust only. */ notes?: string; /** Unique identifier of the part definition the movement applies to. */ partSamsaraId: string; /** Unique identifier of the place linked to the maintenance site the movement targets. Required for receive, scrap, and adjust; rejected for transfer (use fromPlaceId and toPlaceId). */ placeId?: string; /** Purchase order reference for the received inventory. Receive only. */ purchaseOrder?: string; /** Quantity moved, in the part's unit of measure. Positive magnitude for receive, transfer, and scrap; signed delta for adjust. */ quantity: number; /** Unique identifier of the place linked to the maintenance site the inventory is transferred into. Transfer only. */ toPlaceId?: string; unitCost?: Samsara.EntityCreateStockMovementMoneyInputTypeRequestBody; /** Unique identifier of the vendor the inventory was received from. Receive only. */ vendorId?: string; }