| 1 | import 'package:cw_core/enumerable_item.dart'; |
| 2 | |
| 3 | class TradeState extends EnumerableItem<String> with Serializable<String> { |
| 4 | const TradeState({required String raw, required String title}) : super(raw: raw, title: title); |
| 5 | |
| 6 | @override |
| 7 | bool operator ==(Object other) => other is TradeState && other.raw == raw; |
| 8 | |
| 9 | static const pending = TradeState(raw: 'pending', title: 'Pending'); |
| 10 | static const awaiting = TradeState(raw: 'awaiting', title: 'Awaiting'); |
| 11 | static const confirming = TradeState(raw: 'confirming', title: 'Confirming'); |
| 12 | static const trading = TradeState(raw: 'trading', title: 'Trading'); |
| 13 | static const traded = TradeState(raw: 'traded', title: 'Traded'); |
| 14 | static const complete = TradeState(raw: 'complete', title: 'Complete'); |
| 15 | static const toBeCreated = TradeState(raw: 'TO_BE_CREATED', title: 'To be created'); |
| 16 | static const unpaid = TradeState(raw: 'UNPAID', title: 'Unpaid'); |
| 17 | static const underpaid = TradeState(raw: 'UNDERPAID', title: 'Underpaid'); |
| 18 | static const paidUnconfirmed = TradeState(raw: 'PAID_UNCONFIRMED', title: 'Paid unconfirmed'); |
| 19 | static const paid = TradeState(raw: 'PAID', title: 'Paid'); |
| 20 | static const btcSent = TradeState(raw: 'BTC_SENT', title: 'Btc sent'); |
| 21 | static const timeout = TradeState(raw: 'TIMED_OUT', title: 'Timeout'); |
| 22 | static const notFound = TradeState(raw: 'NOT_FOUND', title: 'Not found'); |
| 23 | static const created = TradeState(raw: 'created', title: 'Created'); |
| 24 | static const finished = TradeState(raw: 'finished', title: 'Finished'); |
| 25 | static const waiting = TradeState(raw: 'waiting', title: 'Waiting'); |
| 26 | static const processing = TradeState(raw: 'processing', title: 'Processing'); |
| 27 | static const waitingPayment = TradeState(raw: 'waitingPayment', title: 'Waiting payment'); |
| 28 | static const waitingAuthorization = |
| 29 | TradeState(raw: 'waitingAuthorization', title: 'Waiting authorization'); |
| 30 | static const failed = TradeState(raw: 'failed', title: 'Failed'); |
| 31 | static const completed = TradeState(raw: 'completed', title: 'Completed'); |
| 32 | static const expired = TradeState(raw: 'expired', title: 'Expired'); |
| 33 | static const settling = TradeState(raw: 'settling', title: 'Settlement in progress'); |
| 34 | static const settled = TradeState(raw: 'settled', title: 'Settlement completed'); |
| 35 | static const wait = TradeState(raw: 'wait', title: 'Waiting'); |
| 36 | static const overdue = TradeState(raw: 'overdue', title: 'Overdue'); |
| 37 | static const refund = TradeState(raw: 'refund', title: 'Refund'); |
| 38 | static const refunded = TradeState(raw: 'refunded', title: 'Refunded'); |
| 39 | static const confirmation = TradeState(raw: 'confirmation', title: 'Confirmation'); |
| 40 | static const confirmed = TradeState(raw: 'confirmed', title: 'Confirmed'); |
| 41 | static const exchanging = TradeState(raw: 'exchanging', title: 'Exchanging'); |
| 42 | static const sending = TradeState(raw: 'sending', title: 'Sending'); |
| 43 | static const success = TradeState(raw: 'success', title: 'Success'); |
| 44 | |
| 45 | static TradeState deserialize({required String raw}) { |
| 46 | switch (raw) { |
| 47 | case '1': |
| 48 | return unpaid; |
| 49 | case '2': |
| 50 | return paidUnconfirmed; |
| 51 | case '3': |
| 52 | return sending; |
| 53 | case '4': |
| 54 | return confirmed; |
| 55 | case '5': |
| 56 | case '6': |
| 57 | return exchanging; |
| 58 | case '7': |
| 59 | return sending; |
| 60 | case '8': |
| 61 | return complete; |
| 62 | case '9': |
| 63 | return expired; |
| 64 | case '10': |
| 65 | return underpaid; |
| 66 | case '11': |
| 67 | return failed; |
| 68 | } |
| 69 | |
| 70 | switch (raw) { |
| 71 | case 'NOT_FOUND': |
| 72 | return notFound; |
| 73 | case 'pending': |
| 74 | return pending; |
| 75 | case 'confirming': |
| 76 | return confirming; |
| 77 | case 'trading': |
| 78 | return trading; |
| 79 | case 'traded': |
| 80 | return traded; |
| 81 | case 'complete': |
| 82 | return complete; |
| 83 | case 'TO_BE_CREATED': |
| 84 | return toBeCreated; |
| 85 | case 'UNPAID': |
| 86 | return unpaid; |
| 87 | case 'UNDERPAID': |
| 88 | return underpaid; |
| 89 | case 'PAID_UNCONFIRMED': |
| 90 | return paidUnconfirmed; |
| 91 | case 'PAID': |
| 92 | return paid; |
| 93 | case 'BTC_SENT': |
| 94 | return btcSent; |
| 95 | case 'TIMED_OUT': |
| 96 | return timeout; |
| 97 | case 'created': |
| 98 | return created; |
| 99 | case 'finished': |
| 100 | return finished; |
| 101 | case 'waiting': |
| 102 | return waiting; |
| 103 | case 'processing': |
| 104 | case 'inProgress': |
| 105 | return processing; |
| 106 | case 'waitingPayment': |
| 107 | return waitingPayment; |
| 108 | case 'waitingAuthorization': |
| 109 | return waitingAuthorization; |
| 110 | case 'failed': |
| 111 | case 'error': |
| 112 | return failed; |
| 113 | case 'completed': |
| 114 | return completed; |
| 115 | case 'wait': |
| 116 | return wait; |
| 117 | case 'overdue': |
| 118 | return overdue; |
| 119 | case 'refund': |
| 120 | return refund; |
| 121 | case 'refunded': |
| 122 | return refunded; |
| 123 | case 'confirmation': |
| 124 | case 'verifying': |
| 125 | return confirmation; |
| 126 | case 'confirmed': |
| 127 | return confirmed; |
| 128 | case 'exchanging': |
| 129 | return exchanging; |
| 130 | case 'sending': |
| 131 | case 'sending_confirmation': |
| 132 | return sending; |
| 133 | case 'success': |
| 134 | case 'done': |
| 135 | return success; |
| 136 | case 'expired': |
| 137 | return expired; |
| 138 | case 'awaiting': |
| 139 | return awaiting; |
| 140 | default: |
| 141 | return TradeState(raw: raw, title: raw); |
| 142 | } |
| 143 | } |
| 144 | |
| 145 | @override |
| 146 | int get hashCode => raw.hashCode ^ title.hashCode; |
| 147 | } |