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) confirmation_token = Column(TEXT, nullable=True) confirmation_sent_at = Column(TIMESTAMP(timezone=True), nullable=True) confirmed_at = 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, confirmation_token=None, confirmation_sent_at=None, confirmed_at=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 self.confirmation_token = confirmation_token self.confirmation_sent_at = confirmation_sent_at self.confirmed_at = confirmed_at 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)