export interface UserOverview {
  accountSequence: number;
  nickname: string;
  phone: string;
  hasAdopted: boolean;
  totalContribution: string;
  effectiveContribution: string;
  miningBalance: string;
  tradingBalance: string;
  frozenBalance: string;
  createdAt: string;
}

export interface UserDetail extends UserOverview {
  referrerAccountSequence: number | null;
  directReferralCount: number;
  directReferralAdoptedCount: number;
  teamSize: number;
  teamAdoptedCount: number;
  contributions: ContributionBreakdown;
}

export interface ContributionBreakdown {
  personal: string;
  systemOperation: string;
  systemProvince: string;
  systemCity: string;
  teamLevel: string;
  teamBonus: string;
  total: string;
}

export interface ContributionRecord {
  id: string;
  accountSequence: number;
  sourceAccountSequence: number;
  adoptionId: string;
  contributionType: string;
  distributionType: string;
  amount: string;
  rate: string;
  levelDepth: number | null;
  bonusTier: number | null;
  createdAt: string;
}

export interface MiningRecord {
  id: string;
  accountSequence: number;
  distributionMinute: string;
  contributionRatio: string;
  shareAmount: string;
  priceSnapshot: string;
  createdAt: string;
}

export interface TradeOrder {
  id: string;
  accountSequence: number;
  orderType: 'BUY' | 'SELL';
  status: 'PENDING' | 'PARTIAL' | 'FILLED' | 'CANCELLED';
  price: string;
  quantity: string;
  filledQuantity: string;
  createdAt: string;
  updatedAt: string;
}
