# BV-SIS — Registration Workflow Report

**Date:** 10 July 2026  
**Service:** `App\Services\Registration\RegistrationWorkflowService`

---

## Happy Path

1. Application approved / offer accepted (`converted_to_student` ready)  
2. `convertFromApplication()` creates Student  
3. Generate Computer Number  
4. Generate Student Number  
5. Capture biodata (guardians, sponsors, medical, education)  
6. Assign campus / faculty / programme / path / intake / session / study plan  
7. Create semester registration  
8. Load courses from programme structure  
9. Fee assessment trigger (ready for Finance Phase 4)  
10. Approve / complete registration  

Every step writes `registration_workflow_logs`.

---

## Registration Workflow Statuses

pending → biodata → allocated → courses_selected → fee_assessed → submitted → approved / rejected → completed

---

## Student Status Transitions

Handled by `StudentStatusService` with `student_status_changes` rows:

active · registered · deferred · suspended · withdrawn · graduated · discontinued · transferred · alumni

---

## Identity

`StudentIdentityService` generates:
- Unique `qr_token` (SHA-256 based payload)  
- Code128-compatible `barcode_value`  
Printable via `students/{id}/qr`, `barcode`, `id-preview` routes.

---

## Integration with Admission

`RegistrationWorkflowService::convertFromApplication(Application $app)`:
- Copies applicant biodata  
- Links `application_id` / `applicant_id`  
- Assigns programme/campus from application  
- Generates numbers + QR/barcode  
- Can advance application to `converted_to_student`
