barker/barker/barker/models/login_history.py

30 lines
988 B
Python

import uuid
from datetime import datetime
from barker.models.meta import Base
from sqlalchemy import Column, DateTime, ForeignKey, UniqueConstraint, text
from sqlalchemy.dialects.postgresql import UUID
class LoginHistory(Base):
__tablename__ = "login_history"
__table_args__ = (UniqueConstraint("user_id", "device_id", "date"),)
id = Column(
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), default=uuid.uuid4
)
user_id = Column("user_id", UUID(as_uuid=True), ForeignKey("users.id"), nullable=False)
device_id = Column(
"device_id",
UUID(as_uuid=True),
ForeignKey("devices.id"),
nullable=False,
)
date = Column("date", DateTime(), nullable=False)
def __init__(self, user_id=None, device_id=None, date=None, id_=None):
self.user_id = user_id
self.device_id = device_id
self.date = datetime.utcnow() if date is None else date
self.id = id_