Files
video-gen/video-gen-api/app/models/pre_test_template.py
2026-06-16 17:40:26 +08:00

70 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from datetime import datetime
from typing import Optional
from sqlalchemy import Boolean, DateTime, ForeignKey, Integer, String, Text
from sqlalchemy.orm import Mapped, mapped_column
from app.models.base import Base, TimestampMixin, SoftDeleteMixin
class PreTestTemplate(Base, TimestampMixin, SoftDeleteMixin):
__tablename__ = "pre_test_template"
id: Mapped[str] = mapped_column(
String(32), primary_key=True, comment="主键"
)
name: Mapped[str] = mapped_column(
String(128), nullable=False, comment="模板名称"
)
user_id: Mapped[str] = mapped_column(
String(32), nullable=False, index=True, comment="用户id"
)
note: Mapped[Optional[str]] = mapped_column(
Text, nullable=True, comment="模板备注"
)
platform: Mapped[Optional[str]] = mapped_column(
String(32), nullable=True, comment="投放平台(AD/QIANCHUAN/LOCAL"
)
external_action: Mapped[Optional[str]] = mapped_column(
String(64), nullable=True, comment="转化目标"
)
cpa_bid: Mapped[Optional[float]] = mapped_column(
nullable=True, comment="目标转化成本:[1, 10000]"
)
audience_gender: Mapped[Optional[str]] = mapped_column(
String(16), nullable=True, comment="性别(ALL/MALE/FEMALE"
)
audience_age: Mapped[Optional[str]] = mapped_column(
Text, nullable=True, comment="受众年龄,JSON数组, 格式:[ALL,18-23, 24-30, 31-40, 41-49, 50+]"
)
audience_region: Mapped[Optional[str]] = mapped_column(
Text, nullable=True, comment="受众地区,JSON数组(二级行政区域code)"
)
audience_network: Mapped[Optional[str]] = mapped_column(
Text, nullable=True, comment="网络类型,JSON数组, 格式:[ALL,5G,4G,3G,2G,WIFI]"
)
cus_name: Mapped[Optional[str]] = mapped_column(
String(256), nullable=True, comment="客户主体名称"
)
pricing_type: Mapped[Optional[str]] = mapped_column(
String(16), nullable=True, comment="出价类型(OCPC/CPA/OCPM"
)
cost_cap: Mapped[Optional[bool]] = mapped_column(
Boolean, nullable=True, comment="是否最优成本出价(仅AD支持)"
)
target_cost: Mapped[Optional[bool]] = mapped_column(
Boolean, nullable=True, comment="是否稳定成本出价(仅AD支持)"
)
nobid: Mapped[Optional[bool]] = mapped_column(
Boolean, nullable=True, comment="是否最大转化出价(仅AD支持)"
)
cpc_bid: Mapped[Optional[float]] = mapped_column(
nullable=True, comment="目标点击成本:[1, 10000]"
)
budget: Mapped[Optional[float]] = mapped_column(
nullable=True, comment="预算金额:[1, 10000]"
)
is_default: Mapped[Optional[bool]] = mapped_column(
Boolean, nullable=True, comment="是否默认模板"
)