package com.inkasso.factoring.system.permission.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.inkasso.auth.domain.PermissionDO;
import com.inkasso.factoring.system.permission.model.dto.PermissionDTO;
import com.inkasso.factoring.system.permission.model.request.AddPermissionRequest;
import com.inkasso.factoring.system.permission.model.request.EditPermissionRequest;

import java.util.List;

/**
* @author 张超
* @date  2023-08-31
*/
  public interface PermissionService extends IService<PermissionDO> {

  /**
  * 添加操作
  * @param addPermissionRequest
  */
  void addPermission(AddPermissionRequest addPermissionRequest);


  /**
  * 编辑操作
  * @param editPermissionRequest
  */
  void editPermission(EditPermissionRequest editPermissionRequest);

  /**
  * 通过id获取详细信息
  * @param id
  */
    PermissionDTO getPermissionDtoById(Long id);

  /**
  * 删除
  */
  void deletePermission(Long id);


  /**
   * 校验该用户 在该租户下的 权限
   * @param permissionCode
   * @return
   */
  boolean checkPermission(String permissionCode,Long userId);


  /**
   * 通过资源id 获取该其绑定的权限集合
   * @param resourceIds
   * @return
   */
  List<PermissionDTO> getByResourceIds(List<Long> resourceIds);
}

