Skip to content

Instantly share code, notes, and snippets.

@Zfinix
Created December 16, 2019 07:38
Show Gist options
  • Select an option

  • Save Zfinix/9e2adf1fd79812324dc419dd50087582 to your computer and use it in GitHub Desktop.

Select an option

Save Zfinix/9e2adf1fd79812324dc419dd50087582 to your computer and use it in GitHub Desktop.
library user_model;
import 'dart:convert';
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
import 'serializers.dart';
part 'user_model.g.dart';
abstract class UserModel implements Built<UserModel, UserModelBuilder> {
UserModel._();
factory UserModel([updates(UserModelBuilder b)]) = _$UserModel;
@BuiltValueField(wireName: 'id')
int get id;
@BuiltValueField(wireName: 'date')
String get date;
@BuiltValueField(wireName: 'name')
String get name;
@BuiltValueField(wireName: 'age')
int get age;
@BuiltValueField(wireName: 'url')
String get url;
@BuiltValueField(wireName: 'career')
Career get career;
@BuiltValueField(wireName: 'like')
BuiltList<String> get like;
String toJson() {
return json.encode(serializers.serializeWith(UserModel.serializer, this));
}
static UserModel fromJson(String jsonString) {
return serializers.deserializeWith(
UserModel.serializer, json.decode(jsonString));
}
static Serializer<UserModel> get serializer => _$userModelSerializer;
}
abstract class Career implements Built<Career, CareerBuilder> {
Career._();
factory Career([updates(CareerBuilder b)]) = _$Career;
@BuiltValueField(wireName: 'job')
String get job;
String toJson() {
return json.encode(serializers.serializeWith(Career.serializer, this));
}
static Career fromJson(String jsonString) {
return serializers.deserializeWith(
Career.serializer, json.decode(jsonString));
}
static Serializer<Career> get serializer => _$careerSerializer;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment