import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/utils/enums.dart'; class ChatMessageModel { String? senderUserID; String? senderName; int? messageType; ChatMessageTypeEnum? messageTypeEnum; String? message; RequestOffer? requestOffer; int? requestID; int? requestOfferID; bool? isMyMessage; ChatMessageModel({ this.senderUserID, this.senderName, this.messageType, this.message, this.requestOffer, this.requestID, this.requestOfferID, this.isMyMessage = true, }); ChatMessageModel.fromJson(Map json) { final myUserId = AppState().getUser.data!.userInfo!.userId.toString(); senderUserID = json['senderUserID']; senderName = json['senderName']; messageType = json['messageType']; messageTypeEnum = (json['messageType'] as int).toChatMessageTypeEnum(); message = json['message']; requestOffer = json['requestOffer'] != null ? RequestOffer.fromJson(json['requestOffer']) : null; requestID = json['requestID']; requestOfferID = json['requestOfferID']; isMyMessage = (json['senderUserId']).toString() == myUserId; } Map toJson() { final Map data = {}; data['senderUserID'] = senderUserID; data['senderName'] = senderName; data['messageType'] = messageType; data['message'] = message; if (requestOffer != null) { data['requestOffer'] = requestOffer!.toJson(); } data['requestID'] = requestID; data['requestOfferID'] = requestOfferID; return data; } } class RequestOffer { int? id; int? requestID; int? serviceProviderID; int? offerStatus; RequestOfferStatusEnum? requestOfferStatusEnum; String? comment; double? price; String? offeredItemCreatedBy; String? offeredItemCreatedOn; RequestOffer({ this.id, this.requestID, this.serviceProviderID, this.offerStatus, this.comment, this.price, this.offeredItemCreatedBy, this.offeredItemCreatedOn, this.requestOfferStatusEnum = RequestOfferStatusEnum.offer, }); RequestOffer.fromJson(Map json) { id = json['id']; requestID = json['requestID']; serviceProviderID = json['serviceProviderID']; offerStatus = json['offerStatus']; offerStatus = json['offerStatus']; requestOfferStatusEnum = ((json['offerStatus']) as int).toRequestOfferStatusEnum(); comment = json['comment']; price = json['price']; offeredItemCreatedBy = json['offeredItemCreatedBy']; offeredItemCreatedOn = json['offeredItemCreatedOn']; } Map toJson() { final Map data = {}; data['id'] = id; data['requestID'] = requestID; data['serviceProviderID'] = serviceProviderID; data['offerStatus'] = offerStatus; data['comment'] = comment; data['price'] = price; data['offeredItemCreatedBy'] = offeredItemCreatedBy; data['offeredItemCreatedOn'] = offeredItemCreatedOn; return data; } }