Files
Student-Management-System-I…/app/serializers.py
T
2025-03-26 01:59:23 +05:45

133 lines
4.3 KiB
Python

import django.db
from rest_framework import serializers
from .models import (Attendance, AttendanceRecord, Batch, Course, Expenses, FCMDevice, Fee,
Institute, Routine, Salary, Staff, Student, StudentRoutine, Subtopic, Topic, Vendor)
class FCMDeviceSerializer(serializers.ModelSerializer):
class Meta:
model = FCMDevice
fields = ['id', 'token']
depth = 10
class InstituteSerializer(serializers.ModelSerializer):
class Meta:
model = Institute
depth = 10
fields = ['id', 'name', 'phone', 'email', 'address', 'pan_no', 'reg_no', 'logo', 'description']
class SubtopicSerializer(serializers.ModelSerializer):
class Meta:
model = Subtopic
depth = 10
fields = ['id', 'name']
class TopicSerializer(serializers.ModelSerializer):
subtopics = SubtopicSerializer(read_only=True, many=True).data
class Meta:
model = Topic
fields = ['id', 'name', 'subtopics']
depth = 10
class CourseSerializer(serializers.ModelSerializer):
topics = TopicSerializer(read_only=True, many=True).data
class Meta:
model = Course
depth = 3
fields = ['id', 'name', 'amount', 'duration', 'duration_type', 'remarks', 'topics']
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
depth = 10
fields = [
'id', 'name', 'status', 'gender', 'birth_date', 'email', 'phone',
'temporary_address', 'permanent_address', 'marital_status', 'parent_name',
'parent_phone', 'citizenship_no', 'qualification', 'image', 'batches', 'courses',
'subtotal', 'discount', 'total', 'paid', 'remaining', 'joining_date', 'file', 'remarks'
]
class BatchSerializer(serializers.ModelSerializer):
students = StudentSerializer(many=True).data
class Meta:
model = Batch
depth = 10
fields = ['id', 'name', 'start_date', 'end_date', 'students']
class FeeSerializer(serializers.ModelSerializer):
class Meta:
model = Fee
fields = [
'id', 'student', 'old_total', 'old_paid', 'old_remaining', 'balance_amount',
'payment_date', 'payment_method', 'total', 'paid', 'remaining', 'remarks'
]
depth = 10
class VendorSerializer(serializers.ModelSerializer):
class Meta:
model = Vendor
depth = 10
fields = ['id', 'name', 'address', 'phone']
class ExpensesSerializer(serializers.ModelSerializer):
class Meta:
model = Expenses
depth = 10
fields = [
'id', 'name', 'amount', 'date', 'vendor', 'paid', 'credit', 'credit_date', 'remarks'
]
class SalarySerializer(serializers.ModelSerializer):
class Meta:
model = Salary
depth = 10
fields = '__all__'
class StaffSerializer(serializers.ModelSerializer):
salaries = SalarySerializer(many=True).data
class Meta:
model = Staff
depth = 10
fields = '__all__'
# fields = [
# 'id', 'name', 'gender', 'designation', 'birth_date', 'phone', 'email',
# 'temporary_address', 'permanent_address', 'marital_status', 'parent_name',
# 'parent_phone', 'citizenship_no', 'passport', 'image', 'monthly', 'pending_salary', 'remarks', 'salaries'
# ]
class RoutineSerializer(serializers.ModelSerializer):
class Meta:
model = Routine
depth = 10
fields = ['id', 'name', 'start_time', 'end_time', 'teacher']
class StudentRoutineSerializer(serializers.ModelSerializer):
class Meta:
model = StudentRoutine
depth = 10
fields = ['id', 'student', 'routine', 'course', 'course_status']
class AttendanceRecordSerializer(serializers.ModelSerializer):
class Meta:
model = AttendanceRecord
depth = 10
fields = ['id', 'attendance', 'student', 'student_attend']
class AttendanceSerializer(serializers.ModelSerializer):
records = AttendanceRecordSerializer(many=True).data
class Meta:
model = Attendance
depth = 1
fields = ['id', 'date', 'routine', 'teacher', 'teacher_attend', 'class_status', 'records']