from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
import random
import string
from datetime import datetime, timedelta

class PlaylistAPIView(APIView):
    def generate_random_id(self):
        return ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(8))

    def generate_random_time(self):
        return (datetime.now() - timedelta(minutes=random.randint(1, 60))).strftime('%H:%M:%S')

    def generate_random_data(self, is_pub=False):
        return {
            "id": "bbbHD.mp4",
            "subId": "01b082b2-157a-483c-a5a2-9bcf154b0375",
            "start": "00:06:48.720",
            "end": "00:17:23.360",
            "scenario": "202d7da6-736c-9851-4ee6-992be287be81",
            "startTs": 408720,
            "endTs": 1043360,
            "cut": 0,
            "duration": 634640,
            "isPub": 0 if is_pub else random.choice(['0', '1']),
            "title": "Big Buck Bunny"
        }

    def get(self, request, format=None):
        playlist_data = []

        for _ in range(100):  # Adjust the range based on the desired number of playlists
            playlist = {
                "id": "2024-01-31",
                "subId": self.generate_random_id(),  # Adjust this if you want different subId for each playlist
                "start": "00:00:00.000",
                "end": "23:59:59.999",
                "label": "2024-01-31",
                "dayOverlapLimit": 0,
                "data": [self.generate_random_data(is_pub=True)]  # Generate one data object per playlist with isPub set to 1
            }
            playlist_data.append(playlist)

        return Response(playlist_data, status=status.HTTP_200_OK)
