from rest_framework import status
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .models import Video
from .serializers import VideoSerializer, VideoCreateSerializer

@api_view(['POST'])
@permission_classes([IsAuthenticated])
def upload_video(request):
    """
    Upload a video file independently
    """
    serializer = VideoCreateSerializer(data=request.data)
    if serializer.is_valid():
        video = Video.objects.create(
            created_by=request.user,
            **serializer.validated_data
        )
        return Response(VideoSerializer(video).data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
