from os import extsep
from django.db.models.functions import Extract
from playlist.models import Album
from rest_framework import serializers
from drf_spectacular.utils import extend_schema_serializer, OpenApiExample

@extend_schema_serializer(
    examples = [
        OpenApiExample(
            name='Album Example',
            value = {
                "url": "http://muzak.hoekveen.net/api/album/7MejfRSNnrpcLZIxkeZDqR",
                "name": "Leftoverture (Expanded Edition)",
                "album_type": "album",
                "total_tracks": 10,
                "image": "http://127.0.0.1:8001/albums/Leftoverture_Expanded_Edition.png",
                "image_url": "https://i.scdn.co/image/ab67616d0000b2731be40e44db112e123e5e8b51",
                "artists": [
                    "http://127.0.0.1:8001/api/artist/2hl0xAkS2AIRAu23TVMBG1"
                ]
            }
        ),
        OpenApiExample(
            name = 'Multiple artist single',
            value = {
                "url": "http://127.0.0.1:8001/api/album/1pHD8AFu4z1CvuTPjZFOFi",
                "name": "ラビリンス",
                "album_type": "single",
                "total_tracks": 4,
                "image": None,
                "image_url": "https://i.scdn.co/image/ab67616d0000b2731607d3aa3a69ca0e1ffbe26b",
                "artists": [
                    "http://127.0.0.1:8001/api/artist/4ZX8Wr8KHHrW7radu6IwYG",
                    "http://127.0.0.1:8001/api/artist/4d2zOuYJHBPJTpVblHEKJb"
                ]
            }
        )
    ]
)
class AlbumSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Album
        fields = '__all__'
        extra_kwargs = {
            'url': {'view_name': 'api-album', 'lookup_field': 'id'},
            'artists': {'view_name': 'api-artist', 'lookup_field': 'id'},
        }
