import '../datasources/local/shared_prefs.dart'; import '../models/user.dart'; import '../models/auth/login_request.dart'; import '../models/auth/register_request.dart'; import '../models/api_response.dart'; class AuthRepository { final SharedPrefs localDataSource; AuthRepository({required this.localDataSource}); // 模拟登录 Future> login(LoginRequest request) async { await Future.delayed(const Duration(seconds: 1)); // 模拟成功登录 if (request.email == 'test@example.com' && request.password == '123456') { final user = User( id: '1', email: request.email, name: '测试用户', avatarUrl: 'https://ui-avatars.com/api/?name=测试用户', phone: '13800138000', createdAt: DateTime.now(), ); // 保存token和用户数据 await localDataSource.setAuthToken('mock_jwt_token_${user.id}'); await localDataSource.setUserData(user.toJson().toString()); return ApiResponse( success: true, message: '登录成功', data: user, ); } else { return ApiResponse( success: false, message: '邮箱或密码错误', ); } } // 模拟注册 Future> register(RegisterRequest request) async { await Future.delayed(const Duration(seconds: 1)); final user = User( id: DateTime.now().millisecondsSinceEpoch.toString(), email: request.email, name: request.name, phone: request.phone, createdAt: DateTime.now(), ); // 保存token和用户数据 await localDataSource.setAuthToken('mock_jwt_token_${user.id}'); await localDataSource.setUserData(user.toJson().toString()); return ApiResponse( success: true, message: '注册成功', data: user, ); } // 检查登录状态 Future isLoggedIn() async { final token = localDataSource.getAuthToken(); return token != null && token.isNotEmpty; } // 获取当前用户 Future getCurrentUser() async { final userData = localDataSource.getUserData(); if (userData != null) { try { // 这里简单处理,实际应该解析JSON return User( id: '1', email: 'test@example.com', name: '测试用户', ); } catch (e) { return null; } } return null; } // 注销 Future logout() async { await localDataSource.removeAuthToken(); await localDataSource.removeUserData(); return true; } }