package cn.iocoder.yudao.module.tickets.service;

import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlRepairTitemRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 针对表【dl_repair_titem(维修工单子表)】的数据库操作Service
 *
 * @author 小李
 * @date 17:40 2024/9/13
 **/
public interface DlRepairTitemService extends IService<DlRepairTitem> {

    /**
     * 维修工单子表 分页
     *
     * @author 小李
     * @date 10:34 2024/9/21
     * @param repairTitemRespVO 查询对象
     **/
    IPage<DlRepairTitemRespVO> getTItemPage(DlRepairTitemRespVO repairTitemRespVO, Page<DlRepairTitemRespVO> page);

    /**
     * 获取当前操作人操作的工单中的项目
     *
     * @param ticketId 工单ID
     * @author 小李
     * @date 15:01 2024/10/18
     **/
    List<DlRepairTitem> getProjectList(String ticketId);

    /**
     * 更新工单子表中维修人员、销售人员信息（app）
     * @param dlRepairTitem
     * @return
     */
    DlRepairTitem updateRepairAndSale(DlRepairTitem dlRepairTitem);

    /**
     * 查看单个维修子表的数据
     *
     * @author 小李
     * @param id 子表ID
     **/
    DlRepairTitem getItemById(String id);

    /**
     * 修改单个工单子项的内容
     *
     * @author 小李
     * @date 15:41 2024/10/24
     * @param dlRepairTitemReqVO 对象
     **/
    void updateItemById(DlRepairTitemReqVO dlRepairTitemReqVO);

    /**
     * 维修工单单个子项
     *
     * @author 小李
     * @date 20:18 2024/10/24
     * @param id 工单子项ID
     **/
    void removeItemById(String id);

    /**
     * 更新工单子表，维修项目配件的单价、数量、折扣、单项总价等
     * @author vinjor-M
     * @date 16:11 2024/10/31
    **/
    void updateRepairItem(List<DlRepairTitem> itemList);
}
