feat(notification): 通知标题和正文支持多语言
- 通知静态配置支持 title/body i18n - 前端通知列表和详情页展示本地化内容 - 新增数据库迁移脚本 - 更新通知协议文档
This commit is contained in:
@@ -3,12 +3,12 @@ from __future__ import annotations
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import CheckConstraint, DateTime, Index, String, Text, text
|
||||
from sqlalchemy import CheckConstraint, DateTime, Index, String, text
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
|
||||
from core.db.types import json_jsonb
|
||||
from core.db.types import json_jsonb as jsonb
|
||||
from schemas.enums import NotificationTargetMode
|
||||
|
||||
|
||||
@@ -57,10 +57,14 @@ class Notification(TimestampMixin, SoftDeleteMixin, Base):
|
||||
source_key: Mapped[str | None] = mapped_column(String(128), nullable=True)
|
||||
source_version: Mapped[int | None] = mapped_column(nullable=True)
|
||||
content_hash: Mapped[str | None] = mapped_column(String(64), nullable=True)
|
||||
title: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
body: Mapped[str] = mapped_column(Text, nullable=False)
|
||||
title: Mapped[dict[str, str]] = mapped_column(
|
||||
jsonb, nullable=False, server_default=text("'{}'::jsonb"), default=dict,
|
||||
)
|
||||
body: Mapped[dict[str, str]] = mapped_column(
|
||||
jsonb, nullable=False, server_default=text("'{}'::jsonb"), default=dict,
|
||||
)
|
||||
payload: Mapped[dict[str, object]] = mapped_column(
|
||||
json_jsonb,
|
||||
jsonb,
|
||||
nullable=False,
|
||||
server_default=text("'{}'::jsonb"),
|
||||
default=dict,
|
||||
|
||||
Reference in New Issue
Block a user