Initial commit

This commit is contained in:
2025-12-31 00:40:41 +03:00
parent a615f43983
commit d4898869fa
10 changed files with 258 additions and 35 deletions
+19 -1
View File
@@ -1,5 +1,23 @@
from sqlalchemy.orm import DeclarativeBase
from datetime import datetime
from typing import final
from sqlalchemy import BigInteger, CheckConstraint, String, func
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
@final
class User(Base):
__tablename__ = "users"
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
username: Mapped[str | None] = mapped_column(String(32))
first_name: Mapped[str] = mapped_column(String(64))
last_name: Mapped[str | None] = mapped_column(String(64))
group: Mapped[int | None] = mapped_column(CheckConstraint("group >= 1000 AND group <= 9999"))
is_admin: Mapped[bool] = mapped_column(default=False)
created_at: Mapped[datetime] = mapped_column(server_default=func.now())
updated_at: Mapped[datetime] = mapped_column(server_default=func.now(), onupdate=func.now())