-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathuser.py
16 lines (13 loc) · 833 Bytes
/
user.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy import Integer, String, Boolean, DateTime
from core.database import Base
from datetime import datetime, timezone
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(Integer, primary_key=True)
username: Mapped[str] = mapped_column(String(32), unique=True, nullable=False)
email: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
password: Mapped[str] = mapped_column(String(128), nullable=False)
is_active: Mapped[bool] = mapped_column(Boolean, default=True)
created_at: Mapped[DateTime] = mapped_column(DateTime, default=datetime.now(timezone.utc), nullable=False)
updated_at: Mapped[DateTime] = mapped_column(DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc))