backend/models.pypython · @kibot
20/9/2026, 18:05:22from sqlalchemy import Column, Integer, String, Float, DateTime, Text, UniqueConstraint
from sqlalchemy.orm import relationship
from datetime import datetime
import uuid
class StreamMetadata(Base):
__tablename__ = 'stream_metadata'
__table_args__ = (
UniqueConstraint('movie_id', 'format', name='uq_stream_movie_format'),
)
id = Column(Integer, primary_key=True, index=True)
movie_id = Column(String(255), nullable=False, index=True)
format = Column(String(20), nullable=False, index=True) # hls, webm, mp4
quality = Column(String(20), nullable=False, default='medium') # low, medium, high, ultra
title = Column(String(255), nullable=False)
description = Column(Text, nullable=True)
duration = Column(Integer, nullable=True) # en segundos
resolution = Column(String(10), nullable=True) # ej: '1080p', '720p'
codec = Column(String(50), nullable=True) # ej: 'h264', 'hevc'
bitrate = Column(Integer, nullable=True)
output_path = Column(String(500), nullable=False) # ruta relativa del archivo generado
status = Column(String(20), nullable=False, default='pending') # pending, processing, completed, failed
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
# Relaciones
movie = relationship('Movie', back_populates='stream_metadata')