import { User } from '@prisma/client' import { appLogger } from '../utilities/logger' type TLoggedInUsers = { users: User[] } class UserManager { private loggedInUsers: TLoggedInUsers[] = [] // Method to initialize user manager public async boot() { appLogger.info('User manager loaded') } // Function that adds user to logged in users public loginUser(user: User) { this.loggedInUsers.push({ users: [user] }) } // Function that checks if a user is already logged in public findUser(user: User) { return this.loggedInUsers.find((loggedInUser) => { return loggedInUser.users.includes(user) }) } // Function that lists all logged in users public listUsers() { return this.loggedInUsers.map((loggedInUser) => { return loggedInUser.users }) } } export default new UserManager()