class HuntCard { final String id; final String category; final String categoryIcon; final int points; final String question; final String answer; final String description; final double targetLatitude; final double targetLongitude; final double hintLatitude; final double hintLongitude; final String hintDescription; final bool isCompleted; final bool isActive; const HuntCard({ required this.id, required this.category, required this.categoryIcon, required this.points, required this.question, required this.answer, required this.description, required this.targetLatitude, required this.targetLongitude, required this.hintLatitude, required this.hintLongitude, required this.hintDescription, this.isCompleted = false, this.isActive = false, }); HuntCard copyWith({ String? id, String? category, String? categoryIcon, int? points, String? question, String? answer, String? description, double? targetLatitude, double? targetLongitude, double? hintLatitude, double? hintLongitude, String? hintDescription, bool? isCompleted, bool? isActive, }) { return HuntCard( id: id ?? this.id, category: category ?? this.category, categoryIcon: categoryIcon ?? this.categoryIcon, points: points ?? this.points, question: question ?? this.question, answer: answer ?? this.answer, description: description ?? this.description, targetLatitude: targetLatitude ?? this.targetLatitude, targetLongitude: targetLongitude ?? this.targetLongitude, hintLatitude: hintLatitude ?? this.hintLatitude, hintLongitude: hintLongitude ?? this.hintLongitude, hintDescription: hintDescription ?? this.hintDescription, isCompleted: isCompleted ?? this.isCompleted, isActive: isActive ?? this.isActive, ); } } class LeaderboardEntry { final String id; final String name; final String avatar; final int totalPoints; final int rank; final bool isCurrentUser; const LeaderboardEntry({ required this.id, required this.name, required this.avatar, required this.totalPoints, required this.rank, this.isCurrentUser = false, }); LeaderboardEntry copyWith({ String? id, String? name, String? avatar, int? totalPoints, int? rank, bool? isCurrentUser, }) { return LeaderboardEntry( id: id ?? this.id, name: name ?? this.name, avatar: avatar ?? this.avatar, totalPoints: totalPoints ?? this.totalPoints, rank: rank ?? this.rank, isCurrentUser: isCurrentUser ?? this.isCurrentUser, ); } }