From a1db4be79fc7c9135cd593cb4aca9f215acc0862 Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Wed, 20 Mar 2024 11:26:25 +0800 Subject: [PATCH 1/6] add p2p ad terms api changes --- .../p2p_advert_create_response_result.dart | 82 ++- .../p2p_advert_info_response_result.dart | 151 +++- .../p2p_advert_list_response_result.dart | 148 +++- .../p2p_advert_update_response_result.dart | 82 ++- ...2p_advertiser_adverts_response_result.dart | 81 ++- .../p2p_settings_response_result.dart | 676 ++++++++++++++++++ .../generated/p2p_advert_create_send.dart | 63 ++ .../generated/p2p_advert_list_send.dart | 35 + .../generated/p2p_advert_update_send.dart | 50 ++ 9 files changed, 1348 insertions(+), 20 deletions(-) create mode 100644 lib/api/response/p2p_settings_response_result.dart diff --git a/lib/api/response/p2p_advert_create_response_result.dart b/lib/api/response/p2p_advert_create_response_result.dart index 9a99fecef5..4d5414a0ac 100644 --- a/lib/api/response/p2p_advert_create_response_result.dart +++ b/lib/api/response/p2p_advert_create_response_result.dart @@ -185,6 +185,8 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, + "advertiser_block_trade_ineligible": + VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -212,13 +214,15 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, + /// advertiser_block_trade_ineligible. + advertiserBlockTradeIneligible, + /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } - /// P2p advert create model class. abstract class P2pAdvertCreateModel { /// Initializes P2p advert create model class . @@ -229,6 +233,7 @@ abstract class P2pAdvertCreateModel { required this.rateType, required this.rateDisplay, required this.rate, + required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.minOrderAmountDisplay, @@ -245,6 +250,7 @@ abstract class P2pAdvertCreateModel { required this.createdTime, required this.country, required this.counterpartyType, + required this.blockTrade, required this.amountDisplay, required this.amount, required this.advertiserDetails, @@ -253,6 +259,10 @@ abstract class P2pAdvertCreateModel { this.contactInfo, this.effectiveRate, this.effectiveRateDisplay, + this.eligibleCountries, + this.minCompletionRate, + this.minJoinDays, + this.minRating, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -280,6 +290,9 @@ abstract class P2pAdvertCreateModel { /// Conversion rate from advertiser's account currency to `local_currency`. An absolute rate value (fixed), or percentage offset from current market rate (floating). final double rate; + /// Expiry period (seconds) for order created against this ad. + final int orderExpiryPeriod; + /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -328,6 +341,9 @@ abstract class P2pAdvertCreateModel { /// Type of transaction from the opposite party's perspective. final CounterpartyTypeEnum counterpartyType; + /// Indicates if this is block trade advert or not. + final bool blockTrade; + /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String amountDisplay; @@ -352,6 +368,18 @@ abstract class P2pAdvertCreateModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; + /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. + final List? eligibleCountries; + + /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. + final double? minCompletionRate; + + /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. + final int? minJoinDays; + + /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. + final double? minRating; + /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -378,6 +406,7 @@ abstract class P2pAdvertCreateModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. + /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -392,6 +421,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { required AdvertiserDetails advertiserDetails, required double amount, required String amountDisplay, + required bool blockTrade, required CounterpartyTypeEnum counterpartyType, required String country, required DateTime createdTime, @@ -408,6 +438,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { required String minOrderAmountDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, + required int orderExpiryPeriod, required double rate, required String rateDisplay, required RateTypeEnum rateType, @@ -417,6 +448,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? contactInfo, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, + double? minCompletionRate, + int? minJoinDays, + double? minRating, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -430,6 +465,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, + blockTrade: blockTrade, counterpartyType: counterpartyType, country: country, createdTime: createdTime, @@ -446,6 +482,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod, rate: rate, rateDisplay: rateDisplay, rateType: rateType, @@ -455,6 +492,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: contactInfo, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, + eligibleCountries: eligibleCountries, + minCompletionRate: minCompletionRate, + minJoinDays: minJoinDays, + minRating: minRating, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -473,6 +514,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount'])!, amountDisplay: json['amount_display'], + blockTrade: getBool(json['block_trade'])!, counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, country: json['country'], @@ -490,6 +532,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], + orderExpiryPeriod: json['order_expiry_period'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], rateType: rateTypeEnumMapper[json['rate_type']]!, @@ -499,6 +542,16 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: json['contact_info'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], + eligibleCountries: json['eligible_countries'] == null + ? null + : List.from( + json['eligible_countries']?.map( + (dynamic item) => item, + ), + ), + minCompletionRate: getDouble(json['min_completion_rate']), + minJoinDays: json['min_join_days'], + minRating: getDouble(json['min_rating']), paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -542,6 +595,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; + resultMap['block_trade'] = blockTrade; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => entry.value == counterpartyType) @@ -561,6 +615,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; + resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; resultMap['rate_type'] = rateTypeEnumMapper.entries @@ -576,6 +631,16 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['contact_info'] = contactInfo; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; + if (eligibleCountries != null) { + resultMap['eligible_countries'] = eligibleCountries! + .map( + (String item) => item, + ) + .toList(); + } + resultMap['min_completion_rate'] = minCompletionRate; + resultMap['min_join_days'] = minJoinDays; + resultMap['min_rating'] = minRating; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -611,6 +676,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, CounterpartyTypeEnum? counterpartyType, String? country, DateTime? createdTime, @@ -627,6 +693,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + int? orderExpiryPeriod, double? rate, String? rateDisplay, RateTypeEnum? rateType, @@ -636,6 +703,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? contactInfo, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, + double? minCompletionRate, + int? minJoinDays, + double? minRating, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -650,6 +721,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, + blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, createdTime: createdTime ?? this.createdTime, @@ -670,6 +742,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, rateType: rateType ?? this.rateType, @@ -680,6 +753,10 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: contactInfo ?? this.contactInfo, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, + minRating: minRating ?? this.minRating, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -689,7 +766,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } - /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -844,7 +920,6 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } - /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -981,7 +1056,6 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } - /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . diff --git a/lib/api/response/p2p_advert_info_response_result.dart b/lib/api/response/p2p_advert_info_response_result.dart index f2186228d3..d793699862 100644 --- a/lib/api/response/p2p_advert_info_response_result.dart +++ b/lib/api/response/p2p_advert_info_response_result.dart @@ -17,7 +17,6 @@ import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_update_receive. import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_update_send.dart'; import 'package:flutter_deriv_api/basic_api/generated/p2p_order_create_receive.dart'; import 'package:flutter_deriv_api/basic_api/generated/p2p_order_create_send.dart'; - /// P2p advert info response model class. abstract class P2pAdvertInfoResponseModel { /// Initializes P2p advert info response model class . @@ -240,6 +239,30 @@ enum CounterpartyTypeEnum { sell, } +/// EligibilityStatusItemEnum mapper. +final Map eligibilityStatusItemEnumMapper = + { + "completion_rate": EligibilityStatusItemEnum.completionRate, + "country": EligibilityStatusItemEnum.country, + "join_date": EligibilityStatusItemEnum.joinDate, + "rating_average": EligibilityStatusItemEnum.ratingAverage, +}; + +/// EligibilityStatusItem Enum. +enum EligibilityStatusItemEnum { + /// completion_rate. + completionRate, + + /// country. + country, + + /// join_date. + joinDate, + + /// rating_average. + ratingAverage, +} + /// TypeEnum mapper. final Map typeEnumMapper = { "text": TypeEnum.text, @@ -317,6 +340,8 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, + "advertiser_block_trade_ineligible": + VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -344,13 +369,15 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, + /// advertiser_block_trade_ineligible. + advertiserBlockTradeIneligible, + /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } - /// P2p advert info model class. abstract class P2pAdvertInfoModel { /// Initializes P2p advert info model class . @@ -360,6 +387,7 @@ abstract class P2pAdvertInfoModel { this.advertiserDetails, this.amount, this.amountDisplay, + this.blockTrade, this.contactInfo, this.counterpartyType, this.country, @@ -369,18 +397,25 @@ abstract class P2pAdvertInfoModel { this.description, this.effectiveRate, this.effectiveRateDisplay, + this.eligibilityStatus, + this.eligibleCountries, this.id, this.isActive, + this.isEligible, this.isVisible, this.localCurrency, this.maxOrderAmount, this.maxOrderAmountDisplay, this.maxOrderAmountLimit, this.maxOrderAmountLimitDisplay, + this.minCompletionRate, + this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, this.minOrderAmountLimit, this.minOrderAmountLimitDisplay, + this.minRating, + this.orderExpiryPeriod, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -411,6 +446,9 @@ abstract class P2pAdvertInfoModel { /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? amountDisplay; + /// Indicates if this is block trade advert or not. + final bool? blockTrade; + /// Advertiser contact information. Only applicable for 'sell adverts'. final String? contactInfo; @@ -438,12 +476,25 @@ abstract class P2pAdvertInfoModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; + /// Reasons why the counterparty terms do not allow the current user to place orders against this advert. Possible values: + /// - `completion_rate`: current user's 30 day completion rate is less than `min_completion_rate`. + /// - `country`: current user's residence is not in `eligible_countries`. + /// - `join_date`: current user registered on P2P less than `min_join_days` in the past. + /// - `rating`: current user's average review rating is less than `min_rating`. + final List? eligibilityStatus; + + /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. + final List? eligibleCountries; + /// The unique identifier for this advert. final String? id; /// The activation status of the advert. final bool? isActive; + /// Indicates that the current user meets the counterparty terms for placing orders against this advert. + final bool? isEligible; + /// Indicates that this advert will appear on the main advert list. It is only visible to the advert owner. final bool? isVisible; @@ -462,6 +513,12 @@ abstract class P2pAdvertInfoModel { /// Maximum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? maxOrderAmountLimitDisplay; + /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. + final double? minCompletionRate; + + /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. + final int? minJoinDays; + /// Minimum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? minOrderAmount; @@ -474,6 +531,12 @@ abstract class P2pAdvertInfoModel { /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? minOrderAmountLimitDisplay; + /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. + final double? minRating; + + /// Expiry period (seconds) for order created against this ad. + final int? orderExpiryPeriod; + /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -518,6 +581,7 @@ abstract class P2pAdvertInfoModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. + /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -532,6 +596,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -541,18 +606,25 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { String? description, double? effectiveRate, String? effectiveRateDisplay, + List? eligibilityStatus, + List? eligibleCountries, String? id, bool? isActive, + bool? isEligible, bool? isVisible, String? localCurrency, double? maxOrderAmount, String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + double? minRating, + int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -572,6 +644,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, + blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -581,18 +654,25 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: description, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, + eligibilityStatus: eligibilityStatus, + eligibleCountries: eligibleCountries, id: id, isActive: isActive, + isEligible: isEligible, isVisible: isVisible, localCurrency: localCurrency, maxOrderAmount: maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay, maxOrderAmountLimit: maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, + minCompletionRate: minCompletionRate, + minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, + minRating: minRating, + orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -617,6 +697,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { : AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount']), amountDisplay: json['amount_display'], + blockTrade: getBool(json['block_trade']), contactInfo: json['contact_info'], counterpartyType: json['counterparty_type'] == null ? null @@ -628,18 +709,39 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: json['description'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], + eligibilityStatus: json['eligibility_status'] == null + ? null + : List.from( + json['eligibility_status']?.map( + (dynamic item) => item == null + ? null + : eligibilityStatusItemEnumMapper[item], + ), + ), + eligibleCountries: json['eligible_countries'] == null + ? null + : List.from( + json['eligible_countries']?.map( + (dynamic item) => item, + ), + ), id: json['id'], isActive: getBool(json['is_active']), + isEligible: getBool(json['is_eligible']), isVisible: getBool(json['is_visible']), localCurrency: json['local_currency'], maxOrderAmount: getDouble(json['max_order_amount']), maxOrderAmountDisplay: json['max_order_amount_display'], maxOrderAmountLimit: getDouble(json['max_order_amount_limit']), maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], + minCompletionRate: getDouble(json['min_completion_rate']), + minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit']), minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], + minRating: getDouble(json['min_rating']), + orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -694,6 +796,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { } resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; + resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -706,18 +809,42 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { resultMap['description'] = description; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; + if (eligibilityStatus != null) { + resultMap['eligibility_status'] = eligibilityStatus! + .map( + (EligibilityStatusItemEnum item) => eligibilityStatusItemEnumMapper + .entries + .firstWhere( + (MapEntry entry) => + entry.value == item) + .key, + ) + .toList(); + } + if (eligibleCountries != null) { + resultMap['eligible_countries'] = eligibleCountries! + .map( + (String item) => item, + ) + .toList(); + } resultMap['id'] = id; resultMap['is_active'] = isActive; + resultMap['is_eligible'] = isEligible; resultMap['is_visible'] = isVisible; resultMap['local_currency'] = localCurrency; resultMap['max_order_amount'] = maxOrderAmount; resultMap['max_order_amount_display'] = maxOrderAmountDisplay; resultMap['max_order_amount_limit'] = maxOrderAmountLimit; resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; + resultMap['min_completion_rate'] = minCompletionRate; + resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; + resultMap['min_rating'] = minRating; + resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -765,6 +892,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -774,18 +902,25 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { String? description, double? effectiveRate, String? effectiveRateDisplay, + List? eligibilityStatus, + List? eligibleCountries, String? id, bool? isActive, + bool? isEligible, bool? isVisible, String? localCurrency, double? maxOrderAmount, String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + double? minRating, + int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -806,6 +941,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, + blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -815,8 +951,11 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: description ?? this.description, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, + eligibilityStatus: eligibilityStatus ?? this.eligibilityStatus, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, id: id ?? this.id, isActive: isActive ?? this.isActive, + isEligible: isEligible ?? this.isEligible, isVisible: isVisible ?? this.isVisible, localCurrency: localCurrency ?? this.localCurrency, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, @@ -825,12 +964,16 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { maxOrderAmountLimit: maxOrderAmountLimit ?? this.maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay ?? this.maxOrderAmountLimitDisplay, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, + minRating: minRating ?? this.minRating, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -847,7 +990,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } - /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -1032,7 +1174,6 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } - /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -1169,7 +1310,6 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } - /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . @@ -1244,7 +1384,6 @@ class FieldsProperty extends FieldsPropertyModel { value: value ?? this.value, ); } - /// Subscription model class. abstract class SubscriptionModel { /// Initializes Subscription model class . diff --git a/lib/api/response/p2p_advert_list_response_result.dart b/lib/api/response/p2p_advert_list_response_result.dart index 0b6f31c80a..4a5f4ff6bd 100644 --- a/lib/api/response/p2p_advert_list_response_result.dart +++ b/lib/api/response/p2p_advert_list_response_result.dart @@ -108,6 +108,30 @@ enum CounterpartyTypeEnum { sell, } +/// EligibilityStatusItemEnum mapper. +final Map eligibilityStatusItemEnumMapper = + { + "completion_rate": EligibilityStatusItemEnum.completionRate, + "country": EligibilityStatusItemEnum.country, + "join_date": EligibilityStatusItemEnum.joinDate, + "rating_average": EligibilityStatusItemEnum.ratingAverage, +}; + +/// EligibilityStatusItem Enum. +enum EligibilityStatusItemEnum { + /// completion_rate. + completionRate, + + /// country. + country, + + /// join_date. + joinDate, + + /// rating_average. + ratingAverage, +} + /// RateTypeEnum mapper. final Map rateTypeEnumMapper = { "fixed": RateTypeEnum.fixed, @@ -148,6 +172,8 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, + "advertiser_block_trade_ineligible": + VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -175,13 +201,15 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, + /// advertiser_block_trade_ineligible. + advertiserBlockTradeIneligible, + /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } - /// P2p advert list model class. abstract class P2pAdvertListModel { /// Initializes P2p advert list model class . @@ -232,7 +260,6 @@ class P2pAdvertList extends P2pAdvertListModel { list: list ?? this.list, ); } - /// List item model class. abstract class ListItemModel { /// Initializes List item model class . @@ -241,6 +268,7 @@ abstract class ListItemModel { required this.rateType, required this.rateDisplay, required this.rate, + required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.maxOrderAmountLimitDisplay, @@ -253,6 +281,7 @@ abstract class ListItemModel { required this.createdTime, required this.country, required this.counterpartyType, + required this.blockTrade, required this.advertiserDetails, required this.accountCurrency, this.activeOrders, @@ -262,10 +291,16 @@ abstract class ListItemModel { this.daysUntilArchive, this.effectiveRate, this.effectiveRateDisplay, + this.eligibilityStatus, + this.eligibleCountries, + this.isEligible, this.maxOrderAmount, this.maxOrderAmountDisplay, + this.minCompletionRate, + this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, + this.minRating, this.paymentInfo, this.paymentMethod, this.paymentMethodNames, @@ -288,6 +323,9 @@ abstract class ListItemModel { /// Conversion rate from advertiser's account currency to `local_currency`. An absolute rate value (fixed), or percentage offset from current market rate (floating). final double rate; + /// Expiry period (seconds) for order created against this ad. + final int orderExpiryPeriod; + /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -324,6 +362,9 @@ abstract class ListItemModel { /// Type of transaction from the opposite party's perspective. final CounterpartyTypeEnum counterpartyType; + /// Indicates if this is block trade advert or not. + final bool blockTrade; + /// Details of the advertiser for this advert. final AdvertiserDetails advertiserDetails; @@ -351,18 +392,40 @@ abstract class ListItemModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; + /// Reasons why the counterparty terms do not allow the current user to place orders against this advert. Possible values: + /// - `completion_rate`: current user's 30 day completion rate is less than `min_completion_rate`. + /// - `country`: current user's residence is not in `eligible_countries`. + /// - `join_date`: current user registered on P2P less than `min_join_days` in the past. + /// - `rating`: current user's average review rating is less than `min_rating`. + final List? eligibilityStatus; + + /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. + final List? eligibleCountries; + + /// Indicates that the current user meets the counterparty terms for placing an order. + final bool? isEligible; + /// Maximum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? maxOrderAmount; /// Maximum order amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? maxOrderAmountDisplay; + /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. + final double? minCompletionRate; + + /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. + final int? minJoinDays; + /// Minimum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? minOrderAmount; /// Minimum order amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? minOrderAmountDisplay; + /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. + final double? minRating; + /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -392,6 +455,7 @@ abstract class ListItemModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. + /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -403,6 +467,7 @@ class ListItem extends ListItemModel { const ListItem({ required String accountCurrency, required AdvertiserDetails advertiserDetails, + required bool blockTrade, required CounterpartyTypeEnum counterpartyType, required String country, required DateTime createdTime, @@ -415,6 +480,7 @@ class ListItem extends ListItemModel { required String maxOrderAmountLimitDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, + required int orderExpiryPeriod, required double rate, required String rateDisplay, required RateTypeEnum rateType, @@ -426,10 +492,16 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, + List? eligibilityStatus, + List? eligibleCountries, + bool? isEligible, double? maxOrderAmount, String? maxOrderAmountDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, + double? minRating, String? paymentInfo, String? paymentMethod, List? paymentMethodNames, @@ -441,6 +513,7 @@ class ListItem extends ListItemModel { }) : super( accountCurrency: accountCurrency, advertiserDetails: advertiserDetails, + blockTrade: blockTrade, counterpartyType: counterpartyType, country: country, createdTime: createdTime, @@ -453,6 +526,7 @@ class ListItem extends ListItemModel { maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod, rate: rate, rateDisplay: rateDisplay, rateType: rateType, @@ -464,10 +538,16 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, + eligibilityStatus: eligibilityStatus, + eligibleCountries: eligibleCountries, + isEligible: isEligible, maxOrderAmount: maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay, + minCompletionRate: minCompletionRate, + minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, + minRating: minRating, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodNames: paymentMethodNames, @@ -483,6 +563,7 @@ class ListItem extends ListItemModel { accountCurrency: json['account_currency'], advertiserDetails: AdvertiserDetails.fromJson(json['advertiser_details']), + blockTrade: getBool(json['block_trade'])!, counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, country: json['country'], @@ -496,6 +577,7 @@ class ListItem extends ListItemModel { maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], + orderExpiryPeriod: json['order_expiry_period'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], rateType: rateTypeEnumMapper[json['rate_type']]!, @@ -507,10 +589,30 @@ class ListItem extends ListItemModel { daysUntilArchive: json['days_until_archive'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], + eligibilityStatus: json['eligibility_status'] == null + ? null + : List.from( + json['eligibility_status']?.map( + (dynamic item) => item == null + ? null + : eligibilityStatusItemEnumMapper[item], + ), + ), + eligibleCountries: json['eligible_countries'] == null + ? null + : List.from( + json['eligible_countries']?.map( + (dynamic item) => item, + ), + ), + isEligible: getBool(json['is_eligible']), maxOrderAmount: getDouble(json['max_order_amount']), maxOrderAmountDisplay: json['max_order_amount_display'], + minCompletionRate: getDouble(json['min_completion_rate']), + minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], + minRating: getDouble(json['min_rating']), paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodNames: json['payment_method_names'] == null @@ -542,6 +644,7 @@ class ListItem extends ListItemModel { resultMap['account_currency'] = accountCurrency; resultMap['advertiser_details'] = advertiserDetails.toJson(); + resultMap['block_trade'] = blockTrade; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => entry.value == counterpartyType) @@ -557,6 +660,7 @@ class ListItem extends ListItemModel { resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; + resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; resultMap['rate_type'] = rateTypeEnumMapper.entries @@ -573,10 +677,33 @@ class ListItem extends ListItemModel { resultMap['days_until_archive'] = daysUntilArchive; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; + if (eligibilityStatus != null) { + resultMap['eligibility_status'] = eligibilityStatus! + .map( + (EligibilityStatusItemEnum item) => eligibilityStatusItemEnumMapper + .entries + .firstWhere( + (MapEntry entry) => + entry.value == item) + .key, + ) + .toList(); + } + if (eligibleCountries != null) { + resultMap['eligible_countries'] = eligibleCountries! + .map( + (String item) => item, + ) + .toList(); + } + resultMap['is_eligible'] = isEligible; resultMap['max_order_amount'] = maxOrderAmount; resultMap['max_order_amount_display'] = maxOrderAmountDisplay; + resultMap['min_completion_rate'] = minCompletionRate; + resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; + resultMap['min_rating'] = minRating; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; if (paymentMethodNames != null) { @@ -610,6 +737,7 @@ class ListItem extends ListItemModel { ListItem copyWith({ String? accountCurrency, AdvertiserDetails? advertiserDetails, + bool? blockTrade, CounterpartyTypeEnum? counterpartyType, String? country, DateTime? createdTime, @@ -622,6 +750,7 @@ class ListItem extends ListItemModel { String? maxOrderAmountLimitDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + int? orderExpiryPeriod, double? rate, String? rateDisplay, RateTypeEnum? rateType, @@ -633,10 +762,16 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, + List? eligibilityStatus, + List? eligibleCountries, + bool? isEligible, double? maxOrderAmount, String? maxOrderAmountDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, + double? minRating, String? paymentInfo, String? paymentMethod, List? paymentMethodNames, @@ -649,6 +784,7 @@ class ListItem extends ListItemModel { ListItem( accountCurrency: accountCurrency ?? this.accountCurrency, advertiserDetails: advertiserDetails ?? this.advertiserDetails, + blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, createdTime: createdTime ?? this.createdTime, @@ -663,6 +799,7 @@ class ListItem extends ListItemModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, rateType: rateType ?? this.rateType, @@ -674,12 +811,18 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive ?? this.daysUntilArchive, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, + eligibilityStatus: eligibilityStatus ?? this.eligibilityStatus, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, + isEligible: isEligible ?? this.isEligible, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay ?? this.maxOrderAmountDisplay, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, + minRating: minRating ?? this.minRating, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodNames: paymentMethodNames ?? this.paymentMethodNames, @@ -691,7 +834,6 @@ class ListItem extends ListItemModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } - /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . diff --git a/lib/api/response/p2p_advert_update_response_result.dart b/lib/api/response/p2p_advert_update_response_result.dart index c4cf25b319..dde4c526d9 100644 --- a/lib/api/response/p2p_advert_update_response_result.dart +++ b/lib/api/response/p2p_advert_update_response_result.dart @@ -185,6 +185,8 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, + "advertiser_block_trade_ineligible": + VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -212,13 +214,15 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, + /// advertiser_block_trade_ineligible. + advertiserBlockTradeIneligible, + /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } - /// P2p advert update model class. abstract class P2pAdvertUpdateModel { /// Initializes P2p advert update model class . @@ -229,6 +233,7 @@ abstract class P2pAdvertUpdateModel { this.advertiserDetails, this.amount, this.amountDisplay, + this.blockTrade, this.contactInfo, this.counterpartyType, this.country, @@ -238,6 +243,7 @@ abstract class P2pAdvertUpdateModel { this.description, this.effectiveRate, this.effectiveRateDisplay, + this.eligibleCountries, this.isActive, this.isVisible, this.localCurrency, @@ -245,10 +251,14 @@ abstract class P2pAdvertUpdateModel { this.maxOrderAmountDisplay, this.maxOrderAmountLimit, this.maxOrderAmountLimitDisplay, + this.minCompletionRate, + this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, this.minOrderAmountLimit, this.minOrderAmountLimitDisplay, + this.minRating, + this.orderExpiryPeriod, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -282,6 +292,9 @@ abstract class P2pAdvertUpdateModel { /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String? amountDisplay; + /// Indicates if this is block trade advert or not. + final bool? blockTrade; + /// Advertiser contact information. Only applicable for 'sell adverts'. final String? contactInfo; @@ -309,6 +322,9 @@ abstract class P2pAdvertUpdateModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; + /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert + final List? eligibleCountries; + /// The activation status of the advert. final bool? isActive; @@ -330,6 +346,12 @@ abstract class P2pAdvertUpdateModel { /// Maximum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? maxOrderAmountLimitDisplay; + /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. + final double? minCompletionRate; + + /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. + final int? minJoinDays; + /// Minimum order amount specified in advert, in `account_currency`. It is only visible to the advert owner. final double? minOrderAmount; @@ -342,6 +364,12 @@ abstract class P2pAdvertUpdateModel { /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? minOrderAmountLimitDisplay; + /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. + final double? minRating; + + /// Expiry period (seconds) for order created against this ad. + final int? orderExpiryPeriod; + /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -386,6 +414,7 @@ abstract class P2pAdvertUpdateModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. + /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -401,6 +430,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -410,6 +440,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? description, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, bool? isActive, bool? isVisible, String? localCurrency, @@ -417,10 +448,14 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + double? minRating, + int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -441,6 +476,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, + blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -450,6 +486,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: description, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, + eligibleCountries: eligibleCountries, isActive: isActive, isVisible: isVisible, localCurrency: localCurrency, @@ -457,10 +494,14 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountDisplay: maxOrderAmountDisplay, maxOrderAmountLimit: maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, + minCompletionRate: minCompletionRate, + minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, + minRating: minRating, + orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -487,6 +528,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { : AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount']), amountDisplay: json['amount_display'], + blockTrade: getBool(json['block_trade']), contactInfo: json['contact_info'], counterpartyType: json['counterparty_type'] == null ? null @@ -498,6 +540,13 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: json['description'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], + eligibleCountries: json['eligible_countries'] == null + ? null + : List.from( + json['eligible_countries']?.map( + (dynamic item) => item, + ), + ), isActive: getBool(json['is_active']), isVisible: getBool(json['is_visible']), localCurrency: json['local_currency'], @@ -505,10 +554,14 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountDisplay: json['max_order_amount_display'], maxOrderAmountLimit: getDouble(json['max_order_amount_limit']), maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], + minCompletionRate: getDouble(json['min_completion_rate']), + minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit']), minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], + minRating: getDouble(json['min_rating']), + orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -564,6 +617,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { } resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; + resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -576,6 +630,13 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { resultMap['description'] = description; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; + if (eligibleCountries != null) { + resultMap['eligible_countries'] = eligibleCountries! + .map( + (String item) => item, + ) + .toList(); + } resultMap['is_active'] = isActive; resultMap['is_visible'] = isVisible; resultMap['local_currency'] = localCurrency; @@ -583,10 +644,14 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { resultMap['max_order_amount_display'] = maxOrderAmountDisplay; resultMap['max_order_amount_limit'] = maxOrderAmountLimit; resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; + resultMap['min_completion_rate'] = minCompletionRate; + resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; + resultMap['min_rating'] = minRating; + resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -635,6 +700,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -644,6 +710,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? description, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, bool? isActive, bool? isVisible, String? localCurrency, @@ -651,10 +718,14 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, + double? minCompletionRate, + int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + double? minRating, + int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -676,6 +747,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, + blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -685,6 +757,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: description ?? this.description, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, isActive: isActive ?? this.isActive, isVisible: isVisible ?? this.isVisible, localCurrency: localCurrency ?? this.localCurrency, @@ -694,12 +767,16 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountLimit: maxOrderAmountLimit ?? this.maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay ?? this.maxOrderAmountLimitDisplay, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, + minRating: minRating ?? this.minRating, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -716,7 +793,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } - /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -871,7 +947,6 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } - /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -1008,7 +1083,6 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } - /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . diff --git a/lib/api/response/p2p_advertiser_adverts_response_result.dart b/lib/api/response/p2p_advertiser_adverts_response_result.dart index 009499b828..f38ce39bf4 100644 --- a/lib/api/response/p2p_advertiser_adverts_response_result.dart +++ b/lib/api/response/p2p_advertiser_adverts_response_result.dart @@ -148,6 +148,8 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, + "advertiser_block_trade_ineligible": + VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -175,13 +177,15 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, + /// advertiser_block_trade_ineligible. + advertiserBlockTradeIneligible, + /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } - /// P2p advertiser adverts model class. abstract class P2pAdvertiserAdvertsModel { /// Initializes P2p advertiser adverts model class . @@ -233,7 +237,6 @@ class P2pAdvertiserAdverts extends P2pAdvertiserAdvertsModel { list: list ?? this.list, ); } - /// List item model class. abstract class ListItemModel { /// Initializes List item model class . @@ -245,6 +248,7 @@ abstract class ListItemModel { required this.rateDisplay, required this.rate, required this.paymentInfo, + required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.minOrderAmountDisplay, @@ -262,6 +266,7 @@ abstract class ListItemModel { required this.country, required this.counterpartyType, required this.contactInfo, + required this.blockTrade, required this.amountDisplay, required this.amount, required this.advertiserDetails, @@ -270,6 +275,10 @@ abstract class ListItemModel { this.daysUntilArchive, this.effectiveRate, this.effectiveRateDisplay, + this.eligibleCountries, + this.minCompletionRate, + this.minJoinDays, + this.minRating, this.paymentMethod, this.paymentMethodNames, this.price, @@ -298,6 +307,9 @@ abstract class ListItemModel { /// Payment instructions. Only applicable for 'sell adverts'. final String paymentInfo; + /// Expiry period (seconds) for order created against this ad. + final int orderExpiryPeriod; + /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -349,6 +361,9 @@ abstract class ListItemModel { /// Advertiser contact information. Only applicable for 'sell adverts'. final String contactInfo; + /// Indicates if this is block trade advert or not. + final bool blockTrade; + /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String amountDisplay; @@ -373,6 +388,18 @@ abstract class ListItemModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; + /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders. + final List? eligibleCountries; + + /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders. + final double? minCompletionRate; + + /// Counterparties who joined less than this number of days ago are not allowed to place orders. + final int? minJoinDays; + + /// Counterparties who have an average rating less than this value are not allowed to place orders. + final double? minRating; + /// Payment method name (deprecated). final String? paymentMethod; @@ -393,6 +420,7 @@ abstract class ListItemModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. + /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -407,6 +435,7 @@ class ListItem extends ListItemModel { required AdvertiserDetails advertiserDetails, required double amount, required String amountDisplay, + required bool blockTrade, required String contactInfo, required CounterpartyTypeEnum counterpartyType, required String country, @@ -424,6 +453,7 @@ class ListItem extends ListItemModel { required String minOrderAmountDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, + required int orderExpiryPeriod, required String paymentInfo, required double rate, required String rateDisplay, @@ -434,6 +464,10 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, + double? minCompletionRate, + int? minJoinDays, + double? minRating, String? paymentMethod, List? paymentMethodNames, double? price, @@ -445,6 +479,7 @@ class ListItem extends ListItemModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, + blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -462,6 +497,7 @@ class ListItem extends ListItemModel { minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, rate: rate, rateDisplay: rateDisplay, @@ -472,6 +508,10 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, + eligibleCountries: eligibleCountries, + minCompletionRate: minCompletionRate, + minJoinDays: minJoinDays, + minRating: minRating, paymentMethod: paymentMethod, paymentMethodNames: paymentMethodNames, price: price, @@ -487,6 +527,7 @@ class ListItem extends ListItemModel { AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount'])!, amountDisplay: json['amount_display'], + blockTrade: getBool(json['block_trade'])!, contactInfo: json['contact_info'], counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, @@ -505,6 +546,7 @@ class ListItem extends ListItemModel { minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], + orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], @@ -515,6 +557,16 @@ class ListItem extends ListItemModel { daysUntilArchive: json['days_until_archive'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], + eligibleCountries: json['eligible_countries'] == null + ? null + : List.from( + json['eligible_countries']?.map( + (dynamic item) => item, + ), + ), + minCompletionRate: getDouble(json['min_completion_rate']), + minJoinDays: json['min_join_days'], + minRating: getDouble(json['min_rating']), paymentMethod: json['payment_method'], paymentMethodNames: json['payment_method_names'] == null ? null @@ -546,6 +598,7 @@ class ListItem extends ListItemModel { resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; + resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -566,6 +619,7 @@ class ListItem extends ListItemModel { resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; + resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; @@ -581,6 +635,16 @@ class ListItem extends ListItemModel { resultMap['days_until_archive'] = daysUntilArchive; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; + if (eligibleCountries != null) { + resultMap['eligible_countries'] = eligibleCountries! + .map( + (String item) => item, + ) + .toList(); + } + resultMap['min_completion_rate'] = minCompletionRate; + resultMap['min_join_days'] = minJoinDays; + resultMap['min_rating'] = minRating; resultMap['payment_method'] = paymentMethod; if (paymentMethodNames != null) { resultMap['payment_method_names'] = paymentMethodNames! @@ -614,6 +678,7 @@ class ListItem extends ListItemModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, + bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -631,6 +696,7 @@ class ListItem extends ListItemModel { String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, + int? orderExpiryPeriod, String? paymentInfo, double? rate, String? rateDisplay, @@ -641,6 +707,10 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, + List? eligibleCountries, + double? minCompletionRate, + int? minJoinDays, + double? minRating, String? paymentMethod, List? paymentMethodNames, double? price, @@ -653,6 +723,7 @@ class ListItem extends ListItemModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, + blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -674,6 +745,7 @@ class ListItem extends ListItemModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, @@ -685,6 +757,10 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive ?? this.daysUntilArchive, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, + minRating: minRating ?? this.minRating, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodNames: paymentMethodNames ?? this.paymentMethodNames, price: price ?? this.price, @@ -692,7 +768,6 @@ class ListItem extends ListItemModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } - /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . diff --git a/lib/api/response/p2p_settings_response_result.dart b/lib/api/response/p2p_settings_response_result.dart new file mode 100644 index 0000000000..6049cde33e --- /dev/null +++ b/lib/api/response/p2p_settings_response_result.dart @@ -0,0 +1,676 @@ +// ignore_for_file: prefer_single_quotes, unnecessary_import, unused_import + +import 'package:equatable/equatable.dart'; + +import 'package:flutter_deriv_api/helpers/helpers.dart'; + +/// P2p settings response model class. +abstract class P2pSettingsResponseModel { + /// Initializes P2p settings response model class . + const P2pSettingsResponseModel({ + this.p2pSettings, + this.subscription, + }); + + /// Peer-to-peer payment system settings. + final P2pSettings? p2pSettings; + + /// For subscription requests only. + final Subscription? subscription; +} + +/// P2p settings response class. +class P2pSettingsResponse extends P2pSettingsResponseModel { + /// Initializes P2p settings response class. + const P2pSettingsResponse({ + P2pSettings? p2pSettings, + Subscription? subscription, + }) : super( + p2pSettings: p2pSettings, + subscription: subscription, + ); + + /// Creates an instance from JSON. + factory P2pSettingsResponse.fromJson( + dynamic p2pSettingsJson, + dynamic subscriptionJson, + ) => + P2pSettingsResponse( + p2pSettings: p2pSettingsJson == null + ? null + : P2pSettings.fromJson(p2pSettingsJson), + subscription: subscriptionJson == null + ? null + : Subscription.fromJson(subscriptionJson), + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + if (p2pSettings != null) { + resultMap['p2p_settings'] = p2pSettings!.toJson(); + } + if (subscription != null) { + resultMap['subscription'] = subscription!.toJson(); + } + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + P2pSettingsResponse copyWith({ + P2pSettings? p2pSettings, + Subscription? subscription, + }) => + P2pSettingsResponse( + p2pSettings: p2pSettings ?? this.p2pSettings, + subscription: subscription ?? this.subscription, + ); +} + +/// FixedRateAdvertsEnum mapper. +final Map fixedRateAdvertsEnumMapper = + { + "disabled": FixedRateAdvertsEnum.disabled, + "enabled": FixedRateAdvertsEnum.enabled, + "list_only": FixedRateAdvertsEnum.listOnly, +}; + +/// FixedRateAdverts Enum. +enum FixedRateAdvertsEnum { + /// disabled. + disabled, + + /// enabled. + enabled, + + /// list_only. + listOnly, +} + +/// FloatRateAdvertsEnum mapper. +final Map floatRateAdvertsEnumMapper = + { + "disabled": FloatRateAdvertsEnum.disabled, + "enabled": FloatRateAdvertsEnum.enabled, + "list_only": FloatRateAdvertsEnum.listOnly, +}; + +/// FloatRateAdverts Enum. +enum FloatRateAdvertsEnum { + /// disabled. + disabled, + + /// enabled. + enabled, + + /// list_only. + listOnly, +} +/// P2p settings model class. +abstract class P2pSettingsModel { + /// Initializes P2p settings model class . + const P2pSettingsModel({ + required this.supportedCurrencies, + required this.reviewPeriod, + required this.paymentMethodsEnabled, + required this.orderPaymentPeriod, + required this.orderDailyLimit, + required this.maximumOrderAmount, + required this.maximumAdvertAmount, + required this.localCurrencies, + required this.floatRateOffsetLimit, + required this.floatRateAdverts, + required this.fixedRateAdverts, + required this.featureLevel, + required this.disabled, + required this.crossBorderAdsEnabled, + required this.cancellationLimit, + required this.cancellationGracePeriod, + required this.cancellationCountPeriod, + required this.cancellationBlockDuration, + required this.blockTrade, + required this.advertsActiveLimit, + this.advertsArchivePeriod, + this.counterpartyTermSteps, + this.fixedRateAdvertsEndDate, + this.overrideExchangeRate, + }); + + /// List of currencies for which P2P is available + final List supportedCurrencies; + + /// Time after successful order completion during which reviews can be created, in hours. + final double reviewPeriod; + + /// Indicates if the payment methods feature is enabled. + final bool paymentMethodsEnabled; + + /// Time allowed for order payment, in minutes after order creation. + final int orderPaymentPeriod; + + /// Maximum number of orders a user may create per day. + final int orderDailyLimit; + + /// Maximum amount of an order, in USD. + final double maximumOrderAmount; + + /// Maximum amount of an advert, in USD. + final double maximumAdvertAmount; + + /// Available local currencies for p2p_advert_list request. + final List localCurrencies; + + /// Maximum rate offset for floating rate adverts. + final double floatRateOffsetLimit; + + /// Availability of floating rate adverts. + final FloatRateAdvertsEnum floatRateAdverts; + + /// Availability of fixed rate adverts. + final FixedRateAdvertsEnum fixedRateAdverts; + + /// Indicates the availbility of certain backend features. + final int featureLevel; + + /// When `true`, the P2P service is unavailable. + final bool disabled; + + /// When `false`, only exchanges in local currency are allowed for P2P advertiser. + final bool crossBorderAdsEnabled; + + /// A buyer will be temporarily barred after marking this number of cancellations within cancellation_period. + final int cancellationLimit; + + /// A buyer may cancel an order within this period without negative consequences, in minutes after order creation. + final int cancellationGracePeriod; + + /// The period within which to count buyer cancellations, in hours. + final int cancellationCountPeriod; + + /// A buyer will be blocked for this duration after exceeding the cancellation limit, in hours. + final int cancellationBlockDuration; + + /// Block trading settings + final BlockTrade blockTrade; + + /// Maximum number of active ads allowed by an advertiser per currency pair and advert type (buy or sell). + final int advertsActiveLimit; + + /// Adverts will be deactivated if no activity occurs within this period, in days. + final int? advertsArchivePeriod; + + /// Recommended step values for choosing advert counterparty terms. + final CounterpartyTermSteps? counterpartyTermSteps; + + /// Date on which fixed rate adverts will be deactivated. + final String? fixedRateAdvertsEndDate; + + /// Local P2P exchange rate which should be used instead of those obtained from the `exchange_rates` call. + final String? overrideExchangeRate; +} + +/// P2p settings class. +class P2pSettings extends P2pSettingsModel { + /// Initializes P2p settings class. + const P2pSettings({ + required int advertsActiveLimit, + required BlockTrade blockTrade, + required int cancellationBlockDuration, + required int cancellationCountPeriod, + required int cancellationGracePeriod, + required int cancellationLimit, + required bool crossBorderAdsEnabled, + required bool disabled, + required int featureLevel, + required FixedRateAdvertsEnum fixedRateAdverts, + required FloatRateAdvertsEnum floatRateAdverts, + required double floatRateOffsetLimit, + required List localCurrencies, + required double maximumAdvertAmount, + required double maximumOrderAmount, + required int orderDailyLimit, + required int orderPaymentPeriod, + required bool paymentMethodsEnabled, + required double reviewPeriod, + required List supportedCurrencies, + int? advertsArchivePeriod, + CounterpartyTermSteps? counterpartyTermSteps, + String? fixedRateAdvertsEndDate, + String? overrideExchangeRate, + }) : super( + advertsActiveLimit: advertsActiveLimit, + blockTrade: blockTrade, + cancellationBlockDuration: cancellationBlockDuration, + cancellationCountPeriod: cancellationCountPeriod, + cancellationGracePeriod: cancellationGracePeriod, + cancellationLimit: cancellationLimit, + crossBorderAdsEnabled: crossBorderAdsEnabled, + disabled: disabled, + featureLevel: featureLevel, + fixedRateAdverts: fixedRateAdverts, + floatRateAdverts: floatRateAdverts, + floatRateOffsetLimit: floatRateOffsetLimit, + localCurrencies: localCurrencies, + maximumAdvertAmount: maximumAdvertAmount, + maximumOrderAmount: maximumOrderAmount, + orderDailyLimit: orderDailyLimit, + orderPaymentPeriod: orderPaymentPeriod, + paymentMethodsEnabled: paymentMethodsEnabled, + reviewPeriod: reviewPeriod, + supportedCurrencies: supportedCurrencies, + advertsArchivePeriod: advertsArchivePeriod, + counterpartyTermSteps: counterpartyTermSteps, + fixedRateAdvertsEndDate: fixedRateAdvertsEndDate, + overrideExchangeRate: overrideExchangeRate, + ); + + /// Creates an instance from JSON. + factory P2pSettings.fromJson(Map json) => P2pSettings( + advertsActiveLimit: json['adverts_active_limit'], + blockTrade: BlockTrade.fromJson(json['block_trade']), + cancellationBlockDuration: json['cancellation_block_duration'], + cancellationCountPeriod: json['cancellation_count_period'], + cancellationGracePeriod: json['cancellation_grace_period'], + cancellationLimit: json['cancellation_limit'], + crossBorderAdsEnabled: getBool(json['cross_border_ads_enabled'])!, + disabled: getBool(json['disabled'])!, + featureLevel: json['feature_level'], + fixedRateAdverts: + fixedRateAdvertsEnumMapper[json['fixed_rate_adverts']]!, + floatRateAdverts: + floatRateAdvertsEnumMapper[json['float_rate_adverts']]!, + floatRateOffsetLimit: getDouble(json['float_rate_offset_limit'])!, + localCurrencies: List.from( + json['local_currencies'].map( + (dynamic item) => LocalCurrenciesItem.fromJson(item), + ), + ), + maximumAdvertAmount: getDouble(json['maximum_advert_amount'])!, + maximumOrderAmount: getDouble(json['maximum_order_amount'])!, + orderDailyLimit: json['order_daily_limit'], + orderPaymentPeriod: json['order_payment_period'], + paymentMethodsEnabled: getBool(json['payment_methods_enabled'])!, + reviewPeriod: getDouble(json['review_period'])!, + supportedCurrencies: List.from( + json['supported_currencies'].map( + (dynamic item) => item, + ), + ), + advertsArchivePeriod: json['adverts_archive_period'], + counterpartyTermSteps: json['counterparty_term_steps'] == null + ? null + : CounterpartyTermSteps.fromJson(json['counterparty_term_steps']), + fixedRateAdvertsEndDate: json['fixed_rate_adverts_end_date'], + overrideExchangeRate: json['override_exchange_rate'], + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['adverts_active_limit'] = advertsActiveLimit; + resultMap['block_trade'] = blockTrade.toJson(); + + resultMap['cancellation_block_duration'] = cancellationBlockDuration; + resultMap['cancellation_count_period'] = cancellationCountPeriod; + resultMap['cancellation_grace_period'] = cancellationGracePeriod; + resultMap['cancellation_limit'] = cancellationLimit; + resultMap['cross_border_ads_enabled'] = crossBorderAdsEnabled; + resultMap['disabled'] = disabled; + resultMap['feature_level'] = featureLevel; + resultMap['fixed_rate_adverts'] = fixedRateAdvertsEnumMapper.entries + .firstWhere((MapEntry entry) => + entry.value == fixedRateAdverts) + .key; + resultMap['float_rate_adverts'] = floatRateAdvertsEnumMapper.entries + .firstWhere((MapEntry entry) => + entry.value == floatRateAdverts) + .key; + resultMap['float_rate_offset_limit'] = floatRateOffsetLimit; + resultMap['local_currencies'] = localCurrencies + .map( + (LocalCurrenciesItem item) => item.toJson(), + ) + .toList(); + + resultMap['maximum_advert_amount'] = maximumAdvertAmount; + resultMap['maximum_order_amount'] = maximumOrderAmount; + resultMap['order_daily_limit'] = orderDailyLimit; + resultMap['order_payment_period'] = orderPaymentPeriod; + resultMap['payment_methods_enabled'] = paymentMethodsEnabled; + resultMap['review_period'] = reviewPeriod; + resultMap['supported_currencies'] = supportedCurrencies + .map( + (String item) => item, + ) + .toList(); + + resultMap['adverts_archive_period'] = advertsArchivePeriod; + if (counterpartyTermSteps != null) { + resultMap['counterparty_term_steps'] = counterpartyTermSteps!.toJson(); + } + resultMap['fixed_rate_adverts_end_date'] = fixedRateAdvertsEndDate; + resultMap['override_exchange_rate'] = overrideExchangeRate; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + P2pSettings copyWith({ + int? advertsActiveLimit, + BlockTrade? blockTrade, + int? cancellationBlockDuration, + int? cancellationCountPeriod, + int? cancellationGracePeriod, + int? cancellationLimit, + bool? crossBorderAdsEnabled, + bool? disabled, + int? featureLevel, + FixedRateAdvertsEnum? fixedRateAdverts, + FloatRateAdvertsEnum? floatRateAdverts, + double? floatRateOffsetLimit, + List? localCurrencies, + double? maximumAdvertAmount, + double? maximumOrderAmount, + int? orderDailyLimit, + int? orderPaymentPeriod, + bool? paymentMethodsEnabled, + double? reviewPeriod, + List? supportedCurrencies, + int? advertsArchivePeriod, + CounterpartyTermSteps? counterpartyTermSteps, + String? fixedRateAdvertsEndDate, + String? overrideExchangeRate, + }) => + P2pSettings( + advertsActiveLimit: advertsActiveLimit ?? this.advertsActiveLimit, + blockTrade: blockTrade ?? this.blockTrade, + cancellationBlockDuration: + cancellationBlockDuration ?? this.cancellationBlockDuration, + cancellationCountPeriod: + cancellationCountPeriod ?? this.cancellationCountPeriod, + cancellationGracePeriod: + cancellationGracePeriod ?? this.cancellationGracePeriod, + cancellationLimit: cancellationLimit ?? this.cancellationLimit, + crossBorderAdsEnabled: + crossBorderAdsEnabled ?? this.crossBorderAdsEnabled, + disabled: disabled ?? this.disabled, + featureLevel: featureLevel ?? this.featureLevel, + fixedRateAdverts: fixedRateAdverts ?? this.fixedRateAdverts, + floatRateAdverts: floatRateAdverts ?? this.floatRateAdverts, + floatRateOffsetLimit: floatRateOffsetLimit ?? this.floatRateOffsetLimit, + localCurrencies: localCurrencies ?? this.localCurrencies, + maximumAdvertAmount: maximumAdvertAmount ?? this.maximumAdvertAmount, + maximumOrderAmount: maximumOrderAmount ?? this.maximumOrderAmount, + orderDailyLimit: orderDailyLimit ?? this.orderDailyLimit, + orderPaymentPeriod: orderPaymentPeriod ?? this.orderPaymentPeriod, + paymentMethodsEnabled: + paymentMethodsEnabled ?? this.paymentMethodsEnabled, + reviewPeriod: reviewPeriod ?? this.reviewPeriod, + supportedCurrencies: supportedCurrencies ?? this.supportedCurrencies, + advertsArchivePeriod: advertsArchivePeriod ?? this.advertsArchivePeriod, + counterpartyTermSteps: + counterpartyTermSteps ?? this.counterpartyTermSteps, + fixedRateAdvertsEndDate: + fixedRateAdvertsEndDate ?? this.fixedRateAdvertsEndDate, + overrideExchangeRate: overrideExchangeRate ?? this.overrideExchangeRate, + ); +} +/// Block trade model class. +abstract class BlockTradeModel { + /// Initializes Block trade model class . + const BlockTradeModel({ + this.disabled, + this.maximumAdvertAmount, + }); + + /// When `true`, Block trading is unavailable. + final bool? disabled; + + /// Maximum amount of a block trade advert, in USD. + final double? maximumAdvertAmount; +} + +/// Block trade class. +class BlockTrade extends BlockTradeModel { + /// Initializes Block trade class. + const BlockTrade({ + bool? disabled, + double? maximumAdvertAmount, + }) : super( + disabled: disabled, + maximumAdvertAmount: maximumAdvertAmount, + ); + + /// Creates an instance from JSON. + factory BlockTrade.fromJson(Map json) => BlockTrade( + disabled: getBool(json['disabled']), + maximumAdvertAmount: getDouble(json['maximum_advert_amount']), + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['disabled'] = disabled; + resultMap['maximum_advert_amount'] = maximumAdvertAmount; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + BlockTrade copyWith({ + bool? disabled, + double? maximumAdvertAmount, + }) => + BlockTrade( + disabled: disabled ?? this.disabled, + maximumAdvertAmount: maximumAdvertAmount ?? this.maximumAdvertAmount, + ); +} +/// Local currencies item model class. +abstract class LocalCurrenciesItemModel { + /// Initializes Local currencies item model class . + const LocalCurrenciesItemModel({ + required this.symbol, + required this.hasAdverts, + required this.displayName, + this.isDefault, + }); + + /// Local currency symbol + final String symbol; + + /// Indicates that there are adverts available for this currency. + final bool hasAdverts; + + /// Local currency name + final String displayName; + + /// Indicates that this is local currency for the current country. + final int? isDefault; +} + +/// Local currencies item class. +class LocalCurrenciesItem extends LocalCurrenciesItemModel { + /// Initializes Local currencies item class. + const LocalCurrenciesItem({ + required String displayName, + required bool hasAdverts, + required String symbol, + int? isDefault, + }) : super( + displayName: displayName, + hasAdverts: hasAdverts, + symbol: symbol, + isDefault: isDefault, + ); + + /// Creates an instance from JSON. + factory LocalCurrenciesItem.fromJson(Map json) => + LocalCurrenciesItem( + displayName: json['display_name'], + hasAdverts: getBool(json['has_adverts'])!, + symbol: json['symbol'], + isDefault: json['is_default'], + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['display_name'] = displayName; + resultMap['has_adverts'] = hasAdverts; + resultMap['symbol'] = symbol; + resultMap['is_default'] = isDefault; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + LocalCurrenciesItem copyWith({ + String? displayName, + bool? hasAdverts, + String? symbol, + int? isDefault, + }) => + LocalCurrenciesItem( + displayName: displayName ?? this.displayName, + hasAdverts: hasAdverts ?? this.hasAdverts, + symbol: symbol ?? this.symbol, + isDefault: isDefault ?? this.isDefault, + ); +} +/// Counterparty term steps model class. +abstract class CounterpartyTermStepsModel { + /// Initializes Counterparty term steps model class . + const CounterpartyTermStepsModel({ + required this.rating, + required this.joinDays, + required this.completionRate, + }); + + /// Values for minimum average rating. + final List rating; + + /// Values for minimum joined days. + final List joinDays; + + /// Values for minimum 30 day completion rate. + final List completionRate; +} + +/// Counterparty term steps class. +class CounterpartyTermSteps extends CounterpartyTermStepsModel { + /// Initializes Counterparty term steps class. + const CounterpartyTermSteps({ + required List completionRate, + required List joinDays, + required List rating, + }) : super( + completionRate: completionRate, + joinDays: joinDays, + rating: rating, + ); + + /// Creates an instance from JSON. + factory CounterpartyTermSteps.fromJson(Map json) => + CounterpartyTermSteps( + completionRate: List.from( + json['completion_rate'].map( + (dynamic item) => getDouble(item), + ), + ), + joinDays: List.from( + json['join_days'].map( + (dynamic item) => item, + ), + ), + rating: List.from( + json['rating'].map( + (dynamic item) => getDouble(item), + ), + ), + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['completion_rate'] = completionRate + .map( + (double item) => item, + ) + .toList(); + + resultMap['join_days'] = joinDays + .map( + (int item) => item, + ) + .toList(); + + resultMap['rating'] = rating + .map( + (double item) => item, + ) + .toList(); + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + CounterpartyTermSteps copyWith({ + List? completionRate, + List? joinDays, + List? rating, + }) => + CounterpartyTermSteps( + completionRate: completionRate ?? this.completionRate, + joinDays: joinDays ?? this.joinDays, + rating: rating ?? this.rating, + ); +} +/// Subscription model class. +abstract class SubscriptionModel { + /// Initializes Subscription model class . + const SubscriptionModel({ + required this.id, + }); + + /// A per-connection unique identifier. Can be passed to the `forget` API call to unsubscribe. + final String id; +} + +/// Subscription class. +class Subscription extends SubscriptionModel { + /// Initializes Subscription class. + const Subscription({ + required String id, + }) : super( + id: id, + ); + + /// Creates an instance from JSON. + factory Subscription.fromJson(Map json) => Subscription( + id: json['id'], + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['id'] = id; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + Subscription copyWith({ + String? id, + }) => + Subscription( + id: id ?? this.id, + ); +} diff --git a/lib/basic_api/generated/p2p_advert_create_send.dart b/lib/basic_api/generated/p2p_advert_create_send.dart index 09ad0891d8..fd4e501a4e 100644 --- a/lib/basic_api/generated/p2p_advert_create_send.dart +++ b/lib/basic_api/generated/p2p_advert_create_send.dart @@ -9,11 +9,18 @@ class P2pAdvertCreateRequest extends Request { /// Initialize P2pAdvertCreateRequest. const P2pAdvertCreateRequest({ required this.amount, + this.blockTrade, this.contactInfo, this.description, + this.eligibleCountries, this.localCurrency, + this.loginid, required this.maxOrderAmount, + this.minCompletionRate, + this.minJoinDays, required this.minOrderAmount, + this.minRating, + this.orderExpiryPeriod, this.p2pAdvertCreate = true, this.paymentInfo, this.paymentMethod, @@ -34,11 +41,21 @@ class P2pAdvertCreateRequest extends Request { factory P2pAdvertCreateRequest.fromJson(Map json) => P2pAdvertCreateRequest( amount: json['amount'] as num?, + blockTrade: + json['block_trade'] == null ? null : json['block_trade'] == 1, contactInfo: json['contact_info'] as String?, description: json['description'] as String?, + eligibleCountries: (json['eligible_countries'] as List?) + ?.map((dynamic item) => item as String) + .toList(), localCurrency: json['local_currency'] as String?, + loginid: json['loginid'] as String?, maxOrderAmount: json['max_order_amount'] as num?, + minCompletionRate: json['min_completion_rate'] as num?, + minJoinDays: json['min_join_days'] as int?, minOrderAmount: json['min_order_amount'] as num?, + minRating: json['min_rating'] as num?, + orderExpiryPeriod: json['order_expiry_period'] as int?, p2pAdvertCreate: json['p2p_advert_create'] == null ? null : json['p2p_advert_create'] == 1, @@ -60,21 +77,42 @@ class P2pAdvertCreateRequest extends Request { /// The total amount of the advert, in advertiser's account currency. final num? amount; + /// [Optional] Indicates if this is block trade ad or not. Default: `false`. + final bool? blockTrade; + /// [Optional] Advertiser contact information. final String? contactInfo; /// [Optional] General information about the advert. final String? description; + /// [Optional] 2 letter country codes. Counterparties who do not live in these countries will not be allowed to place orders against the advert. + final List? eligibleCountries; + /// [Optional] Local currency for this advert. If not provided, will use the currency of client's residence by default. final String? localCurrency; + /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. + final String? loginid; + /// Maximum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be more than or equal to `min_order_amount` final num? maxOrderAmount; + /// [Optional] Counterparties who have a 30 day completion rate less than this value will not be allowed to place orders against the advert. + final num? minCompletionRate; + + /// [Optional] Counterparties who joined less than this number of days ago will not be allowed to place orders against the advert. + final int? minJoinDays; + /// Minimum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be less than or equal to `max_order_amount`. final num? minOrderAmount; + /// [Optional] Counterparties who have an average rating less than this value will not be allowed to place orders against the advert. + final num? minRating; + + /// [Optional] Expiry period (seconds) for order created against this ad. + final int? orderExpiryPeriod; + /// Must be `true` final bool? p2pAdvertCreate; @@ -103,11 +141,22 @@ class P2pAdvertCreateRequest extends Request { @override Map toJson() => { 'amount': amount, + 'block_trade': blockTrade == null + ? null + : blockTrade! + ? 1 + : 0, 'contact_info': contactInfo, 'description': description, + 'eligible_countries': eligibleCountries, 'local_currency': localCurrency, + 'loginid': loginid, 'max_order_amount': maxOrderAmount, + 'min_completion_rate': minCompletionRate, + 'min_join_days': minJoinDays, 'min_order_amount': minOrderAmount, + 'min_rating': minRating, + 'order_expiry_period': orderExpiryPeriod, 'p2p_advert_create': p2pAdvertCreate == null ? null : p2pAdvertCreate! @@ -128,11 +177,18 @@ class P2pAdvertCreateRequest extends Request { @override P2pAdvertCreateRequest copyWith({ num? amount, + bool? blockTrade, String? contactInfo, String? description, + List? eligibleCountries, String? localCurrency, + String? loginid, num? maxOrderAmount, + num? minCompletionRate, + int? minJoinDays, num? minOrderAmount, + num? minRating, + int? orderExpiryPeriod, bool? p2pAdvertCreate, String? paymentInfo, String? paymentMethod, @@ -146,11 +202,18 @@ class P2pAdvertCreateRequest extends Request { }) => P2pAdvertCreateRequest( amount: amount ?? this.amount, + blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, description: description ?? this.description, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, localCurrency: localCurrency ?? this.localCurrency, + loginid: loginid ?? this.loginid, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, + minRating: minRating ?? this.minRating, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, p2pAdvertCreate: p2pAdvertCreate ?? this.p2pAdvertCreate, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, diff --git a/lib/basic_api/generated/p2p_advert_list_send.dart b/lib/basic_api/generated/p2p_advert_list_send.dart index cf32a84084..6f6cdbbbc2 100644 --- a/lib/basic_api/generated/p2p_advert_list_send.dart +++ b/lib/basic_api/generated/p2p_advert_list_send.dart @@ -11,10 +11,13 @@ class P2pAdvertListRequest extends Request { this.advertiserId, this.advertiserName, this.amount, + this.blockTrade, this.counterpartyType, this.favouritesOnly, + this.hideIneligible, this.limit, this.localCurrency, + this.loginid, this.offset, this.p2pAdvertList = true, this.paymentMethod, @@ -34,12 +37,18 @@ class P2pAdvertListRequest extends Request { advertiserId: json['advertiser_id'] as String?, advertiserName: json['advertiser_name'] as String?, amount: json['amount'] as num?, + blockTrade: + json['block_trade'] == null ? null : json['block_trade'] == 1, counterpartyType: json['counterparty_type'] as String?, favouritesOnly: json['favourites_only'] == null ? null : json['favourites_only'] == 1, + hideIneligible: json['hide_ineligible'] == null + ? null + : json['hide_ineligible'] == 1, limit: json['limit'] as int?, localCurrency: json['local_currency'] as String?, + loginid: json['loginid'] as String?, offset: json['offset'] as int?, p2pAdvertList: json['p2p_advert_list'] == null ? null @@ -64,18 +73,27 @@ class P2pAdvertListRequest extends Request { /// [Optional] How much to buy or sell, used to calculate prices. final num? amount; + /// [Optional] Return block trade adverts when `true`, non-block trade adverts when `false` (default). + final bool? blockTrade; + /// [Optional] Filter the adverts by `counterparty_type`. final String? counterpartyType; /// [Optional] Only show adverts from favourite advertisers. Default is `false`. final bool? favouritesOnly; + /// [Optional] If set to `true`, adverts for which the current user does not meet counteryparty terms are not returned. + final bool? hideIneligible; + /// [Optional] Used for paging. final int? limit; /// [Optional] Currency to conduct payment transaction in. If not provided, only ads from country of residence will be returned. final String? localCurrency; + /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. + final String? loginid; + /// [Optional] Used for paging. final int? offset; @@ -97,14 +115,25 @@ class P2pAdvertListRequest extends Request { 'advertiser_id': advertiserId, 'advertiser_name': advertiserName, 'amount': amount, + 'block_trade': blockTrade == null + ? null + : blockTrade! + ? 1 + : 0, 'counterparty_type': counterpartyType, 'favourites_only': favouritesOnly == null ? null : favouritesOnly! ? 1 : 0, + 'hide_ineligible': hideIneligible == null + ? null + : hideIneligible! + ? 1 + : 0, 'limit': limit, 'local_currency': localCurrency, + 'loginid': loginid, 'offset': offset, 'p2p_advert_list': p2pAdvertList == null ? null @@ -128,10 +157,13 @@ class P2pAdvertListRequest extends Request { String? advertiserId, String? advertiserName, num? amount, + bool? blockTrade, String? counterpartyType, bool? favouritesOnly, + bool? hideIneligible, int? limit, String? localCurrency, + String? loginid, int? offset, bool? p2pAdvertList, List? paymentMethod, @@ -144,10 +176,13 @@ class P2pAdvertListRequest extends Request { advertiserId: advertiserId ?? this.advertiserId, advertiserName: advertiserName ?? this.advertiserName, amount: amount ?? this.amount, + blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, favouritesOnly: favouritesOnly ?? this.favouritesOnly, + hideIneligible: hideIneligible ?? this.hideIneligible, limit: limit ?? this.limit, localCurrency: localCurrency ?? this.localCurrency, + loginid: loginid ?? this.loginid, offset: offset ?? this.offset, p2pAdvertList: p2pAdvertList ?? this.p2pAdvertList, paymentMethod: paymentMethod ?? this.paymentMethod, diff --git a/lib/basic_api/generated/p2p_advert_update_send.dart b/lib/basic_api/generated/p2p_advert_update_send.dart index 79859f96d5..e8e972d7a5 100644 --- a/lib/basic_api/generated/p2p_advert_update_send.dart +++ b/lib/basic_api/generated/p2p_advert_update_send.dart @@ -11,11 +11,17 @@ class P2pAdvertUpdateRequest extends Request { this.contactInfo, this.delete, this.description, + this.eligibleCountries, required this.id, this.isActive, this.localCurrency, + this.loginid, this.maxOrderAmount, + this.minCompletionRate, + this.minJoinDays, this.minOrderAmount, + this.minRating, + this.orderExpiryPeriod, this.p2pAdvertUpdate = true, this.paymentInfo, this.paymentMethodIds, @@ -37,11 +43,19 @@ class P2pAdvertUpdateRequest extends Request { contactInfo: json['contact_info'] as String?, delete: json['delete'] == null ? null : json['delete'] == 1, description: json['description'] as String?, + eligibleCountries: (json['eligible_countries'] as List?) + ?.map((dynamic item) => item as String) + .toList(), id: json['id'] as String?, isActive: json['is_active'] == null ? null : json['is_active'] == 1, localCurrency: json['local_currency'] as String?, + loginid: json['loginid'] as String?, maxOrderAmount: json['max_order_amount'] as num?, + minCompletionRate: json['min_completion_rate'] as num?, + minJoinDays: json['min_join_days'] as int?, minOrderAmount: json['min_order_amount'] as num?, + minRating: json['min_rating'] as num?, + orderExpiryPeriod: json['order_expiry_period'] as int?, p2pAdvertUpdate: json['p2p_advert_update'] == null ? null : json['p2p_advert_update'] == 1, @@ -68,6 +82,9 @@ class P2pAdvertUpdateRequest extends Request { /// [Optional] General information about the advert. final String? description; + /// [Optional] 2 letter country codes. Counterparties who do not live in these countries will not be allowed to place orders against this advert. An empty array or null value will clear the condition. + final List? eligibleCountries; + /// The unique identifier for this advert. final String? id; @@ -77,12 +94,27 @@ class P2pAdvertUpdateRequest extends Request { /// [Optional] Local currency for this advert. final String? localCurrency; + /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. + final String? loginid; + /// [Optional] Maximum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be more than or equal to `min_order_amount`. final num? maxOrderAmount; + /// [Optional] Counterparties who have a 30 day completion rate less than this value will not be allowed to place orders against this advert. A an empty array or null value will clear the condition. + final num? minCompletionRate; + + /// [Optional] Counterparties who joined less than this number of days ago will not be allowed to place orders against this advert. A null value will clear the condition. + final int? minJoinDays; + /// [Optional] Minimum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be less than or equal to `max_order_amount`. final num? minOrderAmount; + /// [Optional] Counterparties who have an average rating less than this value will not be allowed to place orders against this advert. A null value will clear the condition. + final num? minRating; + + /// [Optional] Expiry period (seconds) for order created against this ad. + final int? orderExpiryPeriod; + /// Must be `true` final bool? p2pAdvertUpdate; @@ -114,6 +146,7 @@ class P2pAdvertUpdateRequest extends Request { ? 1 : 0, 'description': description, + 'eligible_countries': eligibleCountries, 'id': id, 'is_active': isActive == null ? null @@ -121,8 +154,13 @@ class P2pAdvertUpdateRequest extends Request { ? 1 : 0, 'local_currency': localCurrency, + 'loginid': loginid, 'max_order_amount': maxOrderAmount, + 'min_completion_rate': minCompletionRate, + 'min_join_days': minJoinDays, 'min_order_amount': minOrderAmount, + 'min_rating': minRating, + 'order_expiry_period': orderExpiryPeriod, 'p2p_advert_update': p2pAdvertUpdate == null ? null : p2pAdvertUpdate! @@ -144,11 +182,17 @@ class P2pAdvertUpdateRequest extends Request { String? contactInfo, bool? delete, String? description, + List? eligibleCountries, String? id, bool? isActive, String? localCurrency, + String? loginid, num? maxOrderAmount, + num? minCompletionRate, + int? minJoinDays, num? minOrderAmount, + num? minRating, + int? orderExpiryPeriod, bool? p2pAdvertUpdate, String? paymentInfo, List? paymentMethodIds, @@ -163,11 +207,17 @@ class P2pAdvertUpdateRequest extends Request { contactInfo: contactInfo ?? this.contactInfo, delete: delete ?? this.delete, description: description ?? this.description, + eligibleCountries: eligibleCountries ?? this.eligibleCountries, id: id ?? this.id, isActive: isActive ?? this.isActive, localCurrency: localCurrency ?? this.localCurrency, + loginid: loginid ?? this.loginid, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, + minCompletionRate: minCompletionRate ?? this.minCompletionRate, + minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, + minRating: minRating ?? this.minRating, + orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, p2pAdvertUpdate: p2pAdvertUpdate ?? this.p2pAdvertUpdate, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethodIds: paymentMethodIds ?? this.paymentMethodIds, From 2f01df92afa195eb414662b9f5177be75567a7a2 Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Wed, 20 Mar 2024 11:28:20 +0800 Subject: [PATCH 2/6] Revert "add p2p ad terms api changes" This reverts commit a1db4be79fc7c9135cd593cb4aca9f215acc0862. --- .../p2p_advert_create_response_result.dart | 82 +-- .../p2p_advert_info_response_result.dart | 151 +--- .../p2p_advert_list_response_result.dart | 148 +--- .../p2p_advert_update_response_result.dart | 82 +-- ...2p_advertiser_adverts_response_result.dart | 81 +-- .../p2p_settings_response_result.dart | 676 ------------------ .../generated/p2p_advert_create_send.dart | 63 -- .../generated/p2p_advert_list_send.dart | 35 - .../generated/p2p_advert_update_send.dart | 50 -- 9 files changed, 20 insertions(+), 1348 deletions(-) delete mode 100644 lib/api/response/p2p_settings_response_result.dart diff --git a/lib/api/response/p2p_advert_create_response_result.dart b/lib/api/response/p2p_advert_create_response_result.dart index 4d5414a0ac..9a99fecef5 100644 --- a/lib/api/response/p2p_advert_create_response_result.dart +++ b/lib/api/response/p2p_advert_create_response_result.dart @@ -185,8 +185,6 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, - "advertiser_block_trade_ineligible": - VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -214,15 +212,13 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, - /// advertiser_block_trade_ineligible. - advertiserBlockTradeIneligible, - /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } + /// P2p advert create model class. abstract class P2pAdvertCreateModel { /// Initializes P2p advert create model class . @@ -233,7 +229,6 @@ abstract class P2pAdvertCreateModel { required this.rateType, required this.rateDisplay, required this.rate, - required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.minOrderAmountDisplay, @@ -250,7 +245,6 @@ abstract class P2pAdvertCreateModel { required this.createdTime, required this.country, required this.counterpartyType, - required this.blockTrade, required this.amountDisplay, required this.amount, required this.advertiserDetails, @@ -259,10 +253,6 @@ abstract class P2pAdvertCreateModel { this.contactInfo, this.effectiveRate, this.effectiveRateDisplay, - this.eligibleCountries, - this.minCompletionRate, - this.minJoinDays, - this.minRating, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -290,9 +280,6 @@ abstract class P2pAdvertCreateModel { /// Conversion rate from advertiser's account currency to `local_currency`. An absolute rate value (fixed), or percentage offset from current market rate (floating). final double rate; - /// Expiry period (seconds) for order created against this ad. - final int orderExpiryPeriod; - /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -341,9 +328,6 @@ abstract class P2pAdvertCreateModel { /// Type of transaction from the opposite party's perspective. final CounterpartyTypeEnum counterpartyType; - /// Indicates if this is block trade advert or not. - final bool blockTrade; - /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String amountDisplay; @@ -368,18 +352,6 @@ abstract class P2pAdvertCreateModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; - /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. - final List? eligibleCountries; - - /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. - final double? minCompletionRate; - - /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. - final int? minJoinDays; - - /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. - final double? minRating; - /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -406,7 +378,6 @@ abstract class P2pAdvertCreateModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. - /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -421,7 +392,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { required AdvertiserDetails advertiserDetails, required double amount, required String amountDisplay, - required bool blockTrade, required CounterpartyTypeEnum counterpartyType, required String country, required DateTime createdTime, @@ -438,7 +408,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { required String minOrderAmountDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, - required int orderExpiryPeriod, required double rate, required String rateDisplay, required RateTypeEnum rateType, @@ -448,10 +417,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? contactInfo, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, - double? minCompletionRate, - int? minJoinDays, - double? minRating, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -465,7 +430,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, - blockTrade: blockTrade, counterpartyType: counterpartyType, country: country, createdTime: createdTime, @@ -482,7 +446,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod, rate: rate, rateDisplay: rateDisplay, rateType: rateType, @@ -492,10 +455,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: contactInfo, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, - eligibleCountries: eligibleCountries, - minCompletionRate: minCompletionRate, - minJoinDays: minJoinDays, - minRating: minRating, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -514,7 +473,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount'])!, amountDisplay: json['amount_display'], - blockTrade: getBool(json['block_trade'])!, counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, country: json['country'], @@ -532,7 +490,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], - orderExpiryPeriod: json['order_expiry_period'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], rateType: rateTypeEnumMapper[json['rate_type']]!, @@ -542,16 +499,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: json['contact_info'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], - eligibleCountries: json['eligible_countries'] == null - ? null - : List.from( - json['eligible_countries']?.map( - (dynamic item) => item, - ), - ), - minCompletionRate: getDouble(json['min_completion_rate']), - minJoinDays: json['min_join_days'], - minRating: getDouble(json['min_rating']), paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -595,7 +542,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; - resultMap['block_trade'] = blockTrade; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => entry.value == counterpartyType) @@ -615,7 +561,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; - resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; resultMap['rate_type'] = rateTypeEnumMapper.entries @@ -631,16 +576,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { resultMap['contact_info'] = contactInfo; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; - if (eligibleCountries != null) { - resultMap['eligible_countries'] = eligibleCountries! - .map( - (String item) => item, - ) - .toList(); - } - resultMap['min_completion_rate'] = minCompletionRate; - resultMap['min_join_days'] = minJoinDays; - resultMap['min_rating'] = minRating; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -676,7 +611,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, CounterpartyTypeEnum? counterpartyType, String? country, DateTime? createdTime, @@ -693,7 +627,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - int? orderExpiryPeriod, double? rate, String? rateDisplay, RateTypeEnum? rateType, @@ -703,10 +636,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { String? contactInfo, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, - double? minCompletionRate, - int? minJoinDays, - double? minRating, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -721,7 +650,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, - blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, createdTime: createdTime ?? this.createdTime, @@ -742,7 +670,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, rateType: rateType ?? this.rateType, @@ -753,10 +680,6 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { contactInfo: contactInfo ?? this.contactInfo, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, - minRating: minRating ?? this.minRating, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -766,6 +689,7 @@ class P2pAdvertCreate extends P2pAdvertCreateModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } + /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -920,6 +844,7 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } + /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -1056,6 +981,7 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } + /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . diff --git a/lib/api/response/p2p_advert_info_response_result.dart b/lib/api/response/p2p_advert_info_response_result.dart index d793699862..f2186228d3 100644 --- a/lib/api/response/p2p_advert_info_response_result.dart +++ b/lib/api/response/p2p_advert_info_response_result.dart @@ -17,6 +17,7 @@ import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_update_receive. import 'package:flutter_deriv_api/basic_api/generated/p2p_advert_update_send.dart'; import 'package:flutter_deriv_api/basic_api/generated/p2p_order_create_receive.dart'; import 'package:flutter_deriv_api/basic_api/generated/p2p_order_create_send.dart'; + /// P2p advert info response model class. abstract class P2pAdvertInfoResponseModel { /// Initializes P2p advert info response model class . @@ -239,30 +240,6 @@ enum CounterpartyTypeEnum { sell, } -/// EligibilityStatusItemEnum mapper. -final Map eligibilityStatusItemEnumMapper = - { - "completion_rate": EligibilityStatusItemEnum.completionRate, - "country": EligibilityStatusItemEnum.country, - "join_date": EligibilityStatusItemEnum.joinDate, - "rating_average": EligibilityStatusItemEnum.ratingAverage, -}; - -/// EligibilityStatusItem Enum. -enum EligibilityStatusItemEnum { - /// completion_rate. - completionRate, - - /// country. - country, - - /// join_date. - joinDate, - - /// rating_average. - ratingAverage, -} - /// TypeEnum mapper. final Map typeEnumMapper = { "text": TypeEnum.text, @@ -340,8 +317,6 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, - "advertiser_block_trade_ineligible": - VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -369,15 +344,13 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, - /// advertiser_block_trade_ineligible. - advertiserBlockTradeIneligible, - /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } + /// P2p advert info model class. abstract class P2pAdvertInfoModel { /// Initializes P2p advert info model class . @@ -387,7 +360,6 @@ abstract class P2pAdvertInfoModel { this.advertiserDetails, this.amount, this.amountDisplay, - this.blockTrade, this.contactInfo, this.counterpartyType, this.country, @@ -397,25 +369,18 @@ abstract class P2pAdvertInfoModel { this.description, this.effectiveRate, this.effectiveRateDisplay, - this.eligibilityStatus, - this.eligibleCountries, this.id, this.isActive, - this.isEligible, this.isVisible, this.localCurrency, this.maxOrderAmount, this.maxOrderAmountDisplay, this.maxOrderAmountLimit, this.maxOrderAmountLimitDisplay, - this.minCompletionRate, - this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, this.minOrderAmountLimit, this.minOrderAmountLimitDisplay, - this.minRating, - this.orderExpiryPeriod, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -446,9 +411,6 @@ abstract class P2pAdvertInfoModel { /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? amountDisplay; - /// Indicates if this is block trade advert or not. - final bool? blockTrade; - /// Advertiser contact information. Only applicable for 'sell adverts'. final String? contactInfo; @@ -476,25 +438,12 @@ abstract class P2pAdvertInfoModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; - /// Reasons why the counterparty terms do not allow the current user to place orders against this advert. Possible values: - /// - `completion_rate`: current user's 30 day completion rate is less than `min_completion_rate`. - /// - `country`: current user's residence is not in `eligible_countries`. - /// - `join_date`: current user registered on P2P less than `min_join_days` in the past. - /// - `rating`: current user's average review rating is less than `min_rating`. - final List? eligibilityStatus; - - /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. - final List? eligibleCountries; - /// The unique identifier for this advert. final String? id; /// The activation status of the advert. final bool? isActive; - /// Indicates that the current user meets the counterparty terms for placing orders against this advert. - final bool? isEligible; - /// Indicates that this advert will appear on the main advert list. It is only visible to the advert owner. final bool? isVisible; @@ -513,12 +462,6 @@ abstract class P2pAdvertInfoModel { /// Maximum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? maxOrderAmountLimitDisplay; - /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. - final double? minCompletionRate; - - /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. - final int? minJoinDays; - /// Minimum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? minOrderAmount; @@ -531,12 +474,6 @@ abstract class P2pAdvertInfoModel { /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? minOrderAmountLimitDisplay; - /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. - final double? minRating; - - /// Expiry period (seconds) for order created against this ad. - final int? orderExpiryPeriod; - /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -581,7 +518,6 @@ abstract class P2pAdvertInfoModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. - /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -596,7 +532,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -606,25 +541,18 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { String? description, double? effectiveRate, String? effectiveRateDisplay, - List? eligibilityStatus, - List? eligibleCountries, String? id, bool? isActive, - bool? isEligible, bool? isVisible, String? localCurrency, double? maxOrderAmount, String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - double? minRating, - int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -644,7 +572,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, - blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -654,25 +581,18 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: description, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, - eligibilityStatus: eligibilityStatus, - eligibleCountries: eligibleCountries, id: id, isActive: isActive, - isEligible: isEligible, isVisible: isVisible, localCurrency: localCurrency, maxOrderAmount: maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay, maxOrderAmountLimit: maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, - minCompletionRate: minCompletionRate, - minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, - minRating: minRating, - orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -697,7 +617,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { : AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount']), amountDisplay: json['amount_display'], - blockTrade: getBool(json['block_trade']), contactInfo: json['contact_info'], counterpartyType: json['counterparty_type'] == null ? null @@ -709,39 +628,18 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: json['description'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], - eligibilityStatus: json['eligibility_status'] == null - ? null - : List.from( - json['eligibility_status']?.map( - (dynamic item) => item == null - ? null - : eligibilityStatusItemEnumMapper[item], - ), - ), - eligibleCountries: json['eligible_countries'] == null - ? null - : List.from( - json['eligible_countries']?.map( - (dynamic item) => item, - ), - ), id: json['id'], isActive: getBool(json['is_active']), - isEligible: getBool(json['is_eligible']), isVisible: getBool(json['is_visible']), localCurrency: json['local_currency'], maxOrderAmount: getDouble(json['max_order_amount']), maxOrderAmountDisplay: json['max_order_amount_display'], maxOrderAmountLimit: getDouble(json['max_order_amount_limit']), maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], - minCompletionRate: getDouble(json['min_completion_rate']), - minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit']), minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], - minRating: getDouble(json['min_rating']), - orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -796,7 +694,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { } resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; - resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -809,42 +706,18 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { resultMap['description'] = description; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; - if (eligibilityStatus != null) { - resultMap['eligibility_status'] = eligibilityStatus! - .map( - (EligibilityStatusItemEnum item) => eligibilityStatusItemEnumMapper - .entries - .firstWhere( - (MapEntry entry) => - entry.value == item) - .key, - ) - .toList(); - } - if (eligibleCountries != null) { - resultMap['eligible_countries'] = eligibleCountries! - .map( - (String item) => item, - ) - .toList(); - } resultMap['id'] = id; resultMap['is_active'] = isActive; - resultMap['is_eligible'] = isEligible; resultMap['is_visible'] = isVisible; resultMap['local_currency'] = localCurrency; resultMap['max_order_amount'] = maxOrderAmount; resultMap['max_order_amount_display'] = maxOrderAmountDisplay; resultMap['max_order_amount_limit'] = maxOrderAmountLimit; resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; - resultMap['min_completion_rate'] = minCompletionRate; - resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; - resultMap['min_rating'] = minRating; - resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -892,7 +765,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -902,25 +774,18 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { String? description, double? effectiveRate, String? effectiveRateDisplay, - List? eligibilityStatus, - List? eligibleCountries, String? id, bool? isActive, - bool? isEligible, bool? isVisible, String? localCurrency, double? maxOrderAmount, String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - double? minRating, - int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -941,7 +806,6 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, - blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -951,11 +815,8 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { description: description ?? this.description, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, - eligibilityStatus: eligibilityStatus ?? this.eligibilityStatus, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, id: id ?? this.id, isActive: isActive ?? this.isActive, - isEligible: isEligible ?? this.isEligible, isVisible: isVisible ?? this.isVisible, localCurrency: localCurrency ?? this.localCurrency, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, @@ -964,16 +825,12 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { maxOrderAmountLimit: maxOrderAmountLimit ?? this.maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay ?? this.maxOrderAmountLimitDisplay, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, - minRating: minRating ?? this.minRating, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -990,6 +847,7 @@ class P2pAdvertInfo extends P2pAdvertInfoModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } + /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -1174,6 +1032,7 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } + /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -1310,6 +1169,7 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } + /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . @@ -1384,6 +1244,7 @@ class FieldsProperty extends FieldsPropertyModel { value: value ?? this.value, ); } + /// Subscription model class. abstract class SubscriptionModel { /// Initializes Subscription model class . diff --git a/lib/api/response/p2p_advert_list_response_result.dart b/lib/api/response/p2p_advert_list_response_result.dart index 4a5f4ff6bd..0b6f31c80a 100644 --- a/lib/api/response/p2p_advert_list_response_result.dart +++ b/lib/api/response/p2p_advert_list_response_result.dart @@ -108,30 +108,6 @@ enum CounterpartyTypeEnum { sell, } -/// EligibilityStatusItemEnum mapper. -final Map eligibilityStatusItemEnumMapper = - { - "completion_rate": EligibilityStatusItemEnum.completionRate, - "country": EligibilityStatusItemEnum.country, - "join_date": EligibilityStatusItemEnum.joinDate, - "rating_average": EligibilityStatusItemEnum.ratingAverage, -}; - -/// EligibilityStatusItem Enum. -enum EligibilityStatusItemEnum { - /// completion_rate. - completionRate, - - /// country. - country, - - /// join_date. - joinDate, - - /// rating_average. - ratingAverage, -} - /// RateTypeEnum mapper. final Map rateTypeEnumMapper = { "fixed": RateTypeEnum.fixed, @@ -172,8 +148,6 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, - "advertiser_block_trade_ineligible": - VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -201,15 +175,13 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, - /// advertiser_block_trade_ineligible. - advertiserBlockTradeIneligible, - /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } + /// P2p advert list model class. abstract class P2pAdvertListModel { /// Initializes P2p advert list model class . @@ -260,6 +232,7 @@ class P2pAdvertList extends P2pAdvertListModel { list: list ?? this.list, ); } + /// List item model class. abstract class ListItemModel { /// Initializes List item model class . @@ -268,7 +241,6 @@ abstract class ListItemModel { required this.rateType, required this.rateDisplay, required this.rate, - required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.maxOrderAmountLimitDisplay, @@ -281,7 +253,6 @@ abstract class ListItemModel { required this.createdTime, required this.country, required this.counterpartyType, - required this.blockTrade, required this.advertiserDetails, required this.accountCurrency, this.activeOrders, @@ -291,16 +262,10 @@ abstract class ListItemModel { this.daysUntilArchive, this.effectiveRate, this.effectiveRateDisplay, - this.eligibilityStatus, - this.eligibleCountries, - this.isEligible, this.maxOrderAmount, this.maxOrderAmountDisplay, - this.minCompletionRate, - this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, - this.minRating, this.paymentInfo, this.paymentMethod, this.paymentMethodNames, @@ -323,9 +288,6 @@ abstract class ListItemModel { /// Conversion rate from advertiser's account currency to `local_currency`. An absolute rate value (fixed), or percentage offset from current market rate (floating). final double rate; - /// Expiry period (seconds) for order created against this ad. - final int orderExpiryPeriod; - /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -362,9 +324,6 @@ abstract class ListItemModel { /// Type of transaction from the opposite party's perspective. final CounterpartyTypeEnum counterpartyType; - /// Indicates if this is block trade advert or not. - final bool blockTrade; - /// Details of the advertiser for this advert. final AdvertiserDetails advertiserDetails; @@ -392,40 +351,18 @@ abstract class ListItemModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; - /// Reasons why the counterparty terms do not allow the current user to place orders against this advert. Possible values: - /// - `completion_rate`: current user's 30 day completion rate is less than `min_completion_rate`. - /// - `country`: current user's residence is not in `eligible_countries`. - /// - `join_date`: current user registered on P2P less than `min_join_days` in the past. - /// - `rating`: current user's average review rating is less than `min_rating`. - final List? eligibilityStatus; - - /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert. - final List? eligibleCountries; - - /// Indicates that the current user meets the counterparty terms for placing an order. - final bool? isEligible; - /// Maximum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? maxOrderAmount; /// Maximum order amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? maxOrderAmountDisplay; - /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. - final double? minCompletionRate; - - /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. - final int? minJoinDays; - /// Minimum order amount specified in advert, in `account_currency`. It is only visible for advertisers. final double? minOrderAmount; /// Minimum order amount specified in advert, in `account_currency`, formatted to appropriate decimal places. It is only visible to the advert owner. final String? minOrderAmountDisplay; - /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. - final double? minRating; - /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -455,7 +392,6 @@ abstract class ListItemModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. - /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -467,7 +403,6 @@ class ListItem extends ListItemModel { const ListItem({ required String accountCurrency, required AdvertiserDetails advertiserDetails, - required bool blockTrade, required CounterpartyTypeEnum counterpartyType, required String country, required DateTime createdTime, @@ -480,7 +415,6 @@ class ListItem extends ListItemModel { required String maxOrderAmountLimitDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, - required int orderExpiryPeriod, required double rate, required String rateDisplay, required RateTypeEnum rateType, @@ -492,16 +426,10 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, - List? eligibilityStatus, - List? eligibleCountries, - bool? isEligible, double? maxOrderAmount, String? maxOrderAmountDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, - double? minRating, String? paymentInfo, String? paymentMethod, List? paymentMethodNames, @@ -513,7 +441,6 @@ class ListItem extends ListItemModel { }) : super( accountCurrency: accountCurrency, advertiserDetails: advertiserDetails, - blockTrade: blockTrade, counterpartyType: counterpartyType, country: country, createdTime: createdTime, @@ -526,7 +453,6 @@ class ListItem extends ListItemModel { maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod, rate: rate, rateDisplay: rateDisplay, rateType: rateType, @@ -538,16 +464,10 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, - eligibilityStatus: eligibilityStatus, - eligibleCountries: eligibleCountries, - isEligible: isEligible, maxOrderAmount: maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay, - minCompletionRate: minCompletionRate, - minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, - minRating: minRating, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodNames: paymentMethodNames, @@ -563,7 +483,6 @@ class ListItem extends ListItemModel { accountCurrency: json['account_currency'], advertiserDetails: AdvertiserDetails.fromJson(json['advertiser_details']), - blockTrade: getBool(json['block_trade'])!, counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, country: json['country'], @@ -577,7 +496,6 @@ class ListItem extends ListItemModel { maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], - orderExpiryPeriod: json['order_expiry_period'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], rateType: rateTypeEnumMapper[json['rate_type']]!, @@ -589,30 +507,10 @@ class ListItem extends ListItemModel { daysUntilArchive: json['days_until_archive'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], - eligibilityStatus: json['eligibility_status'] == null - ? null - : List.from( - json['eligibility_status']?.map( - (dynamic item) => item == null - ? null - : eligibilityStatusItemEnumMapper[item], - ), - ), - eligibleCountries: json['eligible_countries'] == null - ? null - : List.from( - json['eligible_countries']?.map( - (dynamic item) => item, - ), - ), - isEligible: getBool(json['is_eligible']), maxOrderAmount: getDouble(json['max_order_amount']), maxOrderAmountDisplay: json['max_order_amount_display'], - minCompletionRate: getDouble(json['min_completion_rate']), - minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], - minRating: getDouble(json['min_rating']), paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodNames: json['payment_method_names'] == null @@ -644,7 +542,6 @@ class ListItem extends ListItemModel { resultMap['account_currency'] = accountCurrency; resultMap['advertiser_details'] = advertiserDetails.toJson(); - resultMap['block_trade'] = blockTrade; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => entry.value == counterpartyType) @@ -660,7 +557,6 @@ class ListItem extends ListItemModel { resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; - resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; resultMap['rate_type'] = rateTypeEnumMapper.entries @@ -677,33 +573,10 @@ class ListItem extends ListItemModel { resultMap['days_until_archive'] = daysUntilArchive; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; - if (eligibilityStatus != null) { - resultMap['eligibility_status'] = eligibilityStatus! - .map( - (EligibilityStatusItemEnum item) => eligibilityStatusItemEnumMapper - .entries - .firstWhere( - (MapEntry entry) => - entry.value == item) - .key, - ) - .toList(); - } - if (eligibleCountries != null) { - resultMap['eligible_countries'] = eligibleCountries! - .map( - (String item) => item, - ) - .toList(); - } - resultMap['is_eligible'] = isEligible; resultMap['max_order_amount'] = maxOrderAmount; resultMap['max_order_amount_display'] = maxOrderAmountDisplay; - resultMap['min_completion_rate'] = minCompletionRate; - resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; - resultMap['min_rating'] = minRating; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; if (paymentMethodNames != null) { @@ -737,7 +610,6 @@ class ListItem extends ListItemModel { ListItem copyWith({ String? accountCurrency, AdvertiserDetails? advertiserDetails, - bool? blockTrade, CounterpartyTypeEnum? counterpartyType, String? country, DateTime? createdTime, @@ -750,7 +622,6 @@ class ListItem extends ListItemModel { String? maxOrderAmountLimitDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - int? orderExpiryPeriod, double? rate, String? rateDisplay, RateTypeEnum? rateType, @@ -762,16 +633,10 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, - List? eligibilityStatus, - List? eligibleCountries, - bool? isEligible, double? maxOrderAmount, String? maxOrderAmountDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, - double? minRating, String? paymentInfo, String? paymentMethod, List? paymentMethodNames, @@ -784,7 +649,6 @@ class ListItem extends ListItemModel { ListItem( accountCurrency: accountCurrency ?? this.accountCurrency, advertiserDetails: advertiserDetails ?? this.advertiserDetails, - blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, createdTime: createdTime ?? this.createdTime, @@ -799,7 +663,6 @@ class ListItem extends ListItemModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, rateType: rateType ?? this.rateType, @@ -811,18 +674,12 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive ?? this.daysUntilArchive, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, - eligibilityStatus: eligibilityStatus ?? this.eligibilityStatus, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, - isEligible: isEligible ?? this.isEligible, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, maxOrderAmountDisplay: maxOrderAmountDisplay ?? this.maxOrderAmountDisplay, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, - minRating: minRating ?? this.minRating, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodNames: paymentMethodNames ?? this.paymentMethodNames, @@ -834,6 +691,7 @@ class ListItem extends ListItemModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } + /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . diff --git a/lib/api/response/p2p_advert_update_response_result.dart b/lib/api/response/p2p_advert_update_response_result.dart index dde4c526d9..c4cf25b319 100644 --- a/lib/api/response/p2p_advert_update_response_result.dart +++ b/lib/api/response/p2p_advert_update_response_result.dart @@ -185,8 +185,6 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, - "advertiser_block_trade_ineligible": - VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -214,15 +212,13 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, - /// advertiser_block_trade_ineligible. - advertiserBlockTradeIneligible, - /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } + /// P2p advert update model class. abstract class P2pAdvertUpdateModel { /// Initializes P2p advert update model class . @@ -233,7 +229,6 @@ abstract class P2pAdvertUpdateModel { this.advertiserDetails, this.amount, this.amountDisplay, - this.blockTrade, this.contactInfo, this.counterpartyType, this.country, @@ -243,7 +238,6 @@ abstract class P2pAdvertUpdateModel { this.description, this.effectiveRate, this.effectiveRateDisplay, - this.eligibleCountries, this.isActive, this.isVisible, this.localCurrency, @@ -251,14 +245,10 @@ abstract class P2pAdvertUpdateModel { this.maxOrderAmountDisplay, this.maxOrderAmountLimit, this.maxOrderAmountLimitDisplay, - this.minCompletionRate, - this.minJoinDays, this.minOrderAmount, this.minOrderAmountDisplay, this.minOrderAmountLimit, this.minOrderAmountLimitDisplay, - this.minRating, - this.orderExpiryPeriod, this.paymentInfo, this.paymentMethod, this.paymentMethodDetails, @@ -292,9 +282,6 @@ abstract class P2pAdvertUpdateModel { /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String? amountDisplay; - /// Indicates if this is block trade advert or not. - final bool? blockTrade; - /// Advertiser contact information. Only applicable for 'sell adverts'. final String? contactInfo; @@ -322,9 +309,6 @@ abstract class P2pAdvertUpdateModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; - /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders against this advert - final List? eligibleCountries; - /// The activation status of the advert. final bool? isActive; @@ -346,12 +330,6 @@ abstract class P2pAdvertUpdateModel { /// Maximum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? maxOrderAmountLimitDisplay; - /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders against this advert. - final double? minCompletionRate; - - /// Counterparties who joined less than this number of days ago are not allowed to place orders against this advert. - final int? minJoinDays; - /// Minimum order amount specified in advert, in `account_currency`. It is only visible to the advert owner. final double? minOrderAmount; @@ -364,12 +342,6 @@ abstract class P2pAdvertUpdateModel { /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String? minOrderAmountLimitDisplay; - /// Counterparties who have an average rating less than this value are not allowed to place orders against this advert. - final double? minRating; - - /// Expiry period (seconds) for order created against this ad. - final int? orderExpiryPeriod; - /// Payment instructions. Only applicable for 'sell adverts'. final String? paymentInfo; @@ -414,7 +386,6 @@ abstract class P2pAdvertUpdateModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. - /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -430,7 +401,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -440,7 +410,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? description, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, bool? isActive, bool? isVisible, String? localCurrency, @@ -448,14 +417,10 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - double? minRating, - int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -476,7 +441,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, - blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -486,7 +450,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: description, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, - eligibleCountries: eligibleCountries, isActive: isActive, isVisible: isVisible, localCurrency: localCurrency, @@ -494,14 +457,10 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountDisplay: maxOrderAmountDisplay, maxOrderAmountLimit: maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay, - minCompletionRate: minCompletionRate, - minJoinDays: minJoinDays, minOrderAmount: minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, - minRating: minRating, - orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, paymentMethod: paymentMethod, paymentMethodDetails: paymentMethodDetails, @@ -528,7 +487,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { : AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount']), amountDisplay: json['amount_display'], - blockTrade: getBool(json['block_trade']), contactInfo: json['contact_info'], counterpartyType: json['counterparty_type'] == null ? null @@ -540,13 +498,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: json['description'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], - eligibleCountries: json['eligible_countries'] == null - ? null - : List.from( - json['eligible_countries']?.map( - (dynamic item) => item, - ), - ), isActive: getBool(json['is_active']), isVisible: getBool(json['is_visible']), localCurrency: json['local_currency'], @@ -554,14 +505,10 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountDisplay: json['max_order_amount_display'], maxOrderAmountLimit: getDouble(json['max_order_amount_limit']), maxOrderAmountLimitDisplay: json['max_order_amount_limit_display'], - minCompletionRate: getDouble(json['min_completion_rate']), - minJoinDays: json['min_join_days'], minOrderAmount: getDouble(json['min_order_amount']), minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit']), minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], - minRating: getDouble(json['min_rating']), - orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], paymentMethod: json['payment_method'], paymentMethodDetails: json['payment_method_details'] == null @@ -617,7 +564,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { } resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; - resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -630,13 +576,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { resultMap['description'] = description; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; - if (eligibleCountries != null) { - resultMap['eligible_countries'] = eligibleCountries! - .map( - (String item) => item, - ) - .toList(); - } resultMap['is_active'] = isActive; resultMap['is_visible'] = isVisible; resultMap['local_currency'] = localCurrency; @@ -644,14 +583,10 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { resultMap['max_order_amount_display'] = maxOrderAmountDisplay; resultMap['max_order_amount_limit'] = maxOrderAmountLimit; resultMap['max_order_amount_limit_display'] = maxOrderAmountLimitDisplay; - resultMap['min_completion_rate'] = minCompletionRate; - resultMap['min_join_days'] = minJoinDays; resultMap['min_order_amount'] = minOrderAmount; resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; - resultMap['min_rating'] = minRating; - resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['payment_method'] = paymentMethod; resultMap['payment_method_details'] = paymentMethodDetails; @@ -700,7 +635,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -710,7 +644,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? description, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, bool? isActive, bool? isVisible, String? localCurrency, @@ -718,14 +651,10 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { String? maxOrderAmountDisplay, double? maxOrderAmountLimit, String? maxOrderAmountLimitDisplay, - double? minCompletionRate, - int? minJoinDays, double? minOrderAmount, String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - double? minRating, - int? orderExpiryPeriod, String? paymentInfo, String? paymentMethod, Map? paymentMethodDetails, @@ -747,7 +676,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, - blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -757,7 +685,6 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { description: description ?? this.description, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, isActive: isActive ?? this.isActive, isVisible: isVisible ?? this.isVisible, localCurrency: localCurrency ?? this.localCurrency, @@ -767,16 +694,12 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { maxOrderAmountLimit: maxOrderAmountLimit ?? this.maxOrderAmountLimit, maxOrderAmountLimitDisplay: maxOrderAmountLimitDisplay ?? this.maxOrderAmountLimitDisplay, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, minOrderAmountDisplay: minOrderAmountDisplay ?? this.minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, - minRating: minRating ?? this.minRating, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodDetails: paymentMethodDetails ?? this.paymentMethodDetails, @@ -793,6 +716,7 @@ class P2pAdvertUpdate extends P2pAdvertUpdateModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } + /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . @@ -947,6 +871,7 @@ class AdvertiserDetails extends AdvertiserDetailsModel { totalCompletionRate: totalCompletionRate ?? this.totalCompletionRate, ); } + /// Payment method details property model class. abstract class PaymentMethodDetailsPropertyModel { /// Initializes Payment method details property model class . @@ -1083,6 +1008,7 @@ class PaymentMethodDetailsProperty extends PaymentMethodDetailsPropertyModel { usedByOrders: usedByOrders ?? this.usedByOrders, ); } + /// Fields property model class. abstract class FieldsPropertyModel { /// Initializes Fields property model class . diff --git a/lib/api/response/p2p_advertiser_adverts_response_result.dart b/lib/api/response/p2p_advertiser_adverts_response_result.dart index f38ce39bf4..009499b828 100644 --- a/lib/api/response/p2p_advertiser_adverts_response_result.dart +++ b/lib/api/response/p2p_advertiser_adverts_response_result.dart @@ -148,8 +148,6 @@ final Map visibilityStatusItemEnumMapper = "advertiser_ads_paused": VisibilityStatusItemEnum.advertiserAdsPaused, "advertiser_approval": VisibilityStatusItemEnum.advertiserApproval, "advertiser_balance": VisibilityStatusItemEnum.advertiserBalance, - "advertiser_block_trade_ineligible": - VisibilityStatusItemEnum.advertiserBlockTradeIneligible, "advertiser_daily_limit": VisibilityStatusItemEnum.advertiserDailyLimit, "advertiser_temp_ban": VisibilityStatusItemEnum.advertiserTempBan, }; @@ -177,15 +175,13 @@ enum VisibilityStatusItemEnum { /// advertiser_balance. advertiserBalance, - /// advertiser_block_trade_ineligible. - advertiserBlockTradeIneligible, - /// advertiser_daily_limit. advertiserDailyLimit, /// advertiser_temp_ban. advertiserTempBan, } + /// P2p advertiser adverts model class. abstract class P2pAdvertiserAdvertsModel { /// Initializes P2p advertiser adverts model class . @@ -237,6 +233,7 @@ class P2pAdvertiserAdverts extends P2pAdvertiserAdvertsModel { list: list ?? this.list, ); } + /// List item model class. abstract class ListItemModel { /// Initializes List item model class . @@ -248,7 +245,6 @@ abstract class ListItemModel { required this.rateDisplay, required this.rate, required this.paymentInfo, - required this.orderExpiryPeriod, required this.minOrderAmountLimitDisplay, required this.minOrderAmountLimit, required this.minOrderAmountDisplay, @@ -266,7 +262,6 @@ abstract class ListItemModel { required this.country, required this.counterpartyType, required this.contactInfo, - required this.blockTrade, required this.amountDisplay, required this.amount, required this.advertiserDetails, @@ -275,10 +270,6 @@ abstract class ListItemModel { this.daysUntilArchive, this.effectiveRate, this.effectiveRateDisplay, - this.eligibleCountries, - this.minCompletionRate, - this.minJoinDays, - this.minRating, this.paymentMethod, this.paymentMethodNames, this.price, @@ -307,9 +298,6 @@ abstract class ListItemModel { /// Payment instructions. Only applicable for 'sell adverts'. final String paymentInfo; - /// Expiry period (seconds) for order created against this ad. - final int orderExpiryPeriod; - /// Minimum order amount at this time, in `account_currency`, formatted to appropriate decimal places. final String minOrderAmountLimitDisplay; @@ -361,9 +349,6 @@ abstract class ListItemModel { /// Advertiser contact information. Only applicable for 'sell adverts'. final String contactInfo; - /// Indicates if this is block trade advert or not. - final bool blockTrade; - /// The total amount specified in advert, in `account_currency`, formatted to appropriate decimal places. final String amountDisplay; @@ -388,18 +373,6 @@ abstract class ListItemModel { /// Conversion rate from account currency to local currency, using current market rate if applicable, formatted to appropriate decimal places. final String? effectiveRateDisplay; - /// 2 letter country codes. Counterparties who do not live in these countries are not allowed to place orders. - final List? eligibleCountries; - - /// Counterparties who have a 30 day completion rate less than this value are not allowed to place orders. - final double? minCompletionRate; - - /// Counterparties who joined less than this number of days ago are not allowed to place orders. - final int? minJoinDays; - - /// Counterparties who have an average rating less than this value are not allowed to place orders. - final double? minRating; - /// Payment method name (deprecated). final String? paymentMethod; @@ -420,7 +393,6 @@ abstract class ListItemModel { /// - `advertiser_ads_paused`: the advertiser has paused all adverts. /// - `advertiser_approval`: the advertiser's proof of identity is not verified. /// - `advertiser_balance`: the advertiser's P2P balance is less than the minimum order. - /// - `advertiser_block_trade_ineligible`: the advertiser is not currently eligible for block trading. /// - `advertiser_daily_limit`: the advertiser's remaining daily limit is less than the minimum order. /// - `advertiser_temp_ban`: the advertiser is temporarily banned from P2P. final List? visibilityStatus; @@ -435,7 +407,6 @@ class ListItem extends ListItemModel { required AdvertiserDetails advertiserDetails, required double amount, required String amountDisplay, - required bool blockTrade, required String contactInfo, required CounterpartyTypeEnum counterpartyType, required String country, @@ -453,7 +424,6 @@ class ListItem extends ListItemModel { required String minOrderAmountDisplay, required double minOrderAmountLimit, required String minOrderAmountLimitDisplay, - required int orderExpiryPeriod, required String paymentInfo, required double rate, required String rateDisplay, @@ -464,10 +434,6 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, - double? minCompletionRate, - int? minJoinDays, - double? minRating, String? paymentMethod, List? paymentMethodNames, double? price, @@ -479,7 +445,6 @@ class ListItem extends ListItemModel { advertiserDetails: advertiserDetails, amount: amount, amountDisplay: amountDisplay, - blockTrade: blockTrade, contactInfo: contactInfo, counterpartyType: counterpartyType, country: country, @@ -497,7 +462,6 @@ class ListItem extends ListItemModel { minOrderAmountDisplay: minOrderAmountDisplay, minOrderAmountLimit: minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod, paymentInfo: paymentInfo, rate: rate, rateDisplay: rateDisplay, @@ -508,10 +472,6 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive, effectiveRate: effectiveRate, effectiveRateDisplay: effectiveRateDisplay, - eligibleCountries: eligibleCountries, - minCompletionRate: minCompletionRate, - minJoinDays: minJoinDays, - minRating: minRating, paymentMethod: paymentMethod, paymentMethodNames: paymentMethodNames, price: price, @@ -527,7 +487,6 @@ class ListItem extends ListItemModel { AdvertiserDetails.fromJson(json['advertiser_details']), amount: getDouble(json['amount'])!, amountDisplay: json['amount_display'], - blockTrade: getBool(json['block_trade'])!, contactInfo: json['contact_info'], counterpartyType: counterpartyTypeEnumMapper[json['counterparty_type']]!, @@ -546,7 +505,6 @@ class ListItem extends ListItemModel { minOrderAmountDisplay: json['min_order_amount_display'], minOrderAmountLimit: getDouble(json['min_order_amount_limit'])!, minOrderAmountLimitDisplay: json['min_order_amount_limit_display'], - orderExpiryPeriod: json['order_expiry_period'], paymentInfo: json['payment_info'], rate: getDouble(json['rate'])!, rateDisplay: json['rate_display'], @@ -557,16 +515,6 @@ class ListItem extends ListItemModel { daysUntilArchive: json['days_until_archive'], effectiveRate: getDouble(json['effective_rate']), effectiveRateDisplay: json['effective_rate_display'], - eligibleCountries: json['eligible_countries'] == null - ? null - : List.from( - json['eligible_countries']?.map( - (dynamic item) => item, - ), - ), - minCompletionRate: getDouble(json['min_completion_rate']), - minJoinDays: json['min_join_days'], - minRating: getDouble(json['min_rating']), paymentMethod: json['payment_method'], paymentMethodNames: json['payment_method_names'] == null ? null @@ -598,7 +546,6 @@ class ListItem extends ListItemModel { resultMap['amount'] = amount; resultMap['amount_display'] = amountDisplay; - resultMap['block_trade'] = blockTrade; resultMap['contact_info'] = contactInfo; resultMap['counterparty_type'] = counterpartyTypeEnumMapper.entries .firstWhere((MapEntry entry) => @@ -619,7 +566,6 @@ class ListItem extends ListItemModel { resultMap['min_order_amount_display'] = minOrderAmountDisplay; resultMap['min_order_amount_limit'] = minOrderAmountLimit; resultMap['min_order_amount_limit_display'] = minOrderAmountLimitDisplay; - resultMap['order_expiry_period'] = orderExpiryPeriod; resultMap['payment_info'] = paymentInfo; resultMap['rate'] = rate; resultMap['rate_display'] = rateDisplay; @@ -635,16 +581,6 @@ class ListItem extends ListItemModel { resultMap['days_until_archive'] = daysUntilArchive; resultMap['effective_rate'] = effectiveRate; resultMap['effective_rate_display'] = effectiveRateDisplay; - if (eligibleCountries != null) { - resultMap['eligible_countries'] = eligibleCountries! - .map( - (String item) => item, - ) - .toList(); - } - resultMap['min_completion_rate'] = minCompletionRate; - resultMap['min_join_days'] = minJoinDays; - resultMap['min_rating'] = minRating; resultMap['payment_method'] = paymentMethod; if (paymentMethodNames != null) { resultMap['payment_method_names'] = paymentMethodNames! @@ -678,7 +614,6 @@ class ListItem extends ListItemModel { AdvertiserDetails? advertiserDetails, double? amount, String? amountDisplay, - bool? blockTrade, String? contactInfo, CounterpartyTypeEnum? counterpartyType, String? country, @@ -696,7 +631,6 @@ class ListItem extends ListItemModel { String? minOrderAmountDisplay, double? minOrderAmountLimit, String? minOrderAmountLimitDisplay, - int? orderExpiryPeriod, String? paymentInfo, double? rate, String? rateDisplay, @@ -707,10 +641,6 @@ class ListItem extends ListItemModel { int? daysUntilArchive, double? effectiveRate, String? effectiveRateDisplay, - List? eligibleCountries, - double? minCompletionRate, - int? minJoinDays, - double? minRating, String? paymentMethod, List? paymentMethodNames, double? price, @@ -723,7 +653,6 @@ class ListItem extends ListItemModel { advertiserDetails: advertiserDetails ?? this.advertiserDetails, amount: amount ?? this.amount, amountDisplay: amountDisplay ?? this.amountDisplay, - blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, counterpartyType: counterpartyType ?? this.counterpartyType, country: country ?? this.country, @@ -745,7 +674,6 @@ class ListItem extends ListItemModel { minOrderAmountLimit: minOrderAmountLimit ?? this.minOrderAmountLimit, minOrderAmountLimitDisplay: minOrderAmountLimitDisplay ?? this.minOrderAmountLimitDisplay, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, paymentInfo: paymentInfo ?? this.paymentInfo, rate: rate ?? this.rate, rateDisplay: rateDisplay ?? this.rateDisplay, @@ -757,10 +685,6 @@ class ListItem extends ListItemModel { daysUntilArchive: daysUntilArchive ?? this.daysUntilArchive, effectiveRate: effectiveRate ?? this.effectiveRate, effectiveRateDisplay: effectiveRateDisplay ?? this.effectiveRateDisplay, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, - minRating: minRating ?? this.minRating, paymentMethod: paymentMethod ?? this.paymentMethod, paymentMethodNames: paymentMethodNames ?? this.paymentMethodNames, price: price ?? this.price, @@ -768,6 +692,7 @@ class ListItem extends ListItemModel { visibilityStatus: visibilityStatus ?? this.visibilityStatus, ); } + /// Advertiser details model class. abstract class AdvertiserDetailsModel { /// Initializes Advertiser details model class . diff --git a/lib/api/response/p2p_settings_response_result.dart b/lib/api/response/p2p_settings_response_result.dart deleted file mode 100644 index 6049cde33e..0000000000 --- a/lib/api/response/p2p_settings_response_result.dart +++ /dev/null @@ -1,676 +0,0 @@ -// ignore_for_file: prefer_single_quotes, unnecessary_import, unused_import - -import 'package:equatable/equatable.dart'; - -import 'package:flutter_deriv_api/helpers/helpers.dart'; - -/// P2p settings response model class. -abstract class P2pSettingsResponseModel { - /// Initializes P2p settings response model class . - const P2pSettingsResponseModel({ - this.p2pSettings, - this.subscription, - }); - - /// Peer-to-peer payment system settings. - final P2pSettings? p2pSettings; - - /// For subscription requests only. - final Subscription? subscription; -} - -/// P2p settings response class. -class P2pSettingsResponse extends P2pSettingsResponseModel { - /// Initializes P2p settings response class. - const P2pSettingsResponse({ - P2pSettings? p2pSettings, - Subscription? subscription, - }) : super( - p2pSettings: p2pSettings, - subscription: subscription, - ); - - /// Creates an instance from JSON. - factory P2pSettingsResponse.fromJson( - dynamic p2pSettingsJson, - dynamic subscriptionJson, - ) => - P2pSettingsResponse( - p2pSettings: p2pSettingsJson == null - ? null - : P2pSettings.fromJson(p2pSettingsJson), - subscription: subscriptionJson == null - ? null - : Subscription.fromJson(subscriptionJson), - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - if (p2pSettings != null) { - resultMap['p2p_settings'] = p2pSettings!.toJson(); - } - if (subscription != null) { - resultMap['subscription'] = subscription!.toJson(); - } - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - P2pSettingsResponse copyWith({ - P2pSettings? p2pSettings, - Subscription? subscription, - }) => - P2pSettingsResponse( - p2pSettings: p2pSettings ?? this.p2pSettings, - subscription: subscription ?? this.subscription, - ); -} - -/// FixedRateAdvertsEnum mapper. -final Map fixedRateAdvertsEnumMapper = - { - "disabled": FixedRateAdvertsEnum.disabled, - "enabled": FixedRateAdvertsEnum.enabled, - "list_only": FixedRateAdvertsEnum.listOnly, -}; - -/// FixedRateAdverts Enum. -enum FixedRateAdvertsEnum { - /// disabled. - disabled, - - /// enabled. - enabled, - - /// list_only. - listOnly, -} - -/// FloatRateAdvertsEnum mapper. -final Map floatRateAdvertsEnumMapper = - { - "disabled": FloatRateAdvertsEnum.disabled, - "enabled": FloatRateAdvertsEnum.enabled, - "list_only": FloatRateAdvertsEnum.listOnly, -}; - -/// FloatRateAdverts Enum. -enum FloatRateAdvertsEnum { - /// disabled. - disabled, - - /// enabled. - enabled, - - /// list_only. - listOnly, -} -/// P2p settings model class. -abstract class P2pSettingsModel { - /// Initializes P2p settings model class . - const P2pSettingsModel({ - required this.supportedCurrencies, - required this.reviewPeriod, - required this.paymentMethodsEnabled, - required this.orderPaymentPeriod, - required this.orderDailyLimit, - required this.maximumOrderAmount, - required this.maximumAdvertAmount, - required this.localCurrencies, - required this.floatRateOffsetLimit, - required this.floatRateAdverts, - required this.fixedRateAdverts, - required this.featureLevel, - required this.disabled, - required this.crossBorderAdsEnabled, - required this.cancellationLimit, - required this.cancellationGracePeriod, - required this.cancellationCountPeriod, - required this.cancellationBlockDuration, - required this.blockTrade, - required this.advertsActiveLimit, - this.advertsArchivePeriod, - this.counterpartyTermSteps, - this.fixedRateAdvertsEndDate, - this.overrideExchangeRate, - }); - - /// List of currencies for which P2P is available - final List supportedCurrencies; - - /// Time after successful order completion during which reviews can be created, in hours. - final double reviewPeriod; - - /// Indicates if the payment methods feature is enabled. - final bool paymentMethodsEnabled; - - /// Time allowed for order payment, in minutes after order creation. - final int orderPaymentPeriod; - - /// Maximum number of orders a user may create per day. - final int orderDailyLimit; - - /// Maximum amount of an order, in USD. - final double maximumOrderAmount; - - /// Maximum amount of an advert, in USD. - final double maximumAdvertAmount; - - /// Available local currencies for p2p_advert_list request. - final List localCurrencies; - - /// Maximum rate offset for floating rate adverts. - final double floatRateOffsetLimit; - - /// Availability of floating rate adverts. - final FloatRateAdvertsEnum floatRateAdverts; - - /// Availability of fixed rate adverts. - final FixedRateAdvertsEnum fixedRateAdverts; - - /// Indicates the availbility of certain backend features. - final int featureLevel; - - /// When `true`, the P2P service is unavailable. - final bool disabled; - - /// When `false`, only exchanges in local currency are allowed for P2P advertiser. - final bool crossBorderAdsEnabled; - - /// A buyer will be temporarily barred after marking this number of cancellations within cancellation_period. - final int cancellationLimit; - - /// A buyer may cancel an order within this period without negative consequences, in minutes after order creation. - final int cancellationGracePeriod; - - /// The period within which to count buyer cancellations, in hours. - final int cancellationCountPeriod; - - /// A buyer will be blocked for this duration after exceeding the cancellation limit, in hours. - final int cancellationBlockDuration; - - /// Block trading settings - final BlockTrade blockTrade; - - /// Maximum number of active ads allowed by an advertiser per currency pair and advert type (buy or sell). - final int advertsActiveLimit; - - /// Adverts will be deactivated if no activity occurs within this period, in days. - final int? advertsArchivePeriod; - - /// Recommended step values for choosing advert counterparty terms. - final CounterpartyTermSteps? counterpartyTermSteps; - - /// Date on which fixed rate adverts will be deactivated. - final String? fixedRateAdvertsEndDate; - - /// Local P2P exchange rate which should be used instead of those obtained from the `exchange_rates` call. - final String? overrideExchangeRate; -} - -/// P2p settings class. -class P2pSettings extends P2pSettingsModel { - /// Initializes P2p settings class. - const P2pSettings({ - required int advertsActiveLimit, - required BlockTrade blockTrade, - required int cancellationBlockDuration, - required int cancellationCountPeriod, - required int cancellationGracePeriod, - required int cancellationLimit, - required bool crossBorderAdsEnabled, - required bool disabled, - required int featureLevel, - required FixedRateAdvertsEnum fixedRateAdverts, - required FloatRateAdvertsEnum floatRateAdverts, - required double floatRateOffsetLimit, - required List localCurrencies, - required double maximumAdvertAmount, - required double maximumOrderAmount, - required int orderDailyLimit, - required int orderPaymentPeriod, - required bool paymentMethodsEnabled, - required double reviewPeriod, - required List supportedCurrencies, - int? advertsArchivePeriod, - CounterpartyTermSteps? counterpartyTermSteps, - String? fixedRateAdvertsEndDate, - String? overrideExchangeRate, - }) : super( - advertsActiveLimit: advertsActiveLimit, - blockTrade: blockTrade, - cancellationBlockDuration: cancellationBlockDuration, - cancellationCountPeriod: cancellationCountPeriod, - cancellationGracePeriod: cancellationGracePeriod, - cancellationLimit: cancellationLimit, - crossBorderAdsEnabled: crossBorderAdsEnabled, - disabled: disabled, - featureLevel: featureLevel, - fixedRateAdverts: fixedRateAdverts, - floatRateAdverts: floatRateAdverts, - floatRateOffsetLimit: floatRateOffsetLimit, - localCurrencies: localCurrencies, - maximumAdvertAmount: maximumAdvertAmount, - maximumOrderAmount: maximumOrderAmount, - orderDailyLimit: orderDailyLimit, - orderPaymentPeriod: orderPaymentPeriod, - paymentMethodsEnabled: paymentMethodsEnabled, - reviewPeriod: reviewPeriod, - supportedCurrencies: supportedCurrencies, - advertsArchivePeriod: advertsArchivePeriod, - counterpartyTermSteps: counterpartyTermSteps, - fixedRateAdvertsEndDate: fixedRateAdvertsEndDate, - overrideExchangeRate: overrideExchangeRate, - ); - - /// Creates an instance from JSON. - factory P2pSettings.fromJson(Map json) => P2pSettings( - advertsActiveLimit: json['adverts_active_limit'], - blockTrade: BlockTrade.fromJson(json['block_trade']), - cancellationBlockDuration: json['cancellation_block_duration'], - cancellationCountPeriod: json['cancellation_count_period'], - cancellationGracePeriod: json['cancellation_grace_period'], - cancellationLimit: json['cancellation_limit'], - crossBorderAdsEnabled: getBool(json['cross_border_ads_enabled'])!, - disabled: getBool(json['disabled'])!, - featureLevel: json['feature_level'], - fixedRateAdverts: - fixedRateAdvertsEnumMapper[json['fixed_rate_adverts']]!, - floatRateAdverts: - floatRateAdvertsEnumMapper[json['float_rate_adverts']]!, - floatRateOffsetLimit: getDouble(json['float_rate_offset_limit'])!, - localCurrencies: List.from( - json['local_currencies'].map( - (dynamic item) => LocalCurrenciesItem.fromJson(item), - ), - ), - maximumAdvertAmount: getDouble(json['maximum_advert_amount'])!, - maximumOrderAmount: getDouble(json['maximum_order_amount'])!, - orderDailyLimit: json['order_daily_limit'], - orderPaymentPeriod: json['order_payment_period'], - paymentMethodsEnabled: getBool(json['payment_methods_enabled'])!, - reviewPeriod: getDouble(json['review_period'])!, - supportedCurrencies: List.from( - json['supported_currencies'].map( - (dynamic item) => item, - ), - ), - advertsArchivePeriod: json['adverts_archive_period'], - counterpartyTermSteps: json['counterparty_term_steps'] == null - ? null - : CounterpartyTermSteps.fromJson(json['counterparty_term_steps']), - fixedRateAdvertsEndDate: json['fixed_rate_adverts_end_date'], - overrideExchangeRate: json['override_exchange_rate'], - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - resultMap['adverts_active_limit'] = advertsActiveLimit; - resultMap['block_trade'] = blockTrade.toJson(); - - resultMap['cancellation_block_duration'] = cancellationBlockDuration; - resultMap['cancellation_count_period'] = cancellationCountPeriod; - resultMap['cancellation_grace_period'] = cancellationGracePeriod; - resultMap['cancellation_limit'] = cancellationLimit; - resultMap['cross_border_ads_enabled'] = crossBorderAdsEnabled; - resultMap['disabled'] = disabled; - resultMap['feature_level'] = featureLevel; - resultMap['fixed_rate_adverts'] = fixedRateAdvertsEnumMapper.entries - .firstWhere((MapEntry entry) => - entry.value == fixedRateAdverts) - .key; - resultMap['float_rate_adverts'] = floatRateAdvertsEnumMapper.entries - .firstWhere((MapEntry entry) => - entry.value == floatRateAdverts) - .key; - resultMap['float_rate_offset_limit'] = floatRateOffsetLimit; - resultMap['local_currencies'] = localCurrencies - .map( - (LocalCurrenciesItem item) => item.toJson(), - ) - .toList(); - - resultMap['maximum_advert_amount'] = maximumAdvertAmount; - resultMap['maximum_order_amount'] = maximumOrderAmount; - resultMap['order_daily_limit'] = orderDailyLimit; - resultMap['order_payment_period'] = orderPaymentPeriod; - resultMap['payment_methods_enabled'] = paymentMethodsEnabled; - resultMap['review_period'] = reviewPeriod; - resultMap['supported_currencies'] = supportedCurrencies - .map( - (String item) => item, - ) - .toList(); - - resultMap['adverts_archive_period'] = advertsArchivePeriod; - if (counterpartyTermSteps != null) { - resultMap['counterparty_term_steps'] = counterpartyTermSteps!.toJson(); - } - resultMap['fixed_rate_adverts_end_date'] = fixedRateAdvertsEndDate; - resultMap['override_exchange_rate'] = overrideExchangeRate; - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - P2pSettings copyWith({ - int? advertsActiveLimit, - BlockTrade? blockTrade, - int? cancellationBlockDuration, - int? cancellationCountPeriod, - int? cancellationGracePeriod, - int? cancellationLimit, - bool? crossBorderAdsEnabled, - bool? disabled, - int? featureLevel, - FixedRateAdvertsEnum? fixedRateAdverts, - FloatRateAdvertsEnum? floatRateAdverts, - double? floatRateOffsetLimit, - List? localCurrencies, - double? maximumAdvertAmount, - double? maximumOrderAmount, - int? orderDailyLimit, - int? orderPaymentPeriod, - bool? paymentMethodsEnabled, - double? reviewPeriod, - List? supportedCurrencies, - int? advertsArchivePeriod, - CounterpartyTermSteps? counterpartyTermSteps, - String? fixedRateAdvertsEndDate, - String? overrideExchangeRate, - }) => - P2pSettings( - advertsActiveLimit: advertsActiveLimit ?? this.advertsActiveLimit, - blockTrade: blockTrade ?? this.blockTrade, - cancellationBlockDuration: - cancellationBlockDuration ?? this.cancellationBlockDuration, - cancellationCountPeriod: - cancellationCountPeriod ?? this.cancellationCountPeriod, - cancellationGracePeriod: - cancellationGracePeriod ?? this.cancellationGracePeriod, - cancellationLimit: cancellationLimit ?? this.cancellationLimit, - crossBorderAdsEnabled: - crossBorderAdsEnabled ?? this.crossBorderAdsEnabled, - disabled: disabled ?? this.disabled, - featureLevel: featureLevel ?? this.featureLevel, - fixedRateAdverts: fixedRateAdverts ?? this.fixedRateAdverts, - floatRateAdverts: floatRateAdverts ?? this.floatRateAdverts, - floatRateOffsetLimit: floatRateOffsetLimit ?? this.floatRateOffsetLimit, - localCurrencies: localCurrencies ?? this.localCurrencies, - maximumAdvertAmount: maximumAdvertAmount ?? this.maximumAdvertAmount, - maximumOrderAmount: maximumOrderAmount ?? this.maximumOrderAmount, - orderDailyLimit: orderDailyLimit ?? this.orderDailyLimit, - orderPaymentPeriod: orderPaymentPeriod ?? this.orderPaymentPeriod, - paymentMethodsEnabled: - paymentMethodsEnabled ?? this.paymentMethodsEnabled, - reviewPeriod: reviewPeriod ?? this.reviewPeriod, - supportedCurrencies: supportedCurrencies ?? this.supportedCurrencies, - advertsArchivePeriod: advertsArchivePeriod ?? this.advertsArchivePeriod, - counterpartyTermSteps: - counterpartyTermSteps ?? this.counterpartyTermSteps, - fixedRateAdvertsEndDate: - fixedRateAdvertsEndDate ?? this.fixedRateAdvertsEndDate, - overrideExchangeRate: overrideExchangeRate ?? this.overrideExchangeRate, - ); -} -/// Block trade model class. -abstract class BlockTradeModel { - /// Initializes Block trade model class . - const BlockTradeModel({ - this.disabled, - this.maximumAdvertAmount, - }); - - /// When `true`, Block trading is unavailable. - final bool? disabled; - - /// Maximum amount of a block trade advert, in USD. - final double? maximumAdvertAmount; -} - -/// Block trade class. -class BlockTrade extends BlockTradeModel { - /// Initializes Block trade class. - const BlockTrade({ - bool? disabled, - double? maximumAdvertAmount, - }) : super( - disabled: disabled, - maximumAdvertAmount: maximumAdvertAmount, - ); - - /// Creates an instance from JSON. - factory BlockTrade.fromJson(Map json) => BlockTrade( - disabled: getBool(json['disabled']), - maximumAdvertAmount: getDouble(json['maximum_advert_amount']), - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - resultMap['disabled'] = disabled; - resultMap['maximum_advert_amount'] = maximumAdvertAmount; - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - BlockTrade copyWith({ - bool? disabled, - double? maximumAdvertAmount, - }) => - BlockTrade( - disabled: disabled ?? this.disabled, - maximumAdvertAmount: maximumAdvertAmount ?? this.maximumAdvertAmount, - ); -} -/// Local currencies item model class. -abstract class LocalCurrenciesItemModel { - /// Initializes Local currencies item model class . - const LocalCurrenciesItemModel({ - required this.symbol, - required this.hasAdverts, - required this.displayName, - this.isDefault, - }); - - /// Local currency symbol - final String symbol; - - /// Indicates that there are adverts available for this currency. - final bool hasAdverts; - - /// Local currency name - final String displayName; - - /// Indicates that this is local currency for the current country. - final int? isDefault; -} - -/// Local currencies item class. -class LocalCurrenciesItem extends LocalCurrenciesItemModel { - /// Initializes Local currencies item class. - const LocalCurrenciesItem({ - required String displayName, - required bool hasAdverts, - required String symbol, - int? isDefault, - }) : super( - displayName: displayName, - hasAdverts: hasAdverts, - symbol: symbol, - isDefault: isDefault, - ); - - /// Creates an instance from JSON. - factory LocalCurrenciesItem.fromJson(Map json) => - LocalCurrenciesItem( - displayName: json['display_name'], - hasAdverts: getBool(json['has_adverts'])!, - symbol: json['symbol'], - isDefault: json['is_default'], - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - resultMap['display_name'] = displayName; - resultMap['has_adverts'] = hasAdverts; - resultMap['symbol'] = symbol; - resultMap['is_default'] = isDefault; - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - LocalCurrenciesItem copyWith({ - String? displayName, - bool? hasAdverts, - String? symbol, - int? isDefault, - }) => - LocalCurrenciesItem( - displayName: displayName ?? this.displayName, - hasAdverts: hasAdverts ?? this.hasAdverts, - symbol: symbol ?? this.symbol, - isDefault: isDefault ?? this.isDefault, - ); -} -/// Counterparty term steps model class. -abstract class CounterpartyTermStepsModel { - /// Initializes Counterparty term steps model class . - const CounterpartyTermStepsModel({ - required this.rating, - required this.joinDays, - required this.completionRate, - }); - - /// Values for minimum average rating. - final List rating; - - /// Values for minimum joined days. - final List joinDays; - - /// Values for minimum 30 day completion rate. - final List completionRate; -} - -/// Counterparty term steps class. -class CounterpartyTermSteps extends CounterpartyTermStepsModel { - /// Initializes Counterparty term steps class. - const CounterpartyTermSteps({ - required List completionRate, - required List joinDays, - required List rating, - }) : super( - completionRate: completionRate, - joinDays: joinDays, - rating: rating, - ); - - /// Creates an instance from JSON. - factory CounterpartyTermSteps.fromJson(Map json) => - CounterpartyTermSteps( - completionRate: List.from( - json['completion_rate'].map( - (dynamic item) => getDouble(item), - ), - ), - joinDays: List.from( - json['join_days'].map( - (dynamic item) => item, - ), - ), - rating: List.from( - json['rating'].map( - (dynamic item) => getDouble(item), - ), - ), - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - resultMap['completion_rate'] = completionRate - .map( - (double item) => item, - ) - .toList(); - - resultMap['join_days'] = joinDays - .map( - (int item) => item, - ) - .toList(); - - resultMap['rating'] = rating - .map( - (double item) => item, - ) - .toList(); - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - CounterpartyTermSteps copyWith({ - List? completionRate, - List? joinDays, - List? rating, - }) => - CounterpartyTermSteps( - completionRate: completionRate ?? this.completionRate, - joinDays: joinDays ?? this.joinDays, - rating: rating ?? this.rating, - ); -} -/// Subscription model class. -abstract class SubscriptionModel { - /// Initializes Subscription model class . - const SubscriptionModel({ - required this.id, - }); - - /// A per-connection unique identifier. Can be passed to the `forget` API call to unsubscribe. - final String id; -} - -/// Subscription class. -class Subscription extends SubscriptionModel { - /// Initializes Subscription class. - const Subscription({ - required String id, - }) : super( - id: id, - ); - - /// Creates an instance from JSON. - factory Subscription.fromJson(Map json) => Subscription( - id: json['id'], - ); - - /// Converts an instance to JSON. - Map toJson() { - final Map resultMap = {}; - - resultMap['id'] = id; - - return resultMap; - } - - /// Creates a copy of instance with given parameters. - Subscription copyWith({ - String? id, - }) => - Subscription( - id: id ?? this.id, - ); -} diff --git a/lib/basic_api/generated/p2p_advert_create_send.dart b/lib/basic_api/generated/p2p_advert_create_send.dart index fd4e501a4e..09ad0891d8 100644 --- a/lib/basic_api/generated/p2p_advert_create_send.dart +++ b/lib/basic_api/generated/p2p_advert_create_send.dart @@ -9,18 +9,11 @@ class P2pAdvertCreateRequest extends Request { /// Initialize P2pAdvertCreateRequest. const P2pAdvertCreateRequest({ required this.amount, - this.blockTrade, this.contactInfo, this.description, - this.eligibleCountries, this.localCurrency, - this.loginid, required this.maxOrderAmount, - this.minCompletionRate, - this.minJoinDays, required this.minOrderAmount, - this.minRating, - this.orderExpiryPeriod, this.p2pAdvertCreate = true, this.paymentInfo, this.paymentMethod, @@ -41,21 +34,11 @@ class P2pAdvertCreateRequest extends Request { factory P2pAdvertCreateRequest.fromJson(Map json) => P2pAdvertCreateRequest( amount: json['amount'] as num?, - blockTrade: - json['block_trade'] == null ? null : json['block_trade'] == 1, contactInfo: json['contact_info'] as String?, description: json['description'] as String?, - eligibleCountries: (json['eligible_countries'] as List?) - ?.map((dynamic item) => item as String) - .toList(), localCurrency: json['local_currency'] as String?, - loginid: json['loginid'] as String?, maxOrderAmount: json['max_order_amount'] as num?, - minCompletionRate: json['min_completion_rate'] as num?, - minJoinDays: json['min_join_days'] as int?, minOrderAmount: json['min_order_amount'] as num?, - minRating: json['min_rating'] as num?, - orderExpiryPeriod: json['order_expiry_period'] as int?, p2pAdvertCreate: json['p2p_advert_create'] == null ? null : json['p2p_advert_create'] == 1, @@ -77,42 +60,21 @@ class P2pAdvertCreateRequest extends Request { /// The total amount of the advert, in advertiser's account currency. final num? amount; - /// [Optional] Indicates if this is block trade ad or not. Default: `false`. - final bool? blockTrade; - /// [Optional] Advertiser contact information. final String? contactInfo; /// [Optional] General information about the advert. final String? description; - /// [Optional] 2 letter country codes. Counterparties who do not live in these countries will not be allowed to place orders against the advert. - final List? eligibleCountries; - /// [Optional] Local currency for this advert. If not provided, will use the currency of client's residence by default. final String? localCurrency; - /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. - final String? loginid; - /// Maximum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be more than or equal to `min_order_amount` final num? maxOrderAmount; - /// [Optional] Counterparties who have a 30 day completion rate less than this value will not be allowed to place orders against the advert. - final num? minCompletionRate; - - /// [Optional] Counterparties who joined less than this number of days ago will not be allowed to place orders against the advert. - final int? minJoinDays; - /// Minimum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be less than or equal to `max_order_amount`. final num? minOrderAmount; - /// [Optional] Counterparties who have an average rating less than this value will not be allowed to place orders against the advert. - final num? minRating; - - /// [Optional] Expiry period (seconds) for order created against this ad. - final int? orderExpiryPeriod; - /// Must be `true` final bool? p2pAdvertCreate; @@ -141,22 +103,11 @@ class P2pAdvertCreateRequest extends Request { @override Map toJson() => { 'amount': amount, - 'block_trade': blockTrade == null - ? null - : blockTrade! - ? 1 - : 0, 'contact_info': contactInfo, 'description': description, - 'eligible_countries': eligibleCountries, 'local_currency': localCurrency, - 'loginid': loginid, 'max_order_amount': maxOrderAmount, - 'min_completion_rate': minCompletionRate, - 'min_join_days': minJoinDays, 'min_order_amount': minOrderAmount, - 'min_rating': minRating, - 'order_expiry_period': orderExpiryPeriod, 'p2p_advert_create': p2pAdvertCreate == null ? null : p2pAdvertCreate! @@ -177,18 +128,11 @@ class P2pAdvertCreateRequest extends Request { @override P2pAdvertCreateRequest copyWith({ num? amount, - bool? blockTrade, String? contactInfo, String? description, - List? eligibleCountries, String? localCurrency, - String? loginid, num? maxOrderAmount, - num? minCompletionRate, - int? minJoinDays, num? minOrderAmount, - num? minRating, - int? orderExpiryPeriod, bool? p2pAdvertCreate, String? paymentInfo, String? paymentMethod, @@ -202,18 +146,11 @@ class P2pAdvertCreateRequest extends Request { }) => P2pAdvertCreateRequest( amount: amount ?? this.amount, - blockTrade: blockTrade ?? this.blockTrade, contactInfo: contactInfo ?? this.contactInfo, description: description ?? this.description, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, localCurrency: localCurrency ?? this.localCurrency, - loginid: loginid ?? this.loginid, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, - minRating: minRating ?? this.minRating, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, p2pAdvertCreate: p2pAdvertCreate ?? this.p2pAdvertCreate, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethod: paymentMethod ?? this.paymentMethod, diff --git a/lib/basic_api/generated/p2p_advert_list_send.dart b/lib/basic_api/generated/p2p_advert_list_send.dart index 6f6cdbbbc2..cf32a84084 100644 --- a/lib/basic_api/generated/p2p_advert_list_send.dart +++ b/lib/basic_api/generated/p2p_advert_list_send.dart @@ -11,13 +11,10 @@ class P2pAdvertListRequest extends Request { this.advertiserId, this.advertiserName, this.amount, - this.blockTrade, this.counterpartyType, this.favouritesOnly, - this.hideIneligible, this.limit, this.localCurrency, - this.loginid, this.offset, this.p2pAdvertList = true, this.paymentMethod, @@ -37,18 +34,12 @@ class P2pAdvertListRequest extends Request { advertiserId: json['advertiser_id'] as String?, advertiserName: json['advertiser_name'] as String?, amount: json['amount'] as num?, - blockTrade: - json['block_trade'] == null ? null : json['block_trade'] == 1, counterpartyType: json['counterparty_type'] as String?, favouritesOnly: json['favourites_only'] == null ? null : json['favourites_only'] == 1, - hideIneligible: json['hide_ineligible'] == null - ? null - : json['hide_ineligible'] == 1, limit: json['limit'] as int?, localCurrency: json['local_currency'] as String?, - loginid: json['loginid'] as String?, offset: json['offset'] as int?, p2pAdvertList: json['p2p_advert_list'] == null ? null @@ -73,27 +64,18 @@ class P2pAdvertListRequest extends Request { /// [Optional] How much to buy or sell, used to calculate prices. final num? amount; - /// [Optional] Return block trade adverts when `true`, non-block trade adverts when `false` (default). - final bool? blockTrade; - /// [Optional] Filter the adverts by `counterparty_type`. final String? counterpartyType; /// [Optional] Only show adverts from favourite advertisers. Default is `false`. final bool? favouritesOnly; - /// [Optional] If set to `true`, adverts for which the current user does not meet counteryparty terms are not returned. - final bool? hideIneligible; - /// [Optional] Used for paging. final int? limit; /// [Optional] Currency to conduct payment transaction in. If not provided, only ads from country of residence will be returned. final String? localCurrency; - /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. - final String? loginid; - /// [Optional] Used for paging. final int? offset; @@ -115,25 +97,14 @@ class P2pAdvertListRequest extends Request { 'advertiser_id': advertiserId, 'advertiser_name': advertiserName, 'amount': amount, - 'block_trade': blockTrade == null - ? null - : blockTrade! - ? 1 - : 0, 'counterparty_type': counterpartyType, 'favourites_only': favouritesOnly == null ? null : favouritesOnly! ? 1 : 0, - 'hide_ineligible': hideIneligible == null - ? null - : hideIneligible! - ? 1 - : 0, 'limit': limit, 'local_currency': localCurrency, - 'loginid': loginid, 'offset': offset, 'p2p_advert_list': p2pAdvertList == null ? null @@ -157,13 +128,10 @@ class P2pAdvertListRequest extends Request { String? advertiserId, String? advertiserName, num? amount, - bool? blockTrade, String? counterpartyType, bool? favouritesOnly, - bool? hideIneligible, int? limit, String? localCurrency, - String? loginid, int? offset, bool? p2pAdvertList, List? paymentMethod, @@ -176,13 +144,10 @@ class P2pAdvertListRequest extends Request { advertiserId: advertiserId ?? this.advertiserId, advertiserName: advertiserName ?? this.advertiserName, amount: amount ?? this.amount, - blockTrade: blockTrade ?? this.blockTrade, counterpartyType: counterpartyType ?? this.counterpartyType, favouritesOnly: favouritesOnly ?? this.favouritesOnly, - hideIneligible: hideIneligible ?? this.hideIneligible, limit: limit ?? this.limit, localCurrency: localCurrency ?? this.localCurrency, - loginid: loginid ?? this.loginid, offset: offset ?? this.offset, p2pAdvertList: p2pAdvertList ?? this.p2pAdvertList, paymentMethod: paymentMethod ?? this.paymentMethod, diff --git a/lib/basic_api/generated/p2p_advert_update_send.dart b/lib/basic_api/generated/p2p_advert_update_send.dart index e8e972d7a5..79859f96d5 100644 --- a/lib/basic_api/generated/p2p_advert_update_send.dart +++ b/lib/basic_api/generated/p2p_advert_update_send.dart @@ -11,17 +11,11 @@ class P2pAdvertUpdateRequest extends Request { this.contactInfo, this.delete, this.description, - this.eligibleCountries, required this.id, this.isActive, this.localCurrency, - this.loginid, this.maxOrderAmount, - this.minCompletionRate, - this.minJoinDays, this.minOrderAmount, - this.minRating, - this.orderExpiryPeriod, this.p2pAdvertUpdate = true, this.paymentInfo, this.paymentMethodIds, @@ -43,19 +37,11 @@ class P2pAdvertUpdateRequest extends Request { contactInfo: json['contact_info'] as String?, delete: json['delete'] == null ? null : json['delete'] == 1, description: json['description'] as String?, - eligibleCountries: (json['eligible_countries'] as List?) - ?.map((dynamic item) => item as String) - .toList(), id: json['id'] as String?, isActive: json['is_active'] == null ? null : json['is_active'] == 1, localCurrency: json['local_currency'] as String?, - loginid: json['loginid'] as String?, maxOrderAmount: json['max_order_amount'] as num?, - minCompletionRate: json['min_completion_rate'] as num?, - minJoinDays: json['min_join_days'] as int?, minOrderAmount: json['min_order_amount'] as num?, - minRating: json['min_rating'] as num?, - orderExpiryPeriod: json['order_expiry_period'] as int?, p2pAdvertUpdate: json['p2p_advert_update'] == null ? null : json['p2p_advert_update'] == 1, @@ -82,9 +68,6 @@ class P2pAdvertUpdateRequest extends Request { /// [Optional] General information about the advert. final String? description; - /// [Optional] 2 letter country codes. Counterparties who do not live in these countries will not be allowed to place orders against this advert. An empty array or null value will clear the condition. - final List? eligibleCountries; - /// The unique identifier for this advert. final String? id; @@ -94,27 +77,12 @@ class P2pAdvertUpdateRequest extends Request { /// [Optional] Local currency for this advert. final String? localCurrency; - /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. - final String? loginid; - /// [Optional] Maximum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be more than or equal to `min_order_amount`. final num? maxOrderAmount; - /// [Optional] Counterparties who have a 30 day completion rate less than this value will not be allowed to place orders against this advert. A an empty array or null value will clear the condition. - final num? minCompletionRate; - - /// [Optional] Counterparties who joined less than this number of days ago will not be allowed to place orders against this advert. A null value will clear the condition. - final int? minJoinDays; - /// [Optional] Minimum allowed amount for the orders of this advert, in advertiser's `account_currency`. Should be less than or equal to `max_order_amount`. final num? minOrderAmount; - /// [Optional] Counterparties who have an average rating less than this value will not be allowed to place orders against this advert. A null value will clear the condition. - final num? minRating; - - /// [Optional] Expiry period (seconds) for order created against this ad. - final int? orderExpiryPeriod; - /// Must be `true` final bool? p2pAdvertUpdate; @@ -146,7 +114,6 @@ class P2pAdvertUpdateRequest extends Request { ? 1 : 0, 'description': description, - 'eligible_countries': eligibleCountries, 'id': id, 'is_active': isActive == null ? null @@ -154,13 +121,8 @@ class P2pAdvertUpdateRequest extends Request { ? 1 : 0, 'local_currency': localCurrency, - 'loginid': loginid, 'max_order_amount': maxOrderAmount, - 'min_completion_rate': minCompletionRate, - 'min_join_days': minJoinDays, 'min_order_amount': minOrderAmount, - 'min_rating': minRating, - 'order_expiry_period': orderExpiryPeriod, 'p2p_advert_update': p2pAdvertUpdate == null ? null : p2pAdvertUpdate! @@ -182,17 +144,11 @@ class P2pAdvertUpdateRequest extends Request { String? contactInfo, bool? delete, String? description, - List? eligibleCountries, String? id, bool? isActive, String? localCurrency, - String? loginid, num? maxOrderAmount, - num? minCompletionRate, - int? minJoinDays, num? minOrderAmount, - num? minRating, - int? orderExpiryPeriod, bool? p2pAdvertUpdate, String? paymentInfo, List? paymentMethodIds, @@ -207,17 +163,11 @@ class P2pAdvertUpdateRequest extends Request { contactInfo: contactInfo ?? this.contactInfo, delete: delete ?? this.delete, description: description ?? this.description, - eligibleCountries: eligibleCountries ?? this.eligibleCountries, id: id ?? this.id, isActive: isActive ?? this.isActive, localCurrency: localCurrency ?? this.localCurrency, - loginid: loginid ?? this.loginid, maxOrderAmount: maxOrderAmount ?? this.maxOrderAmount, - minCompletionRate: minCompletionRate ?? this.minCompletionRate, - minJoinDays: minJoinDays ?? this.minJoinDays, minOrderAmount: minOrderAmount ?? this.minOrderAmount, - minRating: minRating ?? this.minRating, - orderExpiryPeriod: orderExpiryPeriod ?? this.orderExpiryPeriod, p2pAdvertUpdate: p2pAdvertUpdate ?? this.p2pAdvertUpdate, paymentInfo: paymentInfo ?? this.paymentInfo, paymentMethodIds: paymentMethodIds ?? this.paymentMethodIds, From 89b3c1b8c557fe01b90965489f34cdf3e1ffd54c Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Fri, 22 Mar 2024 11:56:41 +0800 Subject: [PATCH 3/6] add p2p country list --- binary-websocket-api | 2 +- .../p2p_country_list_response_result.dart | 373 ++++++++++++++++++ .../p2p_country_list_receive_methods.json | 4 + .../generated/p2p_country_list_receive.dart | 61 +++ .../generated/p2p_country_list_send.dart | 74 ++++ 5 files changed, 513 insertions(+), 1 deletion(-) create mode 100644 lib/api/response/p2p_country_list_response_result.dart create mode 100644 lib/basic_api/generated/methods/p2p_country_list_receive_methods.json create mode 100644 lib/basic_api/generated/p2p_country_list_receive.dart create mode 100644 lib/basic_api/generated/p2p_country_list_send.dart diff --git a/binary-websocket-api b/binary-websocket-api index 4f8dc8e529..7bea0264ab 160000 --- a/binary-websocket-api +++ b/binary-websocket-api @@ -1 +1 @@ -Subproject commit 4f8dc8e529a455a3bb46ba980124fa354c4384f4 +Subproject commit 7bea0264ab42db03c455204e5675eff29251e6ff diff --git a/lib/api/response/p2p_country_list_response_result.dart b/lib/api/response/p2p_country_list_response_result.dart new file mode 100644 index 0000000000..3797582302 --- /dev/null +++ b/lib/api/response/p2p_country_list_response_result.dart @@ -0,0 +1,373 @@ +// ignore_for_file: prefer_single_quotes, unnecessary_import, unused_import + +import 'package:equatable/equatable.dart'; + +import 'package:flutter_deriv_api/helpers/helpers.dart'; + +/// P2p country list response model class. +abstract class P2pCountryListResponseModel { + /// Initializes P2p country list response model class . + const P2pCountryListResponseModel({ + this.p2pCountryList, + }); + + /// Country identified by country code + final Map? p2pCountryList; +} + +/// P2p country list response class. +class P2pCountryListResponse extends P2pCountryListResponseModel { + /// Initializes P2p country list response class. + const P2pCountryListResponse({ + super.p2pCountryList, + }); + + /// Creates an instance from JSON. + factory P2pCountryListResponse.fromJson( + dynamic p2pCountryListJson, + ) => + P2pCountryListResponse( + p2pCountryList: p2pCountryListJson == null + ? null + : Map.fromEntries(p2pCountryListJson + .entries + .map>( + (MapEntry entry) => + MapEntry(entry.key, + P2pCountryListProperty.fromJson(entry.value)))), + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['p2p_country_list'] = p2pCountryList; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + P2pCountryListResponse copyWith({ + Map? p2pCountryList, + }) => + P2pCountryListResponse( + p2pCountryList: p2pCountryList ?? this.p2pCountryList, + ); +} + +/// FixedRateAdvertsEnum mapper. +final Map fixedRateAdvertsEnumMapper = + { + "disabled": FixedRateAdvertsEnum.disabled, + "enabled": FixedRateAdvertsEnum.enabled, + "list_only": FixedRateAdvertsEnum.listOnly, +}; + +/// FixedRateAdverts Enum. +enum FixedRateAdvertsEnum { + /// disabled. + disabled, + + /// enabled. + enabled, + + /// list_only. + listOnly, +} + +/// FloatRateAdvertsEnum mapper. +final Map floatRateAdvertsEnumMapper = + { + "disabled": FloatRateAdvertsEnum.disabled, + "enabled": FloatRateAdvertsEnum.enabled, + "list_only": FloatRateAdvertsEnum.listOnly, +}; + +/// FloatRateAdverts Enum. +enum FloatRateAdvertsEnum { + /// disabled. + disabled, + + /// enabled. + enabled, + + /// list_only. + listOnly, +} + +/// TypeEnum mapper. +final Map typeEnumMapper = { + "text": TypeEnum.text, + "memo": TypeEnum.memo, +}; + +/// Type Enum. +enum TypeEnum { + /// text. + text, + + /// memo. + memo, +} + +/// PaymentMethodsPropertyTypeEnum mapper. +final Map + paymentMethodsPropertyTypeEnumMapper = + { + "bank": PaymentMethodsPropertyTypeEnum.bank, + "ewallet": PaymentMethodsPropertyTypeEnum.ewallet, + "other": PaymentMethodsPropertyTypeEnum.other, +}; + +/// Type Enum. +enum PaymentMethodsPropertyTypeEnum { + /// bank. + bank, + + /// ewallet. + ewallet, + + /// other. + other, +} +/// P2p country list property model class. +abstract class P2pCountryListPropertyModel { + /// Initializes P2p country list property model class . + const P2pCountryListPropertyModel({ + required this.paymentMethods, + required this.localCurrency, + required this.floatRateOffsetLimit, + required this.floatRateAdverts, + required this.fixedRateAdverts, + required this.crossBorderAdsEnabled, + required this.countryName, + }); + + /// Payment method identifier. + final Map paymentMethods; + + /// Local currency of the country. + final String localCurrency; + + /// Maximum rate offset for floating rate adverts. + final double floatRateOffsetLimit; + + /// Availability of floating rate adverts. + final FloatRateAdvertsEnum floatRateAdverts; + + /// Availability of fixed rate adverts. + final FixedRateAdvertsEnum fixedRateAdverts; + + /// When `true`, users in this country may place orders on ads in other countries. + final bool crossBorderAdsEnabled; + + /// Display name of country. + final String countryName; +} + +/// P2p country list property class. +class P2pCountryListProperty extends P2pCountryListPropertyModel { + /// Initializes P2p country list property class. + const P2pCountryListProperty({ + required super.countryName, + required super.crossBorderAdsEnabled, + required super.fixedRateAdverts, + required super.floatRateAdverts, + required super.floatRateOffsetLimit, + required super.localCurrency, + required super.paymentMethods, + }); + + /// Creates an instance from JSON. + factory P2pCountryListProperty.fromJson(Map json) => + P2pCountryListProperty( + countryName: json['country_name'], + crossBorderAdsEnabled: getBool(json['cross_border_ads_enabled'])!, + fixedRateAdverts: + fixedRateAdvertsEnumMapper[json['fixed_rate_adverts']]!, + floatRateAdverts: + floatRateAdvertsEnumMapper[json['float_rate_adverts']]!, + floatRateOffsetLimit: getDouble(json['float_rate_offset_limit'])!, + localCurrency: json['local_currency'], + paymentMethods: Map.fromEntries( + json['payment_methods'] + .entries + .map>( + (MapEntry entry) => + MapEntry(entry.key, + PaymentMethodsProperty.fromJson(entry.value)))), + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['country_name'] = countryName; + resultMap['cross_border_ads_enabled'] = crossBorderAdsEnabled; + resultMap['fixed_rate_adverts'] = fixedRateAdvertsEnumMapper.entries + .firstWhere((MapEntry entry) => + entry.value == fixedRateAdverts) + .key; + resultMap['float_rate_adverts'] = floatRateAdvertsEnumMapper.entries + .firstWhere((MapEntry entry) => + entry.value == floatRateAdverts) + .key; + resultMap['float_rate_offset_limit'] = floatRateOffsetLimit; + resultMap['local_currency'] = localCurrency; + resultMap['payment_methods'] = paymentMethods; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + P2pCountryListProperty copyWith({ + String? countryName, + bool? crossBorderAdsEnabled, + FixedRateAdvertsEnum? fixedRateAdverts, + FloatRateAdvertsEnum? floatRateAdverts, + double? floatRateOffsetLimit, + String? localCurrency, + Map? paymentMethods, + }) => + P2pCountryListProperty( + countryName: countryName ?? this.countryName, + crossBorderAdsEnabled: + crossBorderAdsEnabled ?? this.crossBorderAdsEnabled, + fixedRateAdverts: fixedRateAdverts ?? this.fixedRateAdverts, + floatRateAdverts: floatRateAdverts ?? this.floatRateAdverts, + floatRateOffsetLimit: floatRateOffsetLimit ?? this.floatRateOffsetLimit, + localCurrency: localCurrency ?? this.localCurrency, + paymentMethods: paymentMethods ?? this.paymentMethods, + ); +} +/// Payment methods property model class. +abstract class PaymentMethodsPropertyModel { + /// Initializes Payment methods property model class . + const PaymentMethodsPropertyModel({ + this.displayName, + this.fields, + this.type, + }); + + /// Display name of payment method. + final String? displayName; + + /// Payment method field definitions. + final Map? fields; + + /// Payment method type. + final PaymentMethodsPropertyTypeEnum? type; +} + +/// Payment methods property class. +class PaymentMethodsProperty extends PaymentMethodsPropertyModel { + /// Initializes Payment methods property class. + const PaymentMethodsProperty({ + super.displayName, + super.fields, + super.type, + }); + + /// Creates an instance from JSON. + factory PaymentMethodsProperty.fromJson(Map json) => + PaymentMethodsProperty( + displayName: json['display_name'], + fields: json['fields'] == null + ? null + : Map.fromEntries(json['fields'] + .entries + .map>( + (MapEntry entry) => + MapEntry( + entry.key, FieldsProperty.fromJson(entry.value)))), + type: json['type'] == null + ? null + : paymentMethodsPropertyTypeEnumMapper[json['type']], + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['display_name'] = displayName; + resultMap['fields'] = fields; + resultMap['type'] = paymentMethodsPropertyTypeEnumMapper.entries + .firstWhere((MapEntry entry) => + entry.value == type) + .key; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + PaymentMethodsProperty copyWith({ + String? displayName, + Map? fields, + PaymentMethodsPropertyTypeEnum? type, + }) => + PaymentMethodsProperty( + displayName: displayName ?? this.displayName, + fields: fields ?? this.fields, + type: type ?? this.type, + ); +} +/// Fields property model class. +abstract class FieldsPropertyModel { + /// Initializes Fields property model class . + const FieldsPropertyModel({ + required this.type, + required this.required, + required this.displayName, + }); + + /// Field type. + final TypeEnum type; + + /// Is field required or optional. + final int required; + + /// Display name of payment method field. + final String displayName; +} + +/// Fields property class. +class FieldsProperty extends FieldsPropertyModel { + /// Initializes Fields property class. + const FieldsProperty({ + required super.displayName, + required super.required, + required super.type, + }); + + /// Creates an instance from JSON. + factory FieldsProperty.fromJson(Map json) => FieldsProperty( + displayName: json['display_name'], + required: json['required'], + type: typeEnumMapper[json['type']]!, + ); + + /// Converts an instance to JSON. + Map toJson() { + final Map resultMap = {}; + + resultMap['display_name'] = displayName; + resultMap['required'] = required; + resultMap['type'] = typeEnumMapper.entries + .firstWhere((MapEntry entry) => entry.value == type) + .key; + + return resultMap; + } + + /// Creates a copy of instance with given parameters. + FieldsProperty copyWith({ + String? displayName, + int? required, + TypeEnum? type, + }) => + FieldsProperty( + displayName: displayName ?? this.displayName, + required: required ?? this.required, + type: type ?? this.type, + ); +} diff --git a/lib/basic_api/generated/methods/p2p_country_list_receive_methods.json b/lib/basic_api/generated/methods/p2p_country_list_receive_methods.json new file mode 100644 index 0000000000..76f788430c --- /dev/null +++ b/lib/basic_api/generated/methods/p2p_country_list_receive_methods.json @@ -0,0 +1,4 @@ +{ +"methods": "", +"imports": "import 'package:flutter_deriv_api/helpers/helpers.dart';\n" +} \ No newline at end of file diff --git a/lib/basic_api/generated/p2p_country_list_receive.dart b/lib/basic_api/generated/p2p_country_list_receive.dart new file mode 100644 index 0000000000..db050361e6 --- /dev/null +++ b/lib/basic_api/generated/p2p_country_list_receive.dart @@ -0,0 +1,61 @@ +/// Generated automatically from flutter_deriv_api|lib/basic_api/generated/p2p_country_list_receive.json. + +// ignore_for_file: always_put_required_named_parameters_first + +import '../response.dart'; + +/// P2p country list receive class. +class P2pCountryListReceive extends Response { + /// Initialize P2pCountryListReceive. + const P2pCountryListReceive({ + this.p2pCountryList, + super.echoReq, + super.error, + super.msgType, + super.reqId, + }); + + /// Creates an instance from JSON. + factory P2pCountryListReceive.fromJson(Map json) => + P2pCountryListReceive( + p2pCountryList: json['p2p_country_list'] as Map?, + echoReq: json['echo_req'] as Map?, + error: json['error'] as Map?, + msgType: json['msg_type'] as String?, + reqId: json['req_id'] as int?, + ); + + /// Country identified by country code + final Map? p2pCountryList; + + /// Converts this instance to JSON + @override + Map toJson() => { + 'p2p_country_list': p2pCountryList, + 'echo_req': echoReq, + 'error': error, + 'msg_type': msgType, + 'req_id': reqId, + }; + + /// Creates a copy of instance with given parameters + @override + P2pCountryListReceive copyWith({ + Map? p2pCountryList, + Map? echoReq, + Map? error, + String? msgType, + int? reqId, + }) => + P2pCountryListReceive( + p2pCountryList: p2pCountryList ?? this.p2pCountryList, + echoReq: echoReq ?? this.echoReq, + error: error ?? this.error, + msgType: msgType ?? this.msgType, + reqId: reqId ?? this.reqId, + ); + + /// Override equatable class. + @override + List get props => []; +} diff --git a/lib/basic_api/generated/p2p_country_list_send.dart b/lib/basic_api/generated/p2p_country_list_send.dart new file mode 100644 index 0000000000..09df110eb9 --- /dev/null +++ b/lib/basic_api/generated/p2p_country_list_send.dart @@ -0,0 +1,74 @@ +/// Generated automatically from flutter_deriv_api|lib/basic_api/generated/p2p_country_list_send.json. + +// ignore_for_file: always_put_required_named_parameters_first + +import '../request.dart'; + +/// P2p country list request class. +class P2pCountryListRequest extends Request { + /// Initialize P2pCountryListRequest. + const P2pCountryListRequest({ + this.country, + this.loginid, + this.p2pCountryList = true, + super.msgType = 'p2p_country_list', + super.passthrough, + super.reqId, + }); + + /// Creates an instance from JSON. + factory P2pCountryListRequest.fromJson(Map json) => + P2pCountryListRequest( + country: json['country'] as String?, + loginid: json['loginid'] as String?, + p2pCountryList: json['p2p_country_list'] == null + ? null + : json['p2p_country_list'] == 1, + passthrough: json['passthrough'] as Map?, + reqId: json['req_id'] as int?, + ); + + /// [Optional] 2-letter country code. If not provided all countries are returned. + final String? country; + + /// [Optional] The login id of the user. If left unspecified, it defaults to the initial authorized token's login id. + final String? loginid; + + /// Must be `true` + final bool? p2pCountryList; + + /// Converts this instance to JSON + @override + Map toJson() => { + 'country': country, + 'loginid': loginid, + 'p2p_country_list': p2pCountryList == null + ? null + : p2pCountryList! + ? 1 + : 0, + 'passthrough': passthrough, + 'req_id': reqId, + }; + + /// Creates a copy of instance with given parameters + @override + P2pCountryListRequest copyWith({ + String? country, + String? loginid, + bool? p2pCountryList, + Map? passthrough, + int? reqId, + }) => + P2pCountryListRequest( + country: country ?? this.country, + loginid: loginid ?? this.loginid, + p2pCountryList: p2pCountryList ?? this.p2pCountryList, + passthrough: passthrough ?? this.passthrough, + reqId: reqId ?? this.reqId, + ); + + /// Override equatable class. + @override + List get props => []; +} From 82ae027c88f7073b3065a490dbaa5159600025ff Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Fri, 22 Mar 2024 16:01:24 +0800 Subject: [PATCH 4/6] add p2p country list --- lib/basic_api/generated/api.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/basic_api/generated/api.dart b/lib/basic_api/generated/api.dart index 04851a39cc..2dff4b5b95 100644 --- a/lib/basic_api/generated/api.dart +++ b/lib/basic_api/generated/api.dart @@ -8,8 +8,6 @@ export "account_statistics_receive.dart"; export "account_statistics_send.dart"; export "active_symbols_receive.dart"; export "active_symbols_send.dart"; -export "affiliate_account_add_receive.dart"; -export "affiliate_account_add_send.dart"; export "affiliate_add_company_receive.dart"; export "affiliate_add_company_send.dart"; export "affiliate_add_person_receive.dart"; @@ -90,6 +88,8 @@ export "get_account_status_receive.dart"; export "get_account_status_send.dart"; export "get_account_types_receive.dart"; export "get_account_types_send.dart"; +export "get_available_accounts_to_transfer_receive.dart"; +export "get_available_accounts_to_transfer_send.dart"; export "get_financial_assessment_receive.dart"; export "get_financial_assessment_send.dart"; export "get_limits_receive.dart"; @@ -166,6 +166,8 @@ export "p2p_advertiser_update_receive.dart"; export "p2p_advertiser_update_send.dart"; export "p2p_chat_create_receive.dart"; export "p2p_chat_create_send.dart"; +export "p2p_country_list_receive.dart"; +export "p2p_country_list_send.dart"; export "p2p_order_cancel_receive.dart"; export "p2p_order_cancel_send.dart"; export "p2p_order_confirm_receive.dart"; From 906b3af3d81b86545a271b865bb14618f8772fe7 Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Fri, 22 Mar 2024 16:09:29 +0800 Subject: [PATCH 5/6] add p2p country list --- lib/basic_api/generated/api.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/basic_api/generated/api.dart b/lib/basic_api/generated/api.dart index 2dff4b5b95..ce392527ba 100644 --- a/lib/basic_api/generated/api.dart +++ b/lib/basic_api/generated/api.dart @@ -8,6 +8,8 @@ export "account_statistics_receive.dart"; export "account_statistics_send.dart"; export "active_symbols_receive.dart"; export "active_symbols_send.dart"; +export "affiliate_account_add_receive.dart"; +export "affiliate_account_add_send.dart"; export "affiliate_add_company_receive.dart"; export "affiliate_add_company_send.dart"; export "affiliate_add_person_receive.dart"; @@ -88,8 +90,6 @@ export "get_account_status_receive.dart"; export "get_account_status_send.dart"; export "get_account_types_receive.dart"; export "get_account_types_send.dart"; -export "get_available_accounts_to_transfer_receive.dart"; -export "get_available_accounts_to_transfer_send.dart"; export "get_financial_assessment_receive.dart"; export "get_financial_assessment_send.dart"; export "get_limits_receive.dart"; From 4ee2655bb0f406d149094bfe321ec042087c6a91 Mon Sep 17 00:00:00 2001 From: Weng Lok Date: Fri, 22 Mar 2024 16:18:40 +0800 Subject: [PATCH 6/6] add p2p country list --- lib/basic_api/helper/response_mapper.helper.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/basic_api/helper/response_mapper.helper.dart b/lib/basic_api/helper/response_mapper.helper.dart index 4eca3804e2..4fe1a41235 100644 --- a/lib/basic_api/helper/response_mapper.helper.dart +++ b/lib/basic_api/helper/response_mapper.helper.dart @@ -86,6 +86,7 @@ import '../generated/p2p_advertiser_payment_methods_receive.dart'; import '../generated/p2p_advertiser_relations_receive.dart'; import '../generated/p2p_advertiser_update_receive.dart'; import '../generated/p2p_chat_create_receive.dart'; +import '../generated/p2p_country_list_receive.dart'; import '../generated/p2p_order_cancel_receive.dart'; import '../generated/p2p_order_confirm_receive.dart'; import '../generated/p2p_order_create_receive.dart'; @@ -331,6 +332,8 @@ Response getGeneratedResponse(Map responseMap) { return P2pAdvertiserUpdateReceive.fromJson(responseMap); case 'p2p_chat_create': return P2pChatCreateReceive.fromJson(responseMap); + case 'p2p_country_list': + return P2pCountryListReceive.fromJson(responseMap); case 'p2p_order_cancel': return P2pOrderCancelReceive.fromJson(responseMap); case 'p2p_order_confirm':