package com.chantha.jdbc.jpa.service.product import com.chantha.jdbc.jpa.model.OrderDetail import com.chantha.jdbc.jpa.model.Product import com.chantha.jdbc.jpa.model.view.OrderDetailView import com.chantha.jdbc.jpa.model.view.ProductWithOrderDetail import com.chantha.jdbc.jpa.repo.ProductRepo import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.util.* @Service class ProductServiceImpl @Autowired constructor(private val productRepo: ProductRepo) : ProductService { override fun fetchAllProducts(): List { return productRepo.findAll().map { toView(it) } } private fun toView(data: Product): ProductWithOrderDetail { val view = ProductWithOrderDetail() view.productId = data.productId view.productName = data.productName view.details = data.orderDetails.map { toOrderDetailView(it) } return view } private fun toOrderDetailView(data: OrderDetail): OrderDetailView { val view = OrderDetailView() view.orderDetailId = data.orderDetailId view.price = data.price view.qty = data.qty return view } }