Files
likedream/internal/ent/schema/course_entity.go
T
2025-12-09 13:59:12 +08:00

56 lines
2.0 KiB
Go

package schema
import (
"likedream-goframe/internal/ent/schema/mix"
"entgo.io/ent"
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/schema"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/field"
)
type CourseEntity struct {
ent.Schema
}
// Fields of the SysUser.
func (CourseEntity) Fields() []ent.Field {
return []ent.Field{
field.Int64("user_id"),
field.String("username"), // 账号
field.String("password").Sensitive(), //密码
field.Enum("type").Values("xxt", "smartedu_sc"), // 类型:学习通、四川智慧教育
field.String("course_name"), // 课程名称
field.String("course_id"), // 课程ID
field.Enum("need").Values("task", "exam", "all"), // 需要刷的内容:任务点、考试、全部
field.Enum("status").Values("not_start", "waiting", "doing", "done", "fail", "pause").Default("not_start"), // 状态
field.Int("task_count").Default(0), // 任务点数量
field.Int("success_count").Default(0), // 成功数量
field.Enum("exam_state").Values("not_start", "waiting", "doing", "done", "fail").Default("not_start"), // 考试状态
field.Enum("violence").Values("no", "yes").Default("no"), // 是否暴力刷课
field.Text("nodes").Optional().Sensitive(), // 所有节点信息(JSON格式)
field.Text("completed_nodes").Optional().Sensitive(), // 已完成的节点ID列表(JSON格式)
field.String("desc").Optional(),
}
}
// Edges of the CpTask.
func (CourseEntity) Edges() []ent.Edge {
return []ent.Edge{
edge.From("sys_user", SysUser.Type).Ref("course_entity").Field("user_id").Unique().Required(),
}
}
func (CourseEntity) Annotations() []schema.Annotation {
return []schema.Annotation{
entsql.Annotation{Table: "course_entity"},
}
}
func (CourseEntity) Mixin() []ent.Mixin {
return []ent.Mixin{
mix.MixinTime{},
}
}