from django.db import models
from django.db.models import fields
from rest_framework import serializers
from .models import *
from django.conf import settings

class GetDriverData(serializers.ModelSerializer):

    image = serializers.SerializerMethodField(source='get_image')
    documents = serializers.SerializerMethodField(source='get_documents')
    class Meta:
        model = DriverModel
        fields = ['id','countrycode','phone','email','name','isdisabled','image','documents','address']
    
    def get_image(self,obj):
        if not obj.image:
            return ''
        else:
            return str(settings.WEB_BASE_URL)+str(obj.image)
    
    def get_documents(self,obj):
        theDocObject=driverdocuments.objects.filter(driver=obj).first()
        theDocSerial=GetDriverDocuments(theDocObject)
        return theDocSerial.data

class GetDriverDocuments(serializers.ModelSerializer):
    
    licensefront = serializers.SerializerMethodField(source='get_licensefront')
    licenseback = serializers.SerializerMethodField(source='get_licenseback')
    medicalcard = serializers.SerializerMethodField(source='get_medicalcard')

    class Meta:
        model = driverdocuments
        fields = ['licensefront','licensefrontstatus','licenseback','licensebackstatus','medicalcard','medicalcardstatus']
    
    def get_licensefront(self,obj):
        if not obj.licensefront:
            return ''
        else:
            return str(obj.licensefront)
    
    def get_medicalcard(self,obj):
        if not obj.medicalcard:
            return ''
        else:
            return str(obj.medicalcard)
    
    def get_licenseback(self,obj):
        if not obj.licenseback:
            return ''
        else:
            return str(obj.licenseback)