# -*- coding: utf-8 -*-

from rest_framework import serializers

from django.contrib.auth.models import User
from django.middleware import csrf
from django.utils.translation import gettext as _


class LoginSerializer(serializers.Serializer):
    username = serializers.CharField(
        write_only=True, required=True, allow_blank=False, max_length=255,help_text=_("Nombre de usuario"))
    password = serializers.CharField(
        write_only=True, required=True, max_length=255, allow_blank=False, help_text=_("Contraseña"))
    app = serializers.CharField(
        write_only=True, required=True, allow_blank=False, max_length=255, help_text=_("Aplicación"))
    user = serializers.SerializerMethodField(read_only=True)
    csrftoken = serializers.SerializerMethodField(read_only=True)

    def get_user(self, data):
        user_serializer = UserSerializer(data)
        user_serialized_data = user_serializer.data
        return user_serialized_data

    def get_csrftoken(self, data):
        request = self.context["request"]
        csrftoken = csrf.get_token(request)
        return csrftoken


class UserSerializer(serializers.ModelSerializer):
    class Meta():
        model = User
        fields = ("id", "username", "first_name", "last_name", "email")