chore: initial baseline with P0-safety .gitignore

This commit is contained in:
Simon
2026-06-14 16:49:18 +08:00
commit 63262292d7
510 changed files with 146008 additions and 0 deletions
@@ -0,0 +1,58 @@
"""add participants field to conversations table
为会话表添加 participants JSON 字段,支持邀请功能(P0-09~P0-11)。
与 collaborating_agent_ids(摇人 = 坐席间协作)独立,
participants 存储被邀请的员工/部门列表。
新增字段:
- participants: JSON, 非空, 默认空列表, 被邀请参与会话的人员列表
数据格式:
[
{
"id": "employee_user_id",
"name": "员工姓名",
"department": "部门名称",
"type": "employee", # employee 或 department
"joined": false, # 是否已加入会话
"joined_at": null, # 加入时间
"invited_by": "agent_id" # 邀请人坐席ID
}
]
Revision ID: 004_participants
Revises: 003_suggestion_action
Create Date: 2026-07-14 14:00:00.000000
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '004_participants'
down_revision = '003_suggestion_action'
branch_labels = None
depends_on = None
def upgrade() -> None:
"""添加 participants 字段到 conversations 表。"""
# 被邀请参与会话的人员列表(JSON 数组)
# 与 collaborating_agent_ids 区别:
# collaborating_agent_ids = 坐席→坐席协作(摇人)
# participants = 坐席→员工/部门(邀请)
op.add_column(
'conversations',
sa.Column(
'participants',
sa.JSON,
nullable=False,
server_default='[]', # 默认空数组
comment='被邀请参与会话的人员列表(邀请功能)',
)
)
def downgrade() -> None:
"""移除 participants 字段。"""
op.drop_column('conversations', 'participants')