feat(t239): persist freight item metadata
This commit is contained in:
@@ -728,6 +728,9 @@ func (service *FreightService) normalize(
|
||||
!validBytes(sourceItem.ProductSpec, 1024) ||
|
||||
!validBytes(sourceItem.SKU, 512) ||
|
||||
!validOptional(sourceItem.ProductThumbRef, 512) ||
|
||||
sourceItem.OriginalCurrency != domain.FreightCurrencyTWD ||
|
||||
(sourceItem.OriginalUnitPriceMinor != nil &&
|
||||
*sourceItem.OriginalUnitPriceMinor < 0) ||
|
||||
!validOptional(sourceItem.PurchaseStatus, 128) ||
|
||||
(sourceItem.Quantity != nil && *sourceItem.Quantity <= 0) {
|
||||
return domain.FreightImportBatch{}, errors.New("invalid freight item fields")
|
||||
@@ -737,26 +740,32 @@ func (service *FreightService) normalize(
|
||||
return domain.FreightImportBatch{}, err
|
||||
}
|
||||
item := domain.FreightImportItem{
|
||||
ID: itemID,
|
||||
ExternalItemID: itemExternalID,
|
||||
Title: sourceItem.Title,
|
||||
ProductSpec: sourceItem.ProductSpec,
|
||||
SKU: sourceItem.SKU,
|
||||
Quantity: sourceItem.Quantity,
|
||||
ProductThumbRef: cleanOptional(sourceItem.ProductThumbRef),
|
||||
PurchaseStatus: cleanOptional(sourceItem.PurchaseStatus),
|
||||
ID: itemID,
|
||||
ExternalItemID: itemExternalID,
|
||||
Title: sourceItem.Title,
|
||||
ProductSpec: sourceItem.ProductSpec,
|
||||
SKU: sourceItem.SKU,
|
||||
Quantity: sourceItem.Quantity,
|
||||
ProductThumbRef: cleanOptional(sourceItem.ProductThumbRef),
|
||||
OriginalUnitPriceMinor: sourceItem.OriginalUnitPriceMinor,
|
||||
OriginalCurrency: sourceItem.OriginalCurrency,
|
||||
PurchaseStatus: cleanOptional(sourceItem.PurchaseStatus),
|
||||
}
|
||||
item.CanonicalSHA256 = hashJSON(struct {
|
||||
ExternalItemID string `json:"external_item_id"`
|
||||
Title string `json:"title"`
|
||||
ProductSpec string `json:"product_spec"`
|
||||
SKU string `json:"sku"`
|
||||
Quantity *int `json:"quantity"`
|
||||
ProductThumbRef *string `json:"product_thumb_ref"`
|
||||
PurchaseStatus *string `json:"purchase_status"`
|
||||
ExternalItemID string `json:"external_item_id"`
|
||||
Title string `json:"title"`
|
||||
ProductSpec string `json:"product_spec"`
|
||||
SKU string `json:"sku"`
|
||||
Quantity *int `json:"quantity"`
|
||||
ProductThumbRef *string `json:"product_thumb_ref"`
|
||||
OriginalUnitPriceMinor *int64 `json:"original_unit_price_minor"`
|
||||
OriginalCurrency string `json:"original_currency"`
|
||||
PurchaseStatus *string `json:"purchase_status"`
|
||||
}{
|
||||
item.ExternalItemID, item.Title, item.ProductSpec, item.SKU,
|
||||
item.Quantity, item.ProductThumbRef, item.PurchaseStatus,
|
||||
item.Quantity, item.ProductThumbRef,
|
||||
item.OriginalUnitPriceMinor, item.OriginalCurrency,
|
||||
item.PurchaseStatus,
|
||||
})
|
||||
order.Items = append(order.Items, item)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user