2026-07-10 20:31:52 +08:00

50 lines
1.7 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:aslan/app_localizations.dart';
import 'package:aslan/chatvibe_ui/components/at_tts.dart';
import 'package:aslan/chatvibe_core/utilities/at_loading_manager.dart';
import 'package:aslan/chatvibe_data/sources/repositories/room_repository_imp.dart';
import 'package:aslan/chatvibe_data/sources/repositories/user_repository_impl.dart';
import 'package:aslan/chatvibe_domain/models/res/at_edit_room_info_res.dart';
import 'package:aslan/chatvibe_domain/models/res/my_room_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_contribute_level_res.dart';
class ChatVibeRoomManager extends ChangeNotifier {
MyRoomRes? myRoom;
ATRoomContributeLevelRes? roomContributeLevelRes;
void getMyRoom() async {
myRoom = null;
myRoom = await AccountRepository().myProfile();
notifyListeners();
}
void updateMyRoomInfo(ATEditRoomInfoRes roomInfo) {
if (myRoom != null && myRoom!.id == roomInfo.id) {
myRoom?.setRoomName = roomInfo.roomName ?? "";
myRoom?.setRoomDesc = roomInfo.roomDesc ?? "";
notifyListeners();
}
}
Future<MyRoomRes?> createRoom(BuildContext context) async {
final createRoomSuccessText =
ATAppLocalizations.of(context)!.createRoomSuccsess;
ATLoadingManager.exhibitOperation(context: context);
await AccountRepository().createRoom();
myRoom = await AccountRepository().myProfile();
ATTts.show(createRoomSuccessText);
notifyListeners();
ATLoadingManager.veilRoutine();
return myRoom;
}
void contributionLevel(String roomId) {
roomContributeLevelRes = null;
ChatRoomRepository().roomContributionActivity(roomId).then((value) {
roomContributeLevelRes = value;
notifyListeners();
});
}
}