from django.db import models from django.db.models import UniqueConstraint from vbv_lernwelt.core.models import User class LearningContentCompletion(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) user = models.ForeignKey(User, on_delete=models.CASCADE) learning_content_key = models.UUIDField() circle_key = models.UUIDField() completed = models.BooleanField(default=True) json_data = models.JSONField(default=dict, blank=True) class Meta: constraints = [ UniqueConstraint( fields=['user', 'learning_content_key', ], name='unique_user_learning_content_key' ) ] class LearningUnitQuestionCompletion(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) user = models.ForeignKey(User, on_delete=models.CASCADE) question_key = models.UUIDField() circle_key = models.UUIDField() completed = models.BooleanField(default=True) json_data = models.JSONField(default=dict, blank=True) class Meta: constraints = [ UniqueConstraint( fields=['user', 'question_key', ], name='unique_user_question_key' ) ] class UserCircleCompletion(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) user = models.ForeignKey(User, on_delete=models.CASCADE) circle_key = models.UUIDField() json_data = models.JSONField(default=dict, blank=True) class Meta: constraints = [ UniqueConstraint(fields=['user', 'circle_key'], name='unique_user_circle_completion') ]