from rest_framework import serializers
from openlocal.models import OrdersLocal

class OrdersLocalSerializer(serializers.ModelSerializer):
    service = serializers.IntegerField(source="order_synced.service", allow_null=True)    
    service_type = serializers.IntegerField(source="order_synced.service_type", allow_null=True) 
    state = serializers.CharField(source="order_synced.state", allow_null=True) 
    id_metaservice = serializers.IntegerField(source="order_synced.id_metaservice", allow_null=True) 
    
    provider = serializers.CharField(source="order_synced.provider.pk", allow_null=True) 
    provider_screen_name = serializers.CharField(source="order_synced.provider.user_id.full_name", allow_null=True) 

    receiver = serializers.IntegerField(source="order_synced.receiver.pk", allow_null=True)
    receiver_screen_name = serializers.CharField(source="order_synced.receiver.full_name", allow_null=True) 
    
    client_id = serializers.CharField(source="order_synced.client_id.pk", allow_null=True) 
    client_screen_name = serializers.CharField(source="order_synced.client.user.full_name", allow_null=True) 

    #time_created = serializers.DateTimeField(source="order_synced.time_created", allow_null=True) 
    time_placed = serializers.DateTimeField(source="order_synced.time_placed", allow_null=True) 
    time_start = serializers.DateTimeField(source="order_synced.time_start", allow_null=True) 
    time_start_real = serializers.DateTimeField(source="order_synced.time_start_real", allow_null=True)
    time_start_predicted = serializers.DateTimeField(source="order_synced.time_start_predicted", allow_null=True)
    time_finish_predicted = serializers.DateTimeField(source="order_synced.time_finish_predicted", allow_null=True) 
    time_finish_real = serializers.DateTimeField(source="order_synced.time_finish_real", allow_null=True) 
    
    predicted_price = serializers.FloatField(source="order_synced.predicted_price", allow_null=True) 
    real_price = serializers.FloatField(source="order_synced.real_price", allow_null=True) 
    is_global = serializers.BooleanField(source="order_synced.is_global", allow_null=True) 
    is_visible = serializers.BooleanField(source="order_synced.is_visible", allow_null=True) 
    ticket = serializers.IntegerField(source="order_synced.ticket.pk", allow_null=True) 
    status = serializers.IntegerField(source="order_synced.ticket.stauts", allow_null=True)
    priority = serializers.IntegerField(source="order_synced.ticket.priority", allow_null=True)
    title = serializers.CharField(source="order_synced.ticket.title", allow_null=True)
    note = serializers.CharField(source="order_synced.ticket.note", allow_null=True)
    due_date = serializers.DateField(source="order_synced.ticket.due_date", allow_null=True)
    status_changed_date = serializers.DateTimeField(source="order_synced.ticket.status_changed_date", allow_null=True)
    

    class Meta:
        model = OrdersLocal
        fields = '__all__'