# BV-SIS — Admission Database Report

**Date:** 10 July 2026  
**Migration:** `2026_07_10_000000_create_admission_tables.php`  
**Verdict:** PASS (`migrate:fresh --seed`)

---

## Tables (20)

| # | Table | Purpose |
|---|-------|---------|
| 1 | admission_settings | Institution admission configuration (JSON) |
| 2 | admission_cycles | Admission cycles / campaigns |
| 3 | admission_intakes | Cycle intakes linked to programmes/campuses |
| 4 | application_categories | Applicant categories |
| 5 | application_types | Application types (interview flags) |
| 6 | entry_requirements | Configurable entry rules |
| 7 | programme_requirements | Programme-specific requirements |
| 8 | application_form_templates | Dynamic form schemas |
| 9 | offer_letter_templates | Offer letter HTML templates |
| 10 | registration_fee_setups | Fee configuration |
| 11 | applicants | Applicant master profiles |
| 12 | applications | Applications + workflow status |
| 13 | application_documents | Uploaded documents + verification |
| 14 | application_reviews | Reviewer scores/notes |
| 15 | application_status_logs | Workflow audit trail |
| 16 | interviews | Interview scheduling/results |
| 17 | admission_decisions | Formal decisions |
| 18 | offer_letters | Issued offers + QR |
| 19 | registration_fee_invoices | Fee invoices/payments |
| 20 | admission_workflow_transitions | Allowed status transitions |

---

## Conventions

- `uuid` unique on entity tables  
- `created_by` / `updated_by` → users (nullOnDelete)  
- `timestamps` + `softDeletes` (where applicable)  
- Foreign keys to institution, programmes, campuses, sessions, intakes  
- Indexes on status, application_number, email, nrc/passport  

---

## Seed Data (`AdmissionSetupSeeder`)

Creates settings, cycle, intake, categories, types, entry requirement, form template, offer template, fee setup, sample applicant + application, and workflow transitions.

Depends on Phase 1 `InstitutionSetupSeeder` data.

---

## Validation

```
php artisan migrate:fresh --seed --force
→ All migrations DONE
→ AdmissionSetupSeeder DONE
```

No SQL errors. Foreign keys succeeded.
