Files
api/models/account.py
2026-01-17 15:21:41 -05:00

63 lines
2.0 KiB
Python

from sqlalchemy import Column, Integer, String, TIMESTAMP, TEXT, VARCHAR
from datetime import datetime, timezone
from . import Base
class Account_User(Base):
__tablename__ = 'portal_user'
__table_args__ = {"schema": "public"}
id = Column(Integer, autoincrement=True, primary_key=True, unique=True)
username = Column(String(50))
account_number = Column(String(32))
house_number = Column(String(32))
email = Column(VARCHAR(350))
password_hash = Column(TEXT)
member_since = Column(TIMESTAMP(timezone=True), default=lambda: datetime.now(timezone.utc))
last_seen = Column(TIMESTAMP(timezone=True), default=lambda: datetime.now(timezone.utc))
password_reset_token = Column(TEXT, nullable=True)
password_reset_expires = Column(TIMESTAMP(timezone=True), nullable=True)
admin = Column(Integer)
admin_role = Column(Integer)
confirmed = Column(Integer)
active = Column(Integer, default=1)
user_id = Column(Integer, nullable=True) # References Customer_Customer.id
def __init__(self,
username,
account_number,
house_number,
password_hash,
member_since,
email,
last_seen,
admin,
admin_role,
confirmed,
active=1,
user_id=None,
):
self.username = username
self.account_number = account_number
self.house_number = house_number
self.password_hash = password_hash
self.member_since = member_since
self.email = email
self.last_seen = last_seen
self.admin = admin
self.admin_role = admin_role
self.confirmed = confirmed
self.active = active
self.user_id = user_id
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return str(self.id)