Files
AI-Secretary/docs/contracts/数据对象约定.md
T
2026-06-22 16:27:57 +08:00

9.4 KiB

数据对象约定

本文件是核心表、字段、外键关系和状态字段的唯一事实源。Django model、serializer、接口返回和测试用例中的字段应与本文件一致。

1. 通用字段

多数业务表使用:

字段 说明
id 主键,建议 bigint 或 uuid
created_at 创建时间
updated_at 更新时间
created_by 创建人,可为空时必须说明来源
updated_by 最后修改人
deleted_at 软删除时间,可选
remark 备注,可选

第一版建议使用软删除,避免误删过程记录。

2. users

平台登录、角色判断和数据范围控制。Django 项目初始化时建议使用自定义用户模型。

字段 说明
id 用户 ID
username 登录名或内部唯一标识
name 显示姓名
role bossmanageremployeeadmin
phone 手机号,可选,普通日志需脱敏
email 邮箱,可选,普通日志需脱敏
feishu_open_id 飞书 open_id,可选
feishu_user_id 飞书 user_id,可选
feishu_union_id 飞书 union_id,可选
auth_provider localfeishu
last_login_channel platformfeishu_scanfeishu_in_app
status activedisabled
last_login_at 最后登录时间

3. person_mappings

把老板输入中的姓名、称呼、部门或角色映射到平台用户和飞书身份。

字段 说明
id 映射 ID
user_id 关联平台用户,可选
display_name 标准姓名
aliases JSON 数组,例如 ["东东", "CJN"]
department 部门
business_role 业务角色,例如行政、程经理、下单员
phone 手机号,可选
email 邮箱,可选
feishu_open_id 飞书 open_id
feishu_user_id 飞书 user_id,可选
feishu_union_id 飞书 union_id,可选
mapping_status pendingresolvedfailed
is_trial_user 是否第一批试用人员
note 备注

4. feishu_auth_sessions

记录飞书登录过程和平台用户绑定结果。

字段 说明
id 会话 ID
state OAuth state 或登录状态标识
feishu_open_id 飞书 open_id
feishu_user_id 飞书 user_id
feishu_union_id 飞书 union_id,可选
matched_user_id 匹配到的平台用户
login_channel feishu_scanfeishu_in_app
status pendingsuccessfailed
failure_reason 失败原因
completed_at 完成时间

5. bot_contexts

记录老板机器人私聊中的补充/重说上下文。

字段 说明
id 上下文 ID
user_id 平台用户 ID,第一版应为老板
feishu_open_id 飞书发送人 open_id
current_draft_id 等待补充的草稿 ID
status idleawaiting_follow_upexpiredclosed
expires_at 补充/重说有效期,默认 30 分钟
last_message_id 最近一条飞书消息 ID
last_message_text 最近一条消息内容

6. prompt_contexts

维护 AI 秘书调用模型时加载的上下文版本。

字段 说明
id 上下文 ID
context_type company_backgroundboss_stylebusiness_rules
version 版本号
title 标题
content 实际使用的摘要或规则文本
status draftactivearchived
activated_at 启用时间
created_by 创建人

模型调用日志只保存本次使用的摘要、版本号和必要规则,避免反复保存完整背景库全文。

7. ai_drafts

保存 AI 从一句话整理出的可确认草稿。

字段 说明
id 草稿 ID
source platformfeishu_bot
created_by 发起人
raw_input 原始输入
draft_type taskreminderqarealtime_qanoteunknown
status 见状态流转约定
title 草稿标题
content 事项或提醒内容
receiver_candidates JSON,接收人候选和置信度
scheduled_time 提醒或期望处理时间,可为空
repeat_rule nonedailyweeklymonthly
requires_feedback 是否需要反馈
route_type direct_notifymanager_confirmneeds_clarification
missing_fields JSON 数组
follow_up_questions JSON 数组,最多 3 个
answer qa / realtime_qa 的回答
parent_draft_id 补充/重说生成的新草稿指向上一版
model_call_log_id 关联模型调用日志

