package com.yida.data.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.agent.EduAgent;
import com.yida.data.system.dto.AgentAdminAccountSaveDTO;
import com.yida.data.system.dto.AgentSaveDTO;
import com.yida.data.system.dto.AgentSelectPageDTO;
import com.yida.data.system.vo.AgentAdminAccountDetailVO;
import com.yida.data.system.vo.AgentDetailVO;
import com.yida.data.system.vo.AgentSelectPageVO;

/**
 * 代理商表 Service接口
 *
 * @author ZYJ
 * @date 2021-09-26 11:19:45
 */
public interface EduAgentService extends IService<EduAgent> {

    /**
     * 查询代理商列表数据
     *
     * @param agentSelectPageDTO 代理商后台列表请求类
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.system.vo.AgentSelectPageVO>>
     * @author ZYJ
     * @date 2021/9/26 11:41
     */
    ResultBean<IPage<AgentSelectPageVO>> listAgentPage(AgentSelectPageDTO agentSelectPageDTO);

    /**
     * 保存代理商数
     *
     * @param agentSaveDTO 保存代理商请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/26 13:58
     */
    ResultBean<String> saveAgent(AgentSaveDTO agentSaveDTO);

    /**
     * 获取代理商详情
     *
     * @param agentId 代理商id
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.system.vo.AgentDetailVO>
     * @author ZYJ
     * @date 2021/9/26 14:59
     */
    ResultBean<AgentDetailVO> getAgentInfo(Long agentId);

    /**
     * 获取代理商管理员账号详情
     *
     * @param agentId 代理商id
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.system.vo.AgentAdminAccountDetailVO>
     * @author ZYJ
     * @date 2021/9/29 16:02
     */
    ResultBean<AgentAdminAccountDetailVO> getAgentAdminAccountInfo(Long agentId);

    /**
     * 创建代理商管理员账号
     *
     * @param agentAdminAccountSaveDTO 保存代理商管理员账号请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/29 16:14
     */
    ResultBean<String> saveAgentAdminAccount(AgentAdminAccountSaveDTO agentAdminAccountSaveDTO);
}
