30 lines
988 B
Python
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_
|