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

class SuperAdmin(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    email = models.CharField(max_length=54,null=True)
    firstName = models.CharField(max_length=100,null=True)
    lastName = models.CharField(max_length=100,null=True)
    image = models.CharField(max_length=100,null= True)
    gender = models.CharField(max_length=10,null=True)
    address = models.TextField(null= True)
    phoneNumber = models.CharField(max_length=100,null=True)
    forgotPasswordLink = models.CharField(max_length=254,null=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "super_admin"

class Service(models.Model):
    service_name = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "services"

class Skill(models.Model):
    skill_name = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "skills"

class Hobbies(models.Model):
    hobby = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "hobbies"

    
class Horoscope(models.Model):
    horoscope = models.CharField(max_length=100,null= True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    image = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "horoscope"

class ChineseZodiac(models.Model):
    chinese_zodiac = models.CharField(max_length=100,null= True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    image = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "chinese_zodiacs"


class FiveElements(models.Model):
    element_name = models.CharField(max_length=100,null= True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    image = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "five_elements"

class MBTI(models.Model):
    mbti_name = models.CharField(max_length=100,null= True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    image = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "mbti"


class CompatibilityHoroscope(models.Model):
    female_horoscope = models.CharField(max_length=100,null= True)
    male_horoscope = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "compatibility_horoscope"

class CompatibilityChineseZodiac(models.Model):
    female_chinese_zodiac = models.CharField(max_length=100,null= True)
    male_chinese_zodiac = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "compatibility_chinese_zodiacs"


class CompatibilityFiveElements(models.Model):
    female_element_name = models.CharField(max_length=100,null= True)
    male_element_name = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "compatibility_five_elements"

class CompatibilityMBTI(models.Model):
    female_mbti_name = models.CharField(max_length=100,null= True)
    male_mbti_name = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline = models.CharField(max_length=250,null= True)
    description = models.TextField(null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "compatibility_mbti"


class AdvisorCompatibilityHoroscope(models.Model):
    advisor = models.CharField(max_length=100,null= True)
    user = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline = models.CharField(max_length=250,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "advisor_compatibility_horoscope"

class AdvisorCompatibilityMBTI(models.Model):
    advisor = models.CharField(max_length=100,null= True)
    user = models.CharField(max_length=100,null= True)
    compatibility_score = models.IntegerField(null=True)
    tagline_for_relationship = models.CharField(max_length=250,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "advisor_compatibility_mbti"



class Countries(models.Model):
    country_name = models.CharField(max_length=100,null= True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "countries"

class State(models.Model):
    country = models.ForeignKey(Countries, on_delete=models.CASCADE)
    state_name = models.CharField(max_length=100)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "states"


class City(models.Model):
    state = models.ForeignKey(State, on_delete=models.CASCADE)
    city_name = models.CharField(max_length=100)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)
    class Meta:
        db_table = "cities"



class ContentManagement(models.Model):
    page_type = models.CharField(max_length=155,null=True)
    text =  models.TextField(null=True)
    user_type = models.CharField(max_length=100,null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)



    class Meta:
        db_table = "content_management"

class HelpSupport(models.Model):
    seer_user = models.ForeignKey(SeerUser, on_delete=models.CASCADE, null=True)
    fortune_teller = models.ForeignKey("fortune_teller.FortuneTeller", on_delete=models.CASCADE, null=True)
    title = models.CharField(max_length=200, null=True)
    message = models.TextField()
    reply = models.TextField()
    reply_date = models.DateTimeField(null=True)
    status = models.BooleanField(default=False, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = "help_support"


class LifestyleQuestion(models.Model):
    question_title = models.CharField(max_length=244,null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = 'lifestyle_questions'


class LifestyleOptions(models.Model):
    option = models.CharField(max_length=244,null=True)
    lifestyle_question =  models.ForeignKey(LifestyleQuestion,on_delete = models.CASCADE)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = 'lifestyle_options'


class MbtiQuestion(models.Model):
    question_title = models.CharField(max_length=244,null=True)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = 'mbti_question'


class MbtiOptions(models.Model):
    option = models.CharField(max_length=244,null=True)
    mbti_question =  models.ForeignKey(MbtiQuestion,on_delete = models.CASCADE)
    status = models.BooleanField(default=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = 'mbti_options'


class GeneralSettings(models.Model):
    cancellation_charge = models.CharField(max_length=100,null=True)
    refer_friend_off = models.IntegerField(max_length=100,null=True)
    commission_percentage = models.IntegerField(max_length=100,null=True)
    class Meta:
        db_table = 'general_settings'



class Faq(models.Model):
    title = models.CharField(max_length = 200,null=True)
    content =  models.TextField()
    type = models.CharField(max_length=100,null=True)
    status = models.BooleanField(default=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "faq"
    

class AdminNotifications(models.Model):
    message = models.TextField(null=True)
    is_read = models.BooleanField(default=False,null=True)
    type = models.CharField(max_length=100,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "admin_notifications"

class AdminRefundRequest(models.Model):
    appointment = models.ForeignKey(FortuneAppointmentBook, on_delete=models.CASCADE)
    refund_amount = models.IntegerField(max_length=100,null=True)
    cancellation_charges = models.CharField(max_length=100, null=True)
    status = models.CharField(max_length=100, default='Pending')
    date_processed = models.DateTimeField(null=True)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = 'admin_refund'