// =========================================== // 多班级版班级管理系统 - Go 后端 // // 开发者: Canglan // 联系方式: admin@sea-studio.top // 版权归属: Sea Network Technology Studio // 许可证: Apache License 2.0 // // 版权所有 © Sea Network Technology Studio // =========================================== package model import "time" // AttendanceRecord 考勤记录模型,对应 attendance_records 表 type AttendanceRecord struct { AttendanceID int `gorm:"column:attendance_id;primaryKey;autoIncrement" json:"attendance_id"` StudentID int `gorm:"column:student_id;not null" json:"student_id"` Date time.Time `gorm:"column:date;type:date;not null;index:idx_date" json:"date"` Slot string `gorm:"column:slot;type:enum('morning','afternoon','evening');default:'morning'" json:"slot"` Status string `gorm:"column:status;type:enum('present','absent','late','leave');default:'present'" json:"status"` Reason *string `gorm:"column:reason;type:varchar(255)" json:"reason"` RecorderID int `gorm:"column:recorder_id;not null" json:"recorder_id"` DeductionApplied int8 `gorm:"column:deduction_applied;default:0" json:"deduction_applied"` DeductionRecordID *int64 `gorm:"column:deduction_record_id" json:"deduction_record_id"` SemesterID *int `gorm:"column:semester_id;index:idx_attendance_semester" json:"semester_id"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"created_at"` // 虚拟字段(JOIN 查询时使用) StudentName *string `gorm:"-" json:"student_name,omitempty"` StudentNo *string `gorm:"-" json:"student_no,omitempty"` } // TableName 指定表名 func (AttendanceRecord) TableName() string { return "attendance_records" }