flowr_arch 0.3.0
flowr_arch: ^0.3.0 copied to clipboard
FlowR-Arch
import 'package:flowr_arch/flowr_arch.dart';
import 'package:sembast/sembast.dart';
class MsgDTO extends FrTable {
@override
final String id; // ulid, with 'createAt'
final String content;
MsgDTO({required this.id, required this.content});
@override
String toString() => toJson().toString();
factory MsgDTO.fromJson(Map<String, dynamic> json) =>
MsgDTO(id: json['id'], content: json['content']);
@override
Map<String, dynamic> toJson() => {'id': id, 'content': content};
}
/// FrRepo has base CRUD method
class MsgRepo extends FrRepo<MsgDTO> {
@override
final String tableName = 'tb_msg';
MsgRepo(super.dbClient);
Future<Iterable<MsgDTO>> findByContent(String search) async {
final finder = Finder(
filter: Filter.and([Filter.matches('content', search)]),
);
return await super.find(finder);
}
@override
MsgDTO fromJson(JSON value, {Function? onError}) => MsgDTO.fromJson(value);
}
main() {
/// please see test/fr_repo_test.dart
}