AIdea-Server / src /db /models.py
Ahmed Mostafa
feat: implement text-to-speech service, add API routers, and define database models
aa1867f
Raw
History Blame Contribute Delete
1.35 kB
"""
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)
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)