package cn.iocoder.yudao.module.custom.service;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.custom.entity.UserCar;
import cn.iocoder.yudao.module.custom.vo.UserCarVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;

import java.util.List;

/**
 * 用户车辆信息表--用户个人录入的 Service 接口
 *
 * @author vinjor-M
 */
public interface UserCarService extends IService<UserCar> {

    /**
     * 创建或更新车辆信息
     * @author vinjor-M
     * @date 14:11 2024/10/11
     * @param userCarVO 车辆信息
     * @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
    **/
    CommonResult<?> createOrUpdate(UserCarVO userCarVO);

    /**
     * 查询当前登录用户的所有车辆
     * @author vinjor-M
     * @date 14:28 2024/10/11
     * @return java.util.List<cn.iocoder.yudao.module.custom.vo.UserCarVO>
    **/
    List<UserCarVO> getMyCar(Long userId);

    /**
     *
     * @author vinjor-M
     * @date 16:59 2024/10/11
     * @param imagePath 公网图片地址
     * @return java.lang.Object
    **/
    Object vehicleLicenseOCR(String imagePath) throws TencentCloudSDKException;

    /**
     * 将客户信息授权给某个修理厂
     * @author PQZ
     * @date 12:40 2024/10/12
     * @param tenantId 租户id
     * @param dataFrom 客户来源
     * @param userId 邀请者的用户ID
     * @param newUserId 被邀请者的用户ID
     * @param inviteType 邀请类型
    **/
    void empowerUserInfo(Long tenantId,String dataFrom,Long userId,Long newUserId,String inviteType);
}
