from typing import Any from sqlalchemy.orm import Mapped, mapped_column from starfall.db import db class User(db.Model): id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) email: Mapped[str] = mapped_column(unique=True) username: Mapped[str] = mapped_column() password: Mapped[str] = mapped_column() def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) def auth(self): return ( User.query.filter_by(username=self.username, password=self.password).first() is not None ) def username_free(self): return User.query.filter_by(username=self.username).first() is None def email_free(self): return User.query.filter_by(email=self.email).first() is None