import 'dart:async'; import 'package:angel_migration/angel_migration.dart'; import 'package:angel_model/angel_model.dart'; import 'package:angel_orm/angel_orm.dart'; import 'package:angel_orm/src/query.dart'; import 'package:angel_serialize/angel_serialize.dart'; part 'main.g.dart'; main() async { var query = EmployeeQuery() ..where.firstName.equals('Rich') ..where.lastName.equals('Person') ..orWhere((w) => w.salary.greaterThanOrEqualTo(75000)) ..join('companies', 'company_id', 'id'); var richPerson = await query.getOne(_FakeExecutor()); print(richPerson.toJson()); } class _FakeExecutor extends QueryExecutor { const _FakeExecutor(); @override Future> query( String tableName, String query, Map substitutionValues, [returningFields]) async { var now = DateTime.now(); print( '_FakeExecutor received query: $query and values: $substitutionValues'); return [ [1, 'Rich', 'Person', 100000.0, now, now] ]; } @override Future transaction(FutureOr Function(QueryExecutor) f) { throw UnsupportedError('Transactions are not supported.'); } } @orm @serializable abstract class _Employee extends Model { String get firstName; String get lastName; @Column(indexType: IndexType.unique) String uniqueId; double get salary; }