Chat Implementation 1.0
parent
6245aa9ef4
commit
837191a5e1
@ -1,103 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,96 @@
|
|||||||
|
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 {
|
||||||
|
int? id;
|
||||||
|
String? senderUserID;
|
||||||
|
String? senderName;
|
||||||
|
int? messageType;
|
||||||
|
ChatMessageTypeEnum? chatMessageTypeEnum;
|
||||||
|
String? chatText;
|
||||||
|
int? requestID;
|
||||||
|
int? reqOfferID;
|
||||||
|
int? serviceProviderID;
|
||||||
|
int? offerStatus;
|
||||||
|
ReqOffer? reqOffer;
|
||||||
|
bool? isRead;
|
||||||
|
String? readOn;
|
||||||
|
bool? isMyMessage;
|
||||||
|
|
||||||
|
ChatMessageModel({
|
||||||
|
this.id,
|
||||||
|
this.senderUserID,
|
||||||
|
this.senderName,
|
||||||
|
this.messageType,
|
||||||
|
this.chatMessageTypeEnum,
|
||||||
|
this.chatText,
|
||||||
|
this.requestID,
|
||||||
|
this.reqOfferID,
|
||||||
|
this.serviceProviderID,
|
||||||
|
this.offerStatus,
|
||||||
|
this.reqOffer,
|
||||||
|
this.isRead,
|
||||||
|
this.readOn,
|
||||||
|
this.isMyMessage,
|
||||||
|
});
|
||||||
|
|
||||||
|
ChatMessageModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
final myUserId = AppState().getUser.data!.userInfo!.userId.toString();
|
||||||
|
id = json['id'];
|
||||||
|
senderUserID = json['senderUserID'];
|
||||||
|
senderName = json['senderName'];
|
||||||
|
messageType = json['messageType'];
|
||||||
|
chatMessageTypeEnum = (json['messageType'] as int).toChatMessageTypeEnum();
|
||||||
|
chatText = json['chatText'];
|
||||||
|
requestID = json['requestID'];
|
||||||
|
reqOfferID = json['reqOfferID'];
|
||||||
|
serviceProviderID = json['serviceProviderID'];
|
||||||
|
offerStatus = json['offerStatus'];
|
||||||
|
reqOffer = json['reqOffer'] != null ? ReqOffer.fromJson(json['reqOffer']) : null;
|
||||||
|
isRead = json['isRead'];
|
||||||
|
readOn = json['readOn'];
|
||||||
|
isMyMessage = (json['senderUserId']).toString() == myUserId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ReqOffer {
|
||||||
|
int? id;
|
||||||
|
int? requestID;
|
||||||
|
int? serviceProviderID;
|
||||||
|
int? offerStatus;
|
||||||
|
String? offerStatusText;
|
||||||
|
String? comment;
|
||||||
|
double? price;
|
||||||
|
RequestOfferStatusEnum? requestOfferStatusEnum;
|
||||||
|
|
||||||
|
ReqOffer({
|
||||||
|
this.id,
|
||||||
|
this.requestID,
|
||||||
|
this.serviceProviderID,
|
||||||
|
this.offerStatus,
|
||||||
|
this.offerStatusText,
|
||||||
|
this.comment,
|
||||||
|
this.price,
|
||||||
|
this.requestOfferStatusEnum,
|
||||||
|
});
|
||||||
|
|
||||||
|
ReqOffer.fromJson(Map<String, dynamic> json) {
|
||||||
|
id = json['id'];
|
||||||
|
requestID = json['requestID'];
|
||||||
|
serviceProviderID = json['serviceProviderID'];
|
||||||
|
offerStatus = json['offerStatus'];
|
||||||
|
offerStatusText = json['offerStatusText'];
|
||||||
|
comment = json['comment'];
|
||||||
|
price = json['price'];
|
||||||
|
requestOfferStatusEnum = ((json['offerStatus']) as int).toRequestOfferStatusEnum();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class OfferRequestCommentModel {
|
||||||
|
int? index;
|
||||||
|
String? title;
|
||||||
|
bool? isSelected;
|
||||||
|
|
||||||
|
OfferRequestCommentModel({this.index, this.title, this.isSelected});
|
||||||
|
}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
|
import 'package:mc_common_app/models/chat_models/chat_message_model.dart';
|
||||||
|
|
||||||
|
class ProviderOffersModel {
|
||||||
|
int? id;
|
||||||
|
int? customerID;
|
||||||
|
int? requestType;
|
||||||
|
int? requestStatus;
|
||||||
|
String? brand;
|
||||||
|
String? model;
|
||||||
|
int? year;
|
||||||
|
bool? isNew;
|
||||||
|
String? description;
|
||||||
|
double? price;
|
||||||
|
int? spOfferCount;
|
||||||
|
List<ServiceProvidersOffers>? serviceProviders;
|
||||||
|
|
||||||
|
ProviderOffersModel({
|
||||||
|
this.id,
|
||||||
|
this.customerID,
|
||||||
|
this.requestType,
|
||||||
|
this.requestStatus,
|
||||||
|
this.brand,
|
||||||
|
this.model,
|
||||||
|
this.year,
|
||||||
|
this.isNew,
|
||||||
|
this.description,
|
||||||
|
this.price,
|
||||||
|
this.spOfferCount,
|
||||||
|
this.serviceProviders,
|
||||||
|
});
|
||||||
|
|
||||||
|
ProviderOffersModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
id = json['id'];
|
||||||
|
customerID = json['customerID'];
|
||||||
|
requestType = json['requestType'];
|
||||||
|
requestStatus = json['requestStatus'];
|
||||||
|
brand = json['brand'];
|
||||||
|
model = json['model'];
|
||||||
|
year = json['year'];
|
||||||
|
isNew = json['isNew'];
|
||||||
|
description = json['description'];
|
||||||
|
price = json['price'];
|
||||||
|
spOfferCount = json['spOfferCount'];
|
||||||
|
if (json['serviceProviders'] != null) {
|
||||||
|
serviceProviders = <ServiceProvidersOffers>[];
|
||||||
|
json['serviceProviders'].forEach((v) {
|
||||||
|
serviceProviders!.add(ServiceProvidersOffers.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ServiceProvidersOffers {
|
||||||
|
String? providerUserId;
|
||||||
|
int? providerId;
|
||||||
|
String? name;
|
||||||
|
String? mobileNo;
|
||||||
|
String? email;
|
||||||
|
String? companyName;
|
||||||
|
int? offerCount;
|
||||||
|
List<ChatMessageModel>? chatMessages;
|
||||||
|
|
||||||
|
ServiceProvidersOffers({this.providerId, this.name, this.mobileNo, this.email, this.companyName, this.offerCount, this.chatMessages, this.providerUserId});
|
||||||
|
|
||||||
|
ServiceProvidersOffers.fromJson(Map<String, dynamic> json) {
|
||||||
|
providerId = json['providerId'];
|
||||||
|
providerUserId = json['providerUserId'] ?? "c680271c-b2a7-4ecf-7e95-08db545aec1b"; //TODO Remove this when parameter is added in backend
|
||||||
|
name = json['name'];
|
||||||
|
mobileNo = json['mobileNo'];
|
||||||
|
email = json['email'];
|
||||||
|
companyName = json['companyName'];
|
||||||
|
offerCount = json['offerCount'];
|
||||||
|
chatMessages = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue