56 lines
1.1 KiB
SQL
56 lines
1.1 KiB
SQL
-- name: CreateModuleVideo :one
|
|
INSERT INTO module_videos (
|
|
module_id,
|
|
title,
|
|
description,
|
|
video_url,
|
|
duration,
|
|
resolution,
|
|
instructor_id,
|
|
thumbnail,
|
|
visibility,
|
|
is_active
|
|
)
|
|
VALUES (
|
|
$1, $2, $3, $4, $5, $6,
|
|
$7, $8, $9,
|
|
COALESCE($10, true)
|
|
)
|
|
RETURNING *;
|
|
|
|
|
|
-- name: PublishModuleVideo :exec
|
|
UPDATE module_videos
|
|
SET
|
|
is_published = true,
|
|
publish_date = CURRENT_TIMESTAMP
|
|
WHERE id = $1;
|
|
|
|
|
|
-- name: GetPublishedVideosByModule :many
|
|
SELECT *
|
|
FROM module_videos
|
|
WHERE module_id = $1
|
|
AND is_published = true
|
|
AND is_active = true
|
|
ORDER BY publish_date ASC;
|
|
|
|
|
|
-- name: UpdateModuleVideo :exec
|
|
UPDATE module_videos
|
|
SET
|
|
title = COALESCE($1, title),
|
|
description = COALESCE($2, description),
|
|
video_url = COALESCE($3, video_url),
|
|
duration = COALESCE($4, duration),
|
|
resolution = COALESCE($5, resolution),
|
|
visibility = COALESCE($6, visibility),
|
|
thumbnail = COALESCE($7, thumbnail),
|
|
is_active = COALESCE($8, is_active)
|
|
WHERE id = $9;
|
|
|
|
|
|
-- name: DeleteModuleVideo :exec
|
|
DELETE FROM module_videos
|
|
WHERE id = $1;
|