pub struct CreditRegistration {Show 63 fields
pub id: Uuid,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub deleted_at: Option<DateTime<Utc>>,
pub course_module_completion_id: Uuid,
pub user_id: Uuid,
pub course_id: Uuid,
pub course_module_id: Uuid,
pub course_instance_id: Uuid,
pub state: CreditRegistrationState,
pub state_entered_at: DateTime<Utc>,
pub error_code: Option<CreditRegistrationErrorCode>,
pub error_message: Option<String>,
pub needs_admin_attention: bool,
pub enrolment_banner_dismissed_at: Option<DateTime<Utc>>,
pub student_number: Option<DbSecret>,
pub sisu_person_id: Option<DbSecret>,
pub uh_course_code: Option<String>,
pub selected_enrolment_id: Option<String>,
pub selected_enrolment_kind: Option<String>,
pub selected_enrolment_realisation_id: Option<String>,
pub attained_at: Option<DateTime<Utc>>,
pub attainment_language: Option<String>,
pub grade_scale_id: Option<String>,
pub grade_id: Option<String>,
pub credits: Option<f32>,
pub submitted_attainment_id: Option<String>,
pub submitted_attainment_type: Option<String>,
pub sisu_attainment_id: Option<String>,
pub sisu_attainment_type: Option<String>,
pub submit_retry_count: i32,
pub verify_attempt_count: i32,
pub next_attempt_at: DateTime<Utc>,
pub first_failed_at: Option<DateTime<Utc>>,
pub last_attempt_at: Option<DateTime<Utc>>,
pub attempt_number: i32,
pub superseded_by_id: Option<Uuid>,
pub superseded_at: Option<DateTime<Utc>>,
pub enrolment_checked_at: Option<DateTime<Utc>>,
pub submitted_at: Option<DateTime<Utc>>,
pub registered_at: Option<DateTime<Utc>>,
pub terminal_at: Option<DateTime<Utc>>,
pub action_needed_email_delivery_id: Option<Uuid>,
pub registered_email_delivery_id: Option<Uuid>,
pub improvement_checked_completion_updated_at: Option<DateTime<Utc>>,
pub partially_registered_at: Option<DateTime<Utc>>,
pub not_registered_reimport_count: i32,
pub selected_enrolment_realisation_name: Option<Value>,
pub resubmit_not_before: Option<DateTime<Utc>>,
pub pending_superseded_by_id: Option<Uuid>,
pub no_usable_enrolment_since: Option<DateTime<Utc>>,
pub enrolment_check_group: EnrolmentCheckGroup,
pub enrolment_check_anchor_at: Option<DateTime<Utc>>,
pub enrolment_check_step: Option<i32>,
pub enrolment_check_due_at: Option<DateTime<Utc>>,
pub is_enrolment_check_batched: bool,
pub enrolment_check_source: EnrolmentCheckSource,
pub enrolment_checks_stopped_at: Option<DateTime<Utc>>,
pub enrolment_check_requested_at: Option<DateTime<Utc>>,
pub enrolment_check_restart_window_started_at: Option<DateTime<Utc>>,
pub enrolment_check_restart_count: i32,
pub seen_enrolment_ids: Option<Vec<String>>,
pub enrolment_check_claimed_until: Option<DateTime<Utc>>,
}Fields§
§id: Uuid§created_at: DateTime<Utc>§updated_at: DateTime<Utc>§deleted_at: Option<DateTime<Utc>>§course_module_completion_id: Uuid§user_id: Uuid§course_id: Uuid§course_module_id: Uuid§course_instance_id: Uuid§state: CreditRegistrationState§state_entered_at: DateTime<Utc>§error_code: Option<CreditRegistrationErrorCode>§error_message: Option<String>§needs_admin_attention: bool§student_number: Option<DbSecret>§sisu_person_id: Option<DbSecret>§uh_course_code: Option<String>§selected_enrolment_id: Option<String>§selected_enrolment_kind: Option<String>§selected_enrolment_realisation_id: Option<String>§attained_at: Option<DateTime<Utc>>§attainment_language: Option<String>§grade_scale_id: Option<String>§grade_id: Option<String>§credits: Option<f32>§submitted_attainment_id: Option<String>§submitted_attainment_type: Option<String>§sisu_attainment_id: Option<String>§sisu_attainment_type: Option<String>§submit_retry_count: i32§verify_attempt_count: i32§next_attempt_at: DateTime<Utc>§first_failed_at: Option<DateTime<Utc>>§last_attempt_at: Option<DateTime<Utc>>§attempt_number: i32§superseded_by_id: Option<Uuid>§superseded_at: Option<DateTime<Utc>>§enrolment_checked_at: Option<DateTime<Utc>>§submitted_at: Option<DateTime<Utc>>§registered_at: Option<DateTime<Utc>>§terminal_at: Option<DateTime<Utc>>§action_needed_email_delivery_id: Option<Uuid>Set once the student mail for that outcome is queued, and never cleared: these two are the
idempotency guard for the student-notifications phase.
registered_email_delivery_id: Option<Uuid>§improvement_checked_completion_updated_at: Option<DateTime<Utc>>The completion revision the grade-improvement scan last found no improvement against. See
mark_improvement_checked.
partially_registered_at: Option<DateTime<Utc>>Set while verify sees only an assessment item attainment for the submission.
not_registered_reimport_count: i32§selected_enrolment_realisation_name: Option<Value>Localized {fi, sv, en} name of the chosen enrolment’s realisation, as Suotar reported it.
resubmit_not_before: Option<DateTime<Utc>>Suotar’s retryAfter for a pending submission; resubmitting earlier may duplicate it.
pending_superseded_by_id: Option<Uuid>A later attempt on its way to replace this registered row; see
mark_pending_superseded. Until it lands this row is
still the credit Sisu holds.
no_usable_enrolment_since: Option<DateTime<Utc>>When the row started waiting for an enrolment, held across the rechecks that keep finding none.
enrolment_check_group: EnrolmentCheckGroupKept for the row’s whole life; see EnrolmentCheckGroup.
enrolment_check_anchor_at: Option<DateTime<Utc>>What the ladder is counted from. None outside the wait for an enrolment, which is how the
phases tell a scheduled check from any other resolve.
enrolment_check_step: Option<i32>§enrolment_check_due_at: Option<DateTime<Utc>>The ladder time of enrolment_check_step, which next_attempt_at does not keep.
is_enrolment_check_batched: bool§enrolment_check_source: EnrolmentCheckSource§enrolment_checks_stopped_at: Option<DateTime<Utc>>§enrolment_check_requested_at: Option<DateTime<Utc>>§enrolment_check_restart_window_started_at: Option<DateTime<Utc>>§enrolment_check_restart_count: i32§seen_enrolment_ids: Option<Vec<String>>None until the first check, which is what lets any roster listing wake a row never
checked.
enrolment_check_claimed_until: Option<DateTime<Utc>>Set while a lookup is out for a row parked in no_usable_enrolment; see
claim_enrolment_checks.
Implementations§
Source§impl CreditRegistration
impl CreditRegistration
Sourcepub fn resubmission_facts(&self) -> ResubmissionFacts
pub fn resubmission_facts(&self) -> ResubmissionFacts
What decides whether a human may move this row; see ResubmissionFacts.
Sourcepub fn frozen_grade(&self) -> Option<MappedGrade>
pub fn frozen_grade(&self) -> Option<MappedGrade>
The grade the frozen payload carries; None before one is frozen.
Sourcepub fn is_waiting_for_enrolment(&self) -> bool
pub fn is_waiting_for_enrolment(&self) -> bool
Trait Implementations§
Source§impl Clone for CreditRegistration
impl Clone for CreditRegistration
Source§fn clone(&self) -> CreditRegistration
fn clone(&self) -> CreditRegistration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreditRegistration
impl Debug for CreditRegistration
Source§impl<'de> Deserialize<'de> for CreditRegistration
impl<'de> Deserialize<'de> for CreditRegistration
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CreditRegistration
impl RefUnwindSafe for CreditRegistration
impl Send for CreditRegistration
impl Sync for CreditRegistration
impl Unpin for CreditRegistration
impl UnsafeUnpin for CreditRegistration
impl UnwindSafe for CreditRegistration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].