跳到主要内容
版本:Current

数据模型

PostgreSQL + Django ORM。Migration 数量约:accounts 12、recruitment 29、treasury 7、classroom 4、files 1、services 4、core 3。mailing 无 migration。

核心 ER(简化)​

accounts​

模型要点
Useremail 登录;USERNAME_FIELD=email
Departmentslug 唯一
Membershipadmin 全局且 department 必空;chair 必须绑部门
ApplicationProfileBU ID / 年级 / 微信 / 简历 File
ActivationCode + Redemption每用户成功兑换一次
OAuthIdentity与 allauth SocialAccount 同步
EmailNotificationPreference分类开关

recruitment​

模型要点
RecruitmentCycle招新周期
RecruitmentCycleDepartmentConfig部门是否参与该周期
DepartmentJob岗位 JD
DepartmentFormField部门问卷,跨周期复用
DepartmentEmailSettings录取/拒信文案
Application岗位级申请 + 状态机
UserCycleState志愿、offer 窗口、interest 窗口
InterviewEvent / Slot / Booking面试;Booking 含 Zoom 字段
DepartmentInterest拒绝后其他部门「感兴趣」

Application 状态:draft → submitted → interview → offered → accepted / rejected / withdrawn。占用名额状态:submitted、interview、offered。申请人可自行撤回的仅 submitted。

其他 app​

app模型
treasuryReimbursement(draft/submitted/rejected/paid)、ReimbursementItem、IncomeTransaction
classroomClassroomBookingRequest、回执 ClassroomBookingReceipt
filesFile、ApplicationAttachment
servicesDriveAccount、CssaGptAccessRequest
coreActivityLog(module/action/target + JSON metadata)