finger / models.py
huzey's picture
init
1a01fdb
from sqlmodel import SQLModel, Field, create_engine
from typing import Optional
from datetime import datetime
class User(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
username: str = Field(unique=True, index=True)
password_hash: str
display_name: Optional[str]
class RecordedSession(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
user_id: int
session_name: str
timestamp: datetime = Field(default_factory=datetime.now)
class VideoFrame(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
session_id: int = Field(foreign_key="recordedsession.id")
frame_index: int
image_array: bytes # NumPy-encoded frame
keypoints: bytes # NumPy-encoded keypoints
audio_chunk: bytes # NumPy-encoded audio chunk
fps: int
class Feedback(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
username: str
content: str
timestamp: datetime = Field(default_factory=datetime.now)
class Exercise(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
username: str
duration: str
sta_time: str
engine = create_engine("sqlite:///data/recordings.db")