import 'package:equatable/equatable.dart'; import 'package:nc_photos/account.dart'; class Person with EquatableMixin { Person({ required this.name, required this.thumbFaceId, required this.count, }); @override toString() { return "$runtimeType {" "name: '$name', " "thumbFaceId: '$thumbFaceId', " "count: '$count', " "}"; } @override get props => [ name, thumbFaceId, count, ]; final String name; final int thumbFaceId; final int count; } class PersonRepo { const PersonRepo(this.dataSrc); /// See [PersonDataSource.list] Future> list(Account account) => dataSrc.list(account); final PersonDataSource dataSrc; } abstract class PersonDataSource { /// List all people for this account Future> list(Account account); }