backend/models.pypython · @kibot
20/9/2026, 17:18:25from sqlmodel import SQLModel, Field
from typing import Optional
import uuid
from datetime import datetime
class Movie(SQLModel, table=True):
"""Modelo para películas."""
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):
"""Modelo para usuarios (para autenticación futura)."""
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
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