from django.db import models
from django.utils import timezone
from django.conf import settings
from organisations.models import *
from loans.models import *

class OrganisationThirdPartyIntegration(models.Model):
    organisation =  models.ForeignKey(Organisation, on_delete=models.CASCADE, related_name='organisation_flexi_pay')
    sacco_id       = models.CharField(max_length=255)
    sacco_name = models.CharField(max_length=255)
    sacco_account      = models.CharField(max_length=255)
    third_party       = models.CharField(max_length=150, default='flexi_pay')
    is_active = models.BooleanField(default=True)
    date_added    = models.DateTimeField(default = timezone.now)
    added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='sacco_added_by', null=True, blank=True)

    class Meta:
        db_table = 'public\".\"organisation_integrations'

class Classifications(models.Model):
    name = models.CharField(max_length=255)
    description      = models.CharField(max_length=255)
    classification_type       = models.CharField(max_length=150, default='green_finance')
    is_active = models.BooleanField(default=True)
    date_added    = models.DateTimeField(default = timezone.now)
    class_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='classification_added_by', null=True, blank=True)

    class Meta:
        db_table = 'public\".\"classifications'
    
    def __str__(self):
        return self.name

class ClassificationItems(models.Model):
    name = models.CharField(max_length=255)
    classification =  models.ForeignKey(Classifications, on_delete=models.CASCADE, related_name='item_classification')
    description      = models.CharField(max_length=255)
    is_active = models.BooleanField(default=True)
    date_added    = models.DateTimeField(default = timezone.now)
    class_item_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='item_added_by', null=True, blank=True)

    class Meta:
        db_table = 'public\".\"classification_items'

class ClassificationItemLoans(models.Model):
    classification_item =  models.ForeignKey(ClassificationItems, on_delete=models.CASCADE, related_name='items_classification')
    classification_item_loan =  models.ForeignKey(LoanApplication, on_delete=models.CASCADE, related_name='item_classification_loan')
    description      = models.CharField(max_length=255, null=True, blank=True)
    date_added    = models.DateTimeField(default = timezone.now)
    item_loan_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='item_loan_added_by', null=True, blank=True)

    class Meta:
        db_table = 'public\".\"classification_item_loans'
