package cn.iocoder.yudao.module.archives.controller.admin;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.archives.service.ArchivesRoleService;
import cn.iocoder.yudao.module.archives.vo.ArchivesRoleReqVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;

/**
 * 档案权限表 控制层
 * @author 小李
 * @date 8:58 2024/8/28
 **/
@RestController
@Tag(name = "企业管理 - 档案管理")
@RequestMapping("/archives/role")
@Validated
public class ArchivesRoleController {

    @Resource
    private ArchivesRoleService archivesRoleService;

    /**
     * 新增和修改档案权限和档案名称
     * @author 小李
     * @date 9:26 2024/8/28
    **/
    @PostMapping("/update")
    @Operation(summary = "新增/修改企业管理-档案名称和权限")
    @PreAuthorize("@ss.hasPermission('archives:catalog:create')")
    public CommonResult updateArchivesRoleAndDict(@RequestBody ArchivesRoleReqVO archivesRoleReqVO){
        archivesRoleService.updateArchivesRoleAndDict(archivesRoleReqVO);
        return CommonResult.ok();
    }

    /**
     * 删除企业管理-档案名称和权限
     * @author 小李
     * @date 10:34 2024/8/28
     * @param ids
    **/
    @DeleteMapping("/remove/{ids}")
    @Operation(summary = "删除企业管理-档案名称和权限")
    @PreAuthorize("@ss.hasPermission('archives:catalog:remove')")
    public CommonResult removeArchivesRoleAndDict(@PathVariable Long[] ids){
        archivesRoleService.removeArchivesRoleAndDict(ids);
        return CommonResult.ok();
    }

    /**
     * 查看档案管理名称 通过当前登录用户的角色去筛选
     * @author 小李
     * @date 11:06 2024/8/28
     * @param dictType 字典类型
    **/
    @GetMapping("/list")
    @Operation(summary = "查看企业管理-档案名称")
    public CommonResult listArchivesRoleAndDict(@RequestParam("dictType") String dictType){
        return success(archivesRoleService.listArchivesRoleAndDict(dictType));
    }
}
