package com.dsk.system.service;

import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysTenantPackage;
import com.dsk.system.domain.bo.SysTenantPackageBo;
import com.dsk.system.domain.vo.SysTenantPackageSelectVo;
import com.dsk.system.domain.vo.SysTenantPackageVo;

import java.util.List;

/**
 * 租户套餐Service接口
 *
 * @author sxk
 * @date 2023.08.23
 */
public interface ISysTenantPackageService {

    /**
     * 根据方案名称查询方案
     *
     * @param packageName 方案名称
     * @return 方案
     */
    SysTenantPackage selectTenantPackageByName(String packageName);

    /**
     * 查询租户套餐列表
     */
    TableDataInfo<SysTenantPackageVo> queryPageList(SysTenantPackageBo bo, PageQuery pageQuery);

    /**
     * 查询租户套餐已启用列表
     */
    List<SysTenantPackageSelectVo> selectList();

//    /**
//     * 查询租户套餐列表
//     */
//    List<SysTenantPackageVo> queryList(SysTenantPackageBo bo);

    /**
     * 查询租户套餐
     */
    SysTenantPackageVo queryById(Long packageId);

    /**
     * 新增租户套餐
     */
    Boolean insertByBo(SysTenantPackageBo bo);

    /**
     * 修改租户套餐
     */
    Boolean updateByBo(SysTenantPackageBo bo);

//    /**
//     * 修改套餐状态
//     */
//    int updatePackageStatus(SysTenantPackageBo bo);

    /**
     * 校验并批量删除租户套餐信息
     */
    Boolean deleteWithValidByIds(List<Long> ids, boolean isValid);

    /**
     * 校验方案名称是否唯一
     *
     * @param bo 方案信息
     * @return 结果
     */
    boolean checkDeptNameUnique(SysTenantPackageBo bo);

}
