Files
winded/lib/features/auth/domain/app_user.dart
T
philip b239ae3e5f Initial commit: Flutter app + PHP/MySQL backend on Hostinger
Replaces Firebase with a self-hosted PHP/MySQL API served from
winded.prymsolutions.com. Includes full backend (schema, auth, events,
teams, brackets, suggestions, stats, media, file upload) and updated
Flutter repositories and domain models.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 20:13:57 -07:00

49 lines
1.2 KiB
Dart

/// Immutable domain model representing an authenticated Winded user.
///
/// This is a pure-Dart model intentionally decoupled from Firebase types so
/// the rest of the app can depend on it without pulling in firebase_auth.
class AppUser {
const AppUser({
required this.uid,
required this.email,
this.displayName,
this.photoUrl,
});
final String uid;
final String email;
final String? displayName;
final String? photoUrl;
AppUser copyWith({
String? uid,
String? email,
String? displayName,
String? photoUrl,
}) {
return AppUser(
uid: uid ?? this.uid,
email: email ?? this.email,
displayName: displayName ?? this.displayName,
photoUrl: photoUrl ?? this.photoUrl,
);
}
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is AppUser &&
other.uid == uid &&
other.email == email &&
other.displayName == displayName &&
other.photoUrl == photoUrl;
}
@override
int get hashCode => Object.hash(uid, email, displayName, photoUrl);
@override
String toString() =>
'AppUser(uid: $uid, email: $email, displayName: $displayName)';
}