
from django.db import models
import django.utils.timezone
from django.utils.translation import ugettext_lazy as _

RECORD_STATE = [('E', 'Enable'), ('D', 'Disable')]
TYPE_CATEGORY = [('U', 'USER'), ('R', 'RESSELER')]
TYPE_COVERAGE = [('W', 'Worldwide'), ('N', 'National')]
TYPE_OPERATION = [('C', 'Credit'), ('D', 'Debit')]


class CommonInfo(models.Model):
    createdBy = models.IntegerField(null=True, blank=True, verbose_name=_("Crée par"))
    editedBy = models.IntegerField(null=True, blank=True, verbose_name=_("Modifié par"))
    createdOn = models.DateTimeField(default=django.utils.timezone.now, null=True, blank=True, verbose_name=_("Crée le"))
    editedOn = models.DateTimeField(default=django.utils.timezone.now, null=True, blank=True, verbose_name=_("Modifié le"))
    state = models.CharField(max_length=1, choices=RECORD_STATE, default='E', verbose_name=_("Etat"))
    
    class Meta:
        abstract = True

class Customer(CommonInfo):
    customer_code = models.CharField(max_length=255, verbose_name=_("Code"))
    customer_name = models.CharField(max_length=512, verbose_name=_("Nom"))
    customer_phone = models.CharField(max_length=255,null=True, blank=True, verbose_name=_("Téléphone"))
    customer_email = models.CharField(max_length=255,null=True, blank=True, verbose_name=_("Email"))
    customer_address = models.CharField(max_length=255,null=True, blank=True, verbose_name=_("Adresse"))
    def __str__(self):
        return self.customer_name

class Journal(CommonInfo):
    journal_app = models.CharField(max_length=255)
    journal_path = models.CharField(max_length=255)
    journal_user = models.CharField(max_length=255, null=True, blank=True)
    journal_time = models.DateTimeField()
    journal_ip = models.CharField(max_length=255, null=True, blank=True)
    journal_country = models.CharField(max_length=255, null=True, blank=True)
    journal_region = models.CharField(max_length=255, null=True, blank=True)
    journal_referer = models.CharField(max_length=255, null=True, blank=True)
    journal_media = models.CharField(max_length=255, null=True, blank=True)
    journal_token = models.CharField(max_length=255, null=True, blank=True)
    journal_oplevel = models.CharField(max_length=255, null=True, blank=True)
    journal_text = models.TextField()
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return '[' + self.journal_app + ' - ' + self.journal_path + '] --> ' + self.journal_text

