public async Task <ActionResult <CardReadDTO> > AddCardToUserInventory(string id, CardCreateDTO cardCreateDTO)
        {
            var user = await _userRepo.GetOneUser(id);

            AppCard newCard;

            if (user != null)
            {
                newCard = new AppCard(cardCreateDTO.Rating, cardCreateDTO.NumOfRatings, cardCreateDTO.Rarity)
                {
                    CardId = cardCreateDTO.CardId,
                    Name   = cardCreateDTO.Name,
                    Type   = cardCreateDTO.Type,
                    Image  = cardCreateDTO.Image,
                };
                newCard.UpdateValue();
                await _userRepo.AddOneCardToOneUser(id, newCard.CardId);
            }
            else
            {
                return(NotFound());
            }

            var cardReadDTO = new CardReadDTO
            {
                CardId       = cardCreateDTO.CardId,
                Name         = cardCreateDTO.Name,
                Type         = cardCreateDTO.Type,
                Rarity       = cardCreateDTO.Rarity,
                Rating       = cardCreateDTO.Rating,
                NumOfRatings = cardCreateDTO.NumOfRatings,
                Value        = cardCreateDTO.Value
            };

            // what method to return
            return(CreatedAtAction(nameof(GetUsersCardById), new { id = user.UserId, cardid = newCard.CardId }, cardReadDTO));
        }