Skip to content

Commit a1db4be

Browse files
committed
add p2p ad terms api changes
1 parent bf57f53 commit a1db4be

9 files changed

+1348
-20
lines changed

lib/api/response/p2p_advert_create_response_result.dart

+78-4
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ final Map<String, VisibilityStatusItemEnum> visibilityStatusItemEnumMapper =
185185
"advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused,
186186
"advertiser_approval": VisibilityStatusItemEnum.advertiserApproval,
187187
"advertiser_balance": VisibilityStatusItemEnum.advertiserBalance,
188+
"advertiser_block_trade_ineligible":
189+
VisibilityStatusItemEnum.advertiserBlockTradeIneligible,
188190
"advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit,
189191
"advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan,
190192
};
@@ -212,13 +214,15 @@ enum VisibilityStatusItemEnum {
212214
/// advertiser_balance.
213215
advertiserBalance,
214216

217+
/// advertiser_block_trade_ineligible.
218+
advertiserBlockTradeIneligible,
219+
215220
/// advertiser_daily_limit.
216221
advertiserDailyLimit,
217222

218223
/// advertiser_temp_ban.
219224
advertiserTempBan,
220225
}
221-
222226
/// P2p advert create model class.
223227
abstract class P2pAdvertCreateModel {
224228
/// Initializes P2p advert create model class .
@@ -229,6 +233,7 @@ abstract class P2pAdvertCreateModel {
229233
required this.rateType,
230234
required this.rateDisplay,
231235
required this.rate,
236+
required this.orderExpiryPeriod,
232237
required this.minOrderAmountLimitDisplay,
233238
required this.minOrderAmountLimit,
234239
required this.minOrderAmountDisplay,
@@ -245,6 +250,7 @@ abstract class P2pAdvertCreateModel {
245250
required this.createdTime,
246251
required this.country,
247252
required this.counterpartyType,
253+
required this.blockTrade,
248254
required this.amountDisplay,
249255
required this.amount,
250256
required this.advertiserDetails,
@@ -253,6 +259,10 @@ abstract class P2pAdvertCreateModel {
253259
this.contactInfo,
254260
this.effectiveRate,
255261
this.effectiveRateDisplay,
262+
this.eligibleCountries,
263+
this.minCompletionRate,
264+
this.minJoinDays,
265+
this.minRating,
256266
this.paymentInfo,
257267
this.paymentMethod,
258268
this.paymentMethodDetails,
@@ -280,6 +290,9 @@ abstract class P2pAdvertCreateModel {
280290
/// Conversion rate from advertiser's account currency to `local_currency`. An absolute rate value (fixed), or percentage offset from current market rate (floating).
281291
final double rate;
282292

293+
/// Expiry period (seconds) for order created against this ad.
294+
final int orderExpiryPeriod;
295+
283296
/// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places.
284297
final String minOrderAmountLimitDisplay;
285298

@@ -328,6 +341,9 @@ abstract class P2pAdvertCreateModel {
328341
/// Type of transaction from the opposite party's perspective.
329342
final CounterpartyTypeEnum counterpartyType;
330343

344+
/// Indicates if this is block trade advert or not.
345+
final bool blockTrade;
346+
331347
/// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places.
332348
final String amountDisplay;
333349

@@ -352,6 +368,18 @@ abstract class P2pAdvertCreateModel {
352368
/// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places.
353369
final String? effectiveRateDisplay;
354370

371+
/// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert.
372+
final List<String>? eligibleCountries;
373+
374+
/// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert.
375+
final double? minCompletionRate;
376+
377+
/// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert.
378+
final int? minJoinDays;
379+
380+
/// Counterparties who have an average rating less than this value are not allowed to place orders against this advert.
381+
final double? minRating;
382+
355383
/// Payment instructions. Only applicable for 'sell adverts'.
356384
final String? paymentInfo;
357385

@@ -378,6 +406,7 @@ abstract class P2pAdvertCreateModel {
378406
/// - `advertiser_ads_paused`: the advertiser has paused all adverts.
379407
/// - `advertiser_approval`: the advertiser's proof of identity is not verified.
380408
/// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order.
409+
/// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading.
381410
/// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order.
382411
/// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P.
383412
final List<VisibilityStatusItemEnum>? visibilityStatus;
@@ -392,6 +421,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
392421
required AdvertiserDetails advertiserDetails,
393422
required double amount,
394423
required String amountDisplay,
424+
required bool blockTrade,
395425
required CounterpartyTypeEnum counterpartyType,
396426
required String country,
397427
required DateTime createdTime,
@@ -408,6 +438,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
408438
required String minOrderAmountDisplay,
409439
required double minOrderAmountLimit,
410440
required String minOrderAmountLimitDisplay,
441+
required int orderExpiryPeriod,
411442
required double rate,
412443
required String rateDisplay,
413444
required RateTypeEnum rateType,
@@ -417,6 +448,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
417448
String? contactInfo,
418449
double? effectiveRate,
419450
String? effectiveRateDisplay,
451+
List<String>? eligibleCountries,
452+
double? minCompletionRate,
453+
int? minJoinDays,
454+
double? minRating,
420455
String? paymentInfo,
421456
String? paymentMethod,
422457
Map<String, PaymentMethodDetailsProperty>? paymentMethodDetails,
@@ -430,6 +465,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
430465
advertiserDetails: advertiserDetails,
431466
amount: amount,
432467
amountDisplay: amountDisplay,
468+
blockTrade: blockTrade,
433469
counterpartyType: counterpartyType,
434470
country: country,
435471
createdTime: createdTime,
@@ -446,6 +482,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
446482
minOrderAmountDisplay: minOrderAmountDisplay,
447483
minOrderAmountLimit: minOrderAmountLimit,
448484
minOrderAmountLimitDisplay: minOrderAmountLimitDisplay,
485+
orderExpiryPeriod: orderExpiryPeriod,
449486
rate: rate,
450487
rateDisplay: rateDisplay,
451488
rateType: rateType,
@@ -455,6 +492,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
455492
contactInfo: contactInfo,
456493
effectiveRate: effectiveRate,
457494
effectiveRateDisplay: effectiveRateDisplay,
495+
eligibleCountries: eligibleCountries,
496+
minCompletionRate: minCompletionRate,
497+
minJoinDays: minJoinDays,
498+
minRating: minRating,
458499
paymentInfo: paymentInfo,
459500
paymentMethod: paymentMethod,
460501
paymentMethodDetails: paymentMethodDetails,
@@ -473,6 +514,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
473514
AdvertiserDetails.fromJson(json['advertiser_details']),
474515
amount: getDouble(json['amount'])!,
475516
amountDisplay: json['amount_display'],
517+
blockTrade: getBool(json['block_trade'])!,
476518
counterpartyType:
477519
counterpartyTypeEnumMapper[json['counterparty_type']]!,
478520
country: json['country'],
@@ -490,6 +532,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
490532
minOrderAmountDisplay: json['min_order_amount_display'],
491533
minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!,
492534
minOrderAmountLimitDisplay: json['min_order_amount_limit_display'],
535+
orderExpiryPeriod: json['order_expiry_period'],
493536
rate: getDouble(json['rate'])!,
494537
rateDisplay: json['rate_display'],
495538
rateType: rateTypeEnumMapper[json['rate_type']]!,
@@ -499,6 +542,16 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
499542
contactInfo: json['contact_info'],
500543
effectiveRate: getDouble(json['effective_rate']),
501544
effectiveRateDisplay: json['effective_rate_display'],
545+
eligibleCountries: json['eligible_countries'] == null
546+
? null
547+
: List<String>.from(
548+
json['eligible_countries']?.map(
549+
(dynamic item) => item,
550+
),
551+
),
552+
minCompletionRate: getDouble(json['min_completion_rate']),
553+
minJoinDays: json['min_join_days'],
554+
minRating: getDouble(json['min_rating']),
502555
paymentInfo: json['payment_info'],
503556
paymentMethod: json['payment_method'],
504557
paymentMethodDetails: json['payment_method_details'] == null
@@ -542,6 +595,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
542595

543596
resultMap['amount'] = amount;
544597
resultMap['amount_display'] = amountDisplay;
598+
resultMap['block_trade'] = blockTrade;
545599
resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries
546600
.firstWhere((MapEntry<String, CounterpartyTypeEnum> entry) =>
547601
entry.value == counterpartyType)
@@ -561,6 +615,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
561615
resultMap['min_order_amount_display'] = minOrderAmountDisplay;
562616
resultMap['min_order_amount_limit'] = minOrderAmountLimit;
563617
resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay;
618+
resultMap['order_expiry_period'] = orderExpiryPeriod;
564619
resultMap['rate'] = rate;
565620
resultMap['rate_display'] = rateDisplay;
566621
resultMap['rate_type'] = rateTypeEnumMapper.entries
@@ -576,6 +631,16 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
576631
resultMap['contact_info'] = contactInfo;
577632
resultMap['effective_rate'] = effectiveRate;
578633
resultMap['effective_rate_display'] = effectiveRateDisplay;
634+
if (eligibleCountries != null) {
635+
resultMap['eligible_countries'] = eligibleCountries!
636+
.map<dynamic>(
637+
(String item) => item,
638+
)
639+
.toList();
640+
}
641+
resultMap['min_completion_rate'] = minCompletionRate;
642+
resultMap['min_join_days'] = minJoinDays;
643+
resultMap['min_rating'] = minRating;
579644
resultMap['payment_info'] = paymentInfo;
580645
resultMap['payment_method'] = paymentMethod;
581646
resultMap['payment_method_details'] = paymentMethodDetails;
@@ -611,6 +676,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
611676
AdvertiserDetails? advertiserDetails,
612677
double? amount,
613678
String? amountDisplay,
679+
bool? blockTrade,
614680
CounterpartyTypeEnum? counterpartyType,
615681
String? country,
616682
DateTime? createdTime,
@@ -627,6 +693,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
627693
String? minOrderAmountDisplay,
628694
double? minOrderAmountLimit,
629695
String? minOrderAmountLimitDisplay,
696+
int? orderExpiryPeriod,
630697
double? rate,
631698
String? rateDisplay,
632699
RateTypeEnum? rateType,
@@ -636,6 +703,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
636703
String? contactInfo,
637704
double? effectiveRate,
638705
String? effectiveRateDisplay,
706+
List<String>? eligibleCountries,
707+
double? minCompletionRate,
708+
int? minJoinDays,
709+
double? minRating,
639710
String? paymentInfo,
640711
String? paymentMethod,
641712
Map<String, PaymentMethodDetailsProperty>? paymentMethodDetails,
@@ -650,6 +721,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
650721
advertiserDetails: advertiserDetails ?? this.advertiserDetails,
651722
amount: amount ?? this.amount,
652723
amountDisplay: amountDisplay ?? this.amountDisplay,
724+
blockTrade: blockTrade ?? this.blockTrade,
653725
counterpartyType: counterpartyType ?? this.counterpartyType,
654726
country: country ?? this.country,
655727
createdTime: createdTime ?? this.createdTime,
@@ -670,6 +742,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
670742
minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit,
671743
minOrderAmountLimitDisplay:
672744
minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay,
745+
orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod,
673746
rate: rate ?? this.rate,
674747
rateDisplay: rateDisplay ?? this.rateDisplay,
675748
rateType: rateType ?? this.rateType,
@@ -680,6 +753,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
680753
contactInfo: contactInfo ?? this.contactInfo,
681754
effectiveRate: effectiveRate ?? this.effectiveRate,
682755
effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay,
756+
eligibleCountries: eligibleCountries ?? this.eligibleCountries,
757+
minCompletionRate: minCompletionRate ?? this.minCompletionRate,
758+
minJoinDays: minJoinDays ?? this.minJoinDays,
759+
minRating: minRating ?? this.minRating,
683760
paymentInfo: paymentInfo ?? this.paymentInfo,
684761
paymentMethod: paymentMethod ?? this.paymentMethod,
685762
paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails,
@@ -689,7 +766,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel {
689766
visibilityStatus: visibilityStatus ?? this.visibilityStatus,
690767
);
691768
}
692-
693769
/// Advertiser details model class.
694770
abstract class AdvertiserDetailsModel {
695771
/// Initializes Advertiser details model class .
@@ -844,7 +920,6 @@ class AdvertiserDetails extends AdvertiserDetailsModel {
844920
totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate,
845921
);
846922
}
847-
848923
/// Payment method details property model class.
849924
abstract class PaymentMethodDetailsPropertyModel {
850925
/// Initializes Payment method details property model class .
@@ -981,7 +1056,6 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel {
9811056
usedByOrders: usedByOrders ?? this.usedByOrders,
9821057
);
9831058
}
984-
9851059
/// Fields property model class.
9861060
abstract class FieldsPropertyModel {
9871061
/// Initializes Fields property model class .

0 commit comments

Comments
 (0)