#from django.db import models
from djongo import models
from django_enumfield import enum


class ProjectType(enum.Enum):
    RESEARCH_LEVEL = 1
    INSTITUTE_LEVEL = 2
    CONSULTANCY_LEVEL = 3

    __labels__ = {
        RESEARCH_LEVEL: "Sponsored Research Project",
        INSTITUTE_LEVEL: "Institute Level Project",
        CONSULTANCY_LEVEL : "Consultancy Project",
    }

    __default__ = RESEARCH_LEVEL


class ConsultancyLevelType(enum.Enum):
    PRINCIPAL_INVESTIGATOR = 1
    CO_PRINCIPAL_INVESTIGATOR = 2

    __labels__ = {
        PRINCIPAL_INVESTIGATOR: "Principal Investigator",
        CO_PRINCIPAL_INVESTIGATOR: "Co-Principal Investigator",
    }

    __default__ = PRINCIPAL_INVESTIGATOR

class ResearchLevelType(enum.Enum):
    PRINCIPAL_INVESTIGATOR = 1
    CO_PRINCIPAL_INVESTIGATOR = 2
    SCIENTIST_MENTOR = 3
    GUIDE = 4

    __labels__ = {
        PRINCIPAL_INVESTIGATOR: "Principal Investigator",
        CO_PRINCIPAL_INVESTIGATOR: "Co-Principal Investigator",
        SCIENTIST_MENTOR : "Scientist Mentor",
        GUIDE : "Guide",
    }

    __default__ = PRINCIPAL_INVESTIGATOR


class Project(models.Model):
    _id = models.ObjectIdField()
    project_type = enum.EnumField(ProjectType, default=ProjectType.RESEARCH_LEVEL)

    research_type = enum.EnumField(ResearchLevelType, null=True,default=ResearchLevelType.PRINCIPAL_INVESTIGATOR)
    consultancy_type = enum.EnumField(ConsultancyLevelType,null=True, default=ConsultancyLevelType.PRINCIPAL_INVESTIGATOR)
    institute_type = models.IntegerField(default=11)

    title = models.CharField(max_length=255)
    year_start = models.IntegerField()
    year_end = models.IntegerField(blank=True, null=True, default=0)
    funded_by = models.CharField(max_length=255, blank=True, default='')
    collaborator = models.CharField(max_length=255, blank=True, default='')
    date_created = models.DateTimeField(auto_now_add=True, blank=True)
    date_updated = models.DateTimeField(auto_now=True, blank=True)

    
    def __str__(self):
        return self.title