package com.tmerclub.cloud.cuerecycle.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueOrderDTO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueSaveMailingDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.AdminCueOrderVO;
import com.tmerclub.cloud.cuerecycle.model.vo.AppCueOrderVO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO;

/**
 * 回收订单Service接口
 *
 * @author : frank
 * @create : 2025-04-15
 */
public interface CueOrderService {

    /**
     * 获取回收订单分页列表
     *
     * @param pageDTO     分页参数
     * @param cueOrderDTO 查询参数
     * @return 分页数据
     */
    PageVO<AdminCueOrderVO> page(PageDTO pageDTO, CueOrderDTO cueOrderDTO);

    /**
     * 获取回收订单详情
     *
     * @param orderId 主键
     * @return 回收订单详情
     */
    CueOrderVO getById(Long orderId);

    /**
     * 新增回收订单
     *
     * @param cueOrderDTO 新增参数
     * @return 新增结果
     */
    int save(CueOrderDTO cueOrderDTO);

    /**
     * 修改回收订单审核状态
     *
     * @param cueOrderDTO 修改参数
     * @return 修改结果
     */
    int updateAuditStatus(CueOrderDTO cueOrderDTO);

    /**
     * 修改回收订单评估状态
     *
     * @param cueOrderDTO 修改参数
     * @return 修改结果
     */
    int updateEvaluateStatus(CueOrderDTO cueOrderDTO);

    /**
     * 删除回收订单
     *
     * @param id 主键
     * @return 删除结果
     */
    int delete(Long id);

    /**
     * 根据订单ID获取回收订单详情
     *
     * @param orderId 订单ID
     * @return 回收订单详情
     */
    AppCueOrderVO getByAppCueOrderId(Long orderId);

    /**
     * 邮寄填写订单
     *
     * @param cueSaveMailingDTO 提交参数
     * @return 结果
     */
    int saveMailing(CueSaveMailingDTO cueSaveMailingDTO);
}