summaryrefslogtreecommitdiffstats
path: root/yacos/lending/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'yacos/lending/models.py')
-rw-r--r--yacos/lending/models.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/yacos/lending/models.py b/yacos/lending/models.py
new file mode 100644
index 0000000..ee1e402
--- /dev/null
+++ b/yacos/lending/models.py
@@ -0,0 +1,35 @@
+from django.db import models
+
+class Person(models.Model):
+ rfid = models.CharField(max_length=256)
+ name = models.CharField(max_length=140, unique=True)
+ created = models.DateTimeField(auto_now_add=True)
+ def __str__(self):
+
+ return f"Person {self.name}"
+
+class Thing(models.Model):
+ rfid = models.CharField(max_length=256, unique=True)
+ name = models.CharField(max_length=140)
+ owner = models.ForeignKey(to=Person,
+ on_delete=models.PROTECT, related_name='owner',
+ null=True, blank=True)
+ description = models.TextField(max_length=9999, blank=True)
+ created = models.DateTimeField(auto_now_add=True)
+ lent = models.BooleanField(default=False)
+ image = models.ImageField()
+
+ def __str__(self):
+ return f"Thing {self.name}"
+
+class Lending(models.Model):
+ purpose = models.CharField(max_length=1000, unique=True)
+ begin = models.DateTimeField(auto_now=True)
+ deadline = models.DateTimeField()
+ returned = models.DateTimeField(null=True, blank=True) # if returned is empty -> leding finished
+ lender = models.ForeignKey(to=Person,
+ on_delete=models.SET_NULL,related_name='borrows',null=True)
+ thing = models.ForeignKey(to=Thing, on_delete=models.CASCADE,
+ related_name='ilendings')
+ def __str__(self):
+ return f"Lending from {self.begin}, purpose: {self.purpose}, deadline: {self.deadline}"