glglove 1 kuukausi sitten
vanhempi
commit
c32dee82b1

+ 71 - 14
packages/cpt_services/lib/modules/services/repair_history/history_page.dart

@@ -1,6 +1,7 @@
 import 'package:cs_resources/generated/assets.dart';
 import 'package:domain/entity/garage_sale_history_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -101,14 +102,6 @@ class RepairHistoryPage extends HookConsumerWidget {
                         cleanServiceType,
                         serviceStatusCode,
                       ).onTap(() {
-                        vm.gotoCleanOrderDetailPage(
-                          context,
-                          state.list[index].id != null
-                              ? int.tryParse(state.list[index].id!) ?? 0
-                              : 0,
-                          cleanServiceType,
-                          serviceStatusCode,
-                        );
                       });
                     },
                     childCount: state.list.length,
@@ -120,7 +113,7 @@ class RepairHistoryPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildRepairHistoryItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item, vm, String cleanServiceType, int serviceStatusCode){
+  Widget _buildRepairHistoryItem(BuildContext context, WidgetRef ref, ServiceInProgressList item, vm, String cleanServiceType, int serviceStatusCode){
     return Container(
       margin: const EdgeInsets.only(top: 9),
       width: double.infinity,
@@ -135,11 +128,75 @@ class RepairHistoryPage extends HookConsumerWidget {
           ),
         ],
       ),
-      child: StausCardItem(
-        key: UniqueKey(),
-        cardHeight: 175.0,
-        item: item,
-        onClickCard: (dynamic value) async {},
+      child: Container(
+        width: double.infinity,
+        height: 140,
+        child: Padding(
+          padding: const EdgeInsets.only(
+              left: 18.0, right: 18.0, top: 22.0, bottom: 22.0),
+          child: Column(
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              Expanded(
+                  child: Column(
+                crossAxisAlignment: CrossAxisAlignment.start,
+                children: [
+                  // 标题 和状态
+                  Row(
+                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                    children: [
+                      // 标题
+                      Expanded(
+                        child: MyTextView(
+                          item?.service?.name ?? "-",
+                          fontSize: 16,
+                          maxLines: 1,
+                          isFontBold: true,
+                          textAlign: TextAlign.left,
+                        ),
+                      ),
+                      // 状态
+                      MyTextView(
+                        item?.orderStatus ?? "-",
+                        fontSize: 14,
+                        maxLines: 1,
+                        isFontRegular: true,
+                        textAlign: TextAlign.left,
+                        textColor: context.appColors.textPrimary,
+                      ),
+                    ],
+                  ),
+                  // 公司名称
+                  MyTextView(
+                    item?.merchant?.name ?? "-",
+                    fontSize: 14,
+                    maxLines: 1,
+                    isFontRegular: true,
+                    textAlign: TextAlign.left,
+                    marginTop: 6,
+                  ),
+                  const SizedBox(
+                    height: 7.5,
+                  ),
+                  // visit time
+                  Row(
+                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                    children: [
+                      MyTextView(
+                        item?.merchantNotes ?? "-",
+                        fontSize: 14,
+                        maxLines: 1,
+                        isFontRegular: true,
+                        textAlign: TextAlign.left,
+                        textColor: context.appColors.textDarkGray,
+                      ),
+                    ],
+                  ),
+                ],
+              )),
+            ],
+          ),
+        ),
       ),
     );
   }

+ 3 - 2
packages/cpt_services/lib/modules/services/repair_history/history_state.dart

