package com.ruoyi.cs.service;

import java.util.Date;
import java.util.List;
import com.ruoyi.cs.domain.CsAccountExtensionInfo;
import com.ruoyi.cs.domain.dto.CsAccountExtensionInfoDTO;
import com.ruoyi.cs.domain.dto.CsAchievementReservationDetailsDTO;
import com.ruoyi.cs.domain.vo.CsAccountExtensionInfoVO;

/**
 * 账户延期人员信息Service接口
 *
 * @author ruoyi
 * @date 2024-08-09
 */
public interface ICsAccountExtensionInfoService
{
    /**
     * 查询账户延期人员信息
     *
     * @param accountExtensionInfoId 账户延期人员信息主键
     * @return 账户延期人员信息
     */
    public CsAccountExtensionInfo selectCsAccountExtensionInfoByAccountExtensionInfoId(String accountExtensionInfoId);

    /**
     * 查询账户延期人员信息列表
     *
     * @param csAccountExtensionInfo 账户延期人员信息
     * @return 账户延期人员信息集合
     */
    public List<CsAccountExtensionInfo> selectCsAccountExtensionInfoList(CsAccountExtensionInfo csAccountExtensionInfo);

    /**
     * 查询账户延期人员信息列表
     *
     * @param resId 资源id
     * @return 账户延期人员信息集合
     */
    public List<CsAccountExtensionInfoVO> selectCsAccountExtensionInfoList(String resId);

    /**
     * 新增账户延期人员信息
     *
     * @param csAccountExtensionInfo 账户延期人员信息
     * @return 结果
     */
    public int insertCsAccountExtensionInfo(CsAccountExtensionInfo csAccountExtensionInfo);

    /**
     * 批量新增账户延期人员信息列表
     * @param list  列表
     * @param applyId 申请工单id
     * @param createAt 创建时间
     * @return
     */
    public int batchInsertCsAccountExtensionInfo(List<CsAccountExtensionInfoDTO> list, String applyId, Date createAt);

    /**
     * 修改账户延期人员信息
     *
     * @param csAccountExtensionInfo 账户延期人员信息
     * @return 结果
     */
    public int updateCsAccountExtensionInfo(CsAccountExtensionInfo csAccountExtensionInfo);

    /**
     * 批量删除账户延期人员信息
     *
     * @param accountExtensionInfoIds 需要删除的账户延期人员信息主键集合
     * @return 结果
     */
    public int deleteCsAccountExtensionInfoByAccountExtensionInfoIds(String[] accountExtensionInfoIds);

    /**
     * 删除账户延期人员信息信息
     *
     * @param accountExtensionInfoId 账户延期人员信息主键
     * @return 结果
     */
    public int deleteCsAccountExtensionInfoByAccountExtensionInfoId(String accountExtensionInfoId);

    /**
     * 批量覆盖账户延期人员信息信息
     * @param list  列表
     * @param applyId 申请工单id
     * @param coverTime 覆盖时间
     * @return
     */
    public void covertCsAccountExtensionInfo(List<CsAccountExtensionInfoDTO> list, String applyId, Date coverTime);

}
