from django.db import models
# Create your models here.

class Node(models.Model):
    node_id = models.IntegerField('ID', primary_key=True)
    latitude = models.FloatField('Latitude')
    longitude = models.FloatField('Longitude')
    data = models.DateTimeField('Data inregistrare')
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return str(self.node_id)

    class Meta:
        verbose_name = _('Nod')
        verbose_name_plural = _('Noduri')
        
    class Admin:
        search_fields = ('node_id')
        list_display = ('node_id', 'latitude', 'longitude',
                        'data', 'last_update', )

class NodeTag(models.Model):
    node = models.ForeignKey(Node, verbose_name='Nod')
    name = models.CharField('Nume', maxlength=250)
    value = models.CharField('Valoare', maxlength=250)
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return self.name

    class Meta:
        verbose_name = _('Tag Nod')
        verbose_name_plural = _('Taguri Noduri')
        
    class Admin:
        search_fields = ('name', 'value')
        list_display = ('name', 'value', 'node', 'last_update', )

class Way(models.Model):
    way_id = models.IntegerField('ID', primary_key=True)
    data = models.DateTimeField('Data inregistrare')
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return str(self.way_id)

    class Meta:
        verbose_name = _('Strada')
        verbose_name_plural = _('Strazi')
        
    class Admin:
        list_display = ('way_id', 'data', 'last_update', )

class WayTag(models.Model):
    way = models.ForeignKey(Way, verbose_name='Strada')
    name = models.CharField('Nume', maxlength=250)
    value = models.CharField('Valoare', maxlength=250)
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return str(self.way)

    class Meta:
        verbose_name = _('Tag Strada')
        verbose_name_plural = _('Taguri Strazi')
        
    class Admin:
        list_display = ('name', 'value', 'way', 'last_update', )

class WayNode(models.Model):
    way = models.ForeignKey(Way, verbose_name='Strada')
    node = models.ForeignKey(Node, verbose_name='Nod')
    node_order = models.IntegerField('Ordine nod')
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return '%s - %s , nr. ordine %d' % (str(self.way), str(self.node), self.node_order)

    class Meta:
        verbose_name = _('Strada-Nod')
        verbose_name_plural = _('Strazi-Noduri')
        
    class Admin:
        list_display = ('way', 'node', 'node_order', 'last_update', )

class Relation(models.Model):
    relation_id = models.IntegerField('ID', primary_key=True)
    data = models.DateTimeField('Data inregistrare')
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return str(self.relation_id)

    class Meta:
        verbose_name = _('Relatie')
        verbose_name_plural = _('Relatii')
        
    class Admin:
        list_display = ('relation_id', 'data', 'last_update', )
        
class RelationTag(models.Model):
    relation = models.ForeignKey(Relation, verbose_name='Relatie')
    name = models.CharField('Nume', maxlength=250)
    value = models.CharField('Valoare', maxlength=250)
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return self.relation

    class Meta:
        verbose_name = _('Tag Relatie')
        verbose_name_plural = _('Taguri Relatii')
        
    class Admin:
        list_display = ('name', 'value', 'relation', 'last_update', )
        
class RelationMember(models.Model):
    relation = models.ForeignKey(Relation, verbose_name='Relatie')
    tip = models.CharField('Tip', maxlength=250)
    ref = models.IntegerField('Ref')
    role = models.CharField('Role', maxlength=250)
    last_update = models.DateTimeField('Ultima modificare in sistem', auto_now=True)

    def __unicode__(self):
        return 'Relatie = %s, tip = %s' % (str(self.relation), self.tip)

    class Meta:
        verbose_name = _('Relation Member')
        verbose_name_plural = _('Relation Members')
        
    class Admin:
        list_display = ('relation', 'tip', 'ref', 'role', 'last_update', )
