# coding=utf-8
"""
    @project: MaxKB
    @Author：虎虎
    @file： login.py
    @date：2025/4/14 10:30
    @desc:
"""

from common.mixins.api_mixin import APIMixin
from common.result import ResultSerializer
from users.serializers.login import LoginResponse, LoginRequest, CaptchaResponse


class ApiLoginResponse(ResultSerializer):
    def get_data(self):
        return LoginResponse()


"""
Request 和Response 都可以使用此方法
使用serializers.Serializer
class LoginRequest(serializers.Serializer):
    username = serializers.CharField(required=True, max_length=64, help_text=_("Username"), label=_("Username"))
    password = serializers.CharField(required=True, max_length=128, label=_("Password"))
使用serializers.ModelSerializer Request不要使用serializers.ModelSerializer的方式
class LoginRequest(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['username', 'password']

"""


class LoginAPI(APIMixin):
    @staticmethod
    def get_request():
        return LoginRequest

    @staticmethod
    def get_response():
        return ApiLoginResponse


class ApiCaptchaResponse(ResultSerializer):
    def get_data(self):
        return CaptchaResponse()


class CaptchaAPI(APIMixin):
    @staticmethod
    def get_response():
        return ApiCaptchaResponse
