| 12345678910111213141516171819202122232425262728293031323334 |
- from __future__ import annotations
- from sqlalchemy import BigInteger, Double, Index, String, UniqueConstraint, text
- from sqlalchemy.orm import Mapped, mapped_column
- from supply_infra.db.base import Base
- class ChannelContentData(Base):
- """Daily WeChat article read-rate snapshot imported from ODPS."""
- __tablename__ = "channel_content_data"
- __table_args__ = (
- UniqueConstraint(
- "channel_content_id",
- "dt",
- name="uk_channel_content_data_content_dt",
- ),
- Index("idx_channel_content_data_dt", "dt"),
- )
- id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True)
- account_uid: Mapped[str | None] = mapped_column(
- String(128), nullable=True, comment="公众号账号UID"
- )
- channel_content_id: Mapped[str] = mapped_column(String(128), nullable=False)
- read_cnt: Mapped[float | None] = mapped_column(Double, nullable=True)
- like_cnt: Mapped[float | None] = mapped_column(Double, nullable=True)
- avg_read_cnt_30d: Mapped[float | None] = mapped_column(Double, nullable=True)
- cal_fans_num: Mapped[float | None] = mapped_column(Double, nullable=True)
- avg_read_rate: Mapped[float] = mapped_column(Double, nullable=False, server_default=text("0"))
- like_rate: Mapped[float] = mapped_column(Double, nullable=False, server_default=text("0"))
- read_rate: Mapped[float] = mapped_column(Double, nullable=False, server_default=text("0"))
- dt: Mapped[str] = mapped_column(String(8), nullable=False)
|