import uuid
from datetime import datetime
from sqlalchemy.sql import func  
from sqlalchemy import Column, String, Integer, Boolean, JSON, TIMESTAMP

from app.core.database import Base 

def generate_uuid():
    return str(uuid.uuid4())

class Video(Base):
    __tablename__ = 'videos'
    
    id        = Column(String, primary_key=True, unique=True, default=generate_uuid)
    title     = Column(String, nullable=False)
    duration  = Column(Integer, nullable=False)
    source    = Column(String, nullable=False)
    results   = Column(JSON, nullable=False)
    published = Column(Boolean, nullable=False, default=True)
    createdAt = Column(TIMESTAMP(timezone=True), nullable=False, server_default=func.now())
    updatedAt = Column(TIMESTAMP(timezone=True), default=None, onupdate=func.now())
