/// companyNo : "111000000000000000"
/// roleNo : "1201067702257721413"
/// roleName : "小太阳个人"
/// roleType : 1
/// roleStrategy : 2
/// roleTypeMsg : "平台个人"
/// roleStrategyMsg : "默认"
/// roleDescribe : ""
/// createTime : "2022-10-28 17:45:06"
/// productInfo : [{"productCode":"001","productName":"前端2","productImgUrl":"http://clx-dev.oss-cn-beijing.aliyuncs.com/msl/common/dev/webp/20221028/niHXbPxhufbrkA42.webp","menuVoList":[{"menuPno":0,"menuNo":"1221067357729386565","menuName":"前端2一级菜单","menuType":2,"menuLevel":1,"menuLevelMsg":"一级","menuTypeMsg":"菜单","menuCode":"fe21","selected":null,"childMenuList":[{"menuPno":"1221067357729386565","menuNo":"1221067357983211589","menuName":"前端2二级菜单","menuType":2,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"菜单","menuCode":"fe212","selected":null,"childMenuList":[]}]}]},{"productCode":"demoData","productName":"测测demo","productImgUrl":"http://clx-dev.oss-cn-beijing.aliyuncs.com/msl/common/dev/jpg/20221028/G895KBcAGwsGb0sr.jpg","menuVoList":[{"menuPno":0,"menuNo":"1221027602696265797","menuName":"测试一级菜单","menuType":1,"menuLevel":1,"menuLevelMsg":"一级","menuTypeMsg":"目录","menuCode":"demoTestMenu1","selected":null,"childMenuList":[{"menuPno":"1221027602696265797","menuNo":"1221040764935073861","menuName":"123","menuType":1,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"目录","menuCode":"123","selected":null,"childMenuList":[{"menuPno":"1221040764935073861","menuNo":"1221064495028965445","menuName":"企业认证列表查询按钮","menuType":3,"menuLevel":3,"menuLevelMsg":"三级","menuTypeMsg":"按钮","menuCode":"companyAuthList","selected":null,"childMenuList":[]},{"menuPno":"1221040764935073861","menuNo":"1221068722261172293","menuName":"123的二级","menuType":2,"menuLevel":1,"menuLevelMsg":"一级","menuTypeMsg":"菜单","menuCode":"1232","selected":null,"childMenuList":[]}]}]},{"menuPno":0,"menuNo":"1221040764818436165","menuName":"测试二级菜单","menuType":1,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"目录","menuCode":"demoTestMenu2","selected":null,"childMenuList":[]},{"menuPno":0,"menuNo":"1221067293403902021","menuName":"555","menuType":1,"menuLevel":1,"menuLevelMsg":"一级","menuTypeMsg":"目录","menuCode":"555","selected":null,"childMenuList":[{"menuPno":"1221067293403902021","menuNo":"1221067306004435013","menuName":"755","menuType":2,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"菜单","menuCode":"755","selected":null,"childMenuList":[]}]}]}]
/// productCount : 2
/// status : 10
/// statusMsg : "启用"

class RoleDetailsEntity {
  RoleDetailsEntity({
      String? companyNo, 
      String? roleNo, 
      String? roleName, 
      int? roleType, 
      int? roleStrategy, 
      String? roleTypeMsg, 
      String? roleStrategyMsg, 
      String? roleDescribe, 
      String? createTime, 
      List<ProductInfo>? productInfo, 
      int? productCount, 
      int? status, 
      String? statusMsg,}){
    _companyNo = companyNo;
    _roleNo = roleNo;
    _roleName = roleName;
    _roleType = roleType;
    _roleStrategy = roleStrategy;
    _roleTypeMsg = roleTypeMsg;
    _roleStrategyMsg = roleStrategyMsg;
    _roleDescribe = roleDescribe;
    _createTime = createTime;
    _productInfo = productInfo;
    _productCount = productCount;
    _status = status;
    _statusMsg = statusMsg;
}

