Initial commit

This commit is contained in:
Lorenzo Sanesi
2026-03-26 22:46:03 +01:00
commit 18e0e04700
80 changed files with 13114 additions and 0 deletions
@@ -0,0 +1,55 @@
import 'package:equatable/equatable.dart';
import 'user.dart';
enum FriendRequestStatus {
pending('PENDING');
final String value;
const FriendRequestStatus(this.value);
static FriendRequestStatus fromString(String value) {
return FriendRequestStatus.values.firstWhere(
(e) => e.value == value,
orElse: () => FriendRequestStatus.pending,
);
}
}
class FriendRequest extends Equatable {
final String id;
final User fromUser;
final User toUser;
final FriendRequestStatus status;
final DateTime createdAt;
const FriendRequest({
required this.id,
required this.fromUser,
required this.toUser,
required this.status,
required this.createdAt,
});
factory FriendRequest.fromJson(Map<String, dynamic> json) {
return FriendRequest(
id: json['id'] as String,
fromUser: User.fromJson(json['fromUser'] as Map<String, dynamic>),
toUser: User.fromJson(json['toUser'] as Map<String, dynamic>),
status: FriendRequestStatus.fromString(json['status'] as String),
createdAt: DateTime.parse(json['createdAt'] as String),
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'fromUser': fromUser.toJson(),
'toUser': toUser.toJson(),
'status': status.value,
'createdAt': createdAt.toIso8601String(),
};
}
@override
List<Object?> get props => [id, fromUser, toUser, status, createdAt];
}