from django.db import models from django.utils.translation import gettext_lazy as _ from django.contrib.auth.models import User # class AppUser(models.Model): # Ya incluye "first_name", "last_name", "email", y "date_joined" heredando de la clase User de django. # Falta ver que más información hay que añadir a nuestros usuarios, como los roles etc. # django_user = models.OneToOneField(DjangoUser, on_delete=models.CASCADE) # Extra data, segun entidad/organizacion # pass # class Event(models.Model): # Para los "audit logs" que se requieren en las pantallas. # timestamp = models.DateTimeField() # Los eventos no tienen relación con otros objetos a nivel de BBDD. # event_data = models.CharField(max_length=250) class DID(models.Model): did_string = models.CharField(max_length=250) label = models.CharField(max_length=50) user = models.ForeignKey( User, on_delete=models.CASCADE, related_name='dids', ) # kind = "KEY|WEB" class VerifiableCredential(models.Model): id_string = models.CharField(max_length=250) verified = models.BooleanField() created_on = models.DateTimeField() did_issuer = models.CharField(max_length=250) did_subject = models.CharField(max_length=250) user = models.ForeignKey( User, on_delete=models.CASCADE, related_name='vcredentials', ) data = models.TextField() class VCTemplate(models.Model): wkit_template_id = models.CharField(max_length=250) data = models.TextField() class Membership(models.Model): """ This model represent the relation of this user with the ecosystem. """ class Types(models.IntegerChoices): BENEFICIARY = 1, _('Beneficiary') EMPLOYEE = 2, _('Employee') PARTNER = 3, _('Partner') type = models.PositiveSmallIntegerField(_('Type of membership'), choices=Types.choices) start_date = models.DateField( _('Start date'), help_text=_('What date did the membership start?'), blank=True, null=True ) end_date = models.DateField( _('End date'), help_text=_('What date did the membership end?'), blank=True, null=True ) user = models.ForeignKey( User, on_delete=models.CASCADE, related_name='memberships', )