package com.zm.order.tool.server.handler;

import com.zm.order.tool.server.dto.BasePerformanceDTO;
import com.zm.order.tool.server.dto.OrderPerformanceDTO;
import com.zm.order.tool.server.dto.QueryPerformanceDTO;
import com.zm.order.tool.server.model.BakingIndexOrder;
import com.zm.order.tool.server.model.Order;
import com.zm.order.tool.server.model.RetailIndexOrder;
import com.zm.util.dto.Result;

import java.util.List;

/**
 * 零售履约处理器
 *
 * @Author chang.n
 * @ClassName RetailPerformanceHandle
 * @Date 2020/4/14 2:37 PM
 */
public interface RetailPerformanceHandler {

    /**
     * 履约类型
     * 
     * @return: java.lang.String
     * @Date: 2020/4/16 9:51 AM
     */
    String performanceType();

    /**
     * 创建履约信息
     *
     * @param orderPerformanceDTO
     * @return: com.zm.util.dto.Result
     * @Date: 2020/4/14 3:59 PM
     */
    Result createPerformance(OrderPerformanceDTO orderPerformanceDTO);

    /**
     * 操作履约信息
     * @param orderPerformanceDTO
     * @param order
     * @return: com.zm.util.dto.Result
     * @Date:   2020/6/17 7:39 PM
     */
    Result operatePerformance(OrderPerformanceDTO orderPerformanceDTO, Order order);

    /**
     * 查询履约信息
     * @param performanceDTO
     * @return: com.zm.util.dto.Result
     * @Date:   2020/5/27 11:32 AM
     */
    Result<List<BasePerformanceDTO>> queryPerformance(QueryPerformanceDTO performanceDTO);

    /**
     * 构建履约搜索信息
     * @param indexOrder
     * @param order
     * @return: void
     * @Date:   2020/6/1 4:38 PM
     */
    void buildPerformanceInfo(RetailIndexOrder indexOrder, Order order);

    /**
     * 烘焙构建履约信息
     * @param indexOrder
     * @param order
     * @return:
     * @Date: 2021/1/27 6:54 下午
     */
    void buildPerformanceIndex(BakingIndexOrder indexOrder, Order order);

}
