from django.db import models
from django.contrib.auth.models import User
from django.db.models.deletion import CASCADE, SET_NULL, DO_NOTHING

# Create your models here.

class Permissions(models.Model):
    name = models.CharField(max_length=100,null=True)
    code_name = models.CharField(max_length=100,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 = "permissions"


class Roles(models.Model):
    role_name = models.CharField(max_length=100,null=True)
    permission = models.TextField(default='',null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "roles"

class SuperAdmin(models.Model):
    user = models.ForeignKey(User,on_delete=DO_NOTHING)
    email = models.CharField(max_length=54,null=True)
    token = models.CharField(max_length=254,null=True)
    firstName = models.CharField(max_length=100,null=True)
    lastName = models.CharField(max_length=100,null=True)
    avatar = models.CharField(max_length=100,null= True)
    phoneNumber = models.CharField(max_length=100,null=True)
    earnings = models.DecimalField(max_digits=20, decimal_places=2, null=True)
    forgotPasswordLink = models.CharField(max_length=254,null=True)
    status = models.BooleanField(default=True,null=True)
    role = models.ForeignKey(Roles,on_delete=DO_NOTHING,null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    loginUserType = models.CharField(max_length=30,default='admin')
    updated_at = models.DateTimeField(auto_now_add=True)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "super_admin"


class SetdoitbyReeipoPrice(models.Model):
    price=models.IntegerField(null=True,default=0)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = "do_it_reeipo_price"


class ContentPages(models.Model):
    page_type = models.CharField(max_length = 100, null = True)
    page_title =  models.CharField(max_length = 244, null= True)
    page_content  = models.TextField()
    status = models.BooleanField(default=True,null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = "content_pages"


class ContentPagesAdmin(models.Model):
    page_type_name = models.CharField(max_length = 100, null = True)
    page_title =  models.CharField(max_length = 244, null= True)
    page_title_nw =  models.CharField(max_length = 244, null= True)
    page_content  = models.TextField()
    page_content_nw  = models.TextField()
    status = models.BooleanField(default=True,null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    end_date = models.DateTimeField(null=True)


    class Meta:
        db_table = "content_pages_admin"


class Faq(models.Model):
    title = models.CharField(max_length = 1000,null=True)
    content =  models.TextField()
    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 AgencyFaq(models.Model):
    title = models.CharField(max_length = 1000,null=True)
    content =  models.TextField()
    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 = "agency_faq"

class AdminFaq(models.Model):
    title = models.CharField(max_length = 1000,null=True)
    content =  models.TextField()
    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 = "admin_faq"


class Categories(models.Model):
    category_name = models.CharField(max_length=100,null=True)
    category_image = models.CharField(max_length=244,null=True)
    category_description = models.CharField(max_length=244,null=True)
    status =  models.BooleanField(default=1,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "categories"


class AdminContactManagement(models.Model):
    phone_number = models.CharField(max_length=15,null=True)
    email = models.CharField(max_length=100,null=True)
    instagram_url = models.CharField(max_length=100,null=True)
    facebook_url = models.CharField(max_length=100,null=True)
    youtube_url = models.CharField(max_length=100,null=True)
    twitter_url = 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_contact_management"


class AdminNotifications(models.Model):
    message = models.TextField(null=True)
    notification_type = models.CharField(max_length=100,null=True)
    is_read = models.BooleanField(default=False,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 CommissionPercentage(models.Model):
    Commision_percentage = models.IntegerField(null=True,default=0)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "commission_percentage"


class CurrencyHandler(models.Model):
    symbol = models.CharField(null=True,max_length=244)
    name =  models.CharField(null=True,max_length=244)
    converted_price = models.FloatField(null = True, default=0)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "currency_handler"


class CategoriesContent(models.Model):
    image = models.CharField(max_length=200,null=True)
    title =  models.CharField(max_length=200,null=True)
    description = models.CharField(max_length=200,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "categories_content"


class ServicesContent(models.Model):
    title =  models.CharField(max_length=200,null=True)
    description = models.CharField(max_length=200,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "services_content"
        
        
class CompanyContactInformation(models.Model):
    company_email = models.CharField(max_length=200,null=True)
    company_phone_number = models.CharField(max_length=100,null=True)
    company_location = models.CharField(max_length=100,null=True)
    company_latitude = models.CharField(max_length=100,null=True)
    company_longitude = models.CharField(max_length=100,null=True)
    company_facebook =  models.CharField(max_length=100,null=True)
    company_instagram =  models.CharField(max_length=100,null=True)
    company_twitter =  models.CharField(max_length=100,null=True)
    company_youtube =  models.CharField(max_length=100,null=True)
    
    
    class Meta:
        db_table = "company_contact"


class HowItWorks(models.Model):
    step_number = models.CharField(max_length=60,null=True)
    icon =  models.CharField(max_length=100,null=True)
    title = models.CharField(max_length=200,null=True)
    description = models.TextField(null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

        
    class Meta:
        db_table = "how_it_works"
    
    
    
class Facilities(models.Model):
    name = models.CharField(max_length=200,null=True)
    icon = models.CharField(max_length=200,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=False)
    end_date = models.DateTimeField(null=True)

    class Meta:
        db_table = "facilities" 
        
class FeatureAddPricing(models.Model):
    name = models.CharField(max_length=200,null=True)
    price = models.CharField(max_length=200,null=True)
    days = models.CharField(max_length=200,null=True)
    benfits = models.CharField(max_length=200,null=True)
    property_count=models.IntegerField(default=0,null= True)

    class Meta:
        db_table = "feature_add_pricing"

class Benefits(models.Model):
    name = models.CharField(max_length=200,null=True)
    price = models.CharField(max_length=200,null=True)
    days = models.CharField(max_length=200,null=True)
    benfits = models.CharField(max_length=200,null=True)
    title = models.CharField(max_length=200,null=True)
    content = models.CharField(max_length=200,null=True)
    

    class Meta:
        db_table = "benefits"


class SetCommision(models.Model):
    commision = models.IntegerField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return f"{self.commision}%"



        
        
