Yimaru-BackEnd/internal/domain/courses.go

92 lines
1.8 KiB
Go

package domain
import "time"
type CourseCategory struct {
ID int64
Name string // "Learning English", "Other Courses"
IsActive bool
CreatedAt time.Time
}
type Course struct {
ID int64
CategoryID int64
Title string
Description string
IsActive bool
}
type Program struct {
ID int64
CourseID int64
Title string
Description string
Thumbnail string
Order int // ordering inside course
IsActive bool
}
type Level struct {
ID int64
ProgramID int64
Title string // "Beginner", "Level 1"
Description string
LevelIndex int // 1,2,3...
NumberOfModules int
NumberOfPractices int
NumberOfVideos int
IsActive bool
}
type Module struct {
ID int64
LevelID int64
Title string
Content string
Order int
IsActive bool
}
type ModuleVideo struct {
ID int64
ModuleID int64
Title string
Description string
VideoURL string
Duration int // seconds
Resolution string // "720p", "1080p"
PublishSettings PublishSettings
IsActive bool
InstructorId string
Thumbnail string
}
type PublishSettings struct {
IsPublished bool
PublishDate time.Time
Visibility string // "public", "private", "unlisted"
}
type Practice struct {
ID int64
OwnerType string // "LEVEL" | "MODULE"
OwnerID int64
Title string
Description string
BannerImage string
Persona string
IsActive bool
}
type PracticeQuestion struct {
ID int64
PracticeID int64
Question string
QuestionVoicePrompt string
SampleAnswerVoicePrompt string
SampleAnswer string
Tips string
Type string // MCQ, TRUE_FALSE, SHORT
}