feat(consultant): ***WIP: consultant request status in settings

This commit is contained in:
mso7nueh
2025-06-02 17:51:27 +03:00
parent f0a184b800
commit 7c354cc0a3
8 changed files with 59 additions and 38 deletions

View File

@@ -1,3 +1,5 @@
import 'package:eatvio_app/features/consultant/become_consultant/models/consultation_request_model.dart';
import 'package:eatvio_app/features/consultant/become_consultant/repositories/consultant_repository.dart';
import 'package:eatvio_app/features/profile/models/profile_model.dart';
import 'package:eatvio_app/features/profile/repositories/profile_repository.dart';
import 'package:eatvio_app/features/settings/models/profile_settings_model.dart';
@@ -8,19 +10,31 @@ import 'package:flutter_bloc/flutter_bloc.dart';
class SettingsCubit extends Cubit<SettingsState> {
final ProfileRepository profileRepository;
final SettingsRepository settingsRepository;
final ConsultantRepository consultantRepository;
SettingsCubit({
required this.profileRepository,
required this.settingsRepository,
required this.consultantRepository,
}) : super(const SettingsState.loading());
Future<void> init() async {
final profile = await profileRepository.getMyProfile();
late final ConsultationRequestModel? consultantInfo;
try {
emit(SettingsState.loaded(
profileSettings: await settingsRepository.getProfileSettings(),
profileDetails: await profileRepository.getMyProfileDetails(),
profile: await profileRepository.getMyProfile(),
),);
consultantInfo = await consultantRepository.getMyRequestStatus(profile.slug);
} catch (e) {
consultantInfo = null;
}
try {
emit(
SettingsState.loaded(
profileSettings: await settingsRepository.getProfileSettings(),
profileDetails: await profileRepository.getMyProfileDetails(),
profile: profile,
consultationRequestModel: consultantInfo,
),
);
} catch (e) {
emit(SettingsState.error(errorMessage: e.toString()));
}

View File

@@ -1,3 +1,4 @@
import 'package:eatvio_app/features/consultant/become_consultant/models/consultation_request_model.dart';
import 'package:eatvio_app/features/profile/models/profile_model.dart';
import 'package:eatvio_app/features/settings/models/profile_settings_model.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
@@ -14,6 +15,7 @@ abstract class SettingsState with _$SettingsState {
required ProfileSettingsModel profileSettings,
required ProfileDetailsModel profileDetails,
required ProfileModel profile,
ConsultationRequestModel? consultationRequestModel,
}) = SettingsStateLoaded;
const factory SettingsState.error({