package com.xindazhou.vehicle.service.archive;

import com.xindazhou.framework.common.pojo.PageResult;
import com.xindazhou.vehicle.controller.admin.vehicle.vo.VehicleArchiveChangeOwnerReqVO;
import com.xindazhou.vehicle.controller.admin.vehicle.vo.VehicleArchiveLockReqVO;
import com.xindazhou.vehicle.controller.admin.vehicle.vo.VehicleArchivePageReqVO;
import com.xindazhou.vehicle.controller.admin.vehicle.vo.VehicleArchiveRespVO;

/**
 * 车辆档案 Service 接口
 *
 * @author xindazhou
 */
public interface VehicleArchiveService {

    /**
     * 获得车辆档案分页
     *
     * @param pageReqVO 分页查询
     * @return 车辆档案分页
     */
    PageResult<VehicleArchiveRespVO> getVehicleArchivePage(VehicleArchivePageReqVO pageReqVO);

    /**
     * 获得车辆档案
     *
     * @param id 编号
     * @return 车辆档案
     */
    VehicleArchiveRespVO getVehicleArchive(Long id);

    /**
     * 更换车主
     *
     * @param reqVO 更换车主请求
     */
    void changeVehicleOwner(VehicleArchiveChangeOwnerReqVO reqVO);

    /**
     * 激活车辆
     *
     * @param id 车辆ID
     */
    void activateVehicle(Long id);

    /**
     * 锁定/解锁车辆
     *
     * @param reqVO 锁定请求
     */
    void lockVehicle(VehicleArchiveLockReqVO reqVO);

}

