import 'package:social_app/core/api/api_client.dart'; import 'models/signup_request.dart'; import 'models/login_request.dart'; import 'models/auth_response.dart'; class AuthApi { final ApiClient _client; static const _prefix = '/api/v1/auth'; AuthApi(this._client); Future createVerification( SignupStartRequest request, ) async { final response = await _client.post( '$_prefix/verifications', data: request.toJson(), ); return VerificationCreateResponse.fromJson(response.data); } Future verifyVerification(SignupVerifyRequest request) async { final response = await _client.post( '$_prefix/verifications/verify', data: request.toJson(), ); return AuthResponse.fromJson(response.data); } Future resendVerification(SignupResendRequest request) async { await _client.post('$_prefix/verifications/resend', data: request.toJson()); } Future createSession(LoginRequest request) async { final response = await _client.post( '$_prefix/sessions', data: request.toJson(), ); return AuthResponse.fromJson(response.data); } Future refreshSession(RefreshRequest request) async { final response = await _client.post( '$_prefix/sessions/refresh', data: request.toJson(), ); return AuthResponse.fromJson(response.data); } Future deleteSession(LogoutRequest request) async { await _client.delete('$_prefix/sessions', data: request.toJson()); } Future requestPasswordReset(String email) async { await _client.post('$_prefix/password-reset', data: {'email': email}); } Future confirmPasswordReset({ required String email, required String token, required String newPassword, }) async { await _client.post( '$_prefix/password-reset/confirm', data: {'email': email, 'token': token, 'new_password': newPassword}, ); } }