AppRequest.gameInvitation constructor

AppRequest.gameInvitation({
  1. required String from,
  2. required String to,
  3. required GameRequestType gameType,
  4. String? message,
  5. int expirationMinutes = defaultGameExpirationMinutes,
})

Create a game invitation request

Implementation

factory AppRequest.gameInvitation({
  required String from,
  required String to,
  required GameRequestType gameType,
  String? message,
  int expirationMinutes = defaultGameExpirationMinutes,
}) {
  final now = DateTime.now().millisecondsSinceEpoch;
  // Include timestamp in roomId to ensure each game session is unique
  final roomId = '${from}_${gameType.name}_${to}_$now';
  return AppRequest(
    id: '${from}_${to}_$now',
    from: from,
    to: to,
    eventId: roomId, // roomId format: {hostId}_{gameType}_{guestId}_{timestamp}
    createdTime: now,
    expiresAt: now + (expirationMinutes * 60 * 1000),
    message: message ?? '',
    gameRequestType: gameType,
    requestDecision: RequestDecision.pending,
  );
}