Spaces:
Running
Running
| from datetime import datetime, timezone | |
| from typing import TYPE_CHECKING | |
| from uuid import UUID, uuid4 | |
| from sqlmodel import Field, Relationship, SQLModel | |
| if TYPE_CHECKING: | |
| from langflow.services.database.models.api_key import ApiKey | |
| from langflow.services.database.models.flow import Flow | |
| from langflow.services.database.models.folder import Folder | |
| from langflow.services.database.models.variable import Variable | |
| class User(SQLModel, table=True): # type: ignore[call-arg] | |
| id: UUID = Field(default_factory=uuid4, primary_key=True, unique=True) | |
| username: str = Field(index=True, unique=True) | |
| password: str = Field() | |
| profile_image: str | None = Field(default=None, nullable=True) | |
| is_active: bool = Field(default=False) | |
| is_superuser: bool = Field(default=False) | |
| create_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) | |
| updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) | |
| last_login_at: datetime | None = Field(default=None, nullable=True) | |
| api_keys: list["ApiKey"] = Relationship( | |
| back_populates="user", | |
| sa_relationship_kwargs={"cascade": "delete"}, | |
| ) | |
| store_api_key: str | None = Field(default=None, nullable=True) | |
| flows: list["Flow"] = Relationship(back_populates="user") | |
| variables: list["Variable"] = Relationship( | |
| back_populates="user", | |
| sa_relationship_kwargs={"cascade": "delete"}, | |
| ) | |
| folders: list["Folder"] = Relationship( | |
| back_populates="user", | |
| sa_relationship_kwargs={"cascade": "delete"}, | |
| ) | |
| class UserCreate(SQLModel): | |
| username: str = Field() | |
| password: str = Field() | |
| class UserRead(SQLModel): | |
| id: UUID = Field(default_factory=uuid4) | |
| username: str = Field() | |
| profile_image: str | None = Field() | |
| store_api_key: str | None = Field(nullable=True) | |
| is_active: bool = Field() | |
| is_superuser: bool = Field() | |
| create_at: datetime = Field() | |
| updated_at: datetime = Field() | |
| last_login_at: datetime | None = Field(nullable=True) | |
| class UserUpdate(SQLModel): | |
| username: str | None = None | |
| profile_image: str | None = None | |
| password: str | None = None | |
| is_active: bool | None = None | |
| is_superuser: bool | None = None | |
| last_login_at: datetime | None = None | |