""" Model of the access token. Access token has a token string, device name and date of creation. """ from datetime import datetime import secrets from pydantic import BaseModel class Token(BaseModel): """ Model of the access token. Access token has a token string, device name and date of creation. """ token: str device_name: str created_at: datetime @staticmethod def generate(device_name: str) -> "Token": """ Factory to generate a random token. """ creation_date = datetime.now() token = secrets.token_urlsafe(32) return Token( token=token, device_name=device_name, created_at=creation_date, )