From d300133adfe31d61f4f207528721fe472bb1fff2 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Mon, 21 Jul 2025 09:32:29 +0330 Subject: [PATCH] feat : new segment logic --- .../segmentation_model.dart | 1 + .../segmentation_model.freezed.dart | 27 ++++++++++--------- .../segmentation_model.g.dart | 2 ++ .../pages/segmentation/logic.dart | 14 ++++------ 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart index 6226831..2ee7915 100644 --- a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart +++ b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart @@ -13,6 +13,7 @@ abstract class SegmentationModel with _$SegmentationModel { DateTime? date, int? weight, String? result, + String? guildKey, }) = _SegmentationModel; factory SegmentationModel.fromJson(Map json) => diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart index ef5569d..94c2aa9 100644 --- a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart +++ b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart @@ -16,7 +16,7 @@ T _$identity(T value) => value; /// @nodoc mixin _$SegmentationModel { - String? get key; String? get productKey; Buyer? get buyer; DateTime? get date; int? get weight; String? get result; + String? get key; String? get productKey; Buyer? get buyer; DateTime? get date; int? get weight; String? get result; String? get guildKey; /// Create a copy of SegmentationModel /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -29,16 +29,16 @@ $SegmentationModelCopyWith get copyWith => _$SegmentationMode @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is SegmentationModel&&(identical(other.key, key) || other.key == key)&&(identical(other.productKey, productKey) || other.productKey == productKey)&&(identical(other.buyer, buyer) || other.buyer == buyer)&&(identical(other.date, date) || other.date == date)&&(identical(other.weight, weight) || other.weight == weight)&&(identical(other.result, result) || other.result == result)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is SegmentationModel&&(identical(other.key, key) || other.key == key)&&(identical(other.productKey, productKey) || other.productKey == productKey)&&(identical(other.buyer, buyer) || other.buyer == buyer)&&(identical(other.date, date) || other.date == date)&&(identical(other.weight, weight) || other.weight == weight)&&(identical(other.result, result) || other.result == result)&&(identical(other.guildKey, guildKey) || other.guildKey == guildKey)); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,key,productKey,buyer,date,weight,result); +int get hashCode => Object.hash(runtimeType,key,productKey,buyer,date,weight,result,guildKey); @override String toString() { - return 'SegmentationModel(key: $key, productKey: $productKey, buyer: $buyer, date: $date, weight: $weight, result: $result)'; + return 'SegmentationModel(key: $key, productKey: $productKey, buyer: $buyer, date: $date, weight: $weight, result: $result, guildKey: $guildKey)'; } @@ -49,7 +49,7 @@ abstract mixin class $SegmentationModelCopyWith<$Res> { factory $SegmentationModelCopyWith(SegmentationModel value, $Res Function(SegmentationModel) _then) = _$SegmentationModelCopyWithImpl; @useResult $Res call({ - String? key, String? productKey, Buyer? buyer, DateTime? date, int? weight, String? result + String? key, String? productKey, Buyer? buyer, DateTime? date, int? weight, String? result, String? guildKey }); @@ -66,7 +66,7 @@ class _$SegmentationModelCopyWithImpl<$Res> /// Create a copy of SegmentationModel /// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? key = freezed,Object? productKey = freezed,Object? buyer = freezed,Object? date = freezed,Object? weight = freezed,Object? result = freezed,}) { +@pragma('vm:prefer-inline') @override $Res call({Object? key = freezed,Object? productKey = freezed,Object? buyer = freezed,Object? date = freezed,Object? weight = freezed,Object? result = freezed,Object? guildKey = freezed,}) { return _then(_self.copyWith( key: freezed == key ? _self.key : key // ignore: cast_nullable_to_non_nullable as String?,productKey: freezed == productKey ? _self.productKey : productKey // ignore: cast_nullable_to_non_nullable @@ -74,6 +74,7 @@ as String?,buyer: freezed == buyer ? _self.buyer : buyer // ignore: cast_nullabl as Buyer?,date: freezed == date ? _self.date : date // ignore: cast_nullable_to_non_nullable as DateTime?,weight: freezed == weight ? _self.weight : weight // ignore: cast_nullable_to_non_nullable as int?,result: freezed == result ? _self.result : result // ignore: cast_nullable_to_non_nullable +as String?,guildKey: freezed == guildKey ? _self.guildKey : guildKey // ignore: cast_nullable_to_non_nullable as String?, )); } @@ -97,7 +98,7 @@ $BuyerCopyWith<$Res>? get buyer { @JsonSerializable() class _SegmentationModel implements SegmentationModel { - const _SegmentationModel({this.key, this.productKey, this.buyer, this.date, this.weight, this.result}); + const _SegmentationModel({this.key, this.productKey, this.buyer, this.date, this.weight, this.result, this.guildKey}); factory _SegmentationModel.fromJson(Map json) => _$SegmentationModelFromJson(json); @override final String? key; @@ -106,6 +107,7 @@ class _SegmentationModel implements SegmentationModel { @override final DateTime? date; @override final int? weight; @override final String? result; +@override final String? guildKey; /// Create a copy of SegmentationModel /// with the given fields replaced by the non-null parameter values. @@ -120,16 +122,16 @@ Map toJson() { @override bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _SegmentationModel&&(identical(other.key, key) || other.key == key)&&(identical(other.productKey, productKey) || other.productKey == productKey)&&(identical(other.buyer, buyer) || other.buyer == buyer)&&(identical(other.date, date) || other.date == date)&&(identical(other.weight, weight) || other.weight == weight)&&(identical(other.result, result) || other.result == result)); + return identical(this, other) || (other.runtimeType == runtimeType&&other is _SegmentationModel&&(identical(other.key, key) || other.key == key)&&(identical(other.productKey, productKey) || other.productKey == productKey)&&(identical(other.buyer, buyer) || other.buyer == buyer)&&(identical(other.date, date) || other.date == date)&&(identical(other.weight, weight) || other.weight == weight)&&(identical(other.result, result) || other.result == result)&&(identical(other.guildKey, guildKey) || other.guildKey == guildKey)); } @JsonKey(includeFromJson: false, includeToJson: false) @override -int get hashCode => Object.hash(runtimeType,key,productKey,buyer,date,weight,result); +int get hashCode => Object.hash(runtimeType,key,productKey,buyer,date,weight,result,guildKey); @override String toString() { - return 'SegmentationModel(key: $key, productKey: $productKey, buyer: $buyer, date: $date, weight: $weight, result: $result)'; + return 'SegmentationModel(key: $key, productKey: $productKey, buyer: $buyer, date: $date, weight: $weight, result: $result, guildKey: $guildKey)'; } @@ -140,7 +142,7 @@ abstract mixin class _$SegmentationModelCopyWith<$Res> implements $SegmentationM factory _$SegmentationModelCopyWith(_SegmentationModel value, $Res Function(_SegmentationModel) _then) = __$SegmentationModelCopyWithImpl; @override @useResult $Res call({ - String? key, String? productKey, Buyer? buyer, DateTime? date, int? weight, String? result + String? key, String? productKey, Buyer? buyer, DateTime? date, int? weight, String? result, String? guildKey }); @@ -157,7 +159,7 @@ class __$SegmentationModelCopyWithImpl<$Res> /// Create a copy of SegmentationModel /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? key = freezed,Object? productKey = freezed,Object? buyer = freezed,Object? date = freezed,Object? weight = freezed,Object? result = freezed,}) { +@override @pragma('vm:prefer-inline') $Res call({Object? key = freezed,Object? productKey = freezed,Object? buyer = freezed,Object? date = freezed,Object? weight = freezed,Object? result = freezed,Object? guildKey = freezed,}) { return _then(_SegmentationModel( key: freezed == key ? _self.key : key // ignore: cast_nullable_to_non_nullable as String?,productKey: freezed == productKey ? _self.productKey : productKey // ignore: cast_nullable_to_non_nullable @@ -165,6 +167,7 @@ as String?,buyer: freezed == buyer ? _self.buyer : buyer // ignore: cast_nullabl as Buyer?,date: freezed == date ? _self.date : date // ignore: cast_nullable_to_non_nullable as DateTime?,weight: freezed == weight ? _self.weight : weight // ignore: cast_nullable_to_non_nullable as int?,result: freezed == result ? _self.result : result // ignore: cast_nullable_to_non_nullable +as String?,guildKey: freezed == guildKey ? _self.guildKey : guildKey // ignore: cast_nullable_to_non_nullable as String?, )); } diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart index 745602a..4834697 100644 --- a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart +++ b/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart @@ -18,6 +18,7 @@ _SegmentationModel _$SegmentationModelFromJson(Map json) => : DateTime.parse(json['date'] as String), weight: (json['weight'] as num?)?.toInt(), result: json['result'] as String?, + guildKey: json['guild_key'] as String?, ); Map _$SegmentationModelToJson(_SegmentationModel instance) => @@ -28,6 +29,7 @@ Map _$SegmentationModelToJson(_SegmentationModel instance) => 'date': instance.date?.toIso8601String(), 'weight': instance.weight, 'result': instance.result, + 'guild_key': instance.guildKey, }; _Buyer _$BuyerFromJson(Map json) => _Buyer( diff --git a/packages/chicken/lib/presentation/pages/segmentation/logic.dart b/packages/chicken/lib/presentation/pages/segmentation/logic.dart index 40dae1f..f22d1f5 100644 --- a/packages/chicken/lib/presentation/pages/segmentation/logic.dart +++ b/packages/chicken/lib/presentation/pages/segmentation/logic.dart @@ -174,10 +174,11 @@ class SegmentationLogic extends GetxController { var res = true; SegmentationModel segmentationModel = SegmentationModel( productKey: selectedProduct.value?.key, - weight: int.tryParse(weightController.text.clearComma) ?? 0, ); - iLog(segmentationModel.toString()); + if (saleType.value == 2) { + segmentationModel.copyWith(guildKey: selectedGuildModel.value?.key); + } safeCall( call: () async => await rootLogic.chickenRepository.createSegmentation( token: rootLogic.tokenService.accessToken.value!, @@ -193,16 +194,11 @@ class SegmentationLogic extends GetxController { return res; } - Future getGuilds() async { safeCall( - call: () async => - await rootLogic.chickenRepository.getGuilds( + call: () async => await rootLogic.chickenRepository.getGuilds( token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams( - queryParams: {'all': true}, - role: 'Steward', - ), + queryParameters: buildQueryParams(queryParams: {'all': true}, role: 'Steward'), ), onSuccess: (result) { if (result != null) {