> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sertifikasitrainer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Peta alur produk

> Gambaran besar: dari daftar batch sampai belajar, generate dokumen, dan sertifikat.

AI Mentor menghubungkan **penjualan batch**, **akses tier**, **kursus video**, **AI workspace**, dan **dokumen SKKNI**.

## Siapa pakai apa

```mermaid theme={null}
flowchart LR
  subgraph public["Publik"]
    order["/order\nkatalog batch"]
    reg["/register/:batch/:tier"]
    pay["/payment/*"]
  end

  subgraph peserta["Peserta / trainer"]
    ws["/:slug\nworkspace"]
    kelas["/:slug/kelas"]
    ai["/:slug/ai-hub"]
    dok["/:slug/dokumen"]
  end

  subgraph admin["Admin"]
    adm["/admin/*"]
    batch["Kelola batch & tier"]
    course["Kelola kursus"]
  end

  order --> reg --> pay
  pay --> ws
  ws --> kelas
  ws --> ai
  ws --> dok
  adm --> batch
  adm --> course
```

| Peran       | Login              | Halaman utama                                  |
| ----------- | ------------------ | ---------------------------------------------- |
| **Admin**   | `admin@...`        | `/admin/home`, batch, tier, kelas, peserta     |
| **Peserta** | Akun setelah bayar | `/{workspace-slug}` — dashboard, kelas, AI hub |
| **Publik**  | Tanpa login        | `/order`, `/register/...`, pembayaran          |

## Alur hidup peserta (end-to-end)

```mermaid theme={null}
sequenceDiagram
  participant U as Calon peserta
  participant Web as Frontend
  participant API as API Worker
  participant SV as Scalev
  participant DB as Postgres

  U->>Web: Buka /order → pilih batch & tier
  U->>Web: Register + metode bayar
  Web->>API: POST /api/payment/register
  API->>DB: enrollment pending + payment_session
  API->>SV: create order (QRIS/VA/dll)
  SV-->>U: Halaman bayar
  SV->>API: webhook payment_status_changed
  API->>DB: session paid → enrollment active
  U->>Web: /payment/success → claim
  Web->>API: claim + auto login
  U->>Web: Workspace → kelas / AI hub
```

Detail tiap tahap:

* [Glossarium istilah](/architecture/glossarium)
* [Alur batch & tier (admin)](/architecture/alur-batch-tier)
* [Alur pembelian & enrollment](/architecture/alur-pembelian)
* [Auth & auto-login](/architecture/alur-auth)
* [Alur pembuatan kursus](/architecture/alur-kursus)
* [Alur video Mux](/architecture/alur-video)
* [Alur generate (job queue)](/architecture/alur-generate)
* [Alur sertifikat](/architecture/alur-sertifikat)
* [SKKNI & WSP](/architecture/skkni-wsp)
* [Admin playbook](/guides/admin-playbook)

## Akses tier → fitur

Setelah **enrollment `paid`**, `EnrollmentService.getPaidAccess()` menentukan:

| Field        | Arti                                                  |
| ------------ | ----------------------------------------------------- |
| `aiFeatures` | `trainer`, `master`, `branding` — gate AI hub         |
| `courseIds`  | Kursus yang boleh dibuka; kosong = semua kursus aktif |
| `benefits`   | Benefit tier (UI)                                     |

Default jika `ai_features` kosong di DB:

| Nama tier | AI features                 |
| --------- | --------------------------- |
| platinum  | trainer + master + branding |
| master    | trainer + master            |
| trainer   | trainer saja                |

Kode: `apps/api/src/enrollment/enrollment.service.ts`

## AI workspace (setelah bayar)

```mermaid theme={null}
flowchart TD
  hub["AI Hub selection"] --> master["Master workspace\nbukti 1–8"]
  hub --> trainer["Trainer workspace\n15 dokumen"]
  hub --> branding["Branding\nLinkedIn, IG, email, hero"]
  master --> gen["POST /api/generation/generate"]
  trainer --> gen
  branding --> gen
  gen --> job["PgBoss job"]
  job --> render["Renderer DOCX/PPTX"]
  render --> dl["Download di sidebar"]
```

## Modul API (prefix `/api`)

| Modul             | Fungsi                                         |
| ----------------- | ---------------------------------------------- |
| `payment`         | Register, checkout, webhook Scalev, tier admin |
| `enrollment`      | Status bayar, akses peserta                    |
| `kelas`           | Course, chapter, lesson, Mux, progress         |
| `generation`      | Job generate dokumen                           |
| `interview`       | Chat wawancara sebelum generate                |
| `workspace`       | Multi-workspace per peserta                    |
| `batch` / `admin` | Operasional admin                              |
| `certificates`    | Sertifikat peserta                             |
| `skkni` / `wsp`   | Pencarian unit kompetensi                      |

## Halaman terkait

* [Stack teknologi](/architecture/teknologi)
* [Struktur monorepo](/architecture/monorepo)
