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

# Create your models here.
class Program(models.Model):
    program_name   =  models.CharField(max_length=255)
    program_desc   =  models.TextField()
    type           =  models.CharField(max_length=50, null=True, blank=True)
    privilege      =  models.CharField(max_length=50, null=True, blank=True)
    date_added     = models.DateTimeField(default = timezone.now)
    program_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, related_name='program_added_by', null=True, blank=True)

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

class Funder(models.Model):
    funder_name =  models.CharField(max_length=255)
    funder_short_name =  models.CharField(max_length=50, null=True, blank=True)
    date_added = models.DateTimeField(default = timezone.now)
    funder_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, related_name='funder_added_by', null=True, blank=True)

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

class FunderProgram(models.Model):
    funder_program   =  models.ForeignKey(Program, on_delete=models.CASCADE, related_name='funder_program')
    funder    =  models.ForeignKey(Funder, on_delete=models.CASCADE, related_name='funder')
    date_added = models.DateTimeField(default = timezone.now)
    funder_program_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, related_name='funder_program_added_by', null=True, blank=True)
    
    class Meta:
        db_table = 'public\".\"funder_program'

class OrganisationProgram(models.Model):
    org_program  =  models.ForeignKey(Program, on_delete=models.CASCADE, related_name='org_program')
    program_org  =  models.ForeignKey(Organisation, on_delete=models.CASCADE, related_name='program_org')
    date_added   = models.DateTimeField(default = timezone.now)
    org_program_added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, related_name='org_program_added_by', null=True, blank=True)
    
    class Meta:
        db_table = 'public\".\"organisation_program'
