1
1
// ignore_for_file: prefer_single_quotes, unnecessary_import, unused_import
2
2
3
3
import 'package:equatable/equatable.dart' ;
4
- import 'package:flutter_deriv_api/api/exceptions/exceptions.dart' ;
5
4
5
+ import 'package:flutter_deriv_api/api/exceptions/base_api_exception.dart' ;
6
6
import 'package:flutter_deriv_api/api/models/base_exception_model.dart' ;
7
7
import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_create_receive.dart' ;
8
8
import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_create_send.dart' ;
@@ -25,10 +25,8 @@ abstract class P2pAdvertCreateResponseModel {
25
25
class P2pAdvertCreateResponse extends P2pAdvertCreateResponseModel {
26
26
/// Initializes P2p advert create response class.
27
27
const P2pAdvertCreateResponse ({
28
- P2pAdvertCreate ? p2pAdvertCreate,
29
- }) : super (
30
- p2pAdvertCreate: p2pAdvertCreate,
31
- );
28
+ super .p2pAdvertCreate,
29
+ });
32
30
33
31
/// Creates an instance from JSON.
34
32
factory P2pAdvertCreateResponse .fromJson (
@@ -185,6 +183,8 @@ final Map<String, VisibilityStatusItemEnum> visibilityStatusItemEnumMapper =
185
183
"advertiser_ads_paused" : VisibilityStatusItemEnum .advertiserAdsPaused,
186
184
"advertiser_approval" : VisibilityStatusItemEnum .advertiserApproval,
187
185
"advertiser_balance" : VisibilityStatusItemEnum .advertiserBalance,
186
+ "advertiser_block_trade_ineligible" :
187
+ VisibilityStatusItemEnum .advertiserBlockTradeIneligible,
188
188
"advertiser_daily_limit" : VisibilityStatusItemEnum .advertiserDailyLimit,
189
189
"advertiser_temp_ban" : VisibilityStatusItemEnum .advertiserTempBan,
190
190
};
@@ -212,6 +212,9 @@ enum VisibilityStatusItemEnum {
212
212
/// advertiser_balance.
213
213
advertiserBalance,
214
214
215
+ /// advertiser_block_trade_ineligible.
216
+ advertiserBlockTradeIneligible,
217
+
215
218
/// advertiser_daily_limit.
216
219
advertiserDailyLimit,
217
220
@@ -229,6 +232,7 @@ abstract class P2pAdvertCreateModel {
229
232
required this .rateType,
230
233
required this .rateDisplay,
231
234
required this .rate,
235
+ required this .orderExpiryPeriod,
232
236
required this .minOrderAmountLimitDisplay,
233
237
required this .minOrderAmountLimit,
234
238
required this .minOrderAmountDisplay,
@@ -245,6 +249,7 @@ abstract class P2pAdvertCreateModel {
245
249
required this .createdTime,
246
250
required this .country,
247
251
required this .counterpartyType,
252
+ required this .blockTrade,
248
253
required this .amountDisplay,
249
254
required this .amount,
250
255
required this .advertiserDetails,
@@ -280,6 +285,9 @@ abstract class P2pAdvertCreateModel {
280
285
/// Conversion rate from advertiser's account currency to `local_currency` . An absolute rate value (fixed), or percentage offset from current market rate (floating).
281
286
final double rate;
282
287
288
+ /// Expiry period (seconds) for order created against this ad.
289
+ final int orderExpiryPeriod;
290
+
283
291
/// Minimum order amount at this time, in `account_currency` , formatted to appropriate decimal places.
284
292
final String minOrderAmountLimitDisplay;
285
293
@@ -328,6 +336,9 @@ abstract class P2pAdvertCreateModel {
328
336
/// Type of transaction from the opposite party's perspective.
329
337
final CounterpartyTypeEnum counterpartyType;
330
338
339
+ /// Indicates if this is block trade advert or not.
340
+ final bool blockTrade;
341
+
331
342
/// The total amount specified in advert, in `account_currency` , formatted to appropriate decimal places.
332
343
final String amountDisplay;
333
344
@@ -378,6 +389,7 @@ abstract class P2pAdvertCreateModel {
378
389
/// - `advertiser_ads_paused` : the advertiser has paused all adverts.
379
390
/// - `advertiser_approval` : the advertiser's proof of identity is not verified.
380
391
/// - `advertiser_balance` : the advertiser's P2P balance is less than the minimum order.
392
+ /// - `advertiser_block_trade_ineligible` : the advertiser is not currently eligible for block trading.
381
393
/// - `advertiser_daily_limit` : the advertiser's remaining daily limit is less than the minimum order.
382
394
/// - `advertiser_temp_ban` : the advertiser is temporarily banned from P2P.
383
395
final List <VisibilityStatusItemEnum >? visibilityStatus;
@@ -387,82 +399,46 @@ abstract class P2pAdvertCreateModel {
387
399
class P2pAdvertCreate extends P2pAdvertCreateModel {
388
400
/// Initializes P2p advert create class.
389
401
const P2pAdvertCreate ({
390
- required String accountCurrency,
391
- required int activeOrders,
392
- required AdvertiserDetails advertiserDetails,
393
- required double amount,
394
- required String amountDisplay,
395
- required CounterpartyTypeEnum counterpartyType,
396
- required String country,
397
- required DateTime createdTime,
398
- required String description,
399
- required String id,
400
- required bool isActive,
401
- required bool isVisible,
402
- required String localCurrency,
403
- required double maxOrderAmount,
404
- required String maxOrderAmountDisplay,
405
- required double maxOrderAmountLimit,
406
- required String maxOrderAmountLimitDisplay,
407
- required double minOrderAmount,
408
- required String minOrderAmountDisplay,
409
- required double minOrderAmountLimit,
410
- required String minOrderAmountLimitDisplay,
411
- required double rate,
412
- required String rateDisplay,
413
- required RateTypeEnum rateType,
414
- required double remainingAmount,
415
- required String remainingAmountDisplay,
416
- required P2pAdvertCreateTypeEnum type,
417
- String ? contactInfo,
418
- double ? effectiveRate,
419
- String ? effectiveRateDisplay,
420
- String ? paymentInfo,
421
- String ? paymentMethod,
422
- Map <String , PaymentMethodDetailsProperty >? paymentMethodDetails,
423
- List <String >? paymentMethodNames,
424
- double ? price,
425
- String ? priceDisplay,
426
- List <VisibilityStatusItemEnum >? visibilityStatus,
427
- }) : super (
428
- accountCurrency: accountCurrency,
429
- activeOrders: activeOrders,
430
- advertiserDetails: advertiserDetails,
431
- amount: amount,
432
- amountDisplay: amountDisplay,
433
- counterpartyType: counterpartyType,
434
- country: country,
435
- createdTime: createdTime,
436
- description: description,
437
- id: id,
438
- isActive: isActive,
439
- isVisible: isVisible,
440
- localCurrency: localCurrency,
441
- maxOrderAmount: maxOrderAmount,
442
- maxOrderAmountDisplay: maxOrderAmountDisplay,
443
- maxOrderAmountLimit: maxOrderAmountLimit,
444
- maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay,
445
- minOrderAmount: minOrderAmount,
446
- minOrderAmountDisplay: minOrderAmountDisplay,
447
- minOrderAmountLimit: minOrderAmountLimit,
448
- minOrderAmountLimitDisplay: minOrderAmountLimitDisplay,
449
- rate: rate,
450
- rateDisplay: rateDisplay,
451
- rateType: rateType,
452
- remainingAmount: remainingAmount,
453
- remainingAmountDisplay: remainingAmountDisplay,
454
- type: type,
455
- contactInfo: contactInfo,
456
- effectiveRate: effectiveRate,
457
- effectiveRateDisplay: effectiveRateDisplay,
458
- paymentInfo: paymentInfo,
459
- paymentMethod: paymentMethod,
460
- paymentMethodDetails: paymentMethodDetails,
461
- paymentMethodNames: paymentMethodNames,
462
- price: price,
463
- priceDisplay: priceDisplay,
464
- visibilityStatus: visibilityStatus,
465
- );
402
+ required super .accountCurrency,
403
+ required super .activeOrders,
404
+ required super .advertiserDetails,
405
+ required super .amount,
406
+ required super .amountDisplay,
407
+ required super .blockTrade,
408
+ required super .counterpartyType,
409
+ required super .country,
410
+ required super .createdTime,
411
+ required super .description,
412
+ required super .id,
413
+ required super .isActive,
414
+ required super .isVisible,
415
+ required super .localCurrency,
416
+ required super .maxOrderAmount,
417
+ required super .maxOrderAmountDisplay,
418
+ required super .maxOrderAmountLimit,
419
+ required super .maxOrderAmountLimitDisplay,
420
+ required super .minOrderAmount,
421
+ required super .minOrderAmountDisplay,
422
+ required super .minOrderAmountLimit,
423
+ required super .minOrderAmountLimitDisplay,
424
+ required super .orderExpiryPeriod,
425
+ required super .rate,
426
+ required super .rateDisplay,
427
+ required super .rateType,
428
+ required super .remainingAmount,
429
+ required super .remainingAmountDisplay,
430
+ required super .type,
431
+ super .contactInfo,
432
+ super .effectiveRate,
433
+ super .effectiveRateDisplay,
434
+ super .paymentInfo,
435
+ super .paymentMethod,
436
+ super .paymentMethodDetails,
437
+ super .paymentMethodNames,
438
+ super .price,
439
+ super .priceDisplay,
440
+ super .visibilityStatus,
441
+ });
466
442
467
443
/// Creates an instance from JSON.
468
444
factory P2pAdvertCreate .fromJson (Map <String , dynamic > json) =>
@@ -473,6 +449,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
473
449
AdvertiserDetails .fromJson (json['advertiser_details' ]),
474
450
amount: getDouble (json['amount' ])! ,
475
451
amountDisplay: json['amount_display' ],
452
+ blockTrade: getBool (json['block_trade' ])! ,
476
453
counterpartyType:
477
454
counterpartyTypeEnumMapper[json['counterparty_type' ]]! ,
478
455
country: json['country' ],
@@ -490,6 +467,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
490
467
minOrderAmountDisplay: json['min_order_amount_display' ],
491
468
minOrderAmountLimit: getDouble (json['min_order_amount_limit' ])! ,
492
469
minOrderAmountLimitDisplay: json['min_order_amount_limit_display' ],
470
+ orderExpiryPeriod: json['order_expiry_period' ],
493
471
rate: getDouble (json['rate' ])! ,
494
472
rateDisplay: json['rate_display' ],
495
473
rateType: rateTypeEnumMapper[json['rate_type' ]]! ,
@@ -542,6 +520,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
542
520
543
521
resultMap['amount' ] = amount;
544
522
resultMap['amount_display' ] = amountDisplay;
523
+ resultMap['block_trade' ] = blockTrade;
545
524
resultMap['counterparty_type' ] = counterpartyTypeEnumMapper.entries
546
525
.firstWhere ((MapEntry <String , CounterpartyTypeEnum > entry) =>
547
526
entry.value == counterpartyType)
@@ -561,6 +540,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
561
540
resultMap['min_order_amount_display' ] = minOrderAmountDisplay;
562
541
resultMap['min_order_amount_limit' ] = minOrderAmountLimit;
563
542
resultMap['min_order_amount_limit_display' ] = minOrderAmountLimitDisplay;
543
+ resultMap['order_expiry_period' ] = orderExpiryPeriod;
564
544
resultMap['rate' ] = rate;
565
545
resultMap['rate_display' ] = rateDisplay;
566
546
resultMap['rate_type' ] = rateTypeEnumMapper.entries
@@ -611,6 +591,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
611
591
AdvertiserDetails ? advertiserDetails,
612
592
double ? amount,
613
593
String ? amountDisplay,
594
+ bool ? blockTrade,
614
595
CounterpartyTypeEnum ? counterpartyType,
615
596
String ? country,
616
597
DateTime ? createdTime,
@@ -627,6 +608,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
627
608
String ? minOrderAmountDisplay,
628
609
double ? minOrderAmountLimit,
629
610
String ? minOrderAmountLimitDisplay,
611
+ int ? orderExpiryPeriod,
630
612
double ? rate,
631
613
String ? rateDisplay,
632
614
RateTypeEnum ? rateType,
@@ -650,6 +632,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
650
632
advertiserDetails: advertiserDetails ?? this .advertiserDetails,
651
633
amount: amount ?? this .amount,
652
634
amountDisplay: amountDisplay ?? this .amountDisplay,
635
+ blockTrade: blockTrade ?? this .blockTrade,
653
636
counterpartyType: counterpartyType ?? this .counterpartyType,
654
637
country: country ?? this .country,
655
638
createdTime: createdTime ?? this .createdTime,
@@ -670,6 +653,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
670
653
minOrderAmountLimit: minOrderAmountLimit ?? this .minOrderAmountLimit,
671
654
minOrderAmountLimitDisplay:
672
655
minOrderAmountLimitDisplay ?? this .minOrderAmountLimitDisplay,
656
+ orderExpiryPeriod: orderExpiryPeriod ?? this .orderExpiryPeriod,
673
657
rate: rate ?? this .rate,
674
658
rateDisplay: rateDisplay ?? this .rateDisplay,
675
659
rateType: rateType ?? this .rateType,
@@ -749,32 +733,19 @@ abstract class AdvertiserDetailsModel {
749
733
class AdvertiserDetails extends AdvertiserDetailsModel {
750
734
/// Initializes Advertiser details class.
751
735
const AdvertiserDetails ({
752
- required int completedOrdersCount,
753
- required String id,
754
- required bool isOnline,
755
- required String name,
756
- required int ratingCount,
757
- String ? firstName,
758
- String ? lastName,
759
- DateTime ? lastOnlineTime,
760
- double ? ratingAverage,
761
- double ? recommendedAverage,
762
- int ? recommendedCount,
763
- double ? totalCompletionRate,
764
- }) : super (
765
- completedOrdersCount: completedOrdersCount,
766
- id: id,
767
- isOnline: isOnline,
768
- name: name,
769
- ratingCount: ratingCount,
770
- firstName: firstName,
771
- lastName: lastName,
772
- lastOnlineTime: lastOnlineTime,
773
- ratingAverage: ratingAverage,
774
- recommendedAverage: recommendedAverage,
775
- recommendedCount: recommendedCount,
776
- totalCompletionRate: totalCompletionRate,
777
- );
736
+ required super .completedOrdersCount,
737
+ required super .id,
738
+ required super .isOnline,
739
+ required super .name,
740
+ required super .ratingCount,
741
+ super .firstName,
742
+ super .lastName,
743
+ super .lastOnlineTime,
744
+ super .ratingAverage,
745
+ super .recommendedAverage,
746
+ super .recommendedCount,
747
+ super .totalCompletionRate,
748
+ });
778
749
779
750
/// Creates an instance from JSON.
780
751
factory AdvertiserDetails .fromJson (Map <String , dynamic > json) =>
@@ -884,22 +855,14 @@ abstract class PaymentMethodDetailsPropertyModel {
884
855
class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel {
885
856
/// Initializes Payment method details property class.
886
857
const PaymentMethodDetailsProperty ({
887
- required Map <String , FieldsProperty > fields,
888
- required bool isEnabled,
889
- required String method,
890
- required PaymentMethodDetailsPropertyTypeEnum type,
891
- String ? displayName,
892
- List <String >? usedByAdverts,
893
- List <String >? usedByOrders,
894
- }) : super (
895
- fields: fields,
896
- isEnabled: isEnabled,
897
- method: method,
898
- type: type,
899
- displayName: displayName,
900
- usedByAdverts: usedByAdverts,
901
- usedByOrders: usedByOrders,
902
- );
858
+ required super .fields,
859
+ required super .isEnabled,
860
+ required super .method,
861
+ required super .type,
862
+ super .displayName,
863
+ super .usedByAdverts,
864
+ super .usedByOrders,
865
+ });
903
866
904
867
/// Creates an instance from JSON.
905
868
factory PaymentMethodDetailsProperty .fromJson (Map <String , dynamic > json) =>
@@ -1009,16 +972,11 @@ abstract class FieldsPropertyModel {
1009
972
class FieldsProperty extends FieldsPropertyModel {
1010
973
/// Initializes Fields property class.
1011
974
const FieldsProperty ({
1012
- required String displayName,
1013
- required int required ,
1014
- required TypeEnum type,
1015
- required String value,
1016
- }) : super (
1017
- displayName: displayName,
1018
- required : required ,
1019
- type: type,
1020
- value: value,
1021
- );
975
+ required super .displayName,
976
+ required super .required ,
977
+ required super .type,
978
+ required super .value,
979
+ });
1022
980
1023
981
/// Creates an instance from JSON.
1024
982
factory FieldsProperty .fromJson (Map <String , dynamic > json) => FieldsProperty (
0 commit comments