  RoleDetailsEntity.fromJson(dynamic json) {
    _companyNo = json['companyNo'];
    _roleNo = json['roleNo'];
    _roleName = json['roleName'];
    _roleType = json['roleType'];
    _roleStrategy = json['roleStrategy'];
    _roleTypeMsg = json['roleTypeMsg'];
    _roleStrategyMsg = json['roleStrategyMsg'];
    _roleDescribe = json['roleDescribe'];
    _createTime = json['createTime'];
    if (json['productInfo'] != null) {
      _productInfo = [];
      json['productInfo'].forEach((v) {
        _productInfo?.add(ProductInfo.fromJson(v));
      });
    }
    _productCount = json['productCount'];
    _status = json['status'];
    _statusMsg = json['statusMsg'];
  }
  String? _companyNo;
  String? _roleNo;
  String? _roleName;
  int? _roleType;
  int? _roleStrategy;
  String? _roleTypeMsg;
  String? _roleStrategyMsg;
  String? _roleDescribe;
  String? _createTime;
  List<ProductInfo>? _productInfo;
  int? _productCount;
  int? _status;
  String? _statusMsg;
RoleDetailsEntity copyWith({  String? companyNo,
  String? roleNo,
  String? roleName,
  int? roleType,
  int? roleStrategy,
  String? roleTypeMsg,
  String? roleStrategyMsg,
  String? roleDescribe,
  String? createTime,
  List<ProductInfo>? productInfo,
  int? productCount,
  int? status,
  String? statusMsg,
}) => RoleDetailsEntity(  companyNo: companyNo ?? _companyNo,
  roleNo: roleNo ?? _roleNo,
  roleName: roleName ?? _roleName,
  roleType: roleType ?? _roleType,
  roleStrategy: roleStrategy ?? _roleStrategy,
  roleTypeMsg: roleTypeMsg ?? _roleTypeMsg,
  roleStrategyMsg: roleStrategyMsg ?? _roleStrategyMsg,
  roleDescribe: roleDescribe ?? _roleDescribe,
  createTime: createTime ?? _createTime,
  productInfo: productInfo ?? _productInfo,
  productCount: productCount ?? _productCount,
  status: status ?? _status,
  statusMsg: statusMsg ?? _statusMsg,
);
  String? get companyNo => _companyNo;
  String? get roleNo => _roleNo;
  String? get roleName => _roleName;
  int? get roleType => _roleType;
  int? get roleStrategy => _roleStrategy;
  String? get roleTypeMsg => _roleTypeMsg;
  String? get roleStrategyMsg => _roleStrategyMsg;
  String? get roleDescribe => _roleDescribe;
  String? get createTime => _createTime;
  List<ProductInfo>? get productInfo => _productInfo;
  int? get productCount => _productCount;
  int? get status => _status;
  String? get statusMsg => _statusMsg;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['companyNo'] = _companyNo;
    map['roleNo'] = _roleNo;
    map['roleName'] = _roleName;
    map['roleType'] = _roleType;
    map['roleStrategy'] = _roleStrategy;
    map['roleTypeMsg'] = _roleTypeMsg;
    map['roleStrategyMsg'] = _roleStrategyMsg;
    map['roleDescribe'] = _roleDescribe;
    map['createTime'] = _createTime;
    if (_productInfo != null) {
      map['productInfo'] = _productInfo?.map((v) => v.toJson()).toList();
    }
    map['productCount'] = _productCount;
    map['status'] = _status;
    map['statusMsg'] = _statusMsg;
    return map;
  }

}

/// productCode : "001"
/// productName : "前端2"
/// productImgUrl : "http://clx-dev.oss-cn-beijing.aliyuncs.com/msl/common/dev/webp/20221028/niHXbPxhufbrkA42.webp"
/// menuVoList : [{"menuPno":0,"menuNo":"1221067357729386565","menuName":"前端2一级菜单","menuType":2,"menuLevel":1,"menuLevelMsg":"一级","menuTypeMsg":"菜单","menuCode":"fe21","selected":null,"childMenuList":[{"menuPno":"1221067357729386565","menuNo":"1221067357983211589","menuName":"前端2二级菜单","menuType":2,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"菜单","menuCode":"fe212","selected":null,"childMenuList":[]}]}]

class ProductInfo {
  ProductInfo({
      String? productCode, 
      String? productName, 
      String? productImgUrl, 
      List<MenuVoList>? menuVoList,}){
    _productCode = productCode;
    _productName = productName;
    _productImgUrl = productImgUrl;
    _menuVoList = menuVoList;
}

