package com.xindazhou.platform.service.service.maintenance;

import com.xindazhou.platform.controller.admin.service.maintenance.vo.MaintenanceOrderPageReqVO;
import com.xindazhou.platform.controller.admin.service.maintenance.vo.MaintenanceOrderRespVO;
import com.xindazhou.platform.controller.admin.service.maintenance.vo.MaintenanceOrderSaveReqVO;
import com.xindazhou.platform.controller.admin.service.maintenance.vo.MaintenanceOrderStatusUpdateReqVO;
import com.xindazhou.framework.common.pojo.PageResult;
import jakarta.validation.Valid;

/**
 * 维保订单 Service 接口
 *
 * @author xindazhou
 */
public interface MaintenanceOrderService {

    /**
     * 创建维保订单
     *
     * @param createReqVO 创建信息
     * @return 订单ID
     */
    Long createMaintenanceOrder(@Valid MaintenanceOrderSaveReqVO createReqVO);

    /**
     * 更新维保订单
     *
     * @param updateReqVO 更新信息
     */
    void updateMaintenanceOrder(@Valid MaintenanceOrderSaveReqVO updateReqVO);

    /**
     * 删除维保订单
     *
     * @param id 订单ID
     */
    void deleteMaintenanceOrder(Long id);

    /**
     * 获得维保订单
     *
     * @param id 订单ID
     * @return 维保订单
     */
    MaintenanceOrderRespVO getMaintenanceOrder(Long id);

    /**
     * 获得维保订单分页列表
     *
     * @param pageReqVO 分页查询
     * @return 维保订单分页
     */
    PageResult<MaintenanceOrderRespVO> getMaintenanceOrderPage(MaintenanceOrderPageReqVO pageReqVO);

    /**
     * 更新维保订单状态
     *
     * @param id 订单ID
     * @param statusUpdateReqVO 状态更新信息
     */
    void updateMaintenanceOrderStatus(Long id, @Valid MaintenanceOrderStatusUpdateReqVO statusUpdateReqVO);

}

