38 lines
2.3 KiB
Go
38 lines
2.3 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// Course 课程模型
|
|
type Course struct {
|
|
ID string `gorm:"type:uuid;primaryKey;column:id" json:"id"` // 课程ID
|
|
ClassName string `gorm:"type:varchar(255);not null;column:classname" json:"classname"` // 班级名称
|
|
ClassNameID string `gorm:"type:uuid;not null;column:classname_id" json:"classname_id"` // 班级ID
|
|
Course string `gorm:"type:varchar(255);not null;column:course" json:"course"` // 课程名称
|
|
Teacher string `gorm:"type:varchar(255);not null;column:teacher" json:"teacher"` // 授课老师
|
|
Classroom string `gorm:"type:varchar(255);not null;column:classroom" json:"classroom"` // 教室名称
|
|
ClassroomID string `gorm:"type:uuid;not null;column:classroom_id" json:"classroom_id"` // 教室ID
|
|
Week int `gorm:"not null;column:week" json:"week"` // 周次
|
|
Day int `gorm:"not null;column:day" json:"day"` // 星期几
|
|
ClassTime int `gorm:"not null;column:classTime" json:"classTime"` // 第几节课
|
|
StartTime time.Time `gorm:"type:datetime;not null;column:startTime" json:"startTime"` // 开始时间
|
|
StartStamp float64 `gorm:"not null;column:startStamp" json:"startStamp"` // 开始时间戳
|
|
EndTime time.Time `gorm:"type:datetime;not null;column:endTime" json:"endTime"` // 结束时间
|
|
EndStamp float64 `gorm:"not null;column:endStamp" json:"endStamp"` // 结束时间戳
|
|
CampusID string `gorm:"type:uuid;not null;column:campus_id" json:"campus_id"` // 校区ID
|
|
Campus string `gorm:"type:varchar(255);not null;column:campus" json:"campus"` // 校区名称
|
|
BuildID string `gorm:"type:uuid;not null;column:build_id" json:"build_id"` // 教学楼ID
|
|
Build string `gorm:"type:varchar(255);not null;column:build" json:"build"` // 教学楼名称
|
|
Status int `gorm:"not null;column:status" json:"status"` // 状态
|
|
}
|
|
|
|
// BeforeCreate 在创建Course之前生成UUID
|
|
func (course *Course) BeforeCreate(tx *gorm.DB) (err error) {
|
|
course.ID = uuid.New().String()
|
|
return
|
|
}
|