package com.qnfhq.modules.user.service;

import com.qnfhq.common.service.BaseService;
import com.qnfhq.modules.user.entity.AppAssetEntity;
import com.qnfhq.modules.user.entity.AppUserEntity;
import com.qnfhq.modules.user.enums.AssetEnum;

import java.math.BigDecimal;
import java.util.List;

/**
 * 玩家资产表
 *
 * @author yelz 30262728@qq.com
 * @since 1.0.0 2025-11-13
 */
public interface AppAssetService extends BaseService<AppAssetEntity> {

    /**
     * 获取用户资产
     * @return
     */
    List<AppAssetEntity> getUserAssets();

    /**
     * 查询用户资产
     * @param appAssetEntity
     * @return
     */
    List<AppAssetEntity> selectList(AppAssetEntity appAssetEntity);

    /**
     * 获取用户资产
     * @param userId
     * @param symbol
     * @param type
     * @return
     */
    AppAssetEntity getAppAssetEntity(Long userId, String symbol,Integer type);

    /**
     *  冻结资产
     * @param userId
     * @param symbol
     * @param amout
     * @return
     */
    int frozeAssetByUserId(Long userId, String symbol, BigDecimal amout);

    /**
     * 解冻资产
     * @param userId
     * @param symbol
     * @param amout
     * @return
     */
    int unblockAssetByUserId(Long userId, String symbol, BigDecimal amout);

    /**
     * 创建资产
     * @param user
     * @param coin
     * @param type
     * @return
     */
    boolean createAsset(AppUserEntity user, String coin, Integer type);


    /**
     * c2c买币 增加资产
     * @param userId 用户ID
     * @param symbol 币种
     * @param amout 金额
     * @return
     */
    int addAssetByUserId(Long userId, String symbol, BigDecimal amout);

    /**
     * C2C卖家放币 减少资产
     * @param userId
     * @param symbol
     * @param amout
     * @return
     */
    int releaseAssetByUserId(Long userId, String symbol, BigDecimal amout);


}