
from django.http import JsonResponse
from django.views import View
from .forms import HelpdeskSubmissionForm
from .models import HelpdeskSubmission 

class HelpdeskSubmissionCreateView(View):
    def post(self, request, *args, **kwargs):
        form = HelpdeskSubmissionForm(request.POST, request.FILES)  # Handle form data and file uploads

        if form.is_valid():
            submission = form.save(commit=False)  # Create the submission object without saving yet
            submission.status = 1  # Set status to 1 manually
            submission.user = request.user  # Assign the logged-in user to the submission
            submission.save()  # Save the submission to the database
            
            return JsonResponse({'success': True, 'message': 'Submission created successfully!'})
        else:
            return JsonResponse({'success': False, 'errors': form.errors}, status=400)

class HelpdeskSubmissionListView(View):
    def get(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            submissions = HelpdeskSubmission.objects.filter(user=request.user)
            submissions_list = [
                {
                    'title': submission.title,
                    'description': submission.description,
                    'status': submission.status, 
                    'image': submission.image.url if submission.image else None
                }
                for submission in submissions
            ]
            return JsonResponse({'submissions': submissions_list})
        else:
            return JsonResponse({'error': 'User is not authenticated'}, status=403)



class HelpdeskSubmissionAllView(View):
    def get(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            submissions = HelpdeskSubmission.objects.all()  # Get all submissions
            submissions_list = [
                {
                    'user': submission.user.username,  # Include the username of the user who submitted the ticket
                    'title': submission.title,
                    'description': submission.description,
                    'image': submission.image.url if submission.image else None,
                    'status': submission.status,  # Assuming you have a status field in your model
                    'created_at': submission.created_at.strftime('%Y-%m-%d %H:%M:%S')  # Format the date
                }
                for submission in submissions
            ]
            return JsonResponse({'submissions': submissions_list})
        else:
            return JsonResponse({'error': 'User is not authenticated'}, status=403)