8. model_call_logs

记录模型输入输出、模型名、耗时和结果。

字段 说明
id 日志 ID
provider bailian
model_name 模型名
prompt_context_snapshot 本次使用的上下文版本和摘要
request_payload 请求摘要,避免保存密钥
raw_response 模型原始响应
parsed_json 解析后的 JSON
status successfailed
failure_reason 失败原因
latency_ms 耗时
created_by 调用发起人

9. tasks

需要接收人处理并反馈的事情。

字段 说明
id 事项 ID
source_draft_id 来源草稿,可选
title 标题
content 事项内容
initiator_id 发起人
receiver_id 接收人
manager_id 复杂事项确认人,可选
status 见状态流转约定
visible_feedback_status receivedin_progresscompletedproblem
requires_feedback 是否需要反馈
due_at 截止或期望反馈时间,可选
confirmed_at 确认时间
notified_at 通知时间
completed_at 完成时间
problem_reason 有问题原因,可选

10. reminders

未来某个时间触发的提醒。

字段 说明
id 提醒 ID
source_draft_id 来源草稿,可选
related_task_id 关联事项,可选
title 标题
content 提醒内容
initiator_id 发起人
receiver_id 接收人
status 见状态流转约定
remind_at 首次提醒时间
next_trigger_at 下一次触发时间
repeat_rule nonedailyweeklymonthly
requires_feedback 是否需要反馈
last_triggered_at 最近触发时间
cancelled_at 取消时间

11. notifications

飞书或平台内通知发送记录。

字段 说明
id 通知 ID
target_type ai_drafttaskreminderfailure_record
target_id 关联对象 ID
receiver_id 接收人
channel feishuplatform
message_type textcard
summary 通知摘要
link_url 平台详情链接
status pendingsentfailedretryingcancelled
idempotency_key 幂等键
feishu_message_id 飞书消息 ID
sent_at 发送时间
failure_reason 失败原因

12. feedbacks

接收人的反馈状态和问题原因。

字段 说明
id 反馈 ID
target_type taskreminder
target_id 关联对象 ID
feedback_by 反馈人
status receivedin_progresscompletedproblem
problem_reason 有问题原因,problem 时必填
source feishu_cardplatform
notification_id 关联通知
created_at 反馈时间

13. failure_records

AI、通知、回调、调度等失败原因。

字段 说明
id 失败记录 ID
failure_type 见状态流转约定中的失败类型
target_type 关联对象类型
target_id 关联对象 ID
status pendingprocessingresolvedcancelled
reason 失败原因
raw_error 原始错误摘要,不含密钥
need_manager_sync 是否需要同步程经理
handled_by 处理人
handled_at 处理时间
handle_result 处理结果

14. operation_logs

人工确认、修改、取消、补发等过程留痕。

字段 说明
id 日志 ID
actor_id 操作人
action 动作
target_type 对象类型
target_id 对象 ID
channel platformfeishu_botfeishu_cardscheduleradmin
result successfailed
summary 操作摘要
metadata JSON,避免敏感明文
created_at 操作时间

15. feishu_events

飞书回调原始事件和处理结果。

字段 说明
id 事件 ID
event_id 飞书事件 ID
event_type 事件类型
operator_open_id 操作人 open_id
action_value 按钮值
target_type ai_drafttaskreminderauthbot
target_id 关联业务对象
notification_id 关联通知
raw_payload 原始事件
process_status pendingprocessedfailedignored
process_result 处理结果
created_at 接收时间

16. 敏感字段规则

  1. phoneemail 可入库,但普通日志和普通列表接口默认脱敏。
  2. API Key、App Secret、飞书 token 不得入库到业务表或普通日志。
  3. raw_errormetadatarequest_payload 必须避免密钥和完整个人联系方式。
  4. 飞书通知内容只保存和发送摘要,不展开敏感全文。