You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.0 KiB
Dart
104 lines
3.0 KiB
Dart
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<String, dynamic> 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<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
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<String, dynamic> 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<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
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;
|
|
}
|
|
}
|