Spaces:
Running
Running
File size: 1,401 Bytes
d74863e 6405808 d74863e 6405808 b17b103 6405808 b17b103 6405808 914b21c d74863e 6405808 d74863e 6405808 d74863e 6405808 d74863e 6405808 d74863e 6405808 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | """
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)
|