from django.db import models
from customer_api.models import *
from django.db.models.deletion import CASCADE, SET_NULL, DO_NOTHING
import uuid


# Create your models here.
class HouseRentFavourite(models.Model):
    house_rent =  models.ForeignKey(HouseWantedForRent,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'house_rent_favourite'


class PropertyProjectFavourite(models.Model):
    property =  models.ForeignKey(PropertyProject,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'property_project_favourite'


class BussinessForSaleFavourite(models.Model):
    bussiness =  models.ForeignKey(BussinessForSale,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'bussiness_for_sale_favourite'


class SaleAndRentPropertyFavourite(models.Model):
    sale_rent =  models.ForeignKey(SaleAndRentProperty,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'sale_rent_favourite'


class InvestmentMyProjectFavourite(models.Model):
    invest_project =  models.ForeignKey(InvestmentMyProject,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'investment_project_favourite'

class InvestmentMyCompanyFavourite(models.Model):
    invest_company =  models.ForeignKey(InvestmentMyCompany,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'investment_company_favourite'


class SalePropertyFavourite(models.Model):
    sale =  models.ForeignKey(SaleProperty,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'sale_favourite'


class RentPropertyFavourite(models.Model):
    rent =  models.ForeignKey(RentProperty,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'rent_favourite'


class CompanySeekingEquityFavourite(models.Model):
    company_seek =  models.ForeignKey(CompanySeekingEquity,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'company_seeking_equity_favourite'
        

class PropertyDevelopersFavourite(models.Model):
    property_developer =  models.ForeignKey(PropertyDevelopers,on_delete = models.CASCADE)
    customerId = models.ForeignKey(Customer,on_delete = models.CASCADE)
    is_favourite = models.BooleanField(default=False,null=True)
    favourite_date = models.DateTimeField(auto_now_add=True,null=True)
    start_date = models.DateTimeField(auto_now_add=True,null=True)
    end_date =  models.DateTimeField(null=True)

    class Meta:
        db_table = 'property_developer_favourite'

"""-----------------------------------------------"""

# class HelpAndSupportQuery(models.Model):
#     user = models.ForeignKey(Customer, on_delete=models.CASCADE)
#     query = models.TextField()
#     status = models.CharField(max_length=50, default="pending")
#     raised_at = models.DateTimeField(auto_now_add=True)
#     resolved_at = models.DateTimeField(null=True, blank=True)

#     def __str__(self):
#         return f"Query from {self.user.username} - {self.id} - {self.status}"


