genaric models update 1.0

pull/4/head
mirza.shafique 2 years ago
parent 458fc432a2
commit e68470c67e

@ -101,6 +101,10 @@ class ApiConsts {
static String paymentWebViewUrl = "https://ms.hmg.com/pay/PaymentHome";
static String payForOrderDetailGet = "${baseUrlServices}api/Payment/PayFortOrderDetail_Get";
//Duplicate Services
static String getMatchedServices = "${baseUrlServices}api/ServiceProviders/ServiceProviderBranchServicesMapping_Get";
static String duplicateItems = "${baseUrlServices}api/ServiceProviders/ServiceItemCopy_Create";
static List<String> closingUrls = ["PayFortResponse"];
}

@ -5,21 +5,21 @@ import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
extension EmailValidator on String {
Widget toText({Color? color,
bool isBold = false,
double? fontSize,
bool isUnderLine = false,
bool isItalic = false,
TextDecoration? textDecoration,
double letterSpacing = -0.4,
TextAlign? textAlign,
double? height,
int? maxLines}) =>
Widget toText(
{Color? color,
bool isBold = false,
double? fontSize,
bool isUnderLine = false,
bool isItalic = false,
TextDecoration? textDecoration,
double letterSpacing = -0.4,
TextAlign? textAlign,
double? height,
int? maxLines}) =>
AutoSizeText(
this,
textAlign: textAlign,
maxLines: maxLines,
style: TextStyle(
fontStyle: isItalic ? FontStyle.italic : null,
height: height,
@ -180,6 +180,46 @@ extension AdPostEnum on int {
}
}
extension BranchsEnum on int {
BranchStatusEnum toBranchStatusEnum() {
if (this == 1) {
return BranchStatusEnum.pending;
} else if (this == 2) {
return BranchStatusEnum.review;
} else if (this == 3) {
return BranchStatusEnum.approvedOrActive;
} else if (this == 4) {
return BranchStatusEnum.rejected;
} else if (this == 5) {
return BranchStatusEnum.blocked;
} else if (this == 6) {
return BranchStatusEnum.deactivated;
} else {
return BranchStatusEnum.pending;
}
}
}
extension ServiceEnum on int {
ServiceStatusEnum toServiceStatusEnum() {
if (this == 1) {
return ServiceStatusEnum.pending;
} else if (this == 2) {
return ServiceStatusEnum.review;
} else if (this == 3) {
return ServiceStatusEnum.approvedOrActive;
} else if (this == 4) {
return ServiceStatusEnum.rejected;
} else if (this == 5) {
return ServiceStatusEnum.blocked;
} else if (this == 6) {
return ServiceStatusEnum.deactivated;
} else {
return ServiceStatusEnum.pending;
}
}
}
extension DateTimeConversions on DateTime {
String getTimeAgo({bool numericDates = true}) {
final date2 = DateTime.now();

@ -24,14 +24,16 @@ class ProviderModel {
final ProviderModelData? data;
final String? message;
factory ProviderModel.fromJson(Map<String, dynamic> json) => ProviderModel(
factory ProviderModel.fromJson(Map<String, dynamic> json) =>
ProviderModel(
messageStatus: json["messageStatus"] == null ? null : json["messageStatus"],
totalItemsCount: json["totalItemsCount"] == null ? null : json["totalItemsCount"],
data: json["data"] == null ? null : ProviderModelData.fromJson(json["data"]),
message: json["message"] == null ? null : json["message"],
);
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() =>
{
"messageStatus": messageStatus == null ? null : messageStatus,
"totalItemsCount": totalItemsCount == null ? null : totalItemsCount,
"data": data == null ? null : data!.toJson(),
@ -62,7 +64,8 @@ class ProviderModelData {
final String? userId;
final List<BranchModel>? serviceProviderBranch;
factory ProviderModelData.fromJson(Map<String, dynamic> json) => ProviderModelData(
factory ProviderModelData.fromJson(Map<String, dynamic> json) =>
ProviderModelData(
id: json["id"] == null ? null : json["id"],
companyName: json["companyName"] == null ? null : json["companyName"],
countryName: json["countryName"] == null ? null : json["countryName"],
@ -74,7 +77,8 @@ class ProviderModelData {
serviceProviderBranch: json["serviceProviderBranch"] == null ? null : List<BranchModel>.from(json["serviceProviderBranch"].map((x) => BranchModel.fromJson(x))),
);
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() =>
{
"id": id == null ? null : id,
"companyName": companyName == null ? null : companyName,
"companyDescription": companyDescription == null ? null : companyDescription,

@ -1,5 +1,7 @@
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/models/profile/categroy.dart';
import 'package:mc_common_app/models/services/service_model.dart';
import 'package:mc_common_app/utils/enums.dart';
class BranchModel {
final int? id;
@ -14,10 +16,13 @@ class BranchModel {
final double? distanceKm;
final String? openTime;
final String? closeTime;
final int? status;
final BranchStatusEnum? branchStatus;
final int? statusId;
final dynamic statusText;
final List<ServiceModel>? branchServices;
List<CategoryData>? categories;
int? countryID;
String? countryName;
bool isExpanded;
BranchModel({
@ -33,10 +38,13 @@ class BranchModel {
this.distanceKm,
this.openTime,
this.closeTime,
this.status,
this.branchStatus,
this.statusId,
this.statusText,
this.branchServices,
this.categories,
this.countryID,
this.countryName,
required this.isExpanded,
});
@ -53,7 +61,8 @@ class BranchModel {
distanceKm: json["distanceKM"]?.toDouble(),
openTime: json["openTime"],
closeTime: json["closeTime"],
status: json["status"],
branchStatus: (json['branchStatus'] as int).toBranchStatusEnum(),
statusId: json["branchStatus"],
statusText: json["statusText"],
branchServices: json["serviceProviderServices"] == null ? [] : List<ServiceModel>.from(json["serviceProviderServices"]!.map((x) => ServiceModel.fromJson(x))),
categories: [],
@ -73,7 +82,7 @@ class BranchModel {
"distanceKM": distanceKm,
"openTime": openTime,
"closeTime": closeTime,
"status": status,
"status": statusId,
"statusText": statusText,
"serviceProviderServices": branchServices == null ? [] : List<dynamic>.from(branchServices!.map((x) => x.toJson())),
};

@ -49,7 +49,7 @@ class ItemData {
final bool? isAllowAppointment;
final bool? isAppointmentCompanyLoc;
final bool? isAppointmentCustomerLoc;
bool? isUpdate;
bool? isUpdateOrSelected;
ItemData({
this.id,
@ -64,7 +64,7 @@ class ItemData {
this.isAllowAppointment,
this.isAppointmentCompanyLoc,
this.isAppointmentCustomerLoc,
this.isUpdate,
this.isUpdateOrSelected,
});
factory ItemData.fromJson(Map<String, dynamic> json) => ItemData(
@ -80,7 +80,7 @@ class ItemData {
isAllowAppointment: json["isAllowAppointment"],
isAppointmentCompanyLoc: json["isAppointmentCompanyLoc"],
isAppointmentCustomerLoc: json["isAppointmentCustomerLoc"],
isUpdate: false,
isUpdateOrSelected: false,
);
Map<String, dynamic> toJson() => {

@ -1,3 +1,5 @@
import 'package:mc_common_app/models/services/item_model.dart';
class ServiceModel {
final int? serviceProviderServiceId;
final dynamic providerServiceDescription;
@ -13,7 +15,8 @@ class ServiceModel {
final int? customerLocationRange;
final String? rangePricePerKm;
final int? itemsCount;
bool isExpanded;
List<ItemData>? serviceItems;
bool isExpandedOrSelected;
ServiceModel({
this.serviceProviderServiceId,
@ -30,17 +33,19 @@ class ServiceModel {
this.customerLocationRange,
this.rangePricePerKm,
this.itemsCount,
required this.isExpanded,
this.serviceItems,
required this.isExpandedOrSelected,
});
factory ServiceModel.fromJson(Map<String, dynamic> json) => ServiceModel(
factory ServiceModel.fromJson(Map<String, dynamic> json) =>
ServiceModel(
serviceProviderServiceId: json["serviceProviderServiceID"],
providerServiceDescription: json["providerServiceDescription"],
categoryId: json["categoryID"],
categoryName: json["categoryName"],
serviceId: json["serviceID"],
serviceDescription: json["serviceDescription"] ?? json["serviceName"],
serviceDescriptionN: json["serviceDescriptionN"]?? json["serviceNameN"],
serviceDescriptionN: json["serviceDescriptionN"] ?? json["serviceNameN"],
serviceStatus: json["serviceStatus"],
statusText: json["statusText"],
isAllowAppointment: json["isAllowAppointment"],
@ -48,10 +53,12 @@ class ServiceModel {
customerLocationRange: json["customerLocationRange"],
rangePricePerKm: json["rangePricePerKm"].toString(),
itemsCount: json["itemsCount"],
isExpanded: false,
serviceItems: json["branchServiceItems"] == null ? [] : List<ItemData>.from(json["branchServiceItems"]!.map((x) => ItemData.fromJson(x))),
isExpandedOrSelected: false,
);
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() =>
{
"serviceProviderServiceID": serviceProviderServiceId,
"providerServiceDescription": providerServiceDescription,
"categoryID": categoryId,
@ -66,5 +73,6 @@ class ServiceModel {
"customerLocationRange": customerLocationRange,
"rangePricePerKm": rangePricePerKm,
"itemsCount": itemsCount,
"branchServiceItems": serviceItems == null ? [] : List<dynamic>.from(serviceItems!.map((x) => x.toJson())),
};
}

@ -67,7 +67,7 @@ enum LoginType {
enum AppType { provider, customer }
enum ServiceStatus {
enum ServiceStatusEnum {
pending, //1
review, //2
approvedOrActive, //3
@ -75,3 +75,20 @@ enum ServiceStatus {
blocked, //5
deactivated, //6
}
enum DocumentStatusEnum {
needUpload, // 0
pending, // 1
review, // 2
approvedOrActive, // 3
rejected // 4
}
enum BranchStatusEnum {
pending, // 1
review, // 2
approvedOrActive, // 3
rejected, // 4
blocked, // 5
deactivated // 6
}

@ -214,6 +214,7 @@ class Utils {
}
}
static statusContainerChip({required String text, EdgeInsetsGeometry padding = const EdgeInsets.symmetric(vertical: 3, horizontal: 6), Color chipColor = MyColors.greenColor}) {
return Container(
decoration: BoxDecoration(

@ -1,29 +1,32 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class DropDownText extends StatelessWidget {
String title;
DropDownText(this.title);
DropDownText(this.title, {super.key});
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
title.toText(color: accentColor, fontSize: 16, letterSpacing: -0.64,),
16.height,
SvgPicture.asset(
"assets/ic_arrow_down.svg",
width: 10,
height: 10,
title.toText(
fontSize: 16,
letterSpacing: -0.64,
),
const Icon(Icons.keyboard_arrow_down_outlined),
],
).toContainer(
isEnabledBorder: true,
borderRadius: 0,
borderColor: MyColors.primaryColor,
borderWidget: 2,
);
}
}

@ -9,7 +9,6 @@ class MenuTabs extends StatefulWidget {
Function(DropValue value) onSelect;
Color? selectedColor;
MenuTabs(this.selectedIndex, this.dropList, {required this.onSelect, this.selectedColor});
@override

Loading…
Cancel
Save