Добавлена функциональность управления сессиями пользователей, включая создание сессий при входе, получение списка активных сессий, деактивацию отдельных сессий и деактивацию всех сессий пользователя.
21 lines
777 B
Python
21 lines
777 B
Python
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Boolean
|
|
from sqlalchemy.orm import relationship
|
|
from datetime import datetime
|
|
from app.domain.models.base import BaseModel
|
|
from app.settings import settings
|
|
|
|
|
|
class Session(BaseModel):
|
|
__tablename__ = 'sessions'
|
|
__table_args__ = {"schema": settings.SCHEMA}
|
|
|
|
token = Column(String, nullable=False, unique=True)
|
|
device_info = Column(String, nullable=True)
|
|
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
|
|
expires_at = Column(DateTime, nullable=False)
|
|
is_active = Column(Boolean, default=True, nullable=False)
|
|
|
|
user_id = Column(Integer, ForeignKey(f'{settings.SCHEMA}.users.id'), nullable=False)
|
|
|
|
user = relationship("User", back_populates="sessions")
|