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.
car_common_app/lib/models/requests_models/request_model.dart

169 lines
5.6 KiB
Dart

1 week ago
import 'dart:convert';
import 'package:mc_common_app/extensions/string_extensions.dart';
2 years ago
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:mc_common_app/models/chat_models/chat_message_model.dart';
import 'package:mc_common_app/utils/enums.dart';
class RequestModel {
int requestType;
String requestTypeName;
String requestStatusName;
RequestStatusEnum requestStatus;
int? shippingStatus;
ShippingRequestStatusEnum? shippingStatusEnum;
SelfPickupRequestStatusEnum? selfPickupRequestStatusEnum;
String cityName;
1 week ago
String cityNameN;
String vehicleTypeName;
1 week ago
String vehicleTypeNameN;
String countryName;
1 week ago
String countryNameN;
String customerName;
String customerID;
String address;
String additionalAddressDetails;
dynamic serviceProviders;
int offerCount;
int id;
int customerId;
bool isChatted;
bool isOfferAccepted;
RequestDeliveryOptionEnum offerDeliveryOption;
RequestDeliveryOptionEnum selectedDeliveryOptionByCustomer;
String customerUserID;
dynamic customer;
String brand;
String model;
int year;
bool isNew;
String description;
2 years ago
List<GenericImageModel>? requestImages;
int cityId;
dynamic city;
double price;
int paymentStatus;
int vehicleTypeId;
int countryId;
List<dynamic> requestProviderItem;
bool isActive;
int createdBy;
String? createdOn;
2 years ago
int? modifiedBy;
String? modifiedOn;
List<ChatMessageModel> chatMessages;
1 week ago
String? requestStatusNameN;
RequestModel({
required this.requestType,
required this.requestTypeName,
required this.requestStatusName,
required this.requestStatus,
required this.shippingStatus,
required this.shippingStatusEnum,
required this.selfPickupRequestStatusEnum,
required this.cityName,
1 week ago
required this.cityNameN,
required this.vehicleTypeName,
1 week ago
required this.vehicleTypeNameN,
required this.countryName,
1 week ago
required this.countryNameN,
required this.customerName,
required this.customerID,
required this.serviceProviders,
required this.offerCount,
required this.id,
required this.customerId,
required this.isChatted,
required this.isOfferAccepted,
required this.offerDeliveryOption,
required this.selectedDeliveryOptionByCustomer,
required this.customerUserID,
required this.customer,
required this.address,
required this.additionalAddressDetails,
required this.brand,
required this.model,
required this.year,
required this.isNew,
required this.description,
required this.requestImages,
required this.cityId,
required this.city,
required this.price,
required this.paymentStatus,
required this.vehicleTypeId,
required this.countryId,
required this.requestProviderItem,
required this.isActive,
required this.createdBy,
required this.createdOn,
required this.modifiedBy,
required this.modifiedOn,
required this.chatMessages,
1 week ago
required this.requestStatusNameN,
});
2 years ago
List<GenericImageModel> populateRequestImages(value) {
List<GenericImageModel> images = [];
if (value != null) {
value.forEach((v) {
images.add(GenericImageModel.fromJson(v));
});
}
return images;
}
factory RequestModel.fromJson(Map<String, dynamic> json) {
return RequestModel(
requestType: json["requestType"],
requestTypeName: json["requestTypeName"],
requestStatusName: json["requestStatusName"],
requestStatus: (json['requestStatus'] as int).toRequestStatusEnum(),
shippingStatus: json['shippingRequestStatus'],
shippingStatusEnum: json['shippingRequestStatus'] != null ? (json['shippingRequestStatus'] as int).toShippingStatusEnum() : ShippingRequestStatusEnum.pending,
selfPickupRequestStatusEnum: json['selfPickupRequestStatus'] != null ? (json['selfPickupRequestStatus'] as int).toSelfPickupStatusEnum() : SelfPickupRequestStatusEnum.preparingToCollect,
cityName: json["cityName"],
1 week ago
cityNameN: json["cityNameN"],
vehicleTypeName: json["vehicleTypeName"],
1 week ago
vehicleTypeNameN: json["vehicleTypeNameN"],
countryName: json["countryName"],
1 week ago
countryNameN: json["countryNameN"],
customerName: json["customerName"] ?? "",
address: json["address"] ?? "",
additionalAddressDetails: json['additionalAddress'] ?? "",
customerID: json["customerUserID"],
serviceProviders: json["serviceProviders"],
offerCount: json["offerCount"],
id: json["id"],
customerId: json["customerID"],
isChatted: json["isChatted"],
isOfferAccepted: json["isOfferAccepted"],
offerDeliveryOption: ((json["offerDeliveryOption"] ?? 0) as int).toRequestDeliveryOptionEnum(),
selectedDeliveryOptionByCustomer: ((json["deliveryOption"] ?? 0) as int).toRequestDeliveryOptionEnum(),
customerUserID: json["customerUserID"],
customer: json["customer"],
brand: json["brand"],
model: json["model"],
year: json["year"],
isNew: json["isNew"],
description: json["description"],
2 years ago
requestImages: List<GenericImageModel>.from(json["requestImages"].map((x) => GenericImageModel.fromJson(x))),
cityId: json["cityID"],
city: json["city"],
price: json["price"],
paymentStatus: json["paymentStatus"],
vehicleTypeId: json["vehicleTypeID"],
countryId: json["countryID"],
requestProviderItem: List<dynamic>.from(json["requestProviderItem"].map((x) => x)),
isActive: json["isActive"],
createdBy: json["createdBy"],
createdOn: json["createdOn"],
modifiedBy: json["modifiedBy"],
modifiedOn: json["modifiedOn"],
1 week ago
requestStatusNameN: json["requestStatusNameN"],
chatMessages: [],
);
}
}