25 lines
649 B
Dart
25 lines
649 B
Dart
import '../entities/customer.dart';
|
|
|
|
abstract class CustomerRepository {
|
|
/// Primary lookup on the Existing Customer screen.
|
|
Future<Customer?> findByMobile(String mobile);
|
|
|
|
Future<Customer?> findById(String id);
|
|
|
|
Future<Customer> create(Customer customer);
|
|
|
|
Future<Customer> update(Customer customer);
|
|
|
|
/// Applies loyalty and lifetime-spend changes once a sale completes.
|
|
Future<Customer> recordSale({
|
|
required String customerId,
|
|
required double amount,
|
|
required int pointsEarned,
|
|
required int pointsRedeemed,
|
|
});
|
|
|
|
Future<List<Customer>> search(String query);
|
|
|
|
Future<List<Customer>> recent({int limit = 20});
|
|
}
|