feat(chats,diary): added logic for chosen diet portions and added banner to finish plan to chats

This commit is contained in:
Username1548
2025-04-30 21:25:23 +07:00
parent e572614a8b
commit 3b4ed501fb
28 changed files with 552 additions and 71 deletions

View File

@@ -10,6 +10,7 @@ import 'package:eatvio_app/core/image_compressing/image_compress_utility.dart';
import 'package:eatvio_app/core/utils/date_time_utils.dart';
import 'package:eatvio_app/core/websockets/ws_manager.dart';
import 'package:eatvio_app/features/chat/models/chat_message_model.dart';
import 'package:eatvio_app/features/chat/models/plan_complain_model.dart';
import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_state.dart';
import 'package:eatvio_app/features/chat/repositories/chat_repository.dart';
import 'package:eatvio_app/features/my_finance/models/card_model.dart';
@@ -92,7 +93,7 @@ class ChatRoomCubit extends Cubit<ChatRoomState> {
hasCard: false,
),
);
if (chatRoom.chosenPlan?.consultantId == chatRoom.users.receiver.id) {
await checkCards();
}
@@ -209,6 +210,30 @@ class ChatRoomCubit extends Cubit<ChatRoomState> {
}
}
Future<bool> complainAboutConsultation({required String description}) async {
try {
final planId = (state as ChatRoomStateLoaded).chatRoom.chosenPlan?.id;
if (planId == null) return false;
await chatRepository.complainAboutConsultation(id: planId, body: PlanComplainModel(description: description));
return true;
} catch (e) {
log(e.toString());
return false;
}
}
Future<bool> finishChosenPlan() async {
try {
final planId = (state as ChatRoomStateLoaded).chatRoom.chosenPlan?.id;
if (planId == null) return false;
await chatRepository.finishChosenPlan(id: planId);
return true;
} catch (e) {
log(e.toString());
return false;
}
}
@override
Future<void> close() async {
wsManager.unsubscribeDirectChatChannel();