package com.starry.admin.modules.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.order.module.entity.PlayOrderContinueInfoEntity;
import com.starry.admin.modules.order.module.vo.PlayOrderContinueQueryVo;
import com.starry.admin.modules.order.module.vo.PlayOrderContinueReturnVo;
import com.starry.admin.modules.order.module.vo.PlayOrderReviewStateEditVo;

/**
 * 订单续单信息Service接口
 *
 * @author admin
 * @since 2024-05-10
 */
public interface IPlayOrderContinueInfoService extends IService<PlayOrderContinueInfoEntity> {

    /**
     * 根据订单ID查询订单续单信息
     *
     * @param orderId
     *            订单ID
     * @return 订单续单信息
     */
    PlayOrderContinueInfoEntity selectPlayOrderId(String orderId);

    /**
     * 查询订单续单信息
     *
     * @param id
     *            订单续单信息主键
     * @return 订单续单信息
     */
    PlayOrderContinueInfoEntity selectPlayOrderContinueInfoById(String id);

    /**
     * 分页查询订单续单对象
     *
     * @param vo
     *            订单续单对象查询对象
     * @return 订单续单信息集合
     */
    IPage<PlayOrderContinueReturnVo> selectPlayByPage(PlayOrderContinueQueryVo vo);

    /**
     * 修改续单审核状态
     *
     * @param vo
     *            续单审核申请对象
     */
    void updateReviewState(PlayOrderReviewStateEditVo vo);

    /**
     * 查询订单续单信息列表
     *
     * @param playOrderContinueInfo
     *            订单续单信息
     * @return 订单续单信息集合
     */
    IPage<PlayOrderContinueInfoEntity> selectPlayOrderContinueInfoByPage(
            PlayOrderContinueInfoEntity playOrderContinueInfo);

    /**
     * 新增订单续单信息
     *
     * @param playOrderContinueInfo
     *            订单续单信息
     * @return 结果
     */
    boolean create(PlayOrderContinueInfoEntity playOrderContinueInfo);

    /**
     * 修改订单续单信息
     *
     * @param playOrderContinueInfo
     *            订单续单信息
     * @return 结果
     */
    boolean update(PlayOrderContinueInfoEntity playOrderContinueInfo);

    /**
     * 批量删除订单续单信息
     *
     * @param ids
     *            需要删除的订单续单信息主键集合
     * @return 结果
     */
    int deletePlayOrderContinueInfoByIds(String[] ids);

    /**
     * 删除订单续单信息信息
     *
     * @param id
     *            订单续单信息主键
     * @return 结果
     */
    int deletePlayOrderContinueInfoById(String id);
}
