platform/packages/serialize/serialize_generator/test/models/book.dart

67 lines
1.4 KiB
Dart
Raw Normal View History

2017-06-17 01:26:19 +00:00
library angel_serialize.test.models.book;
import 'package:protevus_serialize/protevus_serialize.dart';
2017-06-17 01:26:19 +00:00
part 'book.g.dart';
2019-01-07 00:56:05 +00:00
@Serializable(
serializers: Serializers.all,
includeAnnotations: [
pragma('hello'),
SerializableField(alias: 'omg'),
],
)
2017-06-17 01:26:19 +00:00
abstract class _Book extends Model {
2021-05-02 06:02:08 +00:00
String? author, title, description;
2019-04-08 15:00:04 +00:00
/// The number of pages the book has.
2021-05-02 06:02:08 +00:00
int? pageCount;
2019-04-08 15:00:04 +00:00
2021-05-02 06:02:08 +00:00
List<double>? notModels;
2018-03-09 12:43:17 +00:00
2019-04-04 21:40:36 +00:00
@SerializableField(alias: 'camelCase', isNullable: true)
2021-05-02 06:02:08 +00:00
String? camelCaseString;
2018-07-11 15:49:46 +00:00
}
2019-04-08 04:41:58 +00:00
@Serializable(serializers: Serializers.all)
abstract class _Author extends Model {
@SerializableField(isNullable: false)
2021-05-02 06:02:08 +00:00
String? get name;
2019-04-08 04:41:58 +00:00
String get customMethod => 'hey!';
@SerializableField(
isNullable: false, errorMessage: 'Custom message for missing `age`')
2021-05-02 06:02:08 +00:00
int? get age;
2019-04-08 04:41:58 +00:00
List<_Book> get books;
2019-04-08 15:00:04 +00:00
/// The newest book.
2021-05-02 06:02:08 +00:00
_Book? get newestBook;
2019-04-08 04:41:58 +00:00
@SerializableField(exclude: true, isNullable: true)
2021-05-02 06:02:08 +00:00
String? get secret;
2019-04-08 04:41:58 +00:00
@SerializableField(exclude: true, canDeserialize: true, isNullable: true)
2021-05-02 06:02:08 +00:00
String? get obscured;
2019-04-08 04:41:58 +00:00
}
@Serializable(serializers: Serializers.all)
abstract class _Library extends Model {
Map<String, _Book> get collection;
}
@Serializable(serializers: Serializers.all)
abstract class _Bookmark extends Model {
@SerializableField(exclude: true)
final _Book book;
List<int> get history;
@SerializableField(isNullable: false)
2021-05-02 06:02:08 +00:00
int? get page;
2019-04-08 04:41:58 +00:00
2021-05-02 06:02:08 +00:00
String? get comment;
2019-04-08 04:41:58 +00:00
_Bookmark(this.book);
}