89 lines
1.5 KiB
SQL
89 lines
1.5 KiB
SQL
-- name: CreateLevel :one
|
|
INSERT INTO levels (
|
|
program_id,
|
|
title,
|
|
description,
|
|
level_index,
|
|
number_of_modules,
|
|
number_of_practices,
|
|
number_of_videos,
|
|
is_active
|
|
)
|
|
VALUES (
|
|
$1, -- program_id
|
|
$2, -- title
|
|
$3, -- description
|
|
$4, -- level_index
|
|
$5, -- number_of_modules
|
|
$6, -- number_of_practices
|
|
$7, -- number_of_videos
|
|
$8 -- is_active
|
|
)
|
|
RETURNING
|
|
id,
|
|
program_id,
|
|
title,
|
|
description,
|
|
level_index,
|
|
number_of_modules,
|
|
number_of_practices,
|
|
number_of_videos,
|
|
is_active;
|
|
|
|
-- name: GetLevelByID :one
|
|
SELECT
|
|
id,
|
|
program_id,
|
|
title,
|
|
description,
|
|
level_index,
|
|
number_of_modules,
|
|
number_of_practices,
|
|
number_of_videos,
|
|
is_active
|
|
FROM levels
|
|
WHERE id = $1;
|
|
|
|
-- name: ListLevelsByProgram :many
|
|
SELECT
|
|
id,
|
|
program_id,
|
|
title,
|
|
description,
|
|
level_index,
|
|
number_of_modules,
|
|
number_of_practices,
|
|
number_of_videos,
|
|
is_active
|
|
FROM levels
|
|
WHERE program_id = $1
|
|
AND is_active = TRUE
|
|
ORDER BY level_index ASC;
|
|
|
|
-- name: UpdateLevel :one
|
|
UPDATE levels
|
|
SET
|
|
title = $2,
|
|
description = $3,
|
|
level_index = $4,
|
|
number_of_modules = $5,
|
|
number_of_practices = $6,
|
|
number_of_videos = $7,
|
|
is_active = $8
|
|
WHERE id = $1
|
|
RETURNING
|
|
id,
|
|
program_id,
|
|
title,
|
|
description,
|
|
level_index,
|
|
number_of_modules,
|
|
number_of_practices,
|
|
number_of_videos,
|
|
is_active;
|
|
|
|
-- name: DeactivateLevel :exec
|
|
UPDATE levels
|
|
SET is_active = FALSE
|
|
WHERE id = $1;
|