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 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" )