package com.ytpm.dao;

import com.ytpm.agent.model.YtApp;
import com.ytpm.middle.param.AppListParam;
import com.ytpm.middle.view.AppListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AppMapper {
    /**
     * 新增应用信息
     */
    void insertOne(YtApp app);

    /**
     * 主键查询
     */
    YtApp selectPrimary(@Param("appId") String appId);

    YtApp selectByDitchId(@Param("ditchId") Long ditchId);

    /**
     * 保存应用
     */
    void updateOne(YtApp app);

    /**
     * 删除应用
     */
    void deleteApp(String appId);

    /**
     * 查询用户的应用列表
     */
    List<YtApp> queryAll(@Param("userId") String userId);
    /**
     *  应用列表
     */
    List<AppListVO> getAppList(AppListParam param);

    /**
     * 根据母包和渠道查询应用
     */
    YtApp getByDitchIdAndSuperiorId(@Param("ditchId") Long ditchId, @Param("superiorId") String superiorId);

    /**
     * 根据子包名称查询子包
     */
    YtApp getByAppName(@Param("appName") String appName);

    List<YtApp> getBySuperiorId(@Param("superiorId") String superiorId);

    /**
     * 批量删除应用
     */
    void deleteAppIds(@Param("ids") List<String> ids);

    /**
     * 删除指定应用所有风控规则
     */
    void deleteRisks(@Param("ids") List<String> ids);
}
