fix:小组件- PUSH
This commit is contained in:
63
server/app/db/models/push_preference.py
Normal file
63
server/app/db/models/push_preference.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import Boolean, DateTime, JSON, SmallInteger, String, func
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from app.db.base import Base
|
||||
|
||||
|
||||
class PushPreference(Base):
|
||||
"""
|
||||
用户推送偏好(以 client_user_id 为主键)。
|
||||
"""
|
||||
|
||||
__tablename__ = "push_preferences"
|
||||
|
||||
client_user_id: Mapped[str] = mapped_column(
|
||||
String(length=64),
|
||||
primary_key=True,
|
||||
comment="客户端用户标识(UUID)",
|
||||
)
|
||||
|
||||
enabled: Mapped[bool] = mapped_column(
|
||||
Boolean,
|
||||
nullable=False,
|
||||
server_default="0",
|
||||
comment="是否开启每日提醒(enabled=false 或 times_per_day=0 均视为关闭)",
|
||||
)
|
||||
|
||||
times_per_day: Mapped[int] = mapped_column(
|
||||
SmallInteger,
|
||||
nullable=False,
|
||||
server_default="0",
|
||||
comment="每天推送次数(0~5)",
|
||||
)
|
||||
|
||||
timezone: Mapped[str | None] = mapped_column(
|
||||
String(length=64),
|
||||
nullable=True,
|
||||
comment="IANA 时区(例如 Asia/Shanghai),来自客户端上报",
|
||||
)
|
||||
|
||||
locale: Mapped[str | None] = mapped_column(
|
||||
String(length=32),
|
||||
nullable=True,
|
||||
comment="客户端语言(例如 zh-CN/en/zh-TW),用于文案语言选择",
|
||||
)
|
||||
|
||||
user_profile_json: Mapped[dict | None] = mapped_column(
|
||||
JSON,
|
||||
nullable=True,
|
||||
comment="用户画像(V1.2;可选)。用于 Push 场景推荐文案生成。",
|
||||
)
|
||||
|
||||
updated_at: Mapped[datetime] = mapped_column(
|
||||
DateTime,
|
||||
nullable=False,
|
||||
server_default=func.now(),
|
||||
server_onupdate=func.now(),
|
||||
comment="更新时间",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user