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

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.custom.service.UserCarService;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
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.*;

import javax.annotation.Resource;

@Tag(name = "管理后台 - 用户车辆信息表--用户个人录入的")
@RestController
@RequestMapping("/base/user-car")
@Validated
public class UserCarController {

    @Resource
    private UserCarService userCarService;

    /**
     * 查询当前登录用户的所有车辆
     * @author vinjor-M
     * @date 14:28 2024/10/11
    **/
    @GetMapping("/getMyCar")
    @Operation(summary = "查询个人车辆列表")
    public CommonResult<?> getMyCar() {
        return CommonResult.success(userCarService.getMyCar(null));
    }


    /**
     * 授权个人信息到某企业
     * @author PQZ
     * @date 11:49 2024/10/12
    **/
    @GetMapping("/empowerUserInfo")
    @Operation(summary = "授权个人信息到某企业")
    public CommonResult<?> empowerUserInfo(@RequestParam("tenantId") Long tenantId,@RequestParam("systemCode") String systemCode) {
        userCarService.empowerUserInfo(tenantId,systemCode,null,null,null);
        return CommonResult.success(true);
    }



    /**
     * 创建或更新车辆信息
     *
     * @param userCarVO 车辆信息
     */
    @PostMapping("/createOrUpdate")
    @Operation(summary = "创建或更新车辆信息")
    public CommonResult<?> createOrUpdate(@RequestBody UserCarVO userCarVO) {
        return userCarService.createOrUpdate(userCarVO);
    }

    /**
     * OCR识别
     * @author vinjor-M
     * @date 16:58 2024/10/11
     * @param imagePath 公网图片地址
     * @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
    **/
    @PostMapping("/vehicleLicenseOCR")
    public CommonResult<?> vehicleLicenseOCR(@RequestBody String imagePath) throws Exception {
        return CommonResult.success(userCarService.vehicleLicenseOCR(imagePath));
    }

    /**
     * 删除车辆
     * @author vinjor-M
     * @date 14:28 2024/10/11
     **/
    @DeleteMapping("/delById")
    @Operation(summary = "删除车辆")
    public CommonResult<?> delById(String id) {
        return CommonResult.success(userCarService.removeById(id));
    }
}
