import 'package:ftc_mobile_app/models/profileData/user_data.dart'; import '../profileData/FcmTokens.dart'; import '../profileData/LocationData.dart'; class AllGroupMessages { AllGroupMessages({ required this.id, required this.groupId, required this.userId, required this.message, required this.messageType, required this.filePath, required this.isDeleted, required this.isHide, required this.isPin, required this.seenBy, required this.createdAt, required this.updatedAt, required this.v, }); String id = ""; GroupId groupId = GroupId.empty(); UserData? userId; String message = ""; String messageType = ""; String filePath = ""; bool isDeleted = false; bool isHide = false; bool isPin = false; List seenBy = []; String createdAt = ""; String updatedAt = ""; int v = -1; AllGroupMessages.empty(); AllGroupMessages.fromJson(Map json) { id = json['_id'] ?? ""; groupId = GroupId.fromJson(json['groupId'] ?? GroupId.empty()); userId = UserData.fromJson(json['userId'] ?? {}); message = json['message'] ?? ""; messageType = json['messageType'] ?? ""; filePath = json['filePath'] ?? ""; isDeleted = json['isDeleted'] ?? false; isHide = json['isHide'] ?? false; isPin = json['isPin'] ?? false; seenBy = List.castFrom(json['seenBy'] ?? []); createdAt = json['createdAt'] ?? ""; updatedAt = json['updatedAt'] ?? ""; } Map toJson() { final data = {}; data['_id'] = id; data['groupId'] = groupId.toJson(); data['userId'] = userId?.toJson(); data['message'] = message; data['messageType'] = messageType; data['filePath'] = filePath; data['isDeleted'] = isDeleted; data['isHide'] = isHide; data['isPin'] = isPin; data['seenBy'] = seenBy; data['createdAt'] = createdAt; data['updatedAt'] = updatedAt; return data; } @override String toString() { return 'AllGroupMessages{id: $id, groupId: $groupId, userId: $userId, message: $message, isDeleted: $isDeleted, isHide: $isHide, isPin: $isPin, seenBy: $seenBy, createdAt: $createdAt, updatedAt: $updatedAt, v: $v}'; } } class GroupId { GroupId({ required this.lastMessages, required this.groupWorkingScheduleTime, required this.id, required this.groupName, required this.groupImage, required this.groupMembers, required this.isGroup, required this.date, required this.isActive, required this.createdAt, required this.updatedAt, required this.v, }); LastMessages lastMessages = LastMessages.empty(); GroupWorkingScheduleTime groupWorkingScheduleTime = GroupWorkingScheduleTime.empty(); String id = ""; String groupName = ""; String groupImage = ""; List groupMembers = []; bool isGroup = false; String date = ""; bool isActive = false; String createdAt = ""; String updatedAt = ""; int v = -1; GroupId.empty(); GroupId.id({required this.id}); GroupId.fromJson(Map json) { lastMessages = LastMessages.fromJson(json['lastMessages'] ?? LastMessages.empty()); groupWorkingScheduleTime = GroupWorkingScheduleTime.fromJson( json['groupWorkingScheduleTime'] ?? GroupWorkingScheduleTime.empty()); id = json['_id'] ?? ""; groupName = json['groupName'] ?? ""; groupImage = json['groupImage'] ?? ""; groupMembers = List.castFrom(json['groupMembers'] ?? []); isGroup = json['isGroup'] ?? false; date = json['date'] ?? ""; isActive = json['isActive'] ?? false; createdAt = json['createdAt'] ?? ""; updatedAt = json['updatedAt'] ?? ""; v = json['__v'] ?? -1; } Map toJson() { final data = {}; data['lastMessages'] = lastMessages.toJson(); data['groupWorkingScheduleTime'] = groupWorkingScheduleTime.toJson(); data['_id'] = id; data['groupName'] = groupName; data['groupImage'] = groupImage; data['groupMembers'] = groupMembers; data['isGroup'] = isGroup; data['date'] = date; data['isActive'] = isActive; data['createdAt'] = createdAt; data['updatedAt'] = updatedAt; data['__v'] = v; return data; } @override String toString() { return 'GroupId{lastMessages: $lastMessages, groupWorkingScheduleTime: $groupWorkingScheduleTime, id: $id, groupName: $groupName, groupImage: $groupImage, groupMembers: $groupMembers, isGroup: $isGroup, date: $date, isActive: $isActive, createdAt: $createdAt, updatedAt: $updatedAt, v: $v}'; } } class LastMessages { LastMessages({ required this.message, required this.messageSentBy, required this.messageTime, }); String message = ""; String messageSentBy = ""; int messageTime = -1; LastMessages.empty(); LastMessages.fromJson(Map json) { message = json['message'] ?? ""; messageSentBy = json['messageSentBy'] ?? ""; messageTime = json['messageTime'] ?? -1; } Map toJson() { final data = {}; data['message'] = message; data['messageSentBy'] = messageSentBy; data['messageTime'] = messageTime; return data; } @override String toString() { return 'LastMessages{message: $message, messageSentBy: $messageSentBy, messageTime: $messageTime}'; } } class GroupWorkingScheduleTime { GroupWorkingScheduleTime({ required this.startTime, required this.endTime, required this.totalWorkHours, }); int startTime = -1; int endTime = -1; String totalWorkHours = ""; GroupWorkingScheduleTime.empty(); GroupWorkingScheduleTime.fromJson(Map json) { startTime = json['startTime'] ?? -1; endTime = json['endTime'] ?? -1; totalWorkHours = json['totalWorkHours'] ?? ""; } Map toJson() { final data = {}; data['startTime'] = startTime; data['endTime'] = endTime; data['totalWorkHours'] = totalWorkHours; return data; } @override String toString() { return 'GroupWorkingScheduleTime{startTime: $startTime, endTime: $endTime, totalWorkHours: $totalWorkHours}'; } } class UserId { UserId({ required this.fcmTokens, required this.location, required this.id, required this.userModelName, required this.name, required this.version, required this.email, required this.phoneNumber, required this.active, required this.role, required this.profilePictureUrl, required this.deviceId, required this.verificationCode, required this.isVerified, required this.approved, required this.blocked, required this.createdAt, required this.updatedAt, required this.v, required this.password, required this.userSettings, required this.modelId, }); FcmTokens fcmTokens = FcmTokens.empty(); LocationData location = LocationData.empty(); String id = ""; String userModelName = ""; String name = ""; String version = ""; String email = ""; String phoneNumber = ""; bool active = false; String role = ""; String profilePictureUrl = ""; String deviceId = ""; String verificationCode = ""; bool isVerified = false; bool approved = false; bool blocked = false; String createdAt = ""; String updatedAt = ""; int v = -1; String password = ""; String userSettings = ""; String modelId = ""; UserId.empty(); UserId.id({required this.id}); UserId.fromJson(Map json) { fcmTokens = FcmTokens.fromJson(json['fcm_tokens'] ?? FcmTokens.empty()); location = LocationData.fromJson(json['location'] ?? LocationData.empty()); id = json['_id'] ?? ""; userModelName = json['userModelName'] ?? ""; name = json['name'] ?? ""; version = json['version'] ?? ""; email = json['email'] ?? ""; phoneNumber = json['phoneNumber'] ?? ""; active = json['active'] ?? false; role = json['role'] ?? ""; profilePictureUrl = json['profile_picture_url'] ?? ""; deviceId = json['deviceId'] ?? ""; verificationCode = json['verification_code'] ?? ""; isVerified = json['is_verified'] ?? false; approved = json['approved'] ?? false; blocked = json['blocked'] ?? false; createdAt = json['createdAt'] ?? ""; updatedAt = json['updatedAt'] ?? ""; v = json['__v'] ?? -1; password = json['password'] ?? ""; userSettings = json['userSettings'] ?? ""; modelId = json['modelId'] ?? ""; } Map toJson() { final data = {}; data['fcm_tokens'] = fcmTokens.toJson(); data['location'] = location.toJson(); data['_id'] = id; data['userModelName'] = userModelName; data['name'] = name; data['version'] = version; data['email'] = email; data['phoneNumber'] = phoneNumber; data['active'] = active; data['role'] = role; data['profile_picture_url'] = profilePictureUrl; data['deviceId'] = deviceId; data['verification_code'] = verificationCode; data['is_verified'] = isVerified; data['approved'] = approved; data['blocked'] = blocked; data['createdAt'] = createdAt; data['updatedAt'] = updatedAt; data['__v'] = v; data['password'] = password; data['userSettings'] = userSettings; data['modelId'] = modelId; return data; } @override String toString() { return 'UserId{fcmTokens: $fcmTokens, location: $location, id: $id, userModelName: $userModelName, name: $name, version: $version, email: $email, phoneNumber: $phoneNumber, active: $active, role: $role, profilePictureUrl: $profilePictureUrl, deviceId: $deviceId, verificationCode: $verificationCode, isVerified: $isVerified, approved: $approved, blocked: $blocked, createdAt: $createdAt, updatedAt: $updatedAt, v: $v, password: $password, userSettings: $userSettings, modelId: $modelId}'; } } // class Location { // Location({ // required this.type, // required this.coordinates, // }); // String type = ""; // List coordinates = []; // // Location.empty(); // Location.fromJson(Map json){ // type = json['type']??""; // coordinates = List.castFrom(json['coordinates']??[]); // } // // Map toJson() { // final data = {}; // data['type'] = type; // data['coordinates'] = coordinates; // return data; // } // // @override // String toString() { // return 'Location{type: $type, coordinates: $coordinates}'; // } // }