package cn.fateverse.query.mapper;

import cn.fateverse.query.entity.Portal;
import cn.fateverse.query.entity.query.PortalQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;

/**
 * 接口管理表
 *
 * @author Clay
 * @date 2024/4/15 10:32
 */
public interface PortalMapper {


    /**
     * 查询接口管理表
     *
     * @param portalId 接口管理表Id
     * @return 接口管理表
     */
    Portal selectById(Long portalId);


    /**
     * 根据请求路径查询
     *
     * @param path 路径
     * @return 查询结果
     */
    Portal selectByPath(@Param("path") String path, @Param("requestMethod") String requestMethod);

    /**
     * 查询接口管理表列表
     *
     * @param query 接口管理表查询
     * @return 接口管理表集合
     */
    List<Portal> selectList(PortalQuery query);

    /**
     * 新增接口
     *
     * @param portal 接口对象
     * @return 更新数量
     */
    int insert(Portal portal);

    /**
     * 修改接口
     *
     * @param portal 接口信息
     * @return 更新数量
     */
    int update(Portal portal);

    /**
     * 更新状态
     *
     * @param portalId 接口id
     * @param state    状态
     */
    void updateState(@Param("portalId") Long portalId, @Param("state") Integer state);

    /**
     * 删除
     *
     * @param portalId id
     * @return 删除行数
     */
    int deleteById(Long portalId);
}
