// =========================================== // 多班级版班级管理系统 - Go 后端 // // 开发者: Canglan // 联系方式: admin@sea-studio.top // 版权归属: Sea Network Technology Studio // 许可证: Apache License 2.0 // // 版权所有 © Sea Network Technology Studio // =========================================== package model import "time" // ConductRecord 操行分记录模型,对应 conduct_records 表 type ConductRecord struct { RecordID int64 `gorm:"column:record_id;primaryKey;autoIncrement" json:"record_id"` StudentID int `gorm:"column:student_id;not null;index:idx_conduct_student;index:idx_student_created" json:"student_id"` PointsChange int `gorm:"column:points_change;not null" json:"points_change"` Reason string `gorm:"column:reason;type:varchar(255);not null" json:"reason"` RecorderID int `gorm:"column:recorder_id;not null;index:idx_recorder_id" json:"recorder_id"` RecorderName *string `gorm:"column:recorder_name;type:varchar(50)" json:"recorder_name"` RelatedType string `gorm:"column:related_type;type:enum('manual','homework','attendance');default:'manual'" json:"related_type"` RelatedID *int `gorm:"column:related_id" json:"related_id"` IsRevoked int8 `gorm:"column:is_revoked;default:0" json:"is_revoked"` RevokedBy *int `gorm:"column:revoked_by" json:"revoked_by"` RevokedAt *time.Time `gorm:"column:revoked_at" json:"revoked_at"` SemesterID *int `gorm:"column:semester_id;index:idx_conduct_semester;index:idx_conduct_type_semester" json:"semester_id"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime;index:idx_student_created" json:"created_at"` // 虚拟字段(JOIN 查询时使用) StudentName *string `gorm:"-" json:"student_name,omitempty"` StudentNo *string `gorm:"-" json:"student_no,omitempty"` RecorderReal *string `gorm:"-" json:"recorder_real,omitempty"` RevokerName *string `gorm:"-" json:"revoker_name,omitempty"` TotalPoints *int `gorm:"-" json:"total_points,omitempty"` ClassID *int `gorm:"-" json:"class_id,omitempty"` } // TableName 指定表名 func (ConductRecord) TableName() string { return "conduct_records" }