feat: simplify materials library and use real metadata
This commit is contained in:
@@ -49,6 +49,8 @@ export const courseSelect = (publicOnly = false, includeUnreadyMedia = false) =>
|
||||
'name', a.name,
|
||||
'kind', a.kind,
|
||||
'url', a.url,
|
||||
'sizeBytes', a.size_bytes,
|
||||
'createdAt', a.created_at,
|
||||
'description', a.description,
|
||||
'accessLevel', a.access_level
|
||||
) order by a.created_at)
|
||||
@@ -81,6 +83,8 @@ export const courseSelect = (publicOnly = false, includeUnreadyMedia = false) =>
|
||||
'name', a.name,
|
||||
'kind', a.kind,
|
||||
'url', a.url,
|
||||
'sizeBytes', a.size_bytes,
|
||||
'createdAt', a.created_at,
|
||||
'description', a.description,
|
||||
'accessLevel', a.access_level
|
||||
) order by a.created_at)
|
||||
|
||||
@@ -20,6 +20,7 @@ const assetSchema = z.object({
|
||||
name: z.string().trim().min(1).max(255),
|
||||
kind: z.enum(['document', 'spreadsheet', 'archive', 'image', 'link']),
|
||||
url: z.string().url(),
|
||||
sizeBytes: z.number().int().nonnegative().nullable().optional(),
|
||||
description: z.string().max(2000).default(''),
|
||||
accessLevel: z.enum(['public', 'enrolled']).default('enrolled'),
|
||||
});
|
||||
@@ -85,9 +86,9 @@ async function uniqueSlug(client: PoolClient, requestedSlug: string | undefined,
|
||||
async function insertAssets(client: PoolClient, parent: { courseId?: string; lessonId?: string }, assets: CourseInput['assets']) {
|
||||
for (const asset of assets) {
|
||||
await client.query(
|
||||
`insert into assets (course_id, lesson_id, name, kind, url, description, access_level)
|
||||
values ($1, $2, $3, $4, $5, $6, $7)`,
|
||||
[parent.courseId ?? null, parent.lessonId ?? null, asset.name, asset.kind, asset.url, asset.description, asset.accessLevel],
|
||||
`insert into assets (course_id, lesson_id, name, kind, url, size_bytes, description, access_level)
|
||||
values ($1, $2, $3, $4, $5, $6, $7, $8)`,
|
||||
[parent.courseId ?? null, parent.lessonId ?? null, asset.name, asset.kind, asset.url, asset.sizeBytes ?? null, asset.description, asset.accessLevel],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user