import 'dart:convert'; import 'package:wow_english/generated/json/base/json_field.dart'; import 'package:wow_english/generated/json/user_entity.g.dart'; @JsonSerializable() class UserEntity { late int id; late String name; /// 一定有也必须要有 late String token; //late int expireTime; int? age; /// 性别:0男, 1女 int? gender; String? avatarUrl; late String phoneNum; /// 用户信息是否填写 0.未填写 1.已经填写 int? fillUserInfo; /// 当前模块Id int? nowCourseModuleId; /// 有效时间,VIP,为null没有 String? effectiveDate; UserEntity(); factory UserEntity.fromJson(Map json) => $UserEntityFromJson(json); Map toJson() => $UserEntityToJson(this); @override String toString() { return jsonEncode(this); } Map toUpdateJson() { final Map data = {}; data['name'] = name; data['age'] = age; data['gender'] = gender; data['avatarUrl'] = avatarUrl; return data; } String getGenderString() { return gender == null ? '' : gender == 0 ? '男' : '女'; } UserEntity copyWith({ int? id, String? name, String? token, int? age, int? gender, String? avatarUrl, String? phoneNum, int? fillUserInfo, int? nowCourseModuleId, String? effectiveDate, }) { return UserEntity() ..id = id ?? this.id ..name = name ?? this.name ..token = token ?? this.token ..age = age ?? this.age ..gender = gender ?? this.gender ..avatarUrl = avatarUrl ?? this.avatarUrl ..phoneNum = phoneNum ?? this.phoneNum ..fillUserInfo = fillUserInfo ?? this.fillUserInfo ..nowCourseModuleId = nowCourseModuleId ?? this.nowCourseModuleId ..effectiveDate = effectiveDate ?? this.effectiveDate; } }