  ProductInfo.fromJson(dynamic json) {
    _productCode = json['productCode'];
    _productName = json['productName'];
    _productImgUrl = json['productImgUrl'];
    if (json['menuVoList'] != null) {
      _menuVoList = [];
      json['menuVoList'].forEach((v) {
        _menuVoList?.add(MenuVoList.fromJson(v));
      });
    }
  }
  String? _productCode;
  String? _productName;
  String? _productImgUrl;
  List<MenuVoList>? _menuVoList;
ProductInfo copyWith({  String? productCode,
  String? productName,
  String? productImgUrl,
  List<MenuVoList>? menuVoList,
}) => ProductInfo(  productCode: productCode ?? _productCode,
  productName: productName ?? _productName,
  productImgUrl: productImgUrl ?? _productImgUrl,
  menuVoList: menuVoList ?? _menuVoList,
);
  String? get productCode => _productCode;
  String? get productName => _productName;
  String? get productImgUrl => _productImgUrl;
  List<MenuVoList>? get menuVoList => _menuVoList;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['productCode'] = _productCode;
    map['productName'] = _productName;
    map['productImgUrl'] = _productImgUrl;
    if (_menuVoList != null) {
      map['menuVoList'] = _menuVoList?.map((v) => v.toJson()).toList();
    }
    return map;
  }

}

/// menuPno : 0
/// menuNo : "1221067357729386565"
/// menuName : "前端2一级菜单"
/// menuType : 2
/// menuLevel : 1
/// menuLevelMsg : "一级"
/// menuTypeMsg : "菜单"
/// menuCode : "fe21"
/// selected : null
/// childMenuList : [{"menuPno":"1221067357729386565","menuNo":"1221067357983211589","menuName":"前端2二级菜单","menuType":2,"menuLevel":2,"menuLevelMsg":"二级","menuTypeMsg":"菜单","menuCode":"fe212","selected":null,"childMenuList":[]}]

class MenuVoList {
  MenuVoList({
      int? menuPno, 
      String? menuNo, 
      String? menuName, 
      int? menuType, 
      int? menuLevel, 
      String? menuLevelMsg, 
      String? menuTypeMsg, 
      String? menuCode, 
      dynamic selected, 
      List<ChildMenuList>? childMenuList,}){
    _menuPno = menuPno;
    _menuNo = menuNo;
    _menuName = menuName;
    _menuType = menuType;
    _menuLevel = menuLevel;
    _menuLevelMsg = menuLevelMsg;
    _menuTypeMsg = menuTypeMsg;
    _menuCode = menuCode;
    _selected = selected;
    _childMenuList = childMenuList;
}

  MenuVoList.fromJson(dynamic json) {
    _menuPno = json['menuPno'];
    _menuNo = json['menuNo'];
    _menuName = json['menuName'];
    _menuType = json['menuType'];
    _menuLevel = json['menuLevel'];
    _menuLevelMsg = json['menuLevelMsg'];
    _menuTypeMsg = json['menuTypeMsg'];
    _menuCode = json['menuCode'];
    _selected = json['selected'];
    if (json['childMenuList'] != null) {
      _childMenuList = [];
      json['childMenuList'].forEach((v) {
        _childMenuList?.add(ChildMenuList.fromJson(v));
      });
    }
  }
  int? _menuPno;
  String? _menuNo;
  String? _menuName;
  int? _menuType;
  int? _menuLevel;
  String? _menuLevelMsg;
  String? _menuTypeMsg;
  String? _menuCode;
  dynamic _selected;
  List<ChildMenuList>? _childMenuList;
MenuVoList copyWith({  int? menuPno,
  String? menuNo,
  String? menuName,
  int? menuType,
  int? menuLevel,
  String? menuLevelMsg,
  String? menuTypeMsg,
  String? menuCode,
  dynamic selected,
  List<ChildMenuList>? childMenuList,
}) => MenuVoList(  menuPno: menuPno ?? _menuPno,
  menuNo: menuNo ?? _menuNo,
  menuName: menuName ?? _menuName,
  menuType: menuType ?? _menuType,
  menuLevel: menuLevel ?? _menuLevel,
  menuLevelMsg: menuLevelMsg ?? _menuLevelMsg,
  menuTypeMsg: menuTypeMsg ?? _menuTypeMsg,
  menuCode: menuCode ?? _menuCode,
  selected: selected ?? _selected,
  childMenuList: childMenuList ?? _childMenuList,
);
  int? get menuPno => _menuPno;
  String? get menuNo => _menuNo;
  String? get menuName => _menuName;
  int? get menuType => _menuType;
  int? get menuLevel => _menuLevel;
  String? get menuLevelMsg => _menuLevelMsg;
  String? get menuTypeMsg => _menuTypeMsg;
  String? get menuCode => _menuCode;
  dynamic get selected => _selected;
  List<ChildMenuList>? get childMenuList => _childMenuList;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['menuPno'] = _menuPno;
    map['menuNo'] = _menuNo;
    map['menuName'] = _menuName;
    map['menuType'] = _menuType;
    map['menuLevel'] = _menuLevel;
    map['menuLevelMsg'] = _menuLevelMsg;
    map['menuTypeMsg'] = _menuTypeMsg;
    map['menuCode'] = _menuCode;
    map['selected'] = _selected;
    if (_childMenuList != null) {
      map['childMenuList'] = _childMenuList?.map((v) => v.toJson()).toList();
    }
    return map;
  }

}

