import '../dto/results.dart'; import '../mappers/results.dart'; import '../models/auth.dart'; import 'contracts.dart'; import 'verification.dart'; /// Deterministic local simulation. No network, storage, credentials or sessions /// are retained. Configure failures explicitly rather than using magic emails. class DummyLoginService implements LoginService, SimulationInfo { @override bool get isSimulated => true; const DummyLoginService({ this.delay = const Duration(milliseconds: 600), this.failure, }); final Duration delay; final AuthError? failure; @override Future login(LoginRequest request) async { await Future.delayed(delay); if (failure case final error?) throw AuthException(error); return AuthMapper.fromDTO( const AuthDTO(userId: 'demo-user', simulated: true), ); } } class DummySignupService implements SignupService, SimulationInfo { @override bool get isSimulated => true; const DummySignupService({ this.delay = const Duration(milliseconds: 600), this.failure, }); final Duration delay; final AuthError? failure; @override Future signup(SignupRequest request) async { await Future.delayed(delay); if (failure case final error?) throw AuthException(error); return AuthMapper.signup( const AuthDTO(userId: 'demo-user', simulated: true), email: request.email.trim(), ); } }