package com.xunhong.erp.turbo.biz.domain.gateway;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xunhong.erp.turbo.api.biz.dto.cmd.ProductCreateCmd;
import com.xunhong.erp.turbo.api.biz.dto.cmd.ProductDestroyCmd;
import com.xunhong.erp.turbo.api.biz.dto.cmd.ProductUpdateCmd;
import com.xunhong.erp.turbo.api.biz.dto.cmd.ProductDragCmd;
import com.xunhong.erp.turbo.api.biz.dto.qry.ProductListQry;
import com.xunhong.erp.turbo.api.biz.dto.qry.ProductPageQry;
import com.xunhong.erp.turbo.api.biz.dto.qry.ProductShowQry;
import com.xunhong.erp.turbo.biz.domain.entity.Product;

import java.util.List;

/**
 * @author shenyifei
 */
public interface ProductGateway {
    Product save(ProductCreateCmd productCreateCmd);

    IPage<Product> page(ProductPageQry productPageQry);

    List<Product> list(ProductListQry productListQry);

    Product update(ProductUpdateCmd productUpdateCmd);

    Product show(ProductShowQry productShowQry);

    void destroy(ProductDestroyCmd productDestroyCmd);
    
    void drag(ProductDragCmd productDragCmd);
}