Spaces:
Running
Running
| """ | |
| SQLModel database models for PostgreSQL (Supabase). | |
| Optimized for cloud deployment and mobile app integration. | |
| """ | |
| from datetime import datetime | |
| from typing import Optional, List | |
| from pydantic import BaseModel, Field | |
| class User(BaseModel): | |
| """User model for Firestore 'users' collection.""" | |
| id: Optional[str] = Field(default=None) | |
| email: str | |
| username: Optional[str] = Field(default=None) | |
| display_name: Optional[str] = Field(default=None) | |
| password_hash: Optional[str] = Field(default=None) | |
| role: str = "user" | |
| age: Optional[int] = Field(default=None) | |
| gender: Optional[str] = Field(default=None) | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |
| notesCount: Optional[int] = Field(default=0) | |
| class Config: | |
| from_attributes = True | |
| class Category(BaseModel): | |
| """Category model for Firestore 'categories' collection.""" | |
| id: Optional[str] = Field(default=None) | |
| name: str | |
| description: Optional[str] = None | |
| user_id: str | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |
| class Note(BaseModel): | |
| """ | |
| Note model for Firestore 'notes' collection. | |
| """ | |
| id: Optional[str] = Field(default=None) | |
| user_id: str | |
| video_url: str | |
| video_title: str | |
| summary_content: str | |
| category: Optional[str] = "Uncategorized" | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |