import 'package:json_annotation/json_annotation.dart';

part 'user.g.dart';

typedef JoinRoomRequest = CreateUserRequest;

@JsonSerializable()
class CreateUserRequest {
  final String username;
  final String roomCode;

  CreateUserRequest({required this.username, required this.roomCode});
  factory CreateUserRequest.fromJson(Map<String, dynamic> json) => _$CreateUserRequestFromJson(json);

  Map<String, dynamic> toJson() => _$CreateUserRequestToJson(this);
}

typedef JoinRoomResponse = CreateUserResponse;

@JsonSerializable()
class CreateUserResponse {
  final String? token;
  final String? error;
  final String? uuid;
  final bool success;

  CreateUserResponse({required this.token, required this.uuid, required this.success, this.error});

  factory CreateUserResponse.fromJson(Map<String, dynamic> json) => _$CreateUserResponseFromJson(json);

  Map<String, dynamic> toJson() => _$CreateUserResponseToJson(this);
}