library angel_serialize.test.models.book; import 'package:angel_model/angel_model.dart'; import 'package:angel_serialize/angel_serialize.dart'; import 'package:collection/collection.dart'; import 'package:meta/meta.dart'; part 'book.g.dart'; @Serializable( serializers: Serializers.all, includeAnnotations: [ pragma('hello'), SerializableField(alias: 'omg'), ], ) abstract class _Book extends Model { String author, title, description; /// The number of pages the book has. int pageCount; List notModels; @SerializableField(alias: 'camelCase', isNullable: true) String camelCaseString; } @Serializable(serializers: Serializers.all) abstract class _Author extends Model { @SerializableField(isNullable: false) String get name; String get customMethod => 'hey!'; @SerializableField( isNullable: false, errorMessage: 'Custom message for missing `age`') int get age; List<_Book> get books; /// The newest book. _Book get newestBook; @SerializableField(exclude: true, isNullable: true) String get secret; @SerializableField(exclude: true, canDeserialize: true, isNullable: true) String get obscured; } @Serializable(serializers: Serializers.all) abstract class _Library extends Model { Map get collection; } @Serializable(serializers: Serializers.all) abstract class _Bookmark extends Model { @SerializableField(exclude: true) final _Book book; List get history; @SerializableField(isNullable: false) int get page; String get comment; _Bookmark(this.book); }