2015-08-29 10:15:35 -04:00
|
|
|
c = require './../schemas'
|
|
|
|
|
|
|
|
CourseSchema = c.object {title: 'Course', required: ['name']}
|
|
|
|
c.extendNamedProperties CourseSchema # name first
|
|
|
|
|
|
|
|
_.extend CourseSchema.properties,
|
|
|
|
campaignID: c.objectId()
|
|
|
|
concepts: c.array {title: 'Programming Concepts', uniqueItems: true}, c.concept
|
|
|
|
description: {type: 'string'}
|
2015-09-25 18:28:43 -04:00
|
|
|
duration: {type: 'number', description: 'Approximate hours of content'}
|
2015-11-03 17:00:51 -05:00
|
|
|
pricePerSeat: {type: 'number', description: 'Price per seat in USD cents.'} # deprecated
|
|
|
|
free: { type: 'boolean' }
|
2015-08-29 10:15:35 -04:00
|
|
|
screenshot: c.url {title: 'URL', description: 'Link to course screenshot.'}
|
2016-07-22 19:37:53 -04:00
|
|
|
adminOnly: { type: 'boolean', description: 'Deprecated in favor of releasePhase.' }
|
|
|
|
releasePhase: { type: {enum: ['beta', 'released'] }, description: "How far along the course's development is, determining who sees it." }
|
2015-08-29 10:15:35 -04:00
|
|
|
|
|
|
|
c.extendBasicProperties CourseSchema, 'Course'
|
|
|
|
|
|
|
|
module.exports = CourseSchema
|