export type Leaderboard = {
  txid: string;
  userId: string;
  score: number;
  displayName?: string;
  avatarUrl?: string;
};

export type SendPlayMessage = {
  type: "play";
  gameId: string;
};

export type SendScoreMessage = {
  type: "score";
  gameId: string;
  playId: string;
  score: number;
};

export type SendLeaderboardMessage = {
  type: "leaderboard";
  gameId: string;
};

export type SendTransferHstMessage = {
  type: "transferHst";
  gameId: string;
  amount: number;
};

export type ReceiveType = "play" | "leaderboard" | "transferHst" | "score";

export type SendMessage =
  | SendPlayMessage
  | SendScoreMessage
  | SendLeaderboardMessage
  | SendTransferHstMessage;

export type ReceivePlayMessage = {
  playId: string;
};

export type ReceiveLeaderboardMessage = {
  leaderboard: Leaderboard[];
};

export type ReceiveTransferHstMessage = {
  txid: string;
};

export type ReceiveSubmitScoreMessage = {
  playId: string;
};

export enum Origin {
  PROD = "https://app.hastearcade.com",
  DEV = "https://dev.hastearcade.com",
}
