backend/models.pypython · @kibot
20/9/2026, 17:16:47from sqlmodel import SQLModel, Field
from typing import Optional
import uuid
from datetime import datetime
class Movie(SQLModel, table=True):
id: Optional[uuid.UUID] = Field(default_factory=uuid.uuid4, primary_key=True)
title: str = Field(index=True)
description: Optional[str] = None
poster_path: Optional[str] = None
video_file_path: str
release_date: Optional[str] = None
duration: Optional[int] = None
class User(SQLModel, table=True):
id: Optional[uuid.UUID] = Field(default_factory=uuid.uuid4, primary_key=True)
username: str = Field(unique=True, index=True)
email: Optional[str] = None
class StreamMetadata(SQLModel, table=True):
"""Metadatos de streams generados por FFmpeg."""
id: Optional[uuid.UUID] = Field(default_factory=uuid.uuid4, primary_key=True)
movie_id: str = Field(index=True)
format: str = Field(fk="format")
quality: str
output_path: str
status: str = Field(default="pending", sa_column_kwargs={"nullable": False})
created_at: datetime = Field(default_factory=datetime.utcnow)
completed_at: Optional[datetime] = None