# models from django.db import models from oauth2_provider.models import AbstractApplication, AbstractAccessToken, AbstractGrant, AbstractRefreshToken, \ AbstractIDToken import uuid from django.utils.translation import gettext_lazy as _ from apps.wallet.constans import TypeChoices class AccessToken(AbstractAccessToken): id = None uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4, unique=True, db_index=True) detail = models.JSONField(null=True, blank=True) client_id = models.CharField(max_length=255, null=True, blank=True) application_owner = models.ForeignKey('users.User', on_delete=models.PROTECT, null=True, blank=True) class Meta: abstract = False class Application(AbstractApplication): id = None uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4, unique=True, db_index=True) class Meta: abstract = False @property def instance_id(self): return self.pk @property def instance_type(self): return TypeChoices.APPLICATION class Grant(AbstractGrant): id = None uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4, unique=True, db_index=True) class Meta: abstract = False class RefreshToken(AbstractRefreshToken): id = None uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4, unique=True, db_index=True) class Meta: abstract = False class IDToken(AbstractIDToken): id = None uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4, unique=True, db_index=True) class Meta: abstract = False