- keep store identity (com.mobileapp.store.ride, shorebird, firebase, fonts); old lib -> lib_old_getx - core: config/di/router(go_router)/theme/api_client(dio+tenant+bearer)/token_store(secure) - auth: repo + AuthCubit + OTP phone/otp screens; home: flutter_map (OSM placeholder, انطلق TODO) - android usesCleartextTraffic=true for http API; maps=flutter_map (no Google), state=Cubit Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
779 B
Dart
43 lines
779 B
Dart
import 'package:equatable/equatable.dart';
|
|
import '../data/auth_repository.dart';
|
|
|
|
enum AuthStatus {
|
|
unknown,
|
|
unauthenticated,
|
|
codeSent,
|
|
authenticating,
|
|
authenticated,
|
|
error,
|
|
}
|
|
|
|
class AuthState extends Equatable {
|
|
final AuthStatus status;
|
|
final String phone;
|
|
final AppUser? user;
|
|
final String? error;
|
|
|
|
const AuthState({
|
|
this.status = AuthStatus.unknown,
|
|
this.phone = '',
|
|
this.user,
|
|
this.error,
|
|
});
|
|
|
|
AuthState copyWith({
|
|
AuthStatus? status,
|
|
String? phone,
|
|
AppUser? user,
|
|
String? error,
|
|
}) {
|
|
return AuthState(
|
|
status: status ?? this.status,
|
|
phone: phone ?? this.phone,
|
|
user: user ?? this.user,
|
|
error: error,
|
|
);
|
|
}
|
|
|
|
@override
|
|
List<Object?> get props => [status, phone, user, error];
|
|
}
|