package com.m2pool.lease.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.v2.MachineInfoDto;
import com.m2pool.lease.dto.v2.SellerMachineInfoDto;
import com.m2pool.lease.dto.v2.ShopInfoDto;
import com.m2pool.lease.entity.LeaseMachine;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.ProductPageVo;
import com.m2pool.lease.vo.v2.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <p>
 * gpu类型出售矿机表 服务类
 * </p>
 *
 * @author yyb
 * @since 2025-11-21
 */
public interface LeaseMachineService extends IService<LeaseMachine> {

    /**
     * 获取商品对应的实际商品列表
     * @return
     */
    PageResult<ShopInfoDto> getShopList(ProductPageVo productPageVo);


    /**
     * 获取店铺矿机详情
     * @return
     */
    PageResult<MachineInfoDto> getShopMachineList(ShopMachineVo shopMachineVo);


    /**
     * 获取卖家页面矿机列表
     * @return
     */
    PageResult<SellerMachineInfoDto> getShopMachineListForSeller(SellerMachineVo sellerMachineVo);


    /**
     * 添加ASIC矿机
     * @return
     */
    Result<String> addAsicMachine( AsicMachineParamsVo asicMachineParamsVo);


    /**
     * 修改ASIC矿机
     * @return
     */
    Result<String> updateAsicMachine( AsicMachineParamsVo asicMachineParamsVo);


    /**
     * 修改GPU矿机
     * @return
     */
    Result<String> updateGpuMachine(List<GpuMachineParamsVo> gpuMachineParamsVoList);

    /**
     * 矿机上下架
     * @return
     */
    Result<String> updateMachineState(MachineStateVo machineStateVo);


    /**
     * 删除矿机
     * @return
     */
    Result<String> deleteMachine(BaseVo baseVo);


    /**
     * 获取支持的币种
     * @return
     */
    Result<List<String>> getSupportCoin();


    /**
     * 获取支持的算法
     * @return
     */
    Result<List<String>> getSupportAlgo( String coin);
}
