23 lines
595 B
Python
23 lines
595 B
Python
import uuid
|
|
from datetime import datetime, UTC
|
|
|
|
from beanie import Document, Indexed
|
|
from pydantic import Field
|
|
|
|
|
|
class User(Document):
|
|
id: uuid.UUID = Field(default_factory=uuid.uuid4)
|
|
username: str = Indexed(unique=True)
|
|
hashed_password: str
|
|
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
|
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
|
|
|
class Settings:
|
|
name = "users"
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
datetime: lambda v: v.isoformat(),
|
|
uuid.UUID: lambda v: str(v),
|
|
}
|