feat: Introduce lists and reviews apps, refactor user list functionality from accounts, and add user profile fields.

This commit is contained in:
pacnpal
2025-12-26 09:27:44 -05:00
parent ed04b30469
commit cd8868a591
37 changed files with 5900 additions and 281 deletions

View File

@@ -14,10 +14,10 @@ from drf_spectacular.utils import (
from apps.accounts.models import (
User,
UserProfile,
TopList,
UserNotification,
NotificationPreference,
)
from apps.lists.models import UserList
from apps.core.choices.serializers import RichChoiceFieldSerializer
UserModel = get_user_model()
@@ -85,6 +85,8 @@ class UserProfileSerializer(serializers.ModelSerializer):
"dark_ride_credits",
"flat_ride_credits",
"water_ride_credits",
"unit_system",
"location",
]
read_only_fields = ["profile_id", "avatar_url", "avatar_variants"]
@@ -503,8 +505,8 @@ class UserStatisticsSerializer(serializers.Serializer):
@extend_schema_serializer(
examples=[
OpenApiExample(
"Top List Example",
summary="User's top list",
"User List Example",
summary="User's list",
description="A user's ranked list of rides or parks",
value={
"id": 1,
@@ -518,13 +520,13 @@ class UserStatisticsSerializer(serializers.Serializer):
)
]
)
class TopListSerializer(serializers.ModelSerializer):
"""Serializer for user's top lists."""
class UserListSerializer(serializers.ModelSerializer):
"""Serializer for user's lists."""
items_count = serializers.SerializerMethodField()
class Meta:
model = TopList
model = UserList
fields = [
"id",
"title",
@@ -611,6 +613,8 @@ class ProfileUpdateSerializer(serializers.ModelSerializer):
"instagram",
"youtube",
"discord",
"unit_system",
"location",
]
def validate_display_name(self, value):