Index

public.credit_registration_registrable_completions

Description

Eligible completions that have no ledger row and are not already in the study registry through the pull path. Exactly the rows the materialiser creates a registration for, and so exactly the rows it may be accused of having missed. fully_eligible is not applied here: a completion still waiting on a prerequisite gets its row and waits in pending.

Table Definition
CREATE VIEW credit_registration_registrable_completions AS (
 SELECT course_module_completion_id,
    user_id,
    course_id,
    course_module_id,
    completion_date,
    created_at,
    fully_eligible
   FROM credit_registration_eligible_completions e
  WHERE ((NOT (EXISTS ( SELECT 1
           FROM credit_registrations cr
          WHERE ((cr.course_module_completion_id = e.course_module_completion_id) AND (cr.deleted_at IS NULL))))) AND (NOT (EXISTS ( SELECT 1
           FROM course_module_completion_registered_to_study_registries r
          WHERE ((r.course_module_completion_id = e.course_module_completion_id) AND (r.deleted_at IS NULL))))))
)

Columns

Name Type Default Nullable Children Parents Comment
completion_date timestamp with time zone true
course_id uuid true
course_module_completion_id uuid true
course_module_id uuid true
created_at timestamp with time zone true
fully_eligible boolean true
user_id uuid true

Referenced Tables

Name Columns Comment Type
public.credit_registration_eligible_completions 7 Completions the push path is responsible for: live, passed, ECTS-eligible, on a live module with a course code and completions_can_be_registered_to_sisu on, and marked for the push path when they were created. The pull path excludes exactly the rows carrying the mark. Membership is the hard half of the predicate, which nothing recovers from by waiting; fully_eligible is the soft half, which a prerequisite completed or a suspected-cheating review dismissed can turn true later. Deliberately silent about whether a completion is paused or already has a ledger row: pausing freezes rows where they stand rather than making them ineligible, and having a row is credit_registration_registrable_completions. VIEW
public.credit_registrations 65 The credit registration ledger: one row per attempt at registering one course module completion into the study registry via Suotar. Every state write goes through credit_registrations::transition, which stamps state_entered_at and appends an event row in the same transaction; nothing else may update state. BASE TABLE
public.course_module_completion_registered_to_study_registries 10 Completed course module completion registrations to study registries. BASE TABLE

Relations

er

Generated by tbls