proxybuy-flutter/lib/screens/mains/hunt/models/hunt_card.dart

104 lines
2.6 KiB
Dart

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,
);
}
}