CatalogPort.java
package com.ecommerce.trade.application.port;
import java.math.BigDecimal;
import java.util.List;
public interface CatalogPort {
ProductSnapshot getProduct(Long productId);
record ProductSnapshot(
Long id,
String title,
String status,
List<SkuSnapshot> skus,
List<MediaSnapshot> media
) {
public ProductSnapshot {
skus = List.copyOf(skus);
media = List.copyOf(media);
}
}
record SkuSnapshot(
Long id,
String skuCode,
String name,
String specJson,
BigDecimal salePrice,
String status
) {
}
record MediaSnapshot(Long skuId, String objectKey, int sortOrder) {
}
}