// To parse this JSON data, do
//
//     final registerUser = registerUserFromJson(jsonString);

import 'dart:convert';

RegisterUserRespModel registerUserFromJson(String str) => RegisterUserRespModel.fromJson(json.decode(str));

String registerUserToJson(RegisterUserRespModel data) => json.encode(data.toJson());

class RegisterUserRespModel {
  RegisterUserRespModel({
    this.messageStatus,
    this.totalItemsCount,
    this.data,
    this.message,
  });

  final int? messageStatus;
  final dynamic? totalItemsCount;
  final Data? data;
  final String? message;

  factory RegisterUserRespModel.fromJson(Map<String, dynamic> json) => RegisterUserRespModel(
        messageStatus: json["messageStatus"] == null ? null : json["messageStatus"],
        totalItemsCount: json["totalItemsCount"],
        data: json["data"] == null ? null : Data.fromJson(json["data"]),
        message: json["message"] == null ? null : json["message"],
      );

  Map<String, dynamic> toJson() => {
        "messageStatus": messageStatus == null ? null : messageStatus,
        "totalItemsCount": totalItemsCount,
        "data": data == null ? null : data!.toJson(),
        "message": message == null ? null : message,
      };
}

class Data {
  Data({
    this.id,
    this.userId,
    this.firstName,
    this.lastName,
    this.mobileNo,
    this.email,
    this.userImageUrl,
    this.roleId,
    this.roleName,
    this.isEmailVerified,
    this.serviceProviderBranch,
    this.isVerified,
    this.userRoles,
    this.isCustomer,
    this.isProviderDealership,
    this.isProviderIndividual,
    this.isDealershipUser,
    this.providerId,
    this.customerId,
    this.dealershipId,
    required this.isNeedToPassToken,
  });

  final int? id;
  final String? userId;
  final dynamic? firstName;
  final dynamic? lastName;
  final String? mobileNo;
  final String? email;
  final dynamic? userImageUrl;
  int? roleId;
  final dynamic? roleName;
  final bool? isEmailVerified;
  final List<dynamic>? serviceProviderBranch;
  final bool? isVerified;
  final List<dynamic>? userRoles;
  final bool? isCustomer;
  final bool? isProviderDealership;
  final bool? isProviderIndividual;
  final bool? isDealershipUser;
  final dynamic? providerId;
  final dynamic? customerId;
  final dynamic? dealershipId;
  bool isNeedToPassToken;

  factory Data.fromJson(Map<String, dynamic> json) => Data(
        id: json["id"] == null ? null : json["id"],
        userId: json["userID"] == null ? null : json["userID"],
        firstName: json["firstName"],
        lastName: json["lastName"],
        mobileNo: json["mobileNo"] == null ? null : json["mobileNo"],
        email: json["email"] == null ? null : json["email"],
        userImageUrl: json["userImageUrl"],
        roleId: json["roleID"] == null ? null : json["roleID"],
        roleName: json["roleName"],
        isEmailVerified: json["isEmailVerified"] == null ? null : json["isEmailVerified"],
        serviceProviderBranch: json["serviceProviderBranch"] == null ? null : List<dynamic>.from(json["serviceProviderBranch"].map((x) => x)),
        isVerified: json["isVerified"] == null ? null : json["isVerified"],
        userRoles: json["userRoles"] == null ? null : List<dynamic>.from(json["userRoles"].map((x) => x)),
        isCustomer: json["isCustomer"] == null ? null : json["isCustomer"],
        isProviderDealership: json["isProviderDealership"] == null ? null : json["isProviderDealership"],
        isProviderIndividual: json["isProviderIndividual"] == null ? null : json["isProviderIndividual"],
        isDealershipUser: json["isDealershipUser"] == null ? null : json["isDealershipUser"],
        providerId: json["providerID"],
        customerId: json["customerID"],
        dealershipId: json["dealershipID"],
        isNeedToPassToken: false,
      );

  Map<String, dynamic> toJson() => {
        "id": id == null ? null : id,
        "userID": userId == null ? null : userId,
        "firstName": firstName,
        "lastName": lastName,
        "mobileNo": mobileNo == null ? null : mobileNo,
        "email": email == null ? null : email,
        "userImageUrl": userImageUrl,
        "roleID": roleId == null ? null : roleId,
        "roleName": roleName,
        "isEmailVerified": isEmailVerified == null ? null : isEmailVerified,
        "serviceProviderBranch": serviceProviderBranch == null ? null : List<dynamic>.from(serviceProviderBranch!.map((x) => x)),
        "isVerified": isVerified == null ? null : isVerified,
        "userRoles": userRoles == null ? null : List<dynamic>.from(userRoles!.map((x) => x)),
        "isCustomer": isCustomer == null ? null : isCustomer,
        "isProviderDealership": isProviderDealership == null ? null : isProviderDealership,
        "isProviderIndividual": isProviderIndividual == null ? null : isProviderIndividual,
        "isDealershipUser": isDealershipUser == null ? null : isDealershipUser,
        "providerID": providerId,
        "customerID": customerId,
        "dealershipID": dealershipId,
      };
}
