package com.cusc.nirvana.user.rnr.fp.service;

import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.fp.dto.*;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface ISimVehicleRelService {

    /**
     * 导入车卡关系接口
     * @param bindingDTO
     * @return
     */
    Response<SimVehicleBindingResult> importSimVehicle(@RequestBody SimVehicleBindingDTO bindingDTO);

    /**
     * 车卡关系解绑
     * @param requestDTO
     * @return
     */
    Response<SimVehicleDTO> unbind(BindRequestDTO requestDTO);

    /**
     * 车卡关系绑定
     * @param requestDTO
     * @return
     */
    Response<SimVehicleDTO> bind(BindRequestDTO requestDTO);

    /**
     * 车辆绑卡查询
     * @param vin
     * @return
     */
    Response<List<VinIccidDTO>> getIccidByVin(String vin);

    /**
     * 根据iccid查询车卡关系
     * @param iccid
     * @return
     */
    Response<VinIccidDTO> getVinByIccid(String iccid);

    /**
     * 查看车卡绑定状态
     * @param iccid
     * @param vin
     * @return
     */
    Response<VinIccidDTO> getBindingInfo(String iccid, String vin);

    /**
     * 查询多个iccid的详细信息
     * @param listDTO
     * @return
     */
    Response<List<IccidDetailDTO>> queryByIccids(@RequestBody IccidListDTO listDTO);

    /**
     * 获取指定iccid的明细
     * @param iccid
     * @return
     */
    Response<IccidDetailDTO> getDetailByIccid(String iccid);

    /**
     * 查询车卡绑定信息列表
     * @param queryDTO
     * @return
     */
    Response<PageResult<SimVehicleResultDTO>> queryBindingPage(SimVehicleQueryDTO queryDTO);


}
