Files
gongxue-base/apps/server/src/entities/index.ts
wangziqi 42d3f0e27f feat: DingTalk attendance import + integration config + expense types + UI polish
Server:
- Add DingTalk attendance import service with SSE progress streaming
- Add IntegrationConfig entity & module for multi-tenant DingTalk setup
- Add ExpenseType entity & ExpenseTypesModule
- Add SeedModule for DB initialization
- Add UserDingMapping entity for DingTalk user linkage
- Attendance service: import flow with dedup & student auto-mapping
- Rooms service: time-range overlap queries
- Sync controller/service: DingTalk integration wiring
- Permission guard: refactor to pure re-export
- Campus scope middleware: tenant-aware filtering

Admin UI:
- Attendance page: import UI with progress & result summary
- All pages: tableStyle/tablePagination standardization
- Login page: responsive styling
- Sensitive data: useViewSensitive hook for masked viewing
- Vite config: path aliases, build optimization
- Test infra: vitest config, test utilities

Docs: PRD DingTalk batch 1 & 2 design docs
2026-07-09 09:11:56 +08:00

37 lines
1.9 KiB
TypeScript

export { Student } from './student.entity';
export { Room } from './room.entity';
export { Occupancy } from './occupancy.entity';
export { RoomExpense } from './room-expense.entity';
export { PersonalExpense } from './personal-expense.entity';
export { Bill } from './bill.entity';
export { BillItem } from './bill-item.entity';
export { User } from './user.entity';
export { OperationLog } from './operation-log.entity';
export { Deposit } from './deposit.entity';
export { DepositInstallment } from './deposit-installment.entity';
export { Classroom } from './classroom.entity';
export { Tenant } from './tenant.entity';
export { ClassroomRental } from './classroom-rental.entity';
export { Permission } from './permission.entity';
export { Role } from './role.entity';
export { Class, ClassType, ClassStatus } from './class.entity';
export { ClassStudent } from './class-student.entity';
export { ClassTeacher, TeacherRoleType } from './class-teacher.entity';
export { ClassSchedule, ScheduleType } from './class-schedule.entity';
export { AttendanceRecord } from './attendance-record.entity';
export { DingAttendanceRaw } from './ding-attendance-raw.entity';
export { SyncLog } from './sync-log.entity';
export { SyncState } from './sync-state.entity';
export { ExpenseType } from './expense-type.entity';
export { Notification, NotificationType } from './notification.entity';
export { Department, DepartmentType } from './department.entity';
export { UserDepartment } from './user-department.entity';
export { StudentProfile } from './student-profile.entity';
export { StudentEnrollment } from './student-enrollment.entity';
export { ExamScore } from './exam-score.entity';
export { LearningRecord } from './learning-record.entity';
export { ResultArchive } from './result-archive.entity';
export { ArchiveAttachment } from './archive-attachment.entity';
export { StudentReport } from './student-report.entity';
export { UserDingMapping } from './user-ding-mapping.entity';