in sources/coffeeshop/infrastructure/src/main/java/solid/humank/coffeeshop/infra/repositories/orders/OrderDDBMapper.java [22:44]
public <T extends AggregateRoot> PutItemRequest buildPutItemRequest(T aggregateRoot) {
Order order = (Order) aggregateRoot;
DomainModelMapper mapper = new DomainModelMapper();
String orderItemsJson = mapper.writeToJsonString(order.getOrderItems());
logger.info("orderItemsJson is:" + orderItemsJson);
HashMap<String, AttributeValue> item_values = new HashMap();
item_values.put("seqNo", AttributeValue.builder().n(String.valueOf(order.getId().getSeqNo())).build());
item_values.put("tableNo", AttributeValue.builder().n(order.getTableNo()).build());
item_values.put("orderStatus", AttributeValue.builder().n(String.valueOf(order.getStatus().getValue())).build());
item_values.put("items", AttributeValue.builder().s(orderItemsJson).build());
item_values.put("totalFee", AttributeValue.builder().n(String.valueOf(order.totalFee())).build());
item_values.put("createDate", AttributeValue.builder().s(order.createdDateString()).build());
item_values.put("modifyDate", AttributeValue.builder().s(order.modifiedDateString()).build());
PutItemRequest request = PutItemRequest.builder()
.tableName(TABLE_NAME)
.item(item_values)
.build();
return request;
}