package com.xiaoniu.system.platformsettings.carbrand.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoniu.common.core.resdata.RowsData;
import com.xiaoniu.system.platformsettings.carbrand.domain.TbCarBrand;
import com.xiaoniu.system.platformsettings.carbrand.dto.AddCarBrandDTO;
import com.xiaoniu.system.platformsettings.carbrand.dto.CarBrandListQueryDTO;
import com.xiaoniu.system.platformsettings.carbrand.dto.EditCarBrandDTO;
import com.xiaoniu.system.platformsettings.carbrand.vo.BrandListVO;
import com.xiaoniu.system.platformsettings.carbrand.vo.CarBrandDetailsVO;
import com.xiaoniu.system.platformsettings.carbrand.vo.CarBrandListVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 车辆品牌信息表 服务类
 * </p>
 *
 * @author haoxuyang
 * @since 2024-10-10 05:01:01
 */
public interface ITbCarBrandService extends IService<TbCarBrand> {

    /**
     * 车辆信息列表
     *
     * @param dto dto
     * @return RowsData<CarBrandListVO>
     */
    RowsData<CarBrandListVO> carBrandList(CarBrandListQueryDTO dto);

    /**
     * 新增车辆信息
     *
     * @param dto dto
     */
    void addCarBrand(AddCarBrandDTO dto);

    /**
     * 修改车辆信息
     *
     * @param dto dto
     */
    void editCarBrand(EditCarBrandDTO dto);

    /**
     * 车辆信息详情
     *
     * @param id id
     * @return CarBrandDetailsVO
     */
    CarBrandDetailsVO details(Long id);

    /**
     * 删除车辆信息
     *
     * @param id id
     */
    void delCarBrand(Long id);

    /**
     * 批量导入车辆信息
     *
     * @param file 文件
     */
    void batchImportCarInfo(MultipartFile file);

    /**
     * 获取子车型列表
     *
     * @param dto dto
     * @return List<CarBrandListVO>
     */
    List<CarBrandListVO> getCarListByParentId(CarBrandListQueryDTO dto);

    /**
     * 车辆信息列表(一级二级 下拉选)
     *
     * @return List<CarBrandListVO>
     */
    List<BrandListVO> brandList();

    /**
     * 车辆信息列表（不分页、全部）
     * @return List<CarBrandListVO>
     */
    List<CarBrandListVO> brandInfoList();
}
