from apps.system.models import User from rest_framework.serializers import ModelSerializer from rest_framework import serializers from utils.mixins import DynamicFieldsSerializerMixin from .models import ClockRecord, Employee, NotWorkRemark from apps.system.serializers import OrganizationSimpleSerializer, UserListSerializer, UserSimpleSerializer from django.db.models.query import Prefetch class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer): name = serializers.CharField(source='user.name', read_only=True) dept_ = OrganizationSimpleSerializer(source='user.dept', read_only=True) class Meta: model = Employee exclude = ['face_data'] class EmployeeNotWorkRemarkSerializer(ModelSerializer): class Meta: model = Employee fields = ['not_work_remark'] class FaceLoginSerializer(serializers.Serializer): base64 = serializers.CharField() tolerance = serializers.FloatField(required=False, default=0.45) class FaceLoginPathSerializer(serializers.Serializer): path = serializers.CharField() tolerance = serializers.FloatField(required=False, default=0.45) class FaceClockCreateSerializer(serializers.Serializer): base64 = serializers.CharField() tolerance = serializers.FloatField(required=False, default=0.45) class ClockRecordListSerializer(serializers.ModelSerializer): create_by_ = UserSimpleSerializer(source='create_by', read_only=True) class Meta: model = ClockRecord fields = '__all__' class NotWorkRemarkListSerializer(serializers.ModelSerializer): class Meta: model = NotWorkRemark fields = '__all__'