/*
 *   This file is a part of the SteamWar software.
 *
 *   Copyright (C) 2025 SteamWar.de-Serverteam
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU Affero General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *   GNU Affero General Public License for more details.
 *
 *   You should have received a copy of the GNU Affero General Public License
 *   along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

package de.steamwar.persistent;

import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.server.ServerInfo;
import com.velocitypowered.proxy.protocol.packet.UpsertPlayerInfoPacket;
import lombok.experimental.UtilityClass;

import java.sql.Timestamp;
import java.util.*;

@UtilityClass
public class Storage {
    public static final Map<Player, List<Player>> challenges = new HashMap<>();

    public static final Map<Player, Player> lastChats = new HashMap<>();

    public static final Map<Integer, List<Integer>> teamInvitations = new HashMap<>(); // UserID -> List<TeamIDs>

    public static final Map<Player, Timestamp> sessions = new HashMap<>(); // Contains session start timestamp

    public static final Map<Integer, Subserver> eventServer = new HashMap<>(); // TeamID -> Subserver map

    public static final Map<Player, Integer> fabricCheckedPlayers = new HashMap<>();

    public static final Map<Player, Long> fabricExpectPluginMessage = new HashMap<>();

    public static final Map<Integer, ServerInfo> teamServers = new HashMap<>(); // TeamID -> ServerInfo map

    public static final Map<Player, Map<UUID, UpsertPlayerInfoPacket.Entry>> directTabItems = new HashMap<>();

    public static final Set<Integer> streamingPlayers = new HashSet<>(); // SteamwarUser ID
}
