package com.ozs.mdm.mapper;

import com.ozs.mdm.dto.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface InterfaceDataSourcesMapper {

    List<MdmInfoDataSourceInterfaceDTO> listInterfaceDataSources(@Param("methodName") String methodName,
                                                                 @Param("status") String status,
                                                                 @Param("projectName") String projectName);

    MdmInfoDataSourceInterfaceVO getInterfaceDataSourcesById(@Param("interfaceId") String interfaceId);

    void deleteInterfaceDataSources(@Param("interfaceId") String interfaceId);

    void updateInterfaceDataSourcesStatus(MdmInfoDataSourceInterfaceDTO mdsid);

    List<MdmDimDataSourceInterfaceMethodDTO> listRequestMode();

    List<MdmDimDataSourceInterfaceStatusDTO> listInterfaceDataSourcesStatus();

    void addInterfaceDataSources(MdmInfoDataSourceInterfaceVO mdmInfoDataSourceInterfaceVO);

    void updateInterfaceDataSourcesById(MdmInfoDataSourceInterfaceVO mdmInfoDataSourceInterfaceVO);

    void updateInputNodes(@Param("list") List<MdmInfoDataSourceInterfaceParamInDTO> mdmParamInDTO);

    void updateOutNodes(@Param("list") List<MdmInfoDataSourceInterfaceParamOutDTO> mdmOutDTO);

    String getInterfaceUrlById(@Param("interfaceId") String interfaceId);

    List<MdmInfoDataSourceInterfaceParamInDTO> getInterfaceParamIn(String interfaceId);

    List<MdmInfoDataSourceInterfaceParamOutDTO> getInterfaceParamOut(String interfaceId);

    void deleteInputParam(@Param("interfaceId") String interfaceId);

    void deleteOutParam(@Param("interfaceId") String interfaceId);

    void addInputNodes(@Param("list") List<MdmInfoDataSourceInterfaceParamInDTO> mdmInfoInDTO);
    void addOutNodes(@Param("list") List<MdmInfoDataSourceInterfaceParamOutDTO> mdmInfoOutDTO);

    String getinterfaceMethodById(@Param("interfaceId") String interfaceId);

    List<MdmDimDataSourceInterfaceStatusDTO> listInterfaceName();

    List<MdmInfoDataSourceInterfaceVO> getInterfaceByProjectId(@Param("projectId") String projectId);

    List<MdmInfoDataSourceInterfaceParamOutDTO> getInterfaceOutParamsByInterfaceId(@Param("interfaceId") String interfaceId);

    String getCheckCodeById(String interfaceId);

    List<MdmInfoDataSourceInterfaceParamInDTO> getInterfaceInParamsByInterfaceId(String interfaceId);

    List<MdmTreeDTO> listInterfaceInfo();

    List<MdmTreeDTO> listInterfaceProjectInfo();
}
