package cn.iocoder.yudao.module.app.company.controller;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.company.entity.Company;
import cn.iocoder.yudao.module.company.service.CompanyService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

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

/**
 * 用于需要获取企业信息的地方
 * 如维修的附近修理厂
 *
 * @author 小李
 * @date 14:04 2024/9/23
**/
@RestController
@RequestMapping("/userClient/base/company")
@Tag(name = "API - BASE 企业管理")
@Validated
public class CompanyAPI {

    @Resource
    private CompanyService companyService;

    /**
     * 通过服务名称查能提供服务的企业 分页
     *
     * @author 小李
     * @date 14:09 2024/9/23
     * @param company 企业对象，主要是serverCodes
     * @param pageNO 页码
     * @param pageSize 条数
    **/
    @GetMapping("/page")
    @Operation(summary = "通过服务名称查能提供服务的企业 分页")
    public CommonResult<?> getCompanyPageByServer(Company company,
                                          @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNO,
                                          @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
        Page<Company> page = new Page<>(pageNO, pageSize);
        return success(companyService.getCompanyPageByServer(company, page));
    }

    /**
     * 查企业能提供的业务
     *
     * @author 小李
     * @date 10:21 2024/9/24
     * @param id 企业ID
    **/
    @GetMapping("/get")
    @Operation(summary = "查企业能提供的业务")
    public CommonResult<?> getCompanyServerById(@RequestParam("id") String id){
        return success(companyService.getCompanyServerById(id));
    }
}
