import 'package:equatable/equatable.dart'; /// User entity class User extends Equatable { final String id; final String email; final String username; final String? displayName; final String? avatarUrl; final bool isPremium; final DateTime createdAt; final DateTime updatedAt; const User({ required this.id, required this.email, required this.username, this.displayName, this.avatarUrl, this.isPremium = false, required this.createdAt, required this.updatedAt, }); User copyWith({ String? id, String? email, String? username, String? displayName, String? avatarUrl, bool? isPremium, DateTime? createdAt, DateTime? updatedAt, }) { return User( id: id ?? this.id, email: email ?? this.email, username: username ?? this.username, displayName: displayName ?? this.displayName, avatarUrl: avatarUrl ?? this.avatarUrl, isPremium: isPremium ?? this.isPremium, createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ); } @override List get props => [ id, email, username, displayName, avatarUrl, isPremium, createdAt, updatedAt, ]; }