tables.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // 表清单 + 枚举/表名总览(academic 域 27 表装配入口)。
  2. //
  3. // 用途:装配层(cmd/api/main.go,AC-14 接线)与集成测试把本域全表合并进
  4. // `infra/db.Migrate`(AutoMigrate 幂等建表,guarded by UNIFIED_AUTO_MIGRATE=1)。
  5. //
  6. // 表清单与 unified/02-data-model/academic-model-ddl.sql 一一对应(顺序与该 DDL 的建表顺序一致):
  7. //
  8. // 第一部分 资金账户与流水(6):t_user_expense / t_user_expense_school / t_user_expense_log /
  9. // t_user_balance_request / t_order_pay / t_payment_log
  10. // 第二部分 活动(7):t_courses_activity / _signed / _user_discount / _user_discount_log /
  11. // _used_log / _request / _visit
  12. // 第三部分 分账(2):t_user_divide_into / t_user_divide_into_log
  13. // 第四部分 课程/排班/打卡(6):t_courses / _classify / _class / _student / _record / _record_student
  14. // 第五部分 课酬与支出(6):t_course_payment / _detail / t_teacher_information /
  15. // t_teacher_courses_percentage / t_expenditure / t_expenditure_log
  16. //
  17. // 7 张旧 UUID 主键表(设计 §2.2 / §11.1 拍板 11-10):一律 int64 自增主键 + biz_no varchar(32) UNIQUE
  18. // 保留旧 UUID —— t_user_balance_request / t_order_pay / t_payment_log / t_courses_activity_request /
  19. // t_courses_student / t_courses_record / t_courses_record_student。
  20. package model
  21. // AllTables 返回 academic 域全部 model 指针切片(27 张表,供装配层传入 infra/db.Migrate)。
  22. //
  23. // 出参:[]any——27 个 *struct 指针;**每次调用返回新切片**(调用方可安全 append,
  24. // 不会污染其他调用方持有的切片底层数组,backend-model-field-spec.md §1.8)。
  25. //
  26. // 说明:本函数不读取任何全局状态、无副作用;重复调用结果等价(顺序固定,便于测试断言)。
  27. func AllTables() []any {
  28. return []any{
  29. // 第一部分:资金账户与流水(6 表)
  30. &UserExpense{},
  31. &UserExpenseSchool{},
  32. &UserExpenseLog{},
  33. &UserBalanceRequest{},
  34. &OrderPay{},
  35. &PaymentLog{},
  36. // 第二部分:活动(7 表)
  37. &CoursesActivity{},
  38. &CoursesActivitySigned{},
  39. &CoursesActivityUserDiscount{},
  40. &CoursesActivityUserDiscountLog{},
  41. &CoursesActivityUsedLog{},
  42. &CoursesActivityRequest{},
  43. &CoursesActivityVisit{},
  44. // 第三部分:分账(2 表)
  45. &UserDivideInto{},
  46. &UserDivideIntoLog{},
  47. // 第四部分:课程 / 班级 / 排班 / 打卡(6 表)
  48. &Courses{},
  49. &CoursesClassify{},
  50. &CoursesClass{},
  51. &CoursesStudent{},
  52. &CoursesRecord{},
  53. &CoursesRecordStudent{},
  54. // 第五部分:课酬与支出(6 表)
  55. &CoursePayment{},
  56. &CoursePaymentDetail{},
  57. &TeacherInformation{},
  58. &TeacherCoursesPercentage{},
  59. &Expenditure{},
  60. &ExpenditureLog{},
  61. }
  62. }