90 lines
1.7 KiB
Go
90 lines
1.7 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type SubCourseLevel string
|
|
|
|
const (
|
|
SubCourseLevelBeginner SubCourseLevel = "BEGINNER"
|
|
SubCourseLevelIntermediate SubCourseLevel = "INTERMEDIATE"
|
|
SubCourseLevelAdvanced SubCourseLevel = "ADVANCED"
|
|
)
|
|
|
|
type ContentStatus string
|
|
|
|
const (
|
|
ContentStatusDraft ContentStatus = "DRAFT"
|
|
ContentStatusPublished ContentStatus = "PUBLISHED"
|
|
ContentStatusInactive ContentStatus = "INACTIVE"
|
|
ContentStatusArchived ContentStatus = "ARCHIVED"
|
|
)
|
|
|
|
type TreeSubCourse struct {
|
|
ID int64
|
|
Title string
|
|
Level string
|
|
}
|
|
|
|
type TreeCourse struct {
|
|
ID int64
|
|
Title string
|
|
SubCourses []TreeSubCourse
|
|
}
|
|
|
|
type CourseCategory struct {
|
|
ID int64
|
|
Name string
|
|
IsActive bool
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
type Course struct {
|
|
ID int64
|
|
CategoryID int64
|
|
Title string
|
|
Description *string
|
|
Thumbnail *string
|
|
IntroVideoURL *string
|
|
IsActive bool
|
|
}
|
|
|
|
type SubCourse struct {
|
|
ID int64
|
|
CourseID int64
|
|
Title string
|
|
Description *string
|
|
Thumbnail *string
|
|
DisplayOrder int32
|
|
Level string
|
|
IsActive bool
|
|
}
|
|
|
|
type SubCourseVideo struct {
|
|
ID int64
|
|
SubCourseID int64
|
|
Title string
|
|
Description *string
|
|
VideoURL string
|
|
Duration int32
|
|
Resolution *string
|
|
InstructorID *string
|
|
Thumbnail *string
|
|
Visibility *string
|
|
DisplayOrder int32
|
|
IsPublished bool
|
|
PublishDate *time.Time
|
|
Status string
|
|
// Vimeo-specific fields
|
|
VimeoID *string
|
|
VimeoEmbedURL *string
|
|
VimeoPlayerHTML *string
|
|
VimeoStatus *string
|
|
}
|
|
|
|
type VideoHostProvider string
|
|
|
|
const (
|
|
VideoHostProviderDirect VideoHostProvider = "DIRECT"
|
|
VideoHostProviderVimeo VideoHostProvider = "VIMEO"
|
|
)
|