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

class PublicationType(enum.Enum):
    JOURNALS = 1
    CONFERENCE = 2
    BOOKS = 3
    CHAPTER = 4
    __labels__ = {
        JOURNALS: "JOURNALS",
        CONFERENCE: "CONFERENCE",
        BOOKS : "BOOKS",
        CHAPTER : "CHAPTER"
    }

    __default__ = JOURNALS

class JournalStatus(enum.Enum):
    PUBLISHED = 1
    SUBMITTEDFORACCEPTANCE = 2

    __labels__ = {
        PUBLISHED: "Published",
        SUBMITTEDFORACCEPTANCE: "Submitted For Acceptance",
    }

    __default__ = PUBLISHED

class Publication(models.Model):
    _id = models.ObjectIdField()
    publication_type = enum.EnumField(PublicationType, default=PublicationType.JOURNALS)

    author = models.CharField(max_length=255)

    #journal
    paper_title = models.CharField('Paper Title',max_length=255,blank=True)
    journal_title = models.CharField('Journal Title',max_length=255, blank=True)
    journal_year = models.IntegerField('Year',default=None, blank=True)
    journal_page_num = models.CharField('Page Num',max_length=255, blank=True, default='')
    journal_volume = models.CharField('Volume',max_length=255, blank=True, default='')
    journal_issue_date = models.CharField('Issue Date',max_length=255, blank=True, default='')
    journal_publication_link = models.CharField('Publication Link',max_length=255, blank=True, default='')
    journal_accepted_date = models.DateField('Accepted Date',blank=True, default='')
    journal_impact_factor = models.FloatField('Impact Factor',blank=True, default='')

    #conference
    conf_title = models.CharField('Proceeding/Presentation Title',max_length=255, default='', blank=True)
    conf_detail = models.CharField('Conference/Journal Title',max_length=255, default='', blank=True)
    conf_date_start = models.DateField('Start Date',blank=True, default=None)
    conf_date_end = models.DateField('End Date',blank=True, default=None)
    conf_place = models.CharField('Place',max_length=255, blank=True, default='')
    conf_volume = models.CharField('Volume',max_length=255, blank=True, default='')
    conf_page_num = models.CharField('Page Num',max_length=255, blank=True, default='')

    #books
    book_name = models.CharField('Book Name',max_length=255, default='', blank=True)
    book_photo = models.ImageField('Book Photo',upload_to ='books/', default='', blank=True)
    book_year = models.IntegerField('Year',default=None, blank=True)
    book_isbn = models.CharField('Book ISBN',max_length=255, blank=True, default='')

    #chapter
    chap_name = models.CharField('Chapter Name',max_length=255, default='', blank=True)
    chap_in_book_name = models.CharField('Book Name',max_length=255, default='', blank=True)
    chap_year = models.IntegerField('Year',default=None, blank=True)
    chap_isbn = models.CharField('Book ISBN',max_length=255, blank=True, default='')
    chap_page_num = models.CharField('Page Num',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.author