from django.db import models

# Create your models here.

class CodaComandi(models.Model):

  MUST = (
    (0,'comando interno'),
    (1,'comando esterno completo'),
    (2,'comando esterno con parametri'),
         )
  id        = models.CharField(db_column='id',primary_key=True,max_length=15)
  acronimo  = models.CharField(db_column='acronimo',max_length=128)
  titolo    = models.CharField(db_column='title',max_length=254)
  comando   = models.CharField(db_column='comando',max_length=1024)
  tipo      = models.IntegerField(db_column='comando_tipo',default=0,choices=MUST)
  parametri = models.CharField(db_column='parametri',max_length=1024)
  note      = models.CharField(db_column='note',max_length=1024)
  sid       = models.IntegerField(db_column='sid')

  class Meta:
    ordering = ['id']
    db_table = 'coda_comandi'
    managed  = False

class Coda(models.Model):
  STATO = (
    (0,'ancora da eseguire'),
    (1,'eesguito con successo'),
    (2,'eseguito con errore'),
    )
  id              = models.AutoField(db_column='id',primary_key=True)
  codacomandi     = models.ForeignKey('CodaComandi',db_column='codacomandi',on_delete=models.CASCADE)
  parametri       = models.CharField(db_column='parametri',max_length=1024,default='')
  dataInserimento = models.IntegerField(db_column='data_inserimento')
  dataEsecuzione  = models.IntegerField(db_column='data_esecuzione')
  stato           = models.IntegerField(db_column='stato',choices=STATO)
  risultato       = models.CharField(db_column='risultato',max_length=1024,default='')
  enabled         = models.BooleanField(db_column='enabled',default=1)
  esecuzione      = models.CharField(db_column='esecuzione',max_length=1024)
  sid             = models.IntegerField(db_column='sid')
  class Meta:
    ordering = ['id']
    db_table = 'coda_esecuzione'
    managed = False

'''
id: autoincrement
codacomandi: riferimento al comando da eseguire
parametri: parametri passati (attenzione, non e'detto che ce ne siano
data_inserimento = timestamp inserimento coda
data_esecuzione = timestamp esecuzione comando
stato = stato di esecuzione dei comandi
'''

