Index: frontend/src/pages/UserDetailView.tsx
===================================================================
--- frontend/src/pages/UserDetailView.tsx	(revision 6de2873a46d63a69e2d1d579335ac1f20e9ee5bf)
+++ frontend/src/pages/UserDetailView.tsx	(revision 98992cf92cf1399ea586c26d6dd45842df661773)
@@ -5,12 +5,11 @@
 import ListenerView from "../components/userProfile/ListenerView";
 import type {
-  ArtistContributionDTO,
-  MusicalEntityDTO,
+  MusicalEntity,
   Playlist,
+  ArtistContribution,
 } from "../utils/types";
 
-interface User {
+interface BaseUser {
   id: number;
-  username: string;
   fullName: string;
   userType: string;
@@ -18,15 +17,17 @@
   following: number;
   isFollowedByCurrentUser: boolean;
+}
 
-  musicalEntities?: {
-    contributions: ArtistContributionDTO[];
-  };
+interface Artist extends BaseUser {
+  userType: "ARTIST";
+  contributions: ArtistContribution[];
+}
+interface Listener extends BaseUser {
+  userType: "LISTENER";
+  likedEntities: MusicalEntity[];
+  createdPlaylists: Playlist[];
+}
 
-  likes?: {
-    likedEntities: MusicalEntityDTO[];
-  };
-
-  createdPlaylists?: Playlist[];
-}
+type UserProfile = Artist | Listener;
 
 const UserDetail = () => {
@@ -34,5 +35,5 @@
   const { userId } = useParams();
   const navigate = useNavigate();
-  const [user, setUser] = useState<User | null>(null);
+  const [user, setUser] = useState<UserProfile | null>(null);
   const [error, setError] = useState<string | null>(null);
   const [isFollowing, setIsFollowing] = useState(false);
@@ -43,8 +44,7 @@
     setIsFollowing(true);
     try {
-      const response = await axiosInstance.post<User>(
+      const response = await axiosInstance.post<UserProfile>(
         `/users/follow/${userId}`,
       );
-      setUser(response.data);
     } catch (err: any) {
       console.error(err.response?.data?.error);
@@ -59,4 +59,5 @@
       try {
         const response = await axiosInstance.get(`/users/${userId}`);
+        console.log(response.data);
 
         setUser(response.data);
@@ -135,11 +136,9 @@
         </div>
 
-        {user.userType === "ARTIST" && user.musicalEntities?.contributions && (
-          <ArtistView contributions={user.musicalEntities.contributions} />
-        )}
-
-        {user.userType === "LISTENER" && user.likes?.likedEntities && (
+        {user.userType === "ARTIST" ? (
+          <ArtistView contributions={user.contributions} />
+        ) : (
           <ListenerView
-            likedEntities={user.likes.likedEntities}
+            likedEntities={user.likedEntities}
             playlists={user.createdPlaylists}
           />
