from django.db import models

##############################################################################

class Snmptt(models.Model):
	eventname = models.CharField(max_length=50, blank=True)
	eventid = models.CharField(max_length=50, blank=True)
	trapoid = models.CharField(max_length=100, blank=True)
	enterprise = models.CharField(max_length=100, blank=True)
	community = models.CharField(max_length=20, blank=True)
	hostname = models.CharField(max_length=100, blank=True)
	agentip = models.CharField(max_length=16, blank=True)
	category = models.CharField(max_length=20, blank=True)
	severity = models.CharField(max_length=20, blank=True)
	uptime = models.CharField(max_length=20, blank=True)
	traptime = models.CharField(max_length=30, blank=True)
	formatline = models.CharField(max_length=255, blank=True)
	trapread = models.IntegerField(blank=True, null=True)


	def __unicode__(self):
		return u'%s: %s - %s - %s - %s' % (self.id, self.hostname, self.severity, self.eventname, self.traptime)


	class Meta:
		db_table = 'snmptt'



class SnmpttArchive(models.Model):
	snmptt_id = models.IntegerField()
	eventname = models.CharField(max_length=50, blank=True)
	eventid = models.CharField(max_length=50, blank=True)
	trapoid = models.CharField(max_length=100, blank=True)
	enterprise = models.CharField(max_length=100, blank=True)
	community = models.CharField(max_length=20, blank=True)
	hostname = models.CharField(max_length=100, blank=True)
	agentip = models.CharField(max_length=16, blank=True)
	category = models.CharField(max_length=20, blank=True)
	severity = models.CharField(max_length=20, blank=True)
	uptime = models.CharField(max_length=20, blank=True)
	traptime = models.CharField(max_length=30, blank=True)
	formatline = models.CharField(max_length=255, blank=True)
	trapread = models.IntegerField(blank=True, null=True)

	class Meta:
		db_table = 'snmptt_archive'



class SnmpttUnknown(models.Model):
	trapoid = models.CharField(max_length=100, blank=True)
	enterprise = models.CharField(max_length=100, blank=True)
	community = models.CharField(max_length=20, blank=True)
	hostname = models.CharField(max_length=100, blank=True)
	agentip = models.CharField(max_length=16, blank=True)
	uptime = models.CharField(max_length=20, blank=True)
	traptime = models.CharField(max_length=30, blank=True)
	formatline = models.CharField(max_length=255, blank=True)
	trapread = models.IntegerField(blank=True, null=True)

	class Meta:
		db_table = 'snmptt_unknown'



class SnmpttJobs(models.Model):
	type = models.CharField(max_length=50)
	jobstate = models.IntegerField()
	count = models.IntegerField()
	jobtime = models.IntegerField()
	message = models.CharField(max_length=255)
	class Meta:
		managed = False
		db_table = 'snmptt_jobs'



class SnmpttStatistics(models.Model):
	stat_time = models.CharField(max_length=30, blank=True)
	total_received = models.BigIntegerField(blank=True, null=True)
	total_translated = models.BigIntegerField(blank=True, null=True)
	total_ignored = models.BigIntegerField(blank=True, null=True)
	total_unknown = models.BigIntegerField(blank=True, null=True)
	class Meta:
		managed = False
		db_table = 'snmptt_statistics'



#class NagtrapState(models.Model):
#	hostname = models.CharField(max_length=100, blank=True)
#	state = models.ForeignKey('CfgState')
#	sub = models.CharField(max_length=100, default=None, null=True)
#	start = models.ForeignKey(Snmptt, related_name='trap_start', blank=True, null=True)
#	start_time = models.DateTimeField(blank=True, null=True)
#	stop = models.ForeignKey(Snmptt, related_name='trap_stop', blank=True, null=True)
#	stop_time = models.DateTimeField(blank=True, null=True)
#
#	def __unicode__(self):
#		if self.start and self.stop:
#			statetype = u'finished'
#		elif self.start and not self.stop:
#			statetype = u'active'
#		elif not self.start and self.stop:
#			statetype = u'weird finished'
#		else:
#			statetype = u'empty'
#
#		return u'%s:%s %s' % (self.hostname, self.state, statetype)