- Add GET /api/v1/course-management/practices/:practiceId/detail with full question items - Add migration 000040 for sub-module content inactive purge tracking - Hierarchy queries, sqlc gen, config/app purge job, swagger refresh Made-with: Cursor
27 lines
792 B
SQL
27 lines
792 B
SQL
-- Track when submodule lessons, practices, and capstones became inactive for retention-based hard delete.
|
|
|
|
ALTER TABLE sub_module_lessons
|
|
ADD COLUMN IF NOT EXISTS inactive_since TIMESTAMPTZ;
|
|
|
|
ALTER TABLE sub_module_practices
|
|
ADD COLUMN IF NOT EXISTS inactive_since TIMESTAMPTZ;
|
|
|
|
ALTER TABLE sub_module_capstones
|
|
ADD COLUMN IF NOT EXISTS inactive_since TIMESTAMPTZ;
|
|
|
|
-- Existing inactive rows: start retention window from migration time (conservative).
|
|
UPDATE sub_module_lessons
|
|
SET inactive_since = NOW()
|
|
WHERE is_active = FALSE
|
|
AND inactive_since IS NULL;
|
|
|
|
UPDATE sub_module_practices
|
|
SET inactive_since = NOW()
|
|
WHERE is_active = FALSE
|
|
AND inactive_since IS NULL;
|
|
|
|
UPDATE sub_module_capstones
|
|
SET inactive_since = NOW()
|
|
WHERE is_active = FALSE
|
|
AND inactive_since IS NULL;
|