/// 微信支付(对应 Android WxPayEntity) class WxPay { final String appId; final String partnerId; final String prepayId; final String packageValue; final String nonceStr; final String timeStamp; final String sign; const WxPay({ required this.appId, required this.partnerId, required this.prepayId, required this.packageValue, required this.nonceStr, required this.timeStamp, required this.sign, }); factory WxPay.fromJson(Map json) => WxPay( appId: json['appid'] as String? ?? '', partnerId: json['partnerid'] as String? ?? '', prepayId: json['prepayid'] as String? ?? '', packageValue: json['package'] as String? ?? 'Sign=WXPay', nonceStr: json['noncestr'] as String? ?? '', timeStamp: json['timestamp'] as String? ?? '', sign: json['sign'] as String? ?? '', ); } /// 提现记录(对应 Android TiXianListEntity) class WithdrawalRecord { final int id; final double amount; final String status; // pending / success / failed final DateTime createdAt; final String? bankAccount; final String? failureReason; const WithdrawalRecord({ required this.id, required this.amount, required this.status, required this.createdAt, this.bankAccount, this.failureReason, }); factory WithdrawalRecord.fromJson(Map json) => WithdrawalRecord( id: json['id'] as int? ?? 0, amount: (json['amount'] as num?)?.toDouble() ?? 0, status: json['status'] as String? ?? 'pending', createdAt: DateTime.tryParse(json['created_at'] as String? ?? '') ?? DateTime.now(), bankAccount: json['bank_account'] as String?, failureReason: json['failure_reason'] as String?, ); } /// 金额明细(对应 Android AmountListItemViewModel) class AmountItem { final int id; final String title; final double amount; final String type; // income / expense final DateTime createdAt; final String? orderNo; const AmountItem({ required this.id, required this.title, required this.amount, required this.type, required this.createdAt, this.orderNo, }); factory AmountItem.fromJson(Map json) => AmountItem( id: json['id'] as int? ?? 0, title: json['title'] as String? ?? '', amount: (json['amount'] as num?)?.toDouble() ?? 0, type: json['type'] as String? ?? 'income', createdAt: DateTime.tryParse(json['created_at'] as String? ?? '') ?? DateTime.now(), orderNo: json['order_no'] as String?, ); Map toJson() => { 'id': id, 'title': title, 'amount': amount, 'type': type, 'created_at': createdAt.toIso8601String(), 'order_no': orderNo, }; } /// 充值(对应 Android Recharge) class Recharge { final String id; final double amount; final String payMethod; final String? qrCodeUrl; const Recharge({ required this.id, required this.amount, required this.payMethod, this.qrCodeUrl, }); factory Recharge.fromJson(Map json) => Recharge( id: json['id'] as String? ?? '', amount: (json['amount'] as num?)?.toDouble() ?? 0, payMethod: json['pay_method'] as String? ?? '', qrCodeUrl: json['qr_code_url'] as String?, ); }