package models import ( "encoding/json" "time" ) type ComponentItem struct { ID int64 `json:"id"` ComponentID int64 `json:"componentId"` ContainerID int64 `json:"containerId"` Quantity int32 `json:"quantity"` Status string `json:"status"` Metadata json.RawMessage `json:"metadata"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` } // UpdateStatusResult holds the results of a component item status change operation. // Different fields are populated depending on the case: // - Case 1 (change all): only ComponentItem and StatusHistory are set // - Case 2 (split): NewComponentItemID is also set // - Case 3 (merge): MergedComponentItemID is also set type UpdateStatusResult struct { ComponentItem ComponentItem StatusHistory ComponentStatusHistory NewComponentItemID *int64 MergedComponentItemID *int64 } type FindComponentItemResult struct { ComponentName string `json:"componentName"` TypeName string `json:"typeName"` Quantity int32 `json:"quantity"` Status string `json:"status"` ContainerName string `json:"containerName"` ContainerType string `json:"containerType"` ShelfName string `json:"shelfName"` CabinetName string `json:"cabinetName"` RoomName string `json:"roomName"` WarehouseName string `json:"warehouseName"` }