#Create your serializers here
from rest_framework import serializers
from django.contrib.auth.models import User
from userapp.models import *
import datetime


class UserInfoSerializer(serializers.ModelSerializer):
	'''
	Serializer for the UserInfo
	'''
	user_id = serializers.SlugRelatedField(queryset = User.objects.all(), slug_field='id')

	class Meta:
		model = UserInfo
		fields = '__all__'

class UserPostSerializer(serializers.ModelSerializer):
	'''
	Serializer for the UserInfo
	'''
	userinfo_id = serializers.SlugRelatedField(queryset = UserInfo.objects.all(), slug_field='id')
	keyboard_id = serializers.SlugRelatedField(queryset = Keyboard.objects.all(), slug_field='id')
	keyboard_name = serializers.SerializerMethodField()
	user_name = serializers.SerializerMethodField()

	def get_user_name(self,obj):
		try:
			user = User.objects.filter(id=obj.userinfo_id.user_id.id).first()
			if user:
				return str(user.username)
			else:
				return ('')
		except Exception as e:
			print('er',e)
			return('')

	def get_keyboard_name(self,obj):
		try:
			keyboard_name = Keyboard.objects.filter(id=int(obj.keyboard_id.id)).first()
			if keyboard_name:
				return str(keyboard_name.label)
			else:
				return ('')
		except Exception as e:
			print('er',e)
			return('')

	class Meta:
		model = UserAddedPost
		fields = '__all__'