/// menuPno : "1221067357729386565"
/// menuNo : "1221067357983211589"
/// menuName : "前端2二级菜单"
/// menuType : 2
/// menuLevel : 2
/// menuLevelMsg : "二级"
/// menuTypeMsg : "菜单"
/// menuCode : "fe212"
/// selected : null
/// childMenuList : []

class ChildMenuList {
  ChildMenuList({
      String? menuPno, 
      String? menuNo, 
      String? menuName, 
      int? menuType, 
      int? menuLevel, 
      String? menuLevelMsg, 
      String? menuTypeMsg, 
      String? menuCode, 
      dynamic selected, 
      List<dynamic>? childMenuList,}){
    _menuPno = menuPno;
    _menuNo = menuNo;
    _menuName = menuName;
    _menuType = menuType;
    _menuLevel = menuLevel;
    _menuLevelMsg = menuLevelMsg;
    _menuTypeMsg = menuTypeMsg;
    _menuCode = menuCode;
    _selected = selected;
    _childMenuList = childMenuList;
}

  ChildMenuList.fromJson(dynamic json) {
    _menuPno = json['menuPno'];
    _menuNo = json['menuNo'];
    _menuName = json['menuName'];
    _menuType = json['menuType'];
    _menuLevel = json['menuLevel'];
    _menuLevelMsg = json['menuLevelMsg'];
    _menuTypeMsg = json['menuTypeMsg'];
    _menuCode = json['menuCode'];
    _selected = json['selected'];
    if (json['childMenuList'] != null) {
      _childMenuList = [];
      json['childMenuList'].forEach((v) {
        _childMenuList?.add(ChildMenuList.fromJson(v));
      });
    }
  }
  String? _menuPno;
  String? _menuNo;
  String? _menuName;
  int? _menuType;
  int? _menuLevel;
  String? _menuLevelMsg;
  String? _menuTypeMsg;
  String? _menuCode;
  dynamic _selected;
  List<dynamic>? _childMenuList;
ChildMenuList copyWith({  String? menuPno,
  String? menuNo,
  String? menuName,
  int? menuType,
  int? menuLevel,
  String? menuLevelMsg,
  String? menuTypeMsg,
  String? menuCode,
  dynamic selected,
  List<dynamic>? childMenuList,
}) => ChildMenuList(  menuPno: menuPno ?? _menuPno,
  menuNo: menuNo ?? _menuNo,
  menuName: menuName ?? _menuName,
  menuType: menuType ?? _menuType,
  menuLevel: menuLevel ?? _menuLevel,
  menuLevelMsg: menuLevelMsg ?? _menuLevelMsg,
  menuTypeMsg: menuTypeMsg ?? _menuTypeMsg,
  menuCode: menuCode ?? _menuCode,
  selected: selected ?? _selected,
  childMenuList: childMenuList ?? _childMenuList,
);
  String? get menuPno => _menuPno;
  String? get menuNo => _menuNo;
  String? get menuName => _menuName;
  int? get menuType => _menuType;
  int? get menuLevel => _menuLevel;
  String? get menuLevelMsg => _menuLevelMsg;
  String? get menuTypeMsg => _menuTypeMsg;
  String? get menuCode => _menuCode;
  dynamic get selected => _selected;
  List<dynamic>? get childMenuList => _childMenuList;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['menuPno'] = _menuPno;
    map['menuNo'] = _menuNo;
    map['menuName'] = _menuName;
    map['menuType'] = _menuType;
    map['menuLevel'] = _menuLevel;
    map['menuLevelMsg'] = _menuLevelMsg;
    map['menuTypeMsg'] = _menuTypeMsg;
    map['menuCode'] = _menuCode;
    map['selected'] = _selected;
    if (_childMenuList != null) {
      map['childMenuList'] = _childMenuList?.map((v) => v.toJson()).toList();
    }
    return map;
  }

}