Extend DRAFT/PUBLISHED to programs, courses, modules, and exam-prep hierarchy entities with learner visibility gating and progress exclusion. Resolve question_type_definition_id in question responses for legacy system types and unlinked dynamic questions. Co-authored-by: Cursor <cursoragent@cursor.com>
18 lines
821 B
Go
18 lines
821 B
Go
package ports
|
|
|
|
import (
|
|
"Yimaru-Backend/internal/domain"
|
|
"context"
|
|
)
|
|
|
|
type CourseStore interface {
|
|
CreateCourse(ctx context.Context, programID int64, input domain.CreateCourseInput) (domain.Course, error)
|
|
GetCourseByID(ctx context.Context, id int64) (domain.Course, error)
|
|
ListCoursesByProgramID(ctx context.Context, programID int64, publishedOnly bool, limit, offset int32) ([]domain.Course, int64, error)
|
|
ListCourseIDsByProgram(ctx context.Context, programID int64) ([]int64, error)
|
|
ListPublishedCourseIDsByProgram(ctx context.Context, programID int64) ([]int64, error)
|
|
ReorderCoursesInProgram(ctx context.Context, programID int64, orderedIDs []int64) error
|
|
UpdateCourse(ctx context.Context, id int64, input domain.UpdateCourseInput) (domain.Course, error)
|
|
DeleteCourse(ctx context.Context, id int64) error
|
|
}
|