from django.db import models

# Create your models here.

from rest_framework.authtoken.models import Token

class CustomToken(Token):
    # 在 Token 上添加更多字段（可以根据需求自定义）
    extra_info = models.CharField(max_length=255, null=True, blank=True)  # 示例附加信息字段
    last_used = models.DateTimeField(auto_now=True)  # 记录最后一次使用的时间
    expiration_date = models.DateTimeField(null=True, blank=True)  # 记录 Token 的过期时间

    def __str__(self):
        # 返回 Token 的字符串表示，包括用户名和 key
        return f"Token for {self.user.username} - {self.key}"

    def get_user_info(self):
        # 可以提供一个方法来获取与 Token 关联的用户的更多信息
        return {
            "username": self.user.username,
            "email": self.user.email,
            "role": self.user.groups.first().name if self.user.groups.exists() else "No role"
        }

