From 1dfaa7cd93c5d3a0eed51948765a2e88a4095f05 Mon Sep 17 00:00:00 2001 From: Username1548 Date: Fri, 23 May 2025 12:52:20 +0700 Subject: [PATCH] feat(consultations): added new data to consultation model --- .../consultations/models/consultation_model.dart | 12 +++++++----- .../presentation/pages/consultations_screen.dart | 4 +++- .../widgets/consultation_card_widget.dart | 5 +++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/features/consultations/models/consultation_model.dart b/lib/features/consultations/models/consultation_model.dart index 4c9464bf..e1b838c2 100644 --- a/lib/features/consultations/models/consultation_model.dart +++ b/lib/features/consultations/models/consultation_model.dart @@ -10,12 +10,14 @@ class ConsultationModel with _$ConsultationModel { factory ConsultationModel({ required int id, @JsonKey(name: 'last_state') required ChosenPlanStateEnum chosenPlanState, - required String planTitle, - required String userName, - required String userSlug, - required double consultantPayment, + @JsonKey(name: 'plan_title') required String planTitle, + @JsonKey(name: 'user_name') required String userName, + @JsonKey(name: 'user_slug') required String userSlug, + @JsonKey(name: 'consultant_payment') required double consultantPayment, required int duration, - required int currentDiaryDay, + @JsonKey(name: 'current_diary_day') required int currentDiaryDay, + @JsonKey(name: 'user_profile_photo_url') required String userProfilePhotoUrl, + @JsonKey(name: 'consultation_option_price') required int consultationOptionPrice, @JsonKey(name: 'start_date', fromJson: parseDate) required DateTime startDate, @JsonKey(name: 'end_date', fromJson: parseDate) required DateTime endDate, @JsonKey(name: 'consultant_id') required int consultantId, diff --git a/lib/features/consultations/presentation/pages/consultations_screen.dart b/lib/features/consultations/presentation/pages/consultations_screen.dart index c4dd36d7..34f25b96 100644 --- a/lib/features/consultations/presentation/pages/consultations_screen.dart +++ b/lib/features/consultations/presentation/pages/consultations_screen.dart @@ -42,7 +42,9 @@ class ConsultationsContent extends StatelessWidget { ), body: switch (state.state) { BaseState.loading => const Loader(), - BaseState.error => DataErrorWidget(onReload: () async {}), + BaseState.error => DataErrorWidget(onReload: () async { + context.read().loadConsultations(); + }), BaseState.initial => const Loader(), BaseState.success => ListView.separated( padding: const EdgeInsets.symmetric(vertical: 12), diff --git a/lib/features/consultations/presentation/widgets/consultation_card_widget.dart b/lib/features/consultations/presentation/widgets/consultation_card_widget.dart index 42d4f762..834f0e58 100644 --- a/lib/features/consultations/presentation/widgets/consultation_card_widget.dart +++ b/lib/features/consultations/presentation/widgets/consultation_card_widget.dart @@ -71,8 +71,9 @@ class _ConsultationCardWidgetState extends State { children: [ Row( children: [ - const CircleAvatar( + CircleAvatar( radius: 30, + backgroundImage: NetworkImage(widget.consultationsModel.userProfilePhotoUrl), ), const SizedBox(width: 12), Column( @@ -272,7 +273,7 @@ class _ConsultationCardWidgetState extends State { const CustomDivider(), const SizedBox(height: 12), Text( - '${widget.consultationsModel.consultantPayment.toStringAsFixed(0)} ₽', + '${widget.consultationsModel.consultationOptionPrice.toStringAsFixed(0)} ₽', style: const TextStyle( color: Color(0xFF019A3E), fontSize: 20,