package cn.ezhizao.project.business.recycleBin.mapper;

import java.util.List;
import java.util.Map;

import cn.ezhizao.project.business.recycleBin.domain.BizRecycleBin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * 回收站Mapper接口
 *
 * @author ruoyi
 * @date 2023-11-02
 */
public interface BizRecycleBinMapper extends BaseMapper<BizRecycleBin>
{
    /**
     * 查询回收站列表
     *
     * @param bizRecycleBin 回收站
     * @return 回收站集合
     */
    public List<BizRecycleBin> getList(BizRecycleBin bizRecycleBin);

    /**
     * 物理删除
     * @param bizRecycleBin
     * @return 删除结果
    */
    public int physicalDelete(BizRecycleBin bizRecycleBin);

    /**
     * 还原回收站
     * @param
     * @return 删除结果
     */
    int restore(Long id);

    /**
     * 还原用户表删除
     * @param
     * @return 删除结果
     */
    int restoreCompany(Long id);

    BizRecycleBin getById(Long id);

    /**
     * 删除子表数据
     * @param id
     * @param tabs 表名集合
     */
    void deleteData(Long id,String[] tabs);

    /**
     * 还原子表数据
     * @param id
     * @param tabs 表名集合
     */
    void restoreData(Long id,String[] tabs);

    /** 清除回收站 */
    int remove(Long id);

    /**
     * 查询子表id
     * @param id 客户id
     * @param table 子表名
     * @return 子表id
     */
    Long getChildById(Long id,String table);

    List<BizRecycleBin> getChildIdsByParentId(List<Map<String, Object>> tabs);

}
