Backend-B2V / backend /app /models /asset.py
Muhammad-Mehdi's picture
Backend and remotion-video for HF Space
cfe45d5
Raw
History Blame Contribute Delete
1.22 kB
import enum
from datetime import datetime
from sqlalchemy import String, Enum, ForeignKey, DateTime, Boolean
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.database import Base
class AssetType(str, enum.Enum):
IMAGE = "image"
AUDIO = "audio"
class Asset(Base):
__tablename__ = "assets"
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
project_id: Mapped[int] = mapped_column(ForeignKey("projects.id"), nullable=False)
asset_type: Mapped[AssetType] = mapped_column(Enum(AssetType), nullable=False)
original_url: Mapped[str | None] = mapped_column(String(2048), nullable=True)
local_path: Mapped[str] = mapped_column(String(512), nullable=False)
filename: Mapped[str] = mapped_column(String(255), nullable=False)
r2_key: Mapped[str | None] = mapped_column(String(512), nullable=True)
r2_url: Mapped[str | None] = mapped_column(String(2048), nullable=True)
excluded: Mapped[bool] = mapped_column(Boolean, default=False, server_default="0")
created_at: Mapped[datetime] = mapped_column(
DateTime, default=datetime.utcnow
)
# Relationships
project = relationship("Project", back_populates="assets")