chore: fork from IRIS track 供 LICA 部门独立运行
- 复制来源: /home/yueli/track @ 192c8ee (feature/ai-audit-update) - 组织隔离目标: LICA - 端口规划: 前端 8030 / 后端 8031 / 数据库 8032 - 已排除 deploy.sh、deploy_full.sh、docker-compose.prod.yml(IRIS 生产发布脚本) - 已排除工作区未提交改动,取干净的 192c8ee 状态
This commit is contained in:
53
backend/app/models/notification.py
Normal file
53
backend/app/models/notification.py
Normal file
@ -0,0 +1,53 @@
|
||||
"""通知模型 — 任务转交/驳回等事件的消息提醒"""
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from sqlalchemy import String, DateTime, Boolean, ForeignKey, Text
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from app.models.base import Base
|
||||
from app.core.time_utils import get_beijing_time
|
||||
|
||||
# 通知类型常量
|
||||
NOTIFY_TRANSFER = "TRANSFER" # 新任务派发/转交
|
||||
NOTIFY_REJECT = "REJECT" # 品质驳回
|
||||
NOTIFY_COMMENT = "COMMENT" # 留言提醒
|
||||
|
||||
|
||||
class Notification(Base):
|
||||
__tablename__ = "notifications"
|
||||
|
||||
id: Mapped[uuid.UUID] = mapped_column(
|
||||
UUID(as_uuid=True), primary_key=True, default=uuid.uuid4,
|
||||
)
|
||||
|
||||
user_id: Mapped[str] = mapped_column(
|
||||
String(64), nullable=False, index=True, comment="接收人ID(逻辑外键→老系统)",
|
||||
)
|
||||
|
||||
title: Mapped[str] = mapped_column(
|
||||
String(200), nullable=False, comment="通知标题",
|
||||
)
|
||||
|
||||
content: Mapped[str] = mapped_column(
|
||||
Text, nullable=False, comment="通知内容详情",
|
||||
)
|
||||
|
||||
type: Mapped[str] = mapped_column(
|
||||
String(20), nullable=False, comment="通知类型: TRANSFER(转交派发) | REJECT(驳回)",
|
||||
)
|
||||
|
||||
task_id: Mapped[uuid.UUID | None] = mapped_column(
|
||||
UUID(as_uuid=True), ForeignKey("tasks.id", ondelete="SET NULL"), nullable=True, comment="关联任务ID",
|
||||
)
|
||||
|
||||
is_read: Mapped[bool] = mapped_column(
|
||||
Boolean, default=False, comment="是否已读",
|
||||
)
|
||||
|
||||
created_at: Mapped[datetime] = mapped_column(
|
||||
DateTime(timezone=True), default=get_beijing_time, comment="创建时间",
|
||||
)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"<Notification {self.type} → {self.user_id}>"
|
||||
Reference in New Issue
Block a user