package domain import "strings" // ContentPublishStatus controls learner visibility for LMS hierarchy entities (programs, // courses, modules) and exam-prep hierarchy entities (catalog courses, units, unit modules, // unit module lessons). Mirrors LessonPublishStatus / PracticePublishStatus. type ContentPublishStatus string const ( ContentPublishDraft ContentPublishStatus = "DRAFT" ContentPublishPublished ContentPublishStatus = "PUBLISHED" ) // ContentPublishStatusFromDB normalizes persisted values. func ContentPublishStatusFromDB(raw string) ContentPublishStatus { switch strings.TrimSpace(strings.ToUpper(raw)) { case string(ContentPublishPublished): return ContentPublishPublished default: return ContentPublishDraft } } // ContentPublishStatusFromCreateInput resolves create body: omit → draft; explicit value validated separately. func ContentPublishStatusFromCreateInput(raw *string) ContentPublishStatus { if raw == nil || strings.TrimSpace(*raw) == "" { return ContentPublishDraft } return ContentPublishStatusFromDB(*raw) }