package com.ruoyi.info.collection.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.info.collection.domain.CcdiAccountInfo;
import com.ruoyi.info.collection.domain.dto.CcdiAccountInfoQueryDTO;
import com.ruoyi.info.collection.domain.vo.CcdiAccountInfoVO;
import com.ruoyi.info.collection.domain.vo.CcdiAccountRelationOptionVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 账户库数据层
 *
 * @author ruoyi
 * @date 2026-04-13
 */
public interface CcdiAccountInfoMapper extends BaseMapper<CcdiAccountInfo> {

    /**
     * 分页查询账户库
     *
     * @param page 分页对象
     * @param queryDTO 查询条件
     * @return 账户库分页结果
     */
    Page<CcdiAccountInfoVO> selectAccountInfoPage(@Param("page") Page<CcdiAccountInfoVO> page,
                                                  @Param("query") CcdiAccountInfoQueryDTO queryDTO);

    /**
     * 查询账户库详情
     *
     * @param id 主键ID
     * @return 账户库详情
     */
    CcdiAccountInfoVO selectAccountInfoById(@Param("id") Long id);

    /**
     * 导出账户库列表
     *
     * @param queryDTO 查询条件
     * @return 导出列表
     */
    List<CcdiAccountInfoVO> selectAccountInfoListForExport(@Param("query") CcdiAccountInfoQueryDTO queryDTO);

    /**
     * 查询关系人下拉选项
     *
     * @param staffId 员工工号
     * @return 关系人下拉
     */
    List<CcdiAccountRelationOptionVO> selectRelationOptionsByStaffId(@Param("staffId") Long staffId);
}
