28 lines
786 B
Python
28 lines
786 B
Python
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
|