package com.xunhong.erp.turbo.biz.app.executor.cmd;

import com.xunhong.erp.turbo.api.biz.dto.cmd.PurchaseOrderCreateCmd;
import com.xunhong.erp.turbo.api.biz.dto.vo.PurchaseOrderVO;
import com.xunhong.erp.turbo.biz.app.assembler.PurchaseOrderAssembler;
import com.xunhong.erp.turbo.biz.domain.entity.PurchaseOrder;
import com.xunhong.erp.turbo.biz.domain.gateway.PurchaseOrderGateway;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @author shenyifei
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class PurchaseOrderCreateCmdExe {

	private final PurchaseOrderAssembler purchaseOrderAssembler;
	private final PurchaseOrderGateway purchaseOrderGateway;

	public PurchaseOrderVO execute(PurchaseOrderCreateCmd purchaseOrderCreateCmd) {
		PurchaseOrder purchaseOrder = purchaseOrderGateway.save(purchaseOrderCreateCmd);

		return purchaseOrderAssembler.toPurchaseOrderVO(purchaseOrder);
	}
}

