diff --git a/member/migrations/0001_initial.py b/member/migrations/0001_initial.py new file mode 100644 index 0000000..5615145 --- /dev/null +++ b/member/migrations/0001_initial.py @@ -0,0 +1,37 @@ +# Generated by Django 5.2.1 on 2025-05-10 12:49 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Person', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('vorname', models.CharField(max_length=100)), + ('nachname', models.CharField(max_length=100)), + ('geburtsdatum', models.DateField(blank=True, null=True)), + ('aktiv', models.BooleanField(default=True)), + ], + ), + migrations.CreateModel( + name='UserAccount', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('userName', models.CharField(max_length=150, unique=True)), + ('passwort_hash', models.CharField(max_length=128)), + ('role', models.CharField(choices=[('mitglied', 'Mitglied'), ('geraetewart', 'Gerätewart'), ('kommandant', 'Kommandant'), ('admin', 'Administrator')], max_length=50)), + ('isActive', models.BooleanField(default=True)), + ('lastLogin', models.DateTimeField(blank=True, null=True)), + ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='benutzerkonten', to='member.person')), + ], + ), + ] diff --git a/member/models.py b/member/models.py deleted file mode 100644 index 71a8362..0000000 --- a/member/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/member/models/Person.py b/member/models/Person.py new file mode 100644 index 0000000..97b5c6a --- /dev/null +++ b/member/models/Person.py @@ -0,0 +1,11 @@ +from django.db import models +from django.utils import timezone + +class Person(models.Model): + vorname = models.CharField(max_length=100) + nachname = models.CharField(max_length=100) + geburtsdatum = models.DateField(null=True, blank=True) + aktiv = models.BooleanField(default=True) + + def __str__(self): + return f"{self.vorname} {self.nachname}" diff --git a/member/models/UserAccount.py b/member/models/UserAccount.py new file mode 100644 index 0000000..b314a33 --- /dev/null +++ b/member/models/UserAccount.py @@ -0,0 +1,20 @@ +from django.db import models +from django.utils import timezone +from .Person import Person + + +class UserAccount(models.Model): + person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name='benutzerkonten') + userName = models.CharField(max_length=150, unique=True) + passwort_hash = models.CharField(max_length=128) + role = models.CharField(max_length=50, choices=[ + ('mitglied', 'Mitglied'), + ('geraetewart', 'Gerätewart'), + ('kommandant', 'Kommandant'), + ('admin', 'Administrator'), + ]) + isActive = models.BooleanField(default=True) + lastLogin = models.DateTimeField(null=True, blank=True) + + def __str__(self): + return f"{self.benutzername} ({self.rolle})" diff --git a/member/models/__init__.py b/member/models/__init__.py new file mode 100644 index 0000000..c670637 --- /dev/null +++ b/member/models/__init__.py @@ -0,0 +1,2 @@ +from .Person import Person +from .UserAccount import UserAccount