17455b405c
This reverts commit 91e5cdefbb.
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
"""
|
|
素材主表模型
|
|
============
|
|
|
|
空镜视频片段的元数据中心,一行代表一个素材。
|
|
|
|
素材直接挂载在三级分类(mjk_categories.level=3)下,
|
|
匹配时通过 category_id 精确关联到具体场景分类。
|
|
"""
|
|
|
|
from sqlalchemy import BigInteger, ForeignKey, String
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from app.models.base import BaseModelBigInt
|
|
|
|
|
|
class BrollMaterial(BaseModelBigInt):
|
|
"""空镜素材主表"""
|
|
|
|
__tablename__ = "mjk_materials"
|
|
|
|
category_id: Mapped[int] = mapped_column(
|
|
BigInteger,
|
|
ForeignKey("mjk_categories.id"),
|
|
nullable=False,
|
|
comment="所属三级分类ID,关联 mjk_categories",
|
|
)
|
|
|
|
title: Mapped[str] = mapped_column(
|
|
String(256),
|
|
nullable=False,
|
|
comment="素材标题/文件名,运营后台识别用",
|
|
)
|
|
|
|
url: Mapped[str] = mapped_column(
|
|
String(1024),
|
|
nullable=False,
|
|
comment="七牛云 CDN 访问地址,FFmpeg合成和前端播放直接使用",
|
|
)
|
|
|
|
duration: Mapped[float] = mapped_column(
|
|
default=0,
|
|
nullable=False,
|
|
comment="视频时长(秒),FFmpeg probe 提取,入库时必须大于0",
|
|
)
|
|
|
|
usage_count: Mapped[int] = mapped_column(
|
|
BigInteger,
|
|
default=0,
|
|
nullable=False,
|
|
comment="累计使用次数,驱动加权随机算法",
|
|
)
|
|
|
|
status: Mapped[str] = mapped_column(
|
|
String(16),
|
|
default="active",
|
|
nullable=False,
|
|
comment="状态:active(可用)/ disabled(下架)/ deleted(软删除)",
|
|
)
|