//We need to return a session object to the frontend. Only the public fields can be included.
//For this reason, we use the public User User. It is a public field but ignored, so it can be included to the object returned
//to the frontend but it will not get inserted to the database.
//When we initialize it like that: User = Db.GetUserById(user.Id)!, the set will be called and the private member will be initialized as well.
//What if the getSession method is called from another function of the controller?
//GetSession will retrieve a session object from the database, but this does not have the metadata included (the private fields and the ignored public fields)
//Thus, the get will be called and the private field _User will be initialized on the fly.