package com.m2pool.manage.service;

import com.m2pool.common.core.Result.R;
import com.m2pool.common.core.web.page.TableDataInfo;
import com.m2pool.manage.dto.*;
import com.m2pool.manage.vo.*;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;


/**
 * @Description 广播信息 服务接口
 */
public interface ManageUserService{

    /**
     * 分页查询所有用户信息
     * @param manageUserVo
     * @return
     */
    TableDataInfo<ManageUserDto> listInfo(ManageUserVo manageUserVo);

    /**
     * 发送存文本邮件
     * @param to
     * @param subject
     * @param text
     */
    R<String>  sendTextMailMessage(String to,String subject,String text);


    /**
     * 管理系统:挖矿账户所有收益金额、时间、状态、转账地址
     * @param manageUserInfoVo
     * @return
     */
    R<WalletEarningsInfoDto> getUserInfo(ManageUserInfoVo manageUserInfoVo);


    /**
     * 管理系统:查询用户对应的挖矿账户及币种信息
     * @param manageMiningUserVo
     * @return
     */
    R<List<ManageMiningUserDto>> getMiningUserInfo(ManageMiningUserVo manageMiningUserVo);

    /**
     * 管理系统:用户算力曲线
     * @param manageMiningUserPowerVo
     * @return
     */
    R<List<ManageMiningUserPowerDto>> getMiningPowerInfo(ManageMiningUserPowerVo manageMiningUserPowerVo);


    /**
     * 管理系统:获取挖矿账户对应的矿工在离线情况
     * @param manageMiningUserPowerVo
     * @return
     */
    R<List<ManageMiningUserOnlineDto>> getMinerUserOnlineStatus(ManageMiningUserPowerVo manageMiningUserPowerVo);


    /**
     *
     * 管理系统:用户待支付汇总
     * @param coinVo
     * @return
     */
    TableDataInfo<SummaryOfPendingPaymentsDto> summaryOfPendingPayments(PageVo pageVo);
}
