shaxob #97

Merged
xoliqberdiyev merged 10 commits from shaxob into main 2026-04-24 11:40:32 +00:00
30 changed files with 72 additions and 451 deletions
Showing only changes of commit b8021c7728 - Show all commits

View File

@@ -1,18 +1,19 @@
import re import re
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from rest_framework import serializers from rest_framework import serializers
from core.apps.evaluation.models import AutoEvaluationModel,ReferenceitemModel, EvaluationrequestModel
from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer
from core.apps.evaluation.choices.request import RequestStatus from core.apps.evaluation.choices.request import RequestStatus
from core.apps.evaluation.models import AutoEvaluationModel, ReferenceitemModel, EvaluationrequestModel
from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer
User = get_user_model() User = get_user_model()
class BaseAutoevaluationSerializer(serializers.ModelSerializer): class BaseAutoevaluationSerializer(serializers.ModelSerializer):
status_display = serializers.CharField(source="get_status_display", read_only=True) status_display = serializers.CharField(source="get_status_display", read_only=True)
object_type_display = serializers.CharField(source="get_object_type_display", read_only=True, default=None) object_type_display = serializers.CharField(source="get_object_type_display", read_only=True, default=None)
object_owner_type_display = serializers.CharField(source="get_object_owner_type_display", read_only=True, default=None) object_owner_type_display = serializers.CharField(source="get_object_owner_type_display", read_only=True,
default=None)
rate_type = ListReferenceitemSerializer(read_only=True) rate_type = ListReferenceitemSerializer(read_only=True)
value_determined = ListReferenceitemSerializer(read_only=True) value_determined = ListReferenceitemSerializer(read_only=True)
property_rights = ListReferenceitemSerializer(read_only=True) property_rights = ListReferenceitemSerializer(read_only=True)
@@ -72,6 +73,7 @@ class ListAutoevaluationSerializer(BaseAutoevaluationSerializer):
class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer): class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer):
car_type_display = serializers.CharField(source="get_car_type_display", read_only=True, default=None) car_type_display = serializers.CharField(source="get_car_type_display", read_only=True, default=None)
car_wheel_display = serializers.CharField(source="get_car_wheel_display", read_only=True, default=None) car_wheel_display = serializers.CharField(source="get_car_wheel_display", read_only=True, default=None)
# object_location_highways_display = serializers.CharField( # object_location_highways_display = serializers.CharField(
# source="get_object_location_highways_display", read_only=True, default=None # source="get_object_location_highways_display", read_only=True, default=None
# ) # )
@@ -141,7 +143,6 @@ class UpdateAutoevaluationSerializer(serializers.ModelSerializer):
allow_null=True, allow_null=True,
) )
class Meta: class Meta:
model = AutoEvaluationModel model = AutoEvaluationModel
fields = [ fields = [
@@ -222,6 +223,7 @@ class UpdateAutoevaluationSerializer(serializers.ModelSerializer):
return attrs return attrs
class CreateAutoevaluationSerializer(serializers.ModelSerializer): class CreateAutoevaluationSerializer(serializers.ModelSerializer):
property_rights = serializers.PrimaryKeyRelatedField( property_rights = serializers.PrimaryKeyRelatedField(
queryset=ReferenceitemModel.objects.all(), queryset=ReferenceitemModel.objects.all(),
@@ -254,7 +256,6 @@ class CreateAutoevaluationSerializer(serializers.ModelSerializer):
allow_null=True, allow_null=True,
) )
class Meta: class Meta:
model = AutoEvaluationModel model = AutoEvaluationModel
fields = [ fields = [
@@ -356,3 +357,9 @@ class AutoEvaluationAppraisersSerializer(serializers.Serializer):
raise serializers.ValidationError("Invalid appraisers IDs.") raise serializers.ValidationError("Invalid appraisers IDs.")
data['users'] = users data['users'] = users
return data return data
class AutoEvaluationSerializer(ModelSerializer):
class Meta:
model = AutoEvaluationModel
fields = ("brand", "brand_model", "year", "color", "transmission", "condition", "fuel_type", "mileage")

View File

@@ -29,6 +29,7 @@ from .views import (
DidoxCompanyInfoAPIView, DidoxCompanyInfoAPIView,
TechPassportAPIView, TechPassportAPIView,
EvaluationStatusChange, EvaluationStatusChange,
AutoEvaluationRequestView
) )
router = DefaultRouter() router = DefaultRouter()
@@ -53,13 +54,15 @@ router.register("vehicle", VehicleView, basename="vehicle")
router.register("valuation", ValuationView, basename="valuation") router.register("valuation", ValuationView, basename="valuation")
router.register("property-owner", PropertyOwnerView, basename="property-owner") router.register("property-owner", PropertyOwnerView, basename="property-owner")
router.register("customer", CustomerView, basename="customer") router.register("customer", CustomerView, basename="customer")
router.register("auto-evaluation-request", AutoEvaluationRequestView, basename="auto")
urlpatterns = [ urlpatterns = [
path("", include(router.urls)), path("", include(router.urls)),
path("auto-evaluation/appraisers/", include( path("auto-evaluation/appraisers/", include(
[ [
path("<int:id>/list/", AutoEvaluationListAppraisersView.as_view(), name="auto-evaluation-list-appraisers"), path("<int:id>/list/", AutoEvaluationListAppraisersView.as_view(), name="auto-evaluation-list-appraisers"),
path("<int:id>/set/", AutoEvaluationSetAppraisersView.as_view(), name="auto-evaluation-set-appraisers"), path("<int:id>/set/", AutoEvaluationSetAppraisersView.as_view(), name="auto-evaluation-set-appraisers"),
path("<int:id>/remove/", AutoEvaluationRemoveAppraisersView.as_view(), name="auto-evaluation-remove-appraisers"), path("<int:id>/remove/", AutoEvaluationRemoveAppraisersView.as_view(),
name="auto-evaluation-remove-appraisers"),
] ]
)), )),
path( path(

View File

@@ -154,3 +154,20 @@ class AutoEvaluationListAppraisersView(GenericAPIView):
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
except Exception as e: except Exception as e:
return Response({"error": str(e)}, status=500) return Response({"error": str(e)}, status=500)
class AutoEvaluationRequestView(APIView):
def post(self, request):
serializer = AutoEvaluationSerializer(data=request.data)
if serializer.is_valid():
data = serializer.validated_data
url = "https://uzxarid.felixits.uz/api/v1/ad/price-estimate/"
response = requests.post(url, json=data)
return Response({
"success": True,
"external_status": response.status_code,
"data": response.json(),
})
return Response({"error": serializer.errors}, status=400)