Reviewed and merged by Reid (Hermes Reviewer) Co-authored-by: crisleo-hermes <hermes@codescripters.org> Co-committed-by: crisleo-hermes <hermes@codescripters.org>
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from rest_framework import serializers
|
|
|
|
from .models import JobApplication, JobUpdate
|
|
|
|
|
|
class JobUpdateSerializer(serializers.ModelSerializer):
|
|
company_name = serializers.CharField(source="job_application.company_name", read_only=True)
|
|
position_title = serializers.CharField(source="job_application.position_title", read_only=True)
|
|
job_id = serializers.IntegerField(source="job_application.id", read_only=True)
|
|
|
|
class Meta:
|
|
model = JobUpdate
|
|
fields = [
|
|
"id",
|
|
"job_id",
|
|
"company_name",
|
|
"position_title",
|
|
"from_status",
|
|
"to_status",
|
|
"notes",
|
|
"created_at",
|
|
"metrics",
|
|
]
|
|
|
|
|
|
class JobApplicationSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = JobApplication
|
|
fields = [
|
|
"id",
|
|
"company_name",
|
|
"position_title",
|
|
"status",
|
|
"notes",
|
|
"created_at",
|
|
"updated_at",
|
|
]
|
|
|
|
|
|
class DashboardMetricsSerializer(serializers.Serializer):
|
|
total_applications = serializers.IntegerField()
|
|
status_breakdown = serializers.DictField(child=serializers.IntegerField())
|
|
interviews_count = serializers.IntegerField()
|
|
offers_count = serializers.IntegerField()
|
|
rejection_rate = serializers.FloatField() |