/**
 * 结算到钱包余额命令
 * 将可结算收益直接转入钱包 USDT 余额（同币种，无兑换）
 */
export class SettleToBalanceCommand {
  constructor(
    /**
     * 用户账户序列号（如 D25122700022）
     */
    public readonly accountSequence: string,

    /**
     * 用户ID（数字形式，用于兼容）
     */
    public readonly userId: string,
  ) {}
}

/**
 * 结算来源信息（单条奖励的来源）
 */
export interface SettlementSourceInfo {
  /**
   * 奖励流水ID
   */
  rewardEntryId: string;

  /**
   * 来源订单号（认种订单号）
   */
  sourceOrderNo: string;

  /**
   * 来源用户ID（认种者）
   */
  sourceUserId: string;

  /**
   * 来源用户账户序列号
   */
  sourceAccountSequence?: string;

  /**
   * 权益类型（SHARE_RIGHT, TEAM_RIGHT 等）
   */
  rightType: string;

  /**
   * USDT 金额
   */
  usdtAmount: number;

  /**
   * 算力金额
   */
  hashpowerAmount: number;

  /**
   * 备注
   */
  memo?: string;
}

/**
 * 结算结果
 */
export interface SettleToBalanceResult {
  /**
   * 是否成功
   */
  success: boolean;

  /**
   * 结算记录ID
   */
  settlementId?: string;

  /**
   * 结算的 USDT 总额
   */
  settledUsdtAmount: number;

  /**
   * 结算的算力总额
   */
  settledHashpowerAmount: number;

  /**
   * 涉及的奖励条目数量
   */
  rewardCount: number;

  /**
   * 按权益类型分解
   */
  breakdown?: Record<string, number>;

  /**
   * 错误信息（如果失败）
   */
  error?: string;
}
