Spaces:
Sleeping
Sleeping
| from sqlmodel import SQLModel, Field, Relationship | |
| from typing import Optional, List | |
| import uuid | |
| from datetime import datetime | |
| from sqlalchemy import Column, DateTime | |
| class UserBase(SQLModel): | |
| email: str = Field(unique=True, index=True, max_length=255) | |
| class User(UserBase, table=True): | |
| id: Optional[uuid.UUID] = Field(default_factory=uuid.uuid4, primary_key=True) | |
| email: str = Field(unique=True, index=True, max_length=255) | |
| password_hash: str = Field(max_length=255) | |
| created_at: datetime = Field(sa_column=Column(DateTime, default=datetime.utcnow)) | |
| updated_at: datetime = Field(sa_column=Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)) | |
| # Relationship to tasks | |
| tasks: List["Task"] = Relationship(back_populates="owner") | |
| # Relationship to projects | |
| projects: List["Project"] = Relationship(back_populates="owner") | |
| # Relationship to conversations | |
| conversations: List["Conversation"] = Relationship(back_populates="owner") | |
| class UserCreate(UserBase): | |
| password: str | |
| class UserRead(UserBase): | |
| id: uuid.UUID | |
| created_at: datetime | |
| updated_at: datetime |