package com.xindazhou.vehicle.service;

import com.xindazhou.vehicle.api.dto.bind.VehicleBindReqDTO;
import com.xindazhou.vehicle.api.dto.bind.VehicleBindRespDTO;

import java.util.List;

/**
 * 车辆绑定 Service 接口
 *
 * @author xindazhou
 */
public interface VehicleBindService {

    /**
     * 绑定车辆
     *
     * @param reqDTO 绑定请求
     * @return 绑定关系编号
     */
    Long bindVehicle(VehicleBindReqDTO reqDTO);

    /**
     * 解绑车辆
     *
     * @param id 绑定关系编号
     */
    void unbindVehicle(Long id);

    /**
     * 获取车辆的所有绑定关系
     *
     * @param vehicleId 车辆编号
     * @return 绑定关系列表
     */
    List<VehicleBindRespDTO> listBindByVehicleId(Long vehicleId);

    /**
     * 获取用户的所有绑定关系
     *
     * @param userId 用户编号
     * @param userType 用户类型
     * @return 绑定关系列表
     */
    List<VehicleBindRespDTO> listBindByUserId(Long userId, Integer userType);

}

