// Insert a user
func (s *UserStorage) Insert(c model.User) (string, error) {
	c.Chocolates = make([]model.Chocolate, len(c.ChocolatesIDs))
	err := s.updateChocolatesByChocolatesIDs(&c)
	if err != nil {
		return "", err
	}
	s.db.Create(&c)
	if s.db.Error != nil {
		return "", s.db.Error
	}
	return c.GetID(), nil
}
func (s *UserStorage) updateChocolatesByChocolatesIDs(u *model.User) error {
	u.Chocolates = make([]model.Chocolate, len(u.ChocolatesIDs))
	for i, chocID := range u.ChocolatesIDs {
		intID, err := strconv.ParseInt(chocID, 10, 64)
		if err != nil {
			return err
		}
		// TODO: Fix N+1 query problem
		s.db.First(&u.Chocolates[i], intID)
	}
	return nil
}