airdrop_eligibility.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. class AirdropEligibility {
  2. final int inviteCount;
  3. final int requiredInviteCount;
  4. final bool inviteTaskCompleted;
  5. final bool hasActiveStaking;
  6. final bool hasPendingAirdrop;
  7. final String claimableAmount;
  8. final String? claimableCoinUnit;
  9. final bool eligible;
  10. final String message;
  11. const AirdropEligibility({
  12. required this.inviteCount,
  13. required this.requiredInviteCount,
  14. required this.inviteTaskCompleted,
  15. required this.hasActiveStaking,
  16. required this.hasPendingAirdrop,
  17. required this.claimableAmount,
  18. this.claimableCoinUnit,
  19. required this.eligible,
  20. required this.message,
  21. });
  22. factory AirdropEligibility.empty() {
  23. return const AirdropEligibility(
  24. inviteCount: 0,
  25. requiredInviteCount: 3,
  26. inviteTaskCompleted: false,
  27. hasActiveStaking: false,
  28. hasPendingAirdrop: false,
  29. claimableAmount: '0',
  30. claimableCoinUnit: null,
  31. eligible: false,
  32. message: '',
  33. );
  34. }
  35. factory AirdropEligibility.fromJson(Map<String, dynamic> json) {
  36. return AirdropEligibility(
  37. inviteCount: int.tryParse('${json['inviteCount'] ?? 0}') ?? 0,
  38. requiredInviteCount:
  39. int.tryParse('${json['requiredInviteCount'] ?? 0}') ?? 0,
  40. inviteTaskCompleted: json['inviteTaskCompleted'] == true,
  41. hasActiveStaking: json['hasActiveStaking'] == true,
  42. hasPendingAirdrop: json['hasPendingAirdrop'] == true,
  43. claimableAmount: '${json['claimableAmount'] ?? '0'}',
  44. claimableCoinUnit: json['claimableCoinUnit']?.toString(),
  45. eligible: json['eligible'] == true,
  46. message: '${json['message'] ?? ''}',
  47. );
  48. }
  49. }