import { InventoryRecordActionEnum } from "../../enums"; export declare type InventoryItemRecord = BaseInventoryItemRecord | StockInInventoryItemRecord | StockTakeInventoryItemRecord | ReturnInventoryItemRecord | ConsumedInventoryItemRecord | WastageInventoryItemRecord; export interface BaseInventoryItemRecord { inventoryRecordId: string; /** 通常跟InventoryRecord相同 */ createdAt: number; action: InventoryRecordActionEnum; source: 'byUser' | 'byOrder'; inventoryId: string; name: string; unit?: string; categoryId?: string; note?: string; /** 進貨量(+) 退貨量(-) 消耗量(-) 報廢量(-) 盤差量(+/-) */ quantityVariation: number; remainQuantity: number; } export interface StockInInventoryItemRecord extends BaseInventoryItemRecord { action: InventoryRecordActionEnum.StockIn; source: 'byUser'; /** =進貨金額(+) */ amountVariation?: number; stockInAmount?: number; stockInQuantity: number; stockInUnitPrice?: number; } export interface ReturnInventoryItemRecord extends BaseInventoryItemRecord { action: InventoryRecordActionEnum.Return; source: 'byUser'; /** =退貨金額(-) */ amountVariation?: number; returnAmount?: number; returnQuantity: number; returnUnitPrice?: number; } export interface ConsumedInventoryItemRecord extends BaseInventoryItemRecord { action: InventoryRecordActionEnum.Consumed; source: 'byUser' | 'byOrder'; orderId?: string; consumedQuantity: number; } export interface WastageInventoryItemRecord extends BaseInventoryItemRecord { action: InventoryRecordActionEnum.Wastage; source: 'byUser'; wastageQuantity: number; } export interface StockTakeInventoryItemRecord extends BaseInventoryItemRecord { action: InventoryRecordActionEnum.StockTake; source: 'byUser'; stockTakeQuantity: number; stockTakeVariation: number; }