From e3e3e10f7abf3bb44027eb197d61759f2797ff5a Mon Sep 17 00:00:00 2001
From: Jan-Tarek Butt <tarek@ring0.de>
Date: Wed, 13 Dec 2023 21:51:44 +0100
Subject: [PATCH] crawler/models.py: extent build-in User profile. Nodes: add
 last_seen. Monitor: add notify counter and last notification date

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
---
 crawler/models.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/crawler/models.py b/crawler/models.py
index 35b1823..10f0534 100644
--- a/crawler/models.py
+++ b/crawler/models.py
@@ -6,19 +6,27 @@ class Node(models.Model):
     node_id = models.CharField(max_length=12, primary_key=True)
     # hostname of the node
     node_name = models.CharField(max_length=64)
+    last_seen = models.DateTimeField()
     entry_date = models.DateField(auto_now_add=True)
     is_online = models.BooleanField(default=True)
     
     def __str__(self):
-        return f"{self.node_id} - {self.node_name} - {self.entry_date} - {self.is_online}"
+        return f"{self.node_id} - {self.node_name} - {self.last_seen} - {self.entry_date} - {self.is_online}"
 
 class Monitor(models.Model):
     user_id = models.ForeignKey(User, on_delete=models.CASCADE)
     node_id = models.ForeignKey(Node, on_delete=models.CASCADE)
-    notify = models.BooleanField()
+    notify = models.BooleanField(default=True)
+    notify_count = models.PositiveIntegerField(default=0)
+    last_notified = models.DateField(null=True,blank=True)
 
     def __str__(self):
-        return f"{self.user_id.username} - {self.node_id.node_id} - {self.notify}"
+        return f"{self.user_id.username} - {self.node_id.node_id} - {self.notify} - {self.notify_count} - {self.last_notified}"
 
     class Meta:
         unique_together = ['user_id', 'node_id']
+
+class UserProfile(models.Model):
+    user = models.OneToOneField(User, on_delete=models.CASCADE)
+    max_notification_interval = models.PositiveIntegerField(default=2)
+    days_between_notification = models.PositiveIntegerField(default=1)
-- 
GitLab