56 lines
2.0 KiB
Go
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{},
|
|
}
|
|
}
|