package com.clx.performance.struct;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.CustomerComplaintOrderChildVO;
import com.clx.performance.vo.app.GoingOrderChildVO;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.owner.OwnerOrderChildVO;
import com.clx.performance.vo.pc.CarrierOrderChildDetailVO;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.linewarn.LineWarnTruckTraceInfoVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;

import java.util.List;

@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildStruct {

    OrderChildVO convert(OrderChild item);

    List<OrderChildPCVO> convertList(List<OrderChild> item);

    CarrierOrderChildDetailVO carrierConvert(OrderChild item);

    GoingOrderChildVO convertGoingOrder(OrderChild item);


    OrderChildMessage convertMessage(OrderChild item);

    Page<CustomerComplaintOrderChildVO> covertPageCustomerComplaintOrderChildVO(Page<OrderChild> page);


    List<OwnerOrderChildVO> convertOwnerOrderChildVOList(List<OrderChild> list);


    List<LineWarnTruckTraceInfoVO> convertLineWarnTruckTraceInfoVO(List<OrderChild> list);

    OrderChildMessage convert2Message(OrderChild item);
}
