from django.db import models

# Create your models here.
from django.contrib.auth.models import User

# Create your models here.

class UserInfo(models.Model):
	user_id = models.ForeignKey(User, on_delete=models.CASCADE)
	name = models.CharField(max_length=200)
	email = models.CharField(max_length=300,blank=True,null=True)
	uname = models.CharField(max_length=300,blank=True,null=True)
	is_active = models.BooleanField(default=True)
	is_enabled = models.BooleanField(default=True)
	coins = models.IntegerField(default=0)
	corn_coins = models.FloatField(default=0.0)

class VirtualKeyboard(models.Model):
	rank = models.CharField(max_length=200, default='')
	title = models.CharField(max_length=200, default='')
	description = models.TextField(blank=True, null=True)
	image = models.FileField(blank=True, null=True)
	# thumb_image = models.ImageField(blank=True,null=True)

class QuestionAnswers(models.Model):
	question = models.TextField(blank=True, null=True)
	answer = models.TextField(blank=True, null=True)
	read = models.BooleanField(default=False)

class SiteContactInfo(models.Model):
	phone_no = models.CharField(max_length=20, default='')
	email = models.CharField(max_length=200, default='')
	address = models.TextField(blank=True, null=True)


class Keyboard(models.Model):
	label = models.CharField(max_length=200)
	keys_count = models.CharField(max_length=50,blank=True,null=True)
	is_deleted = models.BooleanField(default=0)


class Keyboard_keys(models.Model):
	key_image = models.FileField(blank=True, null=True)
	keyboard_id = models.ForeignKey(Keyboard, on_delete=models.CASCADE)
	rank = models.CharField(max_length=200, default='')
	is_deleted = models.BooleanField(default=0)


class UserAddedPost(models.Model):
	userinfo_id = models.ForeignKey(UserInfo, on_delete=models.CASCADE,blank=True,null=True)
	image = models.FileField(blank=True, null=True)
	keyboard_id = models.ForeignKey(Keyboard, on_delete=models.CASCADE,blank=True,null=True)
	keys_id = models.TextField(blank=True, null=True)
	total_view = models.IntegerField(default=0)
	post_view_access = models.IntegerField(default=0)
	current_view = models.IntegerField(default=0)
	rank_gained = models.IntegerField(default=0)
	offensive = models.BooleanField(default=False)
	offensive_at = models.IntegerField(default=0)


class OtherUsersReaction(models.Model):
	post_id = models.ForeignKey(UserAddedPost, on_delete=models.CASCADE)
	logged_user_id = models.ForeignKey(UserInfo, on_delete=models.CASCADE)
	reaction_key_ids = models.TextField(blank=True, null=True)
	rank = models.TextField(blank=True, default='')


class WithdrawalRequestLogs(models.Model):
	sender_user_id = models.ForeignKey(User, on_delete=models.CASCADE)
	sender_email = models.CharField(max_length=200)
	sender_current_maza_coins = models.CharField(max_length=200)
	sender_requested_maza_coins = models.CharField(max_length=200)
	maza_address = models.CharField(max_length=200)
	created_at = models.DateTimeField(auto_now=True)


class RemainingClicksInfo(models.Model):
	remaining_clicks = models.CharField(max_length=200)
	date = models.DateField()
	time_stamp = models.DateTimeField(auto_now=True)

class ClicksPerDayInfo(models.Model):
	per_day_clicks = models.CharField(max_length=200)
	date = models.DateField()
	time_stamp = models.DateTimeField(auto_now=True)

class KeyClickesInfo(models.Model):
	keyboard_id = models.ForeignKey(Keyboard, on_delete=models.CASCADE,blank=True,null=True)
	keys_id = models.ForeignKey(Keyboard_keys, on_delete=models.CASCADE,blank=True,null=True)
	keyboard_name = models.CharField(max_length=200,null=True,blank=True)
	clicks_by_users  = models.IntegerField(default=0)

class KeyClickInfoPerPost(models.Model):
	post_id = models.ForeignKey(UserAddedPost, on_delete=models.CASCADE)
	keyboard_id = models.ForeignKey(Keyboard, on_delete=models.CASCADE,blank=True,null=True)
	keys_id = models.ForeignKey(Keyboard_keys, on_delete=models.CASCADE,blank=True,null=True)
	keyboard_name = models.CharField(max_length=200,null=True,blank=True)
	clicks_by_users  = models.IntegerField(default=0)




class UserCoinInfo(models.Model):
	user_id = models.ForeignKey(User, on_delete=models.CASCADE)
	coinaddress = models.CharField(max_length=300, blank=True, null=True)
	qrcode = models.FileField(blank=True, null=True)
	coins = models.IntegerField(default=0)
	created_at = models.DateTimeField(auto_now=True)
	updated_at = models.DateTimeField(auto_now_add=True)


	def __str__(self):
		return str(self.user_id)



class UserLoginDetail(models.Model):
	time_stamp = models.DateField()
	total_count = models.IntegerField(default=0)

	def __str__(self):
		return f'{self.time_stamp}---------------------------{self.total_count}'

class StaticImages(models.Model):
	last_image = models.CharField(max_length=50,default='Task_upload/task1.png')
	created_at = models.DateTimeField(auto_now=True)
	updated_at = models.DateTimeField(auto_now_add=True)
	
	def __str__(self):
		return str(self.last_image)	