movie-night-api/movie_manager/serializers.py

45 lines
1.2 KiB
Python
Raw Normal View History

2025-04-08 17:04:32 -05:00
from gunicorn.config import User
2025-04-07 00:30:11 -05:00
from rest_framework import serializers
2025-04-08 17:04:32 -05:00
from movie_manager.models import Movie, MovieList, Schedule, Showing
2025-04-07 00:30:11 -05:00
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
2025-04-13 01:47:22 -05:00
fields = "__all__"
2025-04-07 00:30:11 -05:00
class MovieListSerializer(serializers.ModelSerializer):
movie_count = serializers.SerializerMethodField()
2025-04-07 21:05:05 -05:00
movies = MovieSerializer(read_only=True, many=True)
2025-04-07 00:30:11 -05:00
class Meta:
model = MovieList
2025-04-13 01:47:22 -05:00
fields = ["id", "name", "owner", "public", "movies", "movie_count"]
2025-04-07 00:30:11 -05:00
def get_movie_count(self, obj):
return len(obj.movies.all())
2025-04-08 17:04:32 -05:00
2025-04-13 01:47:22 -05:00
2025-04-08 17:04:32 -05:00
class UserSerializer(serializers.Serializer):
class Meta:
model = User
fields = ["id", "username"]
class ShowingSerializer(serializers.ModelSerializer):
movie = MovieSerializer(read_only=True)
class Meta:
model = Showing
fields = ["public", "showtime", "movie", "owner"]
class ScheduleSerializer(serializers.ModelSerializer):
name = serializers.CharField(read_only=True)
showings = ShowingSerializer(read_only=True, many=True)
class Meta:
model = Schedule
2025-04-13 01:47:22 -05:00
fields = ["name", "owner", "public", "slug", "showings"]