import 'models.dart'; class ApiException implements Exception { ApiException(this.message); final String message; @override String toString() => message; } abstract class Api { DateTime get now; Stream get sessionEnded; Future latestDrawDate(); Future login(String username, String password); Future restore(); void logout(); Future> month(int year, int month); Future results(DateTime date); Future> shops(DateTime date); Future shopDetail(int shopId, DateTime date); Future> activeShops(); Future createShop(String name, String code); Future renameShop(int shopId, String name); Future setShopActive(int shopId, bool active); Future> orders(DateTime date); Future order(int orderId); Future setLineQty(int orderId, String ending, int qty); Future removeLine(int orderId, String ending); Future cancelOrder(int orderId); Future> users(); Future user(int id); Future createUser({ required String username, String? phone, required String password, required List shopIds, }); Future updateUser( int id, { String? username, String? phone, bool clearPhone = false, String? password, bool? active, bool? sendResults, }); Future setUserShops(int id, List shopIds); Future deleteUser(int id); }