@@ -1,4 +1,5 @@
 import 'package:domain/entity/garage_sale_history_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:widgets/load_state_layout.dart';
 
 class RepairHistoryState {
@@ -8,7 +9,7 @@ class RepairHistoryState {
 
   String? keyword;
   bool? isLiked;
-  List<GarageSaleHistoryList> list;
+  List<ServiceInProgressList> list;
 
   RepairHistoryState({
     this.loadingState = LoadState.State_Loading,
@@ -25,7 +26,7 @@ class RepairHistoryState {
     bool? isLiked,
     Map<String, dynamic>? activeSortMap,
     List<Map<String, dynamic>>? activeCateGoryList,
-    List<GarageSaleHistoryList>? list,
+    List<ServiceInProgressList>? list,
   }) {
     return RepairHistoryState(
       loadingState: loadingState ?? this.loadingState,

+ 3 - 2
packages/cpt_services/lib/modules/services/repair_history/history_vm.dart

@@ -2,6 +2,7 @@ import 'package:cs_resources/generated/assets.dart';
 import 'package:domain/entity/garage_sale_history_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
@@ -132,7 +133,7 @@ class RepairHistoryVm extends _$RepairHistoryVm with DioCancelableMixin {
   }
 
   // 处理数据与展示的逻辑
-  void handleList(List<GarageSaleHistoryList>? list) {
+  void handleList(List<ServiceInProgressList>? list) {
     if (list != null && list.isNotEmpty) {
       //有数据,判断是刷新还是加载更多的数据
       if (_page == 1) {
@@ -145,7 +146,7 @@ class RepairHistoryVm extends _$RepairHistoryVm with DioCancelableMixin {
       } else {
         //加载更多
         state.list
-            .addAll(List<GarageSaleHistoryList>.from(state.list)..addAll(list));
+            .addAll(List<ServiceInProgressList>.from(state.list)..addAll(list));
         refreshController.finishLoad();
       }
     } else {

+ 72 - 18
packages/cpt_services/lib/modules/services/repair_inProgress/in_progress_page.dart

@@ -1,6 +1,7 @@
 import 'package:cs_resources/generated/assets.dart';
 import 'package:domain/entity/garage_sale_history_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:flutter/material.dart';
 import 'package:auto_route/auto_route.dart';
 import 'package:flutter/rendering.dart';
@@ -100,14 +101,6 @@ class RepairInProgressPage extends HookConsumerWidget {
                               cleanServiceType,
                               serviceStatusCode)
                           .onTap(() {
-                        vm.gotoCleanOrderDetailPage(
-                          context,
-                          state.list[index].id != null
-                              ? int.tryParse(state.list[index].id!) ?? 0
-                              : 0,
-                          cleanServiceType,
-                          serviceStatusCode,
-                        );
                       });
                     },
                     childCount: state.list.length,
@@ -119,7 +112,7 @@ class RepairInProgressPage extends HookConsumerWidget {
     );
   }
 
-  Widget _buildRepairInProgressItem(BuildContext context, WidgetRef ref, GarageSaleHistoryList item,
+  Widget _buildRepairInProgressItem(BuildContext context, WidgetRef ref, ServiceInProgressList item,
       vm,
       String cleanServiceType,
       int serviceStatusCode) {
@@ -137,15 +130,76 @@ class RepairInProgressPage extends HookConsumerWidget {
           ),
         ],
       ),
-      child: StausCardItem(
-        key: UniqueKey(),
-        cardHeight: 175.0,
-        item: item,
-        onClickCard: (dynamic value) async {
-          // Log.d("点击了喜欢按钮  --id:${item['id']}- $collectionValue");
-          // int id = item['id'];
-          // return await vm.handlerClickCollection(id, collectionValue);
-        },
+      child: Container(
+        width: double.infinity,
+        height: 140,
+        child: Padding(
+          padding: const EdgeInsets.only(
+              left: 18.0, right: 18.0, top: 22.0, bottom: 22.0),
+          child: Column(
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              Expanded(
+                  child: Column(
+                crossAxisAlignment: CrossAxisAlignment.start,
+                children: [
+                  // 标题 和状态
+                  Row(
+                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                    children: [
+                      // 标题
+                      Expanded(
+                        child: MyTextView(
+                          item?.service?.name ?? "-",
+                          fontSize: 16,
+                          maxLines: 1,
+                          isFontBold: true,
+                          textAlign: TextAlign.left,
+                        ),
+                      ),
+                      // 状态
+                      MyTextView(
+                        item?.orderStatus ?? "-",
+                        fontSize: 14,
+                        maxLines: 1,
+                        isFontRegular: true,
+                        textAlign: TextAlign.left,
+                        textColor: context.appColors.textPrimary,
+                      ),
+                    ],
+                  ),
+                  // 公司名称
+                  MyTextView(
+                    item?.merchant?.name ?? "-",
+                    fontSize: 14,
+                    maxLines: 1,
+                    isFontRegular: true,
+                    textAlign: TextAlign.left,
+                    marginTop: 6,
+                  ),
+                  const SizedBox(
+                    height: 7.5,
+                  ),
+                  // visit time
+                  Row(
+                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                    children: [
+                      MyTextView(
+                        item?.merchantNotes ?? "-",
+                        fontSize: 14,
+                        maxLines: 1,
+                        isFontRegular: true,
+                        textAlign: TextAlign.left,
+                        textColor: context.appColors.textDarkGray,
+                      ),
+               
+                    ],
+                  ),
+                ],
+              )),
+            ],
+          ),
+        ),
       ),
     );
   }

+ 3 - 2
packages/cpt_services/lib/modules/services/repair_inProgress/in_progress_state.dart

@@ -1,4 +1,5 @@
 import 'package:domain/entity/garage_sale_history_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:widgets/load_state_layout.dart';
 
 
@@ -9,7 +10,7 @@ class RepairInProgressState {
 
   String? keyword;
   bool? isLiked;
-  List<GarageSaleHistoryList> list;
+  List<ServiceInProgressList> list;
 
   RepairInProgressState({
     this.loadingState = LoadState.State_Loading,
@@ -26,7 +27,7 @@ class RepairInProgressState {
     bool? isLiked,
     Map<String, dynamic>? activeSortMap,
     List<Map<String, dynamic>>? activeCateGoryList,
-    List<GarageSaleHistoryList>? list,
+    List<ServiceInProgressList>? list,
   }) {
     return RepairInProgressState(
       loadingState: loadingState ?? this.loadingState,

+ 3 - 2
packages/cpt_services/lib/modules/services/repair_inProgress/in_progress_vm.dart

@@ -2,6 +2,7 @@ import 'package:cs_resources/generated/assets.dart';
 import 'package:domain/entity/garage_sale_history_entity.dart';
 import 'package:domain/entity/garage_sale_rent_entity.dart';
 import 'package:domain/entity/newsfeed_detail_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:plugin_platform/engine/toast/toast_engine.dart';
 import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
@@ -131,7 +132,7 @@ class RepairInProgressVm extends _$RepairInProgressVm with DioCancelableMixin {
   }
 
   // 处理数据与展示的逻辑
-  void handleList(List<GarageSaleHistoryList>? list) {
+  void handleList(List<ServiceInProgressList>? list) {
     if (list != null && list.isNotEmpty) {
       //有数据,判断是刷新还是加载更多的数据
       if (_page == 1) {
@@ -144,7 +145,7 @@ class RepairInProgressVm extends _$RepairInProgressVm with DioCancelableMixin {
       } else {
         //加载更多
         state.list
-            .addAll(List<GarageSaleHistoryList>.from(state.list)..addAll(list));
+            .addAll(List<ServiceInProgressList>.from(state.list)..addAll(list));
         refreshController.finishLoad();
       }
     } else {

+ 4 - 3
packages/cpt_services/lib/respository/services_respository.dart

@@ -11,6 +11,7 @@ import 'package:domain/entity/paid_service_pay_success_info_entity.dart';
 import 'package:domain/entity/repair_service_entity.dart';
 import 'package:domain/entity/server_time.dart';
 import 'package:domain/entity/service_category_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:domain/entity/service_time_period_entity.dart';
 import 'package:domain/entity/service_order_detail_entity.dart';
 import 'package:domain/entity/service_evaluate_list_entity.dart';
@@ -596,7 +597,7 @@ class ServicesRespository {
   }
 
   // 维修服务  订单列表
-  Future<HttpResult<GarageSaleHistoryEntity>> fetchRepairServiceOrderList({
+  Future<HttpResult<ServiceInProgressEntity>> fetchRepairServiceOrderList({
     required int status,
     required int curPage,
     CancelToken? cancelToken,
@@ -619,8 +620,8 @@ class ServicesRespository {
 
     if (result.isSuccess) {
       final json = result.getDataJson();
-      var data = GarageSaleHistoryEntity.fromJson(json!);
-      return result.convert<GarageSaleHistoryEntity>(data: data);
+      var data = ServiceInProgressEntity.fromJson(json!);
+      return result.convert<ServiceInProgressEntity>(data: data);
     }
     return result.convert();
   }

+ 87 - 0
packages/cs_domain/lib/entity/service_in_progress_entity.dart

@@ -0,0 +1,87 @@
+import 'package:domain/generated/json/base/json_field.dart';
+import 'package:domain/generated/json/service_in_progress_entity.g.dart';
+import 'dart:convert';
+export 'package:domain/generated/json/service_in_progress_entity.g.dart';
+
+@JsonSerializable()
+class ServiceInProgressEntity {
+	late int count = 0;
+	late int page = 0;
+	late int limit = 0;
+	@JSONField(name: "count_page")
+	late int countPage = 0;
+	late List<ServiceInProgressList> list = [];
+
+	ServiceInProgressEntity();
+
+	factory ServiceInProgressEntity.fromJson(Map<String, dynamic> json) => $ServiceInProgressEntityFromJson(json);
+
+	Map<String, dynamic> toJson() => $ServiceInProgressEntityToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class ServiceInProgressList {
+	late int id = 0;
+	late String sn = '';
+	@JSONField(name: "user_notes")
+	late String userNotes = '';
+	@JSONField(name: "merchant_notes")
+	late String merchantNotes = '';
+	@JSONField(name: "order_status")
+	late String orderStatus = '';
+	late ServiceInProgressListService service;
+	late ServiceInProgressListMerchant merchant;
+	late String staff = '';
+
+	ServiceInProgressList();
+
+	factory ServiceInProgressList.fromJson(Map<String, dynamic> json) => $ServiceInProgressListFromJson(json);
+
+	Map<String, dynamic> toJson() => $ServiceInProgressListToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class ServiceInProgressListService {
+	late int id = 0;
+	late String name = '';
+
+	ServiceInProgressListService();
+
+	factory ServiceInProgressListService.fromJson(Map<String, dynamic> json) => $ServiceInProgressListServiceFromJson(json);
+
+	Map<String, dynamic> toJson() => $ServiceInProgressListServiceToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}
+
+@JsonSerializable()
+class ServiceInProgressListMerchant {
+	late int id = 0;
+	late String name = '';
+	@JSONField(name: "contact_phone")
+	late String contactPhone = '';
+
+	ServiceInProgressListMerchant();
+
+	factory ServiceInProgressListMerchant.fromJson(Map<String, dynamic> json) => $ServiceInProgressListMerchantFromJson(json);
+
+	Map<String, dynamic> toJson() => $ServiceInProgressListMerchantToJson(this);
+
+	@override
+	String toString() {
+		return jsonEncode(this);
+	}
+}

+ 23 - 0
packages/cs_domain/lib/generated/json/base/json_convert_content.dart

@@ -62,6 +62,7 @@ import 'package:domain/entity/rewards_search_entity.dart';
 import 'package:domain/entity/server_time.dart';
 import 'package:domain/entity/service_category_entity.dart';
 import 'package:domain/entity/service_evaluate_list_entity.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
 import 'package:domain/entity/service_order_detail_entity.dart';
 import 'package:domain/entity/service_repair_detail_entity.dart';
 import 'package:domain/entity/service_time_period_entity.dart';
@@ -762,6 +763,22 @@ class JsonConvert {
           Map<String, dynamic> e) => ServiceEvaluateListListAccount.fromJson(e))
           .toList() as M;
     }
+    if (<ServiceInProgressEntity>[] is M) {
+      return data.map<ServiceInProgressEntity>((Map<String, dynamic> e) =>
+          ServiceInProgressEntity.fromJson(e)).toList() as M;
+    }
+    if (<ServiceInProgressList>[] is M) {
+      return data.map<ServiceInProgressList>((Map<String, dynamic> e) =>
+          ServiceInProgressList.fromJson(e)).toList() as M;
+    }
+    if (<ServiceInProgressListService>[] is M) {
+      return data.map<ServiceInProgressListService>((Map<String, dynamic> e) =>
+          ServiceInProgressListService.fromJson(e)).toList() as M;
+    }
+    if (<ServiceInProgressListMerchant>[] is M) {
+      return data.map<ServiceInProgressListMerchant>((Map<String, dynamic> e) =>
+          ServiceInProgressListMerchant.fromJson(e)).toList() as M;
+    }
     if (<ServiceOrderDetailEntity>[] is M) {
       return data.map<ServiceOrderDetailEntity>((Map<String, dynamic> e) =>
           ServiceOrderDetailEntity.fromJson(e)).toList() as M;
@@ -1040,6 +1057,12 @@ class JsonConvertClassCollection {
     (ServiceEvaluateListList).toString(): ServiceEvaluateListList.fromJson,
     (ServiceEvaluateListListAccount).toString(): ServiceEvaluateListListAccount
         .fromJson,
+    (ServiceInProgressEntity).toString(): ServiceInProgressEntity.fromJson,
+    (ServiceInProgressList).toString(): ServiceInProgressList.fromJson,
+    (ServiceInProgressListService).toString(): ServiceInProgressListService
+        .fromJson,
+    (ServiceInProgressListMerchant).toString(): ServiceInProgressListMerchant
+        .fromJson,
     (ServiceOrderDetailEntity).toString(): ServiceOrderDetailEntity.fromJson,
     (ServiceOrderDetailAccount).toString(): ServiceOrderDetailAccount.fromJson,
     (ServiceOrderDetailOrderService).toString(): ServiceOrderDetailOrderService

+ 212 - 0
packages/cs_domain/lib/generated/json/service_in_progress_entity.g.dart

@@ -0,0 +1,212 @@
+import 'package:domain/generated/json/base/json_convert_content.dart';
+import 'package:domain/entity/service_in_progress_entity.dart';
+
+ServiceInProgressEntity $ServiceInProgressEntityFromJson(
+    Map<String, dynamic> json) {
+  final ServiceInProgressEntity serviceInProgressEntity = ServiceInProgressEntity();
+  final int? count = jsonConvert.convert<int>(json['count']);
+  if (count != null) {
+    serviceInProgressEntity.count = count;
+  }
+  final int? page = jsonConvert.convert<int>(json['page']);
+  if (page != null) {
+    serviceInProgressEntity.page = page;
+  }
+  final int? limit = jsonConvert.convert<int>(json['limit']);
+  if (limit != null) {
+    serviceInProgressEntity.limit = limit;
+  }
+  final int? countPage = jsonConvert.convert<int>(json['count_page']);
+  if (countPage != null) {
+    serviceInProgressEntity.countPage = countPage;
+  }
+  final List<ServiceInProgressList>? list = (json['list'] as List<dynamic>?)
+      ?.map(
+          (e) =>
+      jsonConvert.convert<ServiceInProgressList>(e) as ServiceInProgressList)
+      .toList();
+  if (list != null) {
+    serviceInProgressEntity.list = list;
+  }
+  return serviceInProgressEntity;
+}
+
+Map<String, dynamic> $ServiceInProgressEntityToJson(
+    ServiceInProgressEntity entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['count'] = entity.count;
+  data['page'] = entity.page;
+  data['limit'] = entity.limit;
+  data['count_page'] = entity.countPage;
+  data['list'] = entity.list.map((v) => v.toJson()).toList();
+  return data;
+}
+
+extension ServiceInProgressEntityExtension on ServiceInProgressEntity {
+  ServiceInProgressEntity copyWith({
+    int? count,
+    int? page,
+    int? limit,
+    int? countPage,
+    List<ServiceInProgressList>? list,
+  }) {
+    return ServiceInProgressEntity()
+      ..count = count ?? this.count
+      ..page = page ?? this.page
+      ..limit = limit ?? this.limit
+      ..countPage = countPage ?? this.countPage
+      ..list = list ?? this.list;
+  }
+}
+
+ServiceInProgressList $ServiceInProgressListFromJson(
+    Map<String, dynamic> json) {
+  final ServiceInProgressList serviceInProgressList = ServiceInProgressList();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    serviceInProgressList.id = id;
+  }
+  final String? sn = jsonConvert.convert<String>(json['sn']);
+  if (sn != null) {
+    serviceInProgressList.sn = sn;
+  }
+  final String? userNotes = jsonConvert.convert<String>(json['user_notes']);
+  if (userNotes != null) {
+    serviceInProgressList.userNotes = userNotes;
+  }
+  final String? merchantNotes = jsonConvert.convert<String>(
+      json['merchant_notes']);
+  if (merchantNotes != null) {
+    serviceInProgressList.merchantNotes = merchantNotes;
+  }
+  final String? orderStatus = jsonConvert.convert<String>(json['order_status']);
+  if (orderStatus != null) {
+    serviceInProgressList.orderStatus = orderStatus;
+  }
+  final ServiceInProgressListService? service = jsonConvert.convert<
+      ServiceInProgressListService>(json['service']);
+  if (service != null) {
+    serviceInProgressList.service = service;
+  }
+  final ServiceInProgressListMerchant? merchant = jsonConvert.convert<
+      ServiceInProgressListMerchant>(json['merchant']);
+  if (merchant != null) {
+    serviceInProgressList.merchant = merchant;
+  }
+  final String? staff = jsonConvert.convert<String>(json['staff']);
+  if (staff != null) {
+    serviceInProgressList.staff = staff;
+  }
+  return serviceInProgressList;
+}
+
+Map<String, dynamic> $ServiceInProgressListToJson(
+    ServiceInProgressList entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['sn'] = entity.sn;
+  data['user_notes'] = entity.userNotes;
+  data['merchant_notes'] = entity.merchantNotes;
+  data['order_status'] = entity.orderStatus;
+  data['service'] = entity.service.toJson();
+  data['merchant'] = entity.merchant.toJson();
+  data['staff'] = entity.staff;
+  return data;
+}
+
+extension ServiceInProgressListExtension on ServiceInProgressList {
+  ServiceInProgressList copyWith({
+    int? id,
+    String? sn,
+    String? userNotes,
+    String? merchantNotes,
+    String? orderStatus,
+    ServiceInProgressListService? service,
+    ServiceInProgressListMerchant? merchant,
+    String? staff,
+  }) {
+    return ServiceInProgressList()
+      ..id = id ?? this.id
+      ..sn = sn ?? this.sn
+      ..userNotes = userNotes ?? this.userNotes
+      ..merchantNotes = merchantNotes ?? this.merchantNotes
+      ..orderStatus = orderStatus ?? this.orderStatus
+      ..service = service ?? this.service
+      ..merchant = merchant ?? this.merchant
+      ..staff = staff ?? this.staff;
+  }
+}
+
+ServiceInProgressListService $ServiceInProgressListServiceFromJson(
+    Map<String, dynamic> json) {
+  final ServiceInProgressListService serviceInProgressListService = ServiceInProgressListService();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    serviceInProgressListService.id = id;
+  }
+  final String? name = jsonConvert.convert<String>(json['name']);
+  if (name != null) {
+    serviceInProgressListService.name = name;
+  }
+  return serviceInProgressListService;
+}
+
+Map<String, dynamic> $ServiceInProgressListServiceToJson(
+    ServiceInProgressListService entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['name'] = entity.name;
+  return data;
+}
+
+extension ServiceInProgressListServiceExtension on ServiceInProgressListService {
+  ServiceInProgressListService copyWith({
+    int? id,
+    String? name,
+  }) {
+    return ServiceInProgressListService()
+      ..id = id ?? this.id
+      ..name = name ?? this.name;
+  }
+}
+
+ServiceInProgressListMerchant $ServiceInProgressListMerchantFromJson(
+    Map<String, dynamic> json) {
+  final ServiceInProgressListMerchant serviceInProgressListMerchant = ServiceInProgressListMerchant();
+  final int? id = jsonConvert.convert<int>(json['id']);
+  if (id != null) {
+    serviceInProgressListMerchant.id = id;
+  }
+  final String? name = jsonConvert.convert<String>(json['name']);
+  if (name != null) {
+    serviceInProgressListMerchant.name = name;
+  }
+  final String? contactPhone = jsonConvert.convert<String>(
+      json['contact_phone']);
+  if (contactPhone != null) {
+    serviceInProgressListMerchant.contactPhone = contactPhone;
+  }
+  return serviceInProgressListMerchant;
+}
+
+Map<String, dynamic> $ServiceInProgressListMerchantToJson(
+    ServiceInProgressListMerchant entity) {
+  final Map<String, dynamic> data = <String, dynamic>{};
+  data['id'] = entity.id;
+  data['name'] = entity.name;
+  data['contact_phone'] = entity.contactPhone;
+  return data;
+}
+
+extension ServiceInProgressListMerchantExtension on ServiceInProgressListMerchant {
+  ServiceInProgressListMerchant copyWith({
+    int? id,
+    String? name,
+    String? contactPhone,
+  }) {
+    return ServiceInProgressListMerchant()
+      ..id = id ?? this.id
+      ..name = name ?? this.name
+      ..contactPhone = contactPhone ?? this.contactPhone;
+  }
+}