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

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.archives.entity.Archives;
import cn.iocoder.yudao.module.archives.service.ArchivesService;
import cn.iocoder.yudao.module.archives.vo.ArchivesReqVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
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 20:15 2024/8/28
**/
@RestController
@RequestMapping("/archives")
@Validated
public class ArchivesController {

    @Resource
    private ArchivesService archivesService;

    /**
     * 新增或修改 档案表
     * @author 小李
     * @date 10:42 2024/8/29
     * @param archivesReqVO 请求对象
    **/
    @PostMapping("/update")
    @Operation(summary = "新增/修改企业管理-档案表")
    public CommonResult updateArchives(@RequestBody ArchivesReqVO archivesReqVO){
        archivesService.updateArchives(archivesReqVO);
        return CommonResult.ok();
    }

    /**
     * 分页查询 档案表
     * @author 小李
     * @date 11:08 2024/8/29
     * @param archivesReqVO 查询条件
     * @param pageNo 页码
     * @param pageSize 条数
    **/
    @GetMapping("/list")
    @Operation(summary = "分页查企业管理-档案表")
    public CommonResult queryArchivesPage(ArchivesReqVO archivesReqVO,
                                          @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
                                          @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize){
        Page<Archives> page = new Page<>(pageNo, pageSize);
        return success(archivesService.queryArchivesPage(archivesReqVO, page));
    }

    /**
     * 删除 档案表
     * @author 小李
     * @date 14:14 2024/8/29
     * @param id 记录ID
    **/
    @DeleteMapping("/remove/{id}")
    @Operation(summary = "删除企业管理-档案表")
    public CommonResult removeArchivesById(@PathVariable String id){
        archivesService.removeArchivesById(id);
        return CommonResult.ok();
    }
}
