61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
# 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)
|
|
balance = models.BigIntegerField(_('balance'), default=0) # todo: remove it
|
|
|
|
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
|
|
|