34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from rest_framework import serializers
|
|
from jobposting.models import JobListing, Skill, JobSkill
|
|
from core.models import MyUser
|
|
|
|
class MyUserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = MyUser
|
|
fields = ['id', 'email', 'first_name', 'last_name']
|
|
|
|
class SkillSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Skill
|
|
fields = ['id', 'name', 'proficiency']
|
|
|
|
class JobSkillSerializer(serializers.ModelSerializer):
|
|
skill = SkillSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = JobSkill
|
|
fields = ['id', 'job_listing', 'skill', 'proficiency']
|
|
|
|
class JobListingSerializer(serializers.ModelSerializer):
|
|
created_by = MyUserSerializer(read_only=True)
|
|
job_skills = JobSkillSerializer(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = JobListing
|
|
fields = [
|
|
'id', 'company_name', 'name', 'content', 'min_salary', 'max_salary',
|
|
'location', 'coordinates', 'created_by', 'created_at', 'status',
|
|
'status_paid', 'category', 'expiration_date', 'company_description',
|
|
'experience_level', 'contract_type', 'is_remote', 'updated_at', 'job_skills'
|
|